
Chiến lược theo dõi xu hướng trung bình di chuyển kép (Dual Moving Average Trend Tracking Strategy) là một chiến lược giao dịch định lượng dựa trên trung bình di chuyển của hai chu kỳ khác nhau để xác định hướng của xu hướng thị trường. Chiến lược này sử dụng trạng thái đa khoảng của trung bình di chuyển nhanh và trung bình di chuyển chậm để xác định hướng xu hướng và giao dịch theo hướng xu hướng.
Chiến lược này sử dụng hai đường trung bình di chuyển, bao gồm đường trung bình di chuyển nhanh (ví dụ 10 chu kỳ) và đường trung bình di chuyển chậm (ví dụ 30 chu kỳ). Nếu cả hai đường trung bình di chuyển đều tăng lên, nó sẽ được coi là xu hướng đa đầu; nếu cả hai đường trung bình di chuyển đều giảm xuống, nó sẽ được coi là xu hướng đầu không.
Cụ thể, chiến lược này tính toán các trung bình di chuyển nhanh và trung bình di chuyển chậm. Sau đó, so sánh các trung bình di chuyển nhanh hiện tại với quy mô của chu kỳ trước, nếu quy mô hiện tại lớn hơn chu kỳ trước, nó sẽ được định giá là 1, nghĩa là lên; nếu không, nó sẽ được định giá là -1, nghĩa là xuống.
Cuối cùng, đánh giá giá trị của hai đường trung bình di chuyển. Nếu cả hai giá trị đánh giá là 1, đánh giá cuối cùng là 1, biểu thị xu hướng đa đầu; nếu cả hai giá trị đánh giá là -1, đánh giá cuối cùng là -1, biểu thị xu hướng tròn. Nếu giá trị đánh giá không đồng nhất, duy trì đánh giá xu hướng của chu kỳ trước.
Sau khi xác định hướng của xu hướng, chiến lược này mở thêm vị trí trong xu hướng đa đầu và mở lỗ trong xu hướng trống.
Chiến lược này có những ưu điểm sau:
Chiến lược này cũng có những rủi ro:
Để giảm nguy cơ trên, bạn có thể thiết lập các tham số chu kỳ trung bình di chuyển hợp lý hơn, giới thiệu các chỉ số kỹ thuật khác như là phán đoán hỗ trợ, thiết lập quy tắc dừng lỗ, hoặc điều chỉnh vị trí phù hợp.
Chiến lược này cũng có thể được tối ưu hóa theo các khía cạnh sau:
Chiến lược theo dõi xu hướng trung bình di chuyển đôi có ý tưởng tổng thể rõ ràng và dễ hiểu, bằng cách lọc rung động của hai trung bình di chuyển, đánh giá hướng xu hướng và giao dịch theo kết quả đánh giá, đây là một chiến lược theo dõi xu hướng điển hình. Chiến lược này có thể tùy thuộc vào sở thích cá nhân chỉ làm nhiều hoặc chỉ làm trống, linh hoạt, đơn giản và dễ vận hành.
/*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()