Chiến lược này là một hệ thống giao dịch đảo ngược xu hướng kết hợp giữa Mức trung bình chuyển động biểu thức (EMA) và Chỉ số sức mạnh tương đối (RSI). Nó xác định các điểm đảo ngược xu hướng thông qua các tín hiệu chéo của EMA 9 giai đoạn và 21 giai đoạn, được xác nhận bởi sự đột phá của RSI ở mức 50. Hệ thống bao gồm một cơ chế quản lý rủi ro toàn diện với tỷ lệ rủi ro-lợi nhuận cố định để kiểm soát hiệu quả việc rút tiền.
Hệ thống tạo ra tín hiệu mua khi EMA nhanh vượt qua trên EMA chậm trong khi RSI trên 50, và tín hiệu bán khi EMA nhanh vượt qua dưới EMA chậm trong khi RSI dưới 50. EMA crossover nắm bắt sự thay đổi xu hướng giá, trong khi RSI lọc ra các đột phá sai để cải thiện chất lượng tín hiệu. Hệ thống cũng kết hợp cơ chế dừng lỗ và lấy lợi nhuận dựa trên rủi ro-lợi nhuận để quản lý rủi ro.
Chiến lược này xây dựng một hệ thống theo dõi xu hướng mạnh mẽ bằng cách kết hợp chéo EMA và xác nhận đà RSI. Cơ chế kiểm soát rủi ro toàn diện và giao diện trực quan hóa rõ ràng làm cho nó rất thực tế. Mặc dù hiệu suất có thể không tối ưu trong thị trường bên cạnh, các hướng tối ưu hóa được đề xuất có tiềm năng cải thiện hơn nữa. Các nhà giao dịch được khuyên nên tiến hành kiểm tra kỹ lưỡng và điều chỉnh các tham số theo các đặc điểm cụ thể của công cụ giao dịch trước khi thực hiện trực tiếp.
/*backtest start: 2024-11-26 00:00:00 end: 2024-12-25 08:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA Crossover with RSI Confirmation and Buy/Sell Signals", overlay=true) // Input for EMAs and RSI fastLength = input.int(9, title="Fast EMA Length") slowLength = input.int(21, title="Slow EMA Length") rsiLength = input.int(14, title="RSI Length") rsiLevel = input.int(50, title="RSI Level", minval=0, maxval=100) // Calculate the EMAs and RSI fastEMA = ta.ema(close, fastLength) slowEMA = ta.ema(close, slowLength) rsi = ta.rsi(close, rsiLength) // Plot the EMAs on the chart plot(fastEMA, color=color.green, linewidth=2, title="Fast EMA (9)") plot(slowEMA, color=color.red, linewidth=2, title="Slow EMA (21)") // Plot the RSI on a separate pane (below the chart) hline(rsiLevel, "RSI Level", color=color.gray) plot(rsi, color=color.blue, linewidth=2, title="RSI") // Buy condition: Fast EMA crosses above Slow EMA and RSI crosses above 50 buyCondition = ta.crossover(fastEMA, slowEMA) and rsi > rsiLevel // Sell condition: Fast EMA crosses below Slow EMA and RSI crosses below 50 sellCondition = ta.crossunder(fastEMA, slowEMA) and rsi < rsiLevel // Execute trades based on conditions if (buyCondition) strategy.entry("Buy", strategy.long) label.new(bar_index, low, "Buy", color=color.green, textcolor=color.white, style=label.style_label_up, size=size.small) if (sellCondition) strategy.close("Buy") label.new(bar_index, high, "Sell", color=color.red, textcolor=color.white, style=label.style_label_down, size=size.small) // Strategy exit (optional): Fixed risk-to-reward ratio (take profit and stop loss) takeProfit = input.int(2, title="Take Profit (Risk-Reward)", minval=1) stopLoss = input.int(1, title="Stop Loss (Risk-Reward)", minval=1) strategy.exit("Exit Buy", "Buy", stop=close * (1 - stopLoss / 100), limit=close * (1 + takeProfit / 100)) // Plot buy/sell arrows for visualization plotarrow(buyCondition ? 1 : na, offset=-1, colorup=color.green, maxheight=30, title="Buy Signal Arrow") plotarrow(sellCondition ? -1 : na, offset=-1, colordown=color.red, maxheight=30, title="Sell Signal Arrow")