
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 các chỉ số di chuyển trung bình (EMA) và các chỉ số tương đối mạnh (RSI). Thông qua tín hiệu chéo của 9 chu kỳ và 21 chu kỳ EMA, kết hợp với sự xác nhận đột phá của chỉ số RSI ở mức 50, cung cấp cho các nhà giao dịch điểm chuyển hướng chính xác. Hệ thống được thiết kế đầy đủ cơ chế kiểm soát rủi ro, bao gồm tỷ lệ dừng lỗ cố định, có thể kiểm soát hiệu quả việc rút lui.
Lập luận cốt lõi của chiến lược dựa trên giao chéo giữa EMA nhanh (trong chu kỳ 9) và EMA chậm (trong chu kỳ 21) và sử dụng chỉ số RSI để xác nhận động lực. Khi EMA nhanh đi lên vượt qua EMA chậm và RSI lớn hơn 50, hệ thống phát ra nhiều tín hiệu; khi EMA nhanh đi xuống vượt qua EMA chậm và RSI nhỏ hơn 50, hệ thống phát ra tín hiệu cân bằng.
Chiến lược này kết hợp EMA chéo và xác nhận động lực RSI để xây dựng một hệ thống theo dõi xu hướng vững chắc. Cơ chế kiểm soát rủi ro hoàn chỉnh và giao diện trực quan rõ ràng làm cho nó có tính thực tế tốt. Mặc dù hiệu suất của thị trường ngang là không đáng kể, nhưng thông qua hướng tối ưu hóa được đề xuất, hiệu suất tổng thể của chiến lược sẽ được nâng cao hơn nữa.
/*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")