Chiến lược này tạo ra tín hiệu giao dịch bằng cách tính toán hai đường trung bình động của các giai đoạn khác nhau và vẽ các điểm chéo của chúng. Nó đi dài khi đường trung bình động ngắn hạn vượt qua đường trung bình động dài hạn, và đi ngắn khi đường trung bình động ngắn hạn vượt qua đường trung bình động dài hạn.
Chiến lược này dựa trên lợi thế của các đường trung bình động - chúng loại bỏ sự ngẫu nhiên trong chuỗi giá và trích xuất xu hướng chính. Chiến lược sử dụng một hệ thống đường trung bình động kép bao gồm các đường 7 ngày và 20 ngày, hai giai đoạn được sử dụng phổ biến và khá xác định.
Khi đường trung bình động ngắn hạn vượt qua đường trung bình động dài hạn, nó báo hiệu rằng giá đang tiến vào xu hướng tăng. Khi nó vượt qua đường thấp hơn, nó báo hiệu giá đang tiến vào xu hướng giảm. Theo logic này, chúng ta đi dài hoặc ngắn.
Cụ thể, chiến lược tính toán đường trung bình di chuyển đơn giản 7 ngày (SMA) và đường trung bình di chuyển đơn giản 20 ngày. Khi hai đường trung bình giao nhau, nó đánh giá sự đảo ngược xu hướng và kích hoạt tín hiệu giao dịch. Để phân biệt giữa các loại giao thoa, chúng tôi xác định đường ngắn hạn nằm trên đường dài hạn là xu hướng giá tăng, và ngược lại là xu hướng giảm. Khi đường ngắn hạn vượt qua đường dài hạn, tức là sự khởi đầu của xu hướng tăng, một vị trí dài được nhập. Khi đường ngắn hạn vượt qua bên dưới, tức là sự khởi đầu của xu hướng giảm, một vị trí ngắn được nhập.
(1) Logic chiến lược đơn giản và dễ hiểu và thực hiện.
(2) Các đường trung bình động như các chỉ số theo dõi xu hướng có thể lọc hiệu quả một số tiếng ồn trong giá.
(3) Cấu hình tham số linh hoạt để đáp ứng các điều kiện thị trường và yêu cầu giao dịch khác nhau.
(4) Sử dụng hai giai đoạn trung bình động thường được sử dụng giúp dễ dàng xác định các tín hiệu giao dịch rõ ràng.
(5) Hiển thị mạnh mẽ cho xu hướng trực quan, xác định các mức chính vv
(6) Các thông số có thể được tối ưu hóa thông qua backtesting để cải thiện lợi nhuận chiến lược.
(1) Chiến lược rất nhạy cảm với biến động thị trường.
(2) Crossovers có thể không xác định chính xác mức độ đảo ngược xu hướng và có thể kích hoạt các tín hiệu sai.
(3) Các quy tắc cứng rắn không thể thích nghi với các sự kiện mạnh mẽ ảnh hưởng đến thị trường, có khả năng gây ra tổn thất lớn.
(4) Các thông số không chính xác cũng có thể dẫn đến các tín hiệu không chính xác và giao dịch bị bỏ lỡ.
Để giảm thiểu những rủi ro này, các thông số có thể được điều chỉnh phù hợp. Các chỉ số khác có thể được thêm vào để xác nhận. Chiến lược dừng lỗ có thể kiểm soát lỗ. Các thông số hoặc chiến lược có thể được điều chỉnh theo chế độ thị trường.
(1) Việc kết hợp các chỉ số kỹ thuật khác để tạo thành một chiến lược kết hợp có thể làm tăng độ chính xác tín hiệu. ví dụ: thêm khối lượng để xác nhận sự mở rộng trên đường chéo trung bình động.
(2) Thêm các chiến lược dừng lỗ để kiểm soát hiệu quả lỗ giao dịch duy nhất. ví dụ như ra khỏi các vị trí nếu giá vượt qua đường trung bình động bằng một số ngưỡng.
(3) Kiểm tra và tối ưu hóa thời gian trung bình động. Thử kết hợp nhanh và chậm khác nhau để tìm các thông số tốt nhất. Các trung bình động khác như EMA, WMA cũng có thể được kiểm tra.
(4) Điều chỉnh tham số dựa trên các sản phẩm và điều kiện thị trường khác nhau. Sử dụng trung bình động ngắn hơn và chênh lệch chéo ngắn hơn cho các sản phẩm dễ bay hơi hơn.
Chiến lược chuyển động trung bình là một chiến lược theo xu hướng rất điển hình và cơ bản. Bằng cách tính toán hai đường trung bình chuyển động của các giai đoạn khác nhau và quan sát các đường chéo của chúng, nó đánh giá những thay đổi trong xu hướng giá. Các tín hiệu giao dịch được tạo ra khi đường trung bình chuyển động giai đoạn ngắn hơn vượt qua trên hoặc dưới đường trung bình chuyển động dài hơn.
/*backtest start: 2022-12-01 00:00:00 end: 2023-12-07 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("Ma stratégie", overlay=true) // Multi-timeframe and price input pricetype = input(close, title="Price Source For The Moving Averages") useCurrentRes = input(true, title="Use Current Timeframe As Resolution?") resCustom = input(title="Use Different Timeframe? Then Uncheck The Box Above", defval="W") res = useCurrentRes ? timeframe.period : resCustom price = request.security(syminfo.tickerid, res, pricetype) // MA period input shortperiod = input(7, title="Short Period Moving Average") longperiod = input(20, title="Long Period Moving Average") short = ema(price, shortperiod) long = ema(price, longperiod) // MA trend direction color shortcolor = short > short[1] ? lime : short < short[1] ? red : blue longcolor = long > long[1] ? lime : long < long[1] ? red : blue // MA output MA1 = plot(short, title="Short Period Moving Average", style=linebr, linewidth=2, color=shortcolor) MA2 = plot(long, title="Long Period Moving Average", style=linebr, linewidth=4, color=longcolor) fill(MA1, MA2, color=silver, transp=50) // MA trend bar color TrendingUp() => short > long TrendingDown() => short < long barcolor(TrendingUp() ? green : TrendingDown() ? red : blue) // MA cross alert MAcrossing = cross(short, long) ? short : na plot(MAcrossing, style = cross, linewidth = 4,color=black) // MA cross background color alert Uptrend() => TrendingUp() and TrendingDown()[1] Downtrend() => TrendingDown() and TrendingUp()[1] bgcolor(Uptrend() ? green : Downtrend() ? red : na,transp=50) // Buy and sell alert Buy = Uptrend() and close > close[1] Sell = Downtrend() and close < close[1] plotshape(Buy, color=black, style=shape.arrowup, text="Buy", location=location.bottom) plotshape(Sell, color=black, style=shape.arrowdown, text="Sell", location=location.top) if (Buy) strategy.entry("My Long Entry Id", strategy.long) if (Sell) strategy.entry("My Short Entry Id", strategy.short)