
Chiến lược này dựa trên chỉ số chênh lệch đường trung bình, tạo ra tín hiệu mua khi đường nhanh vượt qua đường chậm và tạo ra tín hiệu bán khi đường nhanh vượt qua đường chậm. Chiến lược này thuộc loại theo dõi xu hướng. Chiến lược đơn giản, rõ ràng, dễ hiểu, phù hợp với hoạt động đường ngắn trung bình.
Chiến lược này tạo ra tín hiệu giao dịch bằng cách tính toán chênh lệch của đường trung bình EMA của hai tham số khác nhau, sau đó tính toán EMA của chính nó với chênh lệch này. Cụ thể, chọn chu kỳ, tính toán EMA của chu kỳ / 2 chu kỳ là đường nhanh, tính toán EMA chu kỳ chu kỳ là đường chậm, và chênh lệch giữa hai EMA tạo thành giá trị chênh lệch.
Chiến lược này đơn giản và trực tiếp, đánh giá xu hướng giá thông qua chỉ số chênh lệch hai đường trung bình, thuộc chiến lược theo dõi xu hướng điển hình. Khi giá ở trong thị trường xu hướng, hiệu quả rõ ràng; Khi giá dao động, sẽ tạo ra nhiều tín hiệu sai.
Chiến lược này có những ưu điểm sau:
Các ý tưởng chiến lược đơn giản, trực quan, dễ hiểu và thích hợp cho người mới bắt đầu học;
Chỉ số chênh lệch đường trung bình nhạy cảm với sự thay đổi giá và có thể nắm bắt hiệu quả các thay đổi xu hướng;
Các tham số chiến lược ít hơn, dễ dàng tối ưu hóa và có khả năng điều chỉnh ổ cứng linh hoạt;
Có thể cấu hình các chỉ số dài hạn ngắn hạn để phù hợp với các môi trường thị trường khác nhau;
Các chiến lược dừng lỗ có thể được cấu hình theo sở thích rủi ro cá nhân để giảm tổn thất.
Chiến lược này cũng có những rủi ro sau:
Tỷ lệ báo cáo sai lệch cao trong tình trạng động đất, cần được hỗ trợ để đánh giá xu hướng cấp độ lớn;
Không thể đánh giá hiệu quả về điểm đảo ngược, có một số sự chậm trễ;
Cần chú ý đến việc tối ưu hóa các tham số của chỉ số chênh lệch đường trung bình để tránh quá nhạy cảm hoặc chậm trễ;
Số lần giao dịch cao, chi phí giao dịch có thể cao, cần kiểm soát quy mô vị trí.
Các giải pháp tương ứng là:
Các nhà phân tích cho rằng, các thị trường có xu hướng tăng trưởng mạnh trong những năm tới, và các thị trường có xu hướng giảm trong những năm tới.
Xác định điểm mua và bán, kết hợp với các chỉ số đảo ngược khác, để giảm nguy cơ chậm trễ;
Kiểm tra các tham số để tìm ra tham số tốt nhất;
Tối ưu hóa chiến lược dừng lỗ để giảm tổn thất đơn lẻ.
Chiến lược này có thể được tối ưu hóa bằng cách:
Kiểm tra các kết hợp tham số trung bình khác nhau để tìm tham số tối ưu;
Tăng các chỉ số đánh giá xu hướng, phân biệt xu hướng và biến động;
Kết hợp với chỉ số đảo ngược để xác định điểm mua và bán, tăng độ chính xác;
Tối ưu hóa chiến lược dừng lỗ và giảm tổn thất.
Kiểm tra các tham số khác nhau của chu kỳ có thể cải thiện tính ổn định của chiến lược đối với các tình huống khác nhau. Tăng khả năng đánh giá xu hướng có thể làm giảm thông báo sai. Chỉ số đảo ngược có thể nâng cao lựa chọn thời điểm mua và bán. Những tối ưu này có thể làm tăng sự ổn định và lợi nhuận của chiến lược.
Chiến lược theo dõi xu hướng dựa trên giá trị chênh lệch đường trung bình là một chiến lược theo dõi xu hướng điển hình. Chiến lược này rất đơn giản, dễ thực hiện, phù hợp với điều khiển đường ngắn và trung bình, đặc biệt phù hợp với nghiên cứu học tập của người mới bắt đầu. Tuy nhiên, chiến lược cũng có một số rủi ro, cần phải kết hợp với các phương tiện tối ưu hóa để giảm rủi ro.
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(title='Devick', overlay=true)
// Input parameters
period = input(title='Period', defval=21)
// Calculate moving averages
n2ma = 2 * ta.ema(close, math.round(period / 2))
nma = ta.ema(close, period)
diff = n2ma - nma
sqn = math.round(math.sqrt(period))
n2maPrev = 2 * ta.ema(close[1], math.round(period / 2))
nmaPrev = ta.ema(close[1], period)
diffPrev = n2maPrev - nmaPrev
sqnPrev = math.round(math.sqrt(period))
n1 = ta.ema(diff, sqn)
n2 = ta.ema(diffPrev, sqnPrev)
// Determine color based on condition
maColor = n1 > n2 ? color.green : color.red
// Plot moving average
ma = plot(n1, color=maColor, linewidth=2)
// Signals
buySignal = n1 > n2 and n1[1] <= n2[1]
sellSignal = n1 <= n2 and n1[1] > n2[1]
// Plot shapes for signals
plotshape(series=buySignal, title='Buy Signal', style=shape.arrowup, location=location.belowbar, color=color.green, size=size.small)
plotshape(series=sellSignal, title='Sell Signal', style=shape.arrowdown, location=location.abovebar, color=color.red, size=size.small)
// Alerts
alertcondition(condition=buySignal, title='Buy Signal', message='Buy Signal Detected')
alertcondition(condition=sellSignal, title='Sell Signal', message='Sell Signal Detected')
// Trading hours
openHour = 16
closeHour = 17
// Open position at 4 pm
openCondition = hour == openHour and minute == 0
strategy.entry("Buy", strategy.long, when=buySignal)
strategy.entry("Sell", strategy.short, when=sellSignal)
// Close all positions at 5 pm
closeCondition = hour == closeHour and minute == 0
strategy.close_all(when=closeCondition)