
Chiến lược này là một hệ thống giao dịch theo xu hướng kết hợp Chỉ số sức mạnh tương đối (RSI), Đường trung bình động có trọng số (WMA) và Đường trung bình động theo hàm mũ (EMA). Chiến lược này xác định những thay đổi trong xu hướng thị trường bằng cách theo dõi vị trí của giá trị RSI và sự giao nhau giữa WMA và EMA, từ đó tạo ra tín hiệu mua và bán. Phương pháp kết hợp này không chỉ tính đến tình trạng quá mua và quá bán của thị trường mà còn kết hợp phán đoán xu hướng của các đường trung bình động trong các giai đoạn khác nhau, có thể nắm bắt điểm đảo chiều của thị trường chính xác hơn.
Logic cốt lõi của chiến lược này dựa trên các yếu tố chính sau:
Chiến lược này xây dựng một hệ thống theo dõi xu hướng tương đối hoàn chỉnh bằng cách kết hợp ba chỉ báo kỹ thuật: RSI, WMA và EMA. Ưu điểm cốt lõi của chiến lược này nằm ở độ tin cậy của các tín hiệu và khả năng kiểm soát rủi ro, nhưng đồng thời, chúng ta cũng cần chú ý đến rủi ro về tín hiệu sai trong thị trường biến động. Bằng cách bổ sung các biện pháp tối ưu hóa như lọc biến động và xác nhận sức mạnh xu hướng, tính ổn định và lợi nhuận của chiến lược có thể được cải thiện hơn nữa. Nhìn chung, đây là một chiến lược giao dịch có giá trị thực tế, đặc biệt phù hợp với các nhà giao dịch theo xu hướng trung và dài hạn.
/*backtest
start: 2024-12-17 00:00:00
end: 2025-01-16 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/
//@version=5
strategy(title="RSI + WMA + EMA Strategy", shorttitle="RSI Strategy", overlay=true)
// RSI Settings
rsiLengthInput = input.int(14, minval=1, title="RSI Length", group="RSI Settings")
rsiSourceInput = input.source(close, "Source", group="RSI Settings")
// WMA and EMA Settings
wmaLengthInput = input.int(45, minval=1, title="WMA Length", group="WMA Settings")
wmaColorInput = input.color(color.blue, title="WMA Color", group="WMA Settings")
emaLengthInput = input.int(89, minval=1, title="EMA Length", group="EMA Settings")
emaColorInput = input.color(color.purple, title="EMA Color", group="EMA Settings")
// RSI Calculation
change = ta.change(rsiSourceInput)
up = ta.rma(math.max(change, 0), rsiLengthInput)
down = ta.rma(-math.min(change, 0), rsiLengthInput)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
// WMA and EMA Calculation
wma = ta.wma(rsi, wmaLengthInput)
ema = ta.ema(rsi, emaLengthInput)
// Plot RSI, WMA, and EMA
plot(rsi, "RSI", color=#7E57C2)
plot(wma, title="WMA", color=wmaColorInput, linewidth=2)
plot(ema, title="EMA", color=emaColorInput, linewidth=2)
// Entry and Exit Conditions
longCondition = ta.crossover(wma, ema) and rsi < 50
shortCondition = ta.crossunder(wma, ema) and rsi > 50
if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.entry("Short", strategy.short)
// Optional: Plot Buy/Sell Signals on Chart
plotshape(series=longCondition, style=shape.labelup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal")
plotshape(series=shortCondition, style=shape.labeldown, location=location.abovebar, color=color.red, size=size.small, title="Sell Signal")