Chiến lược theo dõi xu hướng trung bình động kép là một chiến lược giao dịch định lượng sử dụng hai trung bình động với các giai đoạn khác nhau để xác định hướng xu hướng của thị trường. Nó sử dụng trạng thái dài / ngắn của trung bình động nhanh và chậm để xác định xu hướng và thực hiện giao dịch theo hướng xu hướng.
Chiến lược sử dụng hai đường trung bình động, bao gồm đường trung bình động nhanh (ví dụ 10 giai đoạn) và đường trung bình động chậm (ví dụ 30 giai đoạn). Nếu cả hai đường trung bình động đều hướng lên, nó chỉ ra xu hướng tăng. Nếu cả hai đường trung bình động đều hướng xuống, nó chỉ ra xu hướng giảm.
Cụ thể, chiến lược đầu tiên tính toán các đường trung bình di chuyển nhanh và chậm. Sau đó nó so sánh đường trung bình di chuyển nhanh hiện tại với giai đoạn trước để xem liệu đường trung bình di chuyển nhanh hiện tại có lớn hơn đường trung bình di chuyển trước không. Nếu có, gán giá trị 1 cho xu hướng tăng. Nếu không, gán -1 cho xu hướng giảm. Làm tương tự cho đường trung bình di chuyển chậm.
Cuối cùng, xác định xu hướng bằng các giá trị của hai đường trung bình động. Nếu cả hai giá trị là 1, quyết định cuối cùng là 1, cho thấy xu hướng tăng. Nếu cả hai là -1, quyết định cuối cùng là -1, cho thấy xu hướng giảm. Nếu các giá trị khác nhau, duy trì quyết định xu hướng trước đó.
Sau khi xác định hướng xu hướng, chiến lược sẽ dài ở xu hướng tăng và ngắn ở xu hướng giảm.
Chiến lược này có các cạnh sau:
Ngoài ra còn có một số rủi ro của chiến lược:
Để giảm rủi ro, các tham số của đường trung bình động có thể được thiết lập hợp lý hơn, các chỉ số khác có thể được giới thiệu, dừng lỗ và lấy lợi nhuận có thể được thiết lập và kích thước vị trí có thể được điều chỉnh phù hợp.
Chiến lược có thể được tối ưu hóa thêm trong các khía cạnh sau:
Chiến lược theo dõi xu hướng trung bình di chuyển kép có logic rõ ràng sử dụng trung bình di chuyển kép để lọc tiếng ồn và xác định xu hướng, và giao dịch theo hướng xu hướng. Đây là một chiến lược theo xu hướng điển hình. Các nhà giao dịch có thể chọn chỉ dài hoặc ngắn chỉ dựa trên sở thích.
/*backtest start: 2022-12-12 00:00:00 end: 2023-12-18 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © noro // 2020 //@version=4 strategy(title = "Noro's TrendMA Strategy", shorttitle = "TrendMA str", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0, commission_value = 0.1) //Settings needlong = input(true, title = "Long") needshort = input(true, title = "Short") fast = input(10, minval = 1, title = "MA Fast (red)") slow = input(30, minval = 2, title = "MA Slow (blue)") type = input(defval = "SMA", options = ["SMA", "EMA"], title = "MA Type") src = input(ohlc4, title = "MA Source") showma = input(true, title = "Show MAs") showbg = input(false, title = "Show Background") //MAs fastma = type == "EMA" ? ema(src, fast) : sma(src, fast) slowma = type == "EMA" ? ema(src, slow) : sma(src, slow) //Lines colorfast = showma ? color.red : na colorslow = showma ? color.blue : na plot(fastma, color = colorfast, title = "MA Fast") plot(slowma, color = colorslow, title = "MA Slow") //Trend trend1 = fastma > fastma[1] ? 1 : -1 trend2 = slowma > slowma[1] ? 1 : -1 trend = 0 trend := trend1 == 1 and trend2 == 1 ? 1 : trend1 == -1 and trend2 == -1 ? -1 : trend[1] //Backgrouns colbg = showbg == false ? na : trend == 1 ? color.lime : trend == -1 ? color.red : na bgcolor(colbg, transp = 80) //Trading if trend == 1 if needlong strategy.entry("Long", strategy.long) if needlong == false strategy.close_all() if trend == -1 if needshort strategy.entry("Short", strategy.short) if needshort == false strategy.close_all()