Chiến lược này là một hệ thống theo xu hướng dựa trên nhiều chỉ số kỹ thuật, kết hợp Moving Averages (EMA), Directional Movement Index (DMI), Detrended Price Oscillator (DPO), Relative Strength Index (RSI), và Average True Range (ATR).
Chiến lược sử dụng một hệ thống trung bình động ba cấp số (EMA) như cơ chế xác định xu hướng cốt lõi của nó, kết hợp với các chỉ số kỹ thuật khác để xác nhận nhiều tín hiệu: 1. EMA nhanh (10 ngày) nắm bắt đà tăng giá ngắn hạn 2. EMA trung bình (25 ngày) phục vụ như một bộ lọc xu hướng trung hạn 3. EMA chậm (50 ngày) xác định hướng xu hướng tổng thể 4. DMI (14 ngày) xác nhận sức mạnh hướng xu hướng 5. DPO xác nhận sự lệch giá từ xu hướng 6. RSI (14 ngày) đo đạc động lực và điều kiện mua quá mức / bán quá mức 7. ATR (14 ngày) đặt mục tiêu dừng lỗ và lợi nhuận
Điều kiện tín hiệu giao dịch: - Long: EMA nhanh vượt qua EMA trung bình với cả hai trên EMA chậm, ADX>25, RSI>50, DPO>0 - ngắn: EMA nhanh vượt dưới EMA trung bình với cả hai dưới EMA chậm, ADX>25, RSI<50, DPO<0
Các biện pháp kiểm soát rủi ro: - Các điểm dừng dựa trên ATR động thích nghi với biến động thị trường - Quản lý rủi ro theo tỷ lệ cố định - Nhiều chỉ số xác nhận chéo làm giảm tín hiệu sai
Chiến lược này xây dựng một hệ thống giao dịch theo xu hướng hoàn chỉnh thông qua sự kết hợp của nhiều chỉ số kỹ thuật. Các tính năng chính của nó là xác nhận tín hiệu nghiêm ngặt và kiểm soát rủi ro hợp lý, phù hợp với việc theo dõi xu hướng trung và dài hạn trên các khung thời gian hàng ngày. Mặc dù có một số sự chậm trễ trong tín hiệu, chiến lược thể hiện hiệu suất tổng thể mạnh mẽ thông qua kiểm soát rủi ro nghiêm ngặt và xác nhận tín hiệu nhiều lần. Khi áp dụng giao dịch trực tiếp, nên xem xét cẩn thận việc lựa chọn môi trường thị trường và tối ưu hóa tham số cho các công cụ cụ thể.
/*backtest start: 2019-12-23 08:00:00 end: 2025-01-15 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ //@version=5 strategy("Daily Strategy with Triple EMA, DMI, DPO, RSI, and ATR", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100) // Input parameters fastEmaLength = input.int(10, title="Fast EMA Length") mediumEmaLength = input.int(25, title="Medium EMA Length") slowEmaLength = input.int(50, title="Slow EMA Length") dmiLength = input.int(14, title="DMI Length") adxSmoothing = input.int(14, title="ADX Smoothing") dpoLength = input.int(14, title="DPO Length") rsiLength = input.int(14, title="RSI Length") atrLength = input.int(14, title="ATR Length") riskPercentage = input.float(2.0, title="Risk Percentage", step=0.1) atrMultiplier = input.float(1.5, title="ATR Multiplier for Stop Loss", step=0.1) tpMultiplier = input.float(2.0, title="ATR Multiplier for Take Profit", step=0.1) // Calculate EMAs fastEma = ta.ema(close, fastEmaLength) mediumEma = ta.ema(close, mediumEmaLength) slowEma = ta.ema(close, slowEmaLength) // Calculate other indicators [adx, diPlus, diMinus] = ta.dmi(dmiLength, adxSmoothing) dpo = close - ta.sma(close, dpoLength) rsi = ta.rsi(close, rsiLength) atr = ta.atr(atrLength) // Trading logic longCondition = ta.crossover(fastEma, mediumEma) and fastEma > slowEma and mediumEma > slowEma and adx > 25 and rsi > 50 and dpo > 0 shortCondition = ta.crossunder(fastEma, mediumEma) and fastEma < slowEma and mediumEma < slowEma and adx > 25 and rsi < 50 and dpo < 0 // Risk management riskAmount = (strategy.equity * riskPercentage) / 100 stopLoss = atr * atrMultiplier takeProfit = atr * tpMultiplier // Entry and exit logic if (longCondition) strategy.entry("Buy", strategy.long) strategy.exit("Exit Long", "Buy", stop=close - stopLoss, limit=close + takeProfit) if (shortCondition) strategy.entry("Sell", strategy.short) strategy.exit("Exit Short", "Sell", stop=close + stopLoss, limit=close - takeProfit) // Plot indicators plot(fastEma, color=color.green, title="Fast EMA") plot(mediumEma, color=color.orange, title="Medium EMA") plot(slowEma, color=color.red, title="Slow EMA") hline(25, "ADX Threshold", color=color.gray, linestyle=hline.style_dotted)