
Strategi ini adalah sistem perdagangan analisis teknikal yang tinggi yang menggabungkan indikator yang agak kuat ((RSI) dan Bollinger Band ((BB)). Dengan menggunakan kedua-dua indikator secara sinergi, mencari peluang perdagangan berbalik dengan kebarangkalian tinggi di kawasan pasaran yang terlalu banyak dibeli. Strategi ini menggunakan purata bergerak 20 kitaran sebagai garis dasar untuk Bollinger Band, menetapkan naik dan turun dengan selisih standard dua kali ganda, sambil menggunakan analisis momentum 14 kitaran RSI, menghasilkan isyarat perdagangan apabila RSI menembusi titik 30⁄70 dan harga menyentuh sempadan Bollinger Band.
Logik utama strategi ini adalah berdasarkan kepada kerjasama antara dua petunjuk teknikal utama:
Strategi ini membina sistem perdagangan yang lengkap melalui sinergi RSI dan Brinband. Ia bukan sahaja menyediakan isyarat masuk dan keluar yang jelas, tetapi juga mempunyai mekanisme kawalan risiko yang baik. Walaupun terdapat beberapa risiko yang wujud, strategi ini dijangka dapat mengekalkan prestasi yang stabil dalam keadaan pasaran yang berbeza melalui pengoptimuman dan penyempurnaan yang berterusan.
/*backtest
start: 2024-10-31 00:00:00
end: 2025-02-18 08:00:00
period: 30m
basePeriod: 30m
exchanges: [{"eid":"Binance","currency":"SOL_USDT"}]
*/
//@version=5
strategy("RSI + Bollinger Bands Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// Bollinger Bands Settings
bbLength = input.int(20, title="BB Length")
bbStdDev = input.float(2.0, title="BB Standard Deviation")
basis = ta.sma(close, bbLength)
dev = bbStdDev * ta.stdev(close, bbLength)
upperBB = basis + dev
lowerBB = basis - dev
// Plot Bollinger Bands
plot(basis, color=color.orange, title="BB Basis")
plot(upperBB, color=color.blue, title="Upper Bollinger Band")
plot(lowerBB, color=color.blue, title="Lower Bollinger Band")
fill(plot(upperBB), plot(lowerBB), color=color.blue, transp=90, title="BB Fill")
// RSI Settings
rsiLength = input.int(14, title="RSI Length")
rsiOverbought = input.int(70, title="RSI Overbought Level")
rsiOversold = input.int(30, title="RSI Oversold Level")
rsi = ta.rsi(close, rsiLength)
// Plot RSI on separate pane
hline(rsiOverbought, "Overbought", color=color.red)
hline(rsiOversold, "Oversold", color=color.green)
plot(rsi, color=color.purple, title="RSI", linewidth=2, display=display.none) // Hidden on main chart
// Long Condition: RSI crosses above oversold and price touches lower BB
longCondition = ta.crossover(rsi, rsiOversold) and close <= lowerBB
if (longCondition)
strategy.entry("Long", strategy.long)
// Short Condition: RSI crosses below overbought and price touches upper BB
shortCondition = ta.crossunder(rsi, rsiOverbought) and close >= upperBB
if (shortCondition)
strategy.entry("Short", strategy.short)
// Exit Long: RSI crosses above overbought or price crosses above basis
exitLong = ta.crossunder(rsi, rsiOverbought) or close >= basis
if (exitLong)
strategy.close("Long")
// Exit Short: RSI crosses below oversold or price crosses below basis
exitShort = ta.crossover(rsi, rsiOversold) or close <= basis
if (exitShort)
strategy.close("Short")