Đây là một chiến lược theo xu hướng kết hợp 3 Mức trung bình chuyển động nhân tố (EMA) với Chỉ số chuyển động theo hướng (DMI) và chỉ số Chuyển động trung bình hội tụ (MACD) để xác định hướng xu hướng và tạo ra tín hiệu mua / bán. Các thành phần chính bao gồm tín hiệu chéo EMA, DMI cho sức mạnh xu hướng và MACD để xác nhận đà.
Lý thuyết cốt lõi dựa trên 3 EMA - 34, 89 và 200 - được tính trên khung thời gian M5 để xác định xu hướng tổng thể.
Các tín hiệu mua được kích hoạt khi:
Các tín hiệu bán được tạo ra khi:
Sự xác nhận bổ sung đến từ chỉ số MACD trước khi ghi.
Chiến lược này có một số lợi thế chính:
Những rủi ro chính cần xem xét:
Phương pháp giảm thiểu:
Các cải tiến khác cho chiến lược:
Tóm lại, đây là một hệ thống theo dõi xu hướng mạnh mẽ kết hợp các chỉ số đơn giản nhưng mạnh mẽ để giao dịch theo hướng xu hướng hiện hành. Cấu hình EMA ba đo xu hướng nhiều khung thời gian trong khi kiểm tra DMI và MACD tăng thời gian và xác suất nhập lợi nhuận. Với tối ưu hóa và quản lý rủi ro thích hợp, nó có thể là một bổ sung hiệu quả cho các nhà giao dịch xu hướng.
/*backtest start: 2023-01-18 00:00:00 end: 2024-01-24 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("2 EMA di+ Buy Sell, strategy ", overlay=true) // Define the EMA calculation function ema(src, length) => ta.ema(src, length) // Calculate and plot EMA on M5 ema34_M5 = ema(close, 34) ema89_M5 = ema(close, 89) ema200_M5 = ema(close, 200) // Plot EMAs plot(ema34_M5, color=color.green, title="EMA 34 M5", linewidth=2) plot(ema89_M5, color=color.blue, title="EMA 89 M5", linewidth=2) plot(ema200_M5, color=color.black, title="EMA 200 M5", linewidth=2) // Define DMI parameters len = input(14, title="DI Length") up = ta.change(high) down = -ta.change(low) plusDM = na(up) ? na : (up > down and up > 0 ? up : 0) minusDM = na(down) ? na : (down > up and down > 0 ? down : 0) trur = ta.rma(ta.tr, len) plusDI = 100 * ta.rma(plusDM, len) / trur minusDI = 100 * ta.rma(minusDM, len) / trur // Calculate ADX adxValue = 100 * ta.rma(math.abs(plusDI - minusDI) / (plusDI + minusDI == 0 ? 1 : plusDI + minusDI), len) // Define MACD parameters fastLength = input(12, title="Fast Length") slowLength = input(26, title="Slow Length") signalLength = input(9, title="Signal Length") // Calculate MACD [macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalLength) // Create buy/sell conditions buyCondition = close > ema34_M5 and plusDI > 17 and adxValue > minusDI sellCondition = close < ema34_M5 and minusDI > 17 and adxValue > plusDI // Strategy logic strategy.entry("Buy", strategy.long, when = buyCondition) strategy.entry("Sell", strategy.short, when = sellCondition) // Create alerts for buy/sell signals alertcondition(buyCondition, title="Buy Signal", message="Buy Signal") alertcondition(sellCondition, title="Sell Signal", message="Sell Signal") // Plot buy/sell arrows on the price chart bgcolor(buyCondition ? color.new(color.green, 90) : sellCondition ? color.new(color.red, 90) : na) plotarrow(buyCondition ? 1 : sellCondition ? -1 : na, colorup=color.new(color.green, 0), colordown=color.new(color.red, 0), offset=-1)