
Strategi ini ialah sistem perdagangan mengikut arah aliran yang menggabungkan Indeks Kekuatan Relatif (RSI), Purata Pergerakan Berwajaran (WMA) dan Purata Pergerakan Eksponen (EMA). Strategi ini mengenal pasti perubahan arah aliran pasaran dengan memantau kedudukan nilai RSI dan persilangan WMA dan EMA, dengan itu menjana isyarat beli dan jual. Kaedah gabungan ini bukan sahaja mengambil kira keadaan terlebih beli dan terlebih jual pasaran, tetapi juga menggabungkan pertimbangan arah aliran purata bergerak bagi tempoh yang berbeza, yang boleh menangkap titik perubahan pasaran dengan lebih tepat.
Logik teras strategi adalah berdasarkan elemen utama berikut:
Strategi ini membina sistem penjejakan arah aliran yang agak lengkap dengan menggabungkan tiga penunjuk teknikal: RSI, WMA dan EMA. Kelebihan teras strategi ini terletak pada kebolehpercayaan isyaratnya dan keupayaan kawalan risikonya, tetapi pada masa yang sama, kita juga perlu memberi perhatian kepada risiko isyarat palsu dalam pasaran yang tidak menentu. Dengan menambahkan langkah pengoptimuman seperti penapisan turun naik dan pengesahan kekuatan arah aliran, kestabilan dan keuntungan strategi boleh dipertingkatkan lagi. Secara keseluruhan, ini adalah strategi dagangan dengan nilai praktikal, terutamanya sesuai untuk pedagang trend jangka sederhana dan panjang.
/*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")