
Chiến lược này là một hệ thống giao dịch theo dõi xu hướng dựa trên hệ thống đường hai và chỉ số RSI. Chiến lược này kết hợp các tín hiệu giao chéo đường hai, phán quyết mua bán quá mức RSI và xác nhận giá phá vỡ, xây dựng một khung quyết định giao dịch được lọc nhiều. Chiến lược này nắm bắt xu hướng trung hạn ngắn hạn thông qua chỉ số di chuyển trung bình 6 chu kỳ và 82 chu kỳ (EMA), đồng thời sử dụng chỉ số tương đối mạnh mẽ (RSI) để lọc các trường hợp thị trường quá nóng và quá lạnh, và cuối cùng xác nhận tín hiệu giao dịch bằng cách phá vỡ giá.
Logic cốt lõi của chiến lược bao gồm việc lọc tín hiệu theo ba chiều:
Chiến lược này xây dựng một hệ thống theo dõi xu hướng có tính logic nghiêm ngặt thông qua sự kết hợp khéo léo của hệ thống đường thẳng và chỉ số RSI. Các cơ chế lọc đa dạng của chiến lược kiểm soát rủi ro một cách hiệu quả, nhưng cũng có thể bỏ lỡ một số cơ hội giao dịch. Bằng cách tối ưu hóa và hoàn thiện liên tục, chiến lược có thể duy trì hiệu suất ổn định trong các môi trường thị trường khác nhau.
/*backtest
start: 2024-02-17 00:00:00
end: 2025-02-15 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA RSI Strategy", overlay=true)
// Input Parameters
emaShortLength = input.int(6, title="EMA Short Length")
emaLongLength = input.int(82, title="EMA Long Length")
rsiLength = input.int(14, title="RSI Length")
rsiOverbought = input.float(70, title="RSI Overbought Level")
rsiOversold = input.float(22, title="RSI Oversold Level")
// Calculations
emaShort = ta.ema(close, emaShortLength)
emaLong = ta.ema(close, emaLongLength)
rsi = ta.rsi(close, rsiLength)
// Conditions
emaBuyCondition = ta.crossover(emaShort, emaLong)
emaSellCondition = ta.crossunder(emaShort, emaLong)
higherHighCondition = close > ta.highest(close[1], 1)
lowerLowCondition = close < ta.lowest(close[1], 1)
rsiNotOverbought = rsi < rsiOverbought
rsiNotOversold = rsi > rsiOversold
// Entry Signals
buySignal = emaBuyCondition and rsiNotOverbought and higherHighCondition
sellSignal = emaSellCondition and rsiNotOversold and lowerLowCondition
// Execute Trades
if (buySignal)
strategy.entry("Buy", strategy.long)
if (sellSignal)
strategy.entry("Sell", strategy.short)
// Plotting
plot(emaShort, color=color.green, title="EMA Short")
plot(emaLong, color=color.red, title="EMA Long")
plot(rsi, title="RSI", color=color.blue, linewidth=1)
hline(rsiOverbought, title="RSI Overbought", color=color.red, linestyle=hline.style_dotted)
hline(rsiOversold, title="RSI Oversold", color=color.green, linestyle=hline.style_dotted)