Chiến lược này là một hệ thống giao dịch toàn diện kết hợp trung bình động, chỉ số sức mạnh tương đối và chỉ số sức mạnh xu hướng. Thông qua sự phối hợp của nhiều chỉ số kỹ thuật, nó đạt được việc nắm bắt chính xác xu hướng thị trường và kiểm soát rủi ro hiệu quả. Hệ thống áp dụng cơ chế dừng lỗ và lấy lợi nhuận năng động, đảm bảo tỷ lệ rủi ro-lợi nhuận thuận lợi trong khi thích nghi với các điều kiện thị trường khác nhau thông qua điều chỉnh tham số linh hoạt.
Chiến lược này chủ yếu dựa trên ba chỉ số cốt lõi: Trung bình chuyển động biểu thức nhanh và chậm (EMA), Chỉ số sức mạnh tương đối (RSI) và Chỉ số hướng trung bình (ADX). Khi EMA nhanh vượt qua trên EMA chậm, hệ thống kiểm tra xem RSI có ở vùng không mua quá mức (dưới 60) trong khi xác nhận sức mạnh xu hướng đủ với ADX (trên 15). Những điều kiện này kích hoạt tín hiệu bước vào dài khi đáp ứng. Các điều kiện đối lập kích hoạt tín hiệu bước ra. Hệ thống cũng thực hiện các điểm lấy lợi nhuận và dừng lỗ năng động dựa trên tỷ lệ rủi ro-lợi nhuận, đạt được kiểm soát chính xác rủi ro giao dịch thông qua các tham số.
Chiến lược này thiết lập một hệ thống giao dịch tương đối hoàn chỉnh thông qua việc sử dụng toàn diện nhiều chỉ số kỹ thuật. Ưu điểm cốt lõi của nó nằm trong việc cải thiện độ tin cậy tín hiệu giao dịch thông qua sự phối hợp chỉ số trong khi đảm bảo an toàn giao dịch thông qua các cơ chế kiểm soát rủi ro năng động. Mặc dù có một số hạn chế vốn có, chiến lược có không gian cải tiến đáng kể thông qua các hướng tối ưu hóa được đề xuất. Nhìn chung, đây là một khuôn khổ chiến lược giao dịch thực tế phù hợp với tối ưu hóa hơn nữa và ứng dụng trong thế giới thực.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-23 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Enhanced EMA + RSI + ADX Strategy (Focused on 70% Win Rate)", overlay=true) // Input parameters lenFast = input.int(9, title="Fast EMA Length", minval=1) lenSlow = input.int(21, title="Slow EMA Length", minval=1) rsiPeriod = input.int(14, title="RSI Period") adxPeriod = input.int(14, title="ADX Period") adxSmoothing = input.int(1, title="ADX Smoothing") adxThreshold = input.int(15, title="ADX Threshold") riskRewardRatio = input.float(1.5, title="Risk/Reward Ratio") rsiOverbought = input.int(60, title="RSI Overbought Level") // Adjusted for flexibility rsiOversold = input.int(40, title="RSI Oversold Level") // EMA Calculations fastEMA = ta.ema(close, lenFast) slowEMA = ta.ema(close, lenSlow) // RSI Calculation rsiValue = ta.rsi(close, rsiPeriod) // ADX Calculation [plusDI, minusDI, adxValue] = ta.dmi(adxPeriod, adxSmoothing) // Entry Conditions with Confirmation buyCondition = ta.crossover(fastEMA, slowEMA) and rsiValue < rsiOverbought and adxValue > adxThreshold sellCondition = ta.crossunder(fastEMA, slowEMA) and rsiValue > rsiOversold and adxValue > adxThreshold // Dynamic Exit Conditions takeProfit = strategy.position_avg_price + (close - strategy.position_avg_price) * riskRewardRatio stopLoss = strategy.position_avg_price - (close - strategy.position_avg_price) // Entry logic if (buyCondition) strategy.entry("Buy", strategy.long) strategy.exit("Sell", from_entry="Buy", limit=takeProfit, stop=stopLoss) if (sellCondition) strategy.close("Buy") // Plotting EMAs plot(fastEMA, color=color.new(color.green, 0), title="Fast EMA", linewidth=1) plot(slowEMA, color=color.new(color.red, 0), title="Slow EMA", linewidth=1) // Entry and exit markers plotshape(series=buyCondition, style=shape.triangleup, location=location.belowbar, color=color.new(color.green, 0), size=size.normal, title="Buy Signal") plotshape(series=sellCondition, style=shape.triangledown, location=location.abovebar, color=color.new(color.red, 0), size=size.normal, title="Sell Signal") // Alerts alertcondition(buyCondition, title="Buy Alert", message="Buy signal triggered") alertcondition(sellCondition, title="Sell Alert", message="Sell signal triggered")