
Strategi ini adalah sistem perdagangan analisis teknis canggih yang menggabungkan indikator yang relatif lemah (RSI) dan Bollinger Bands (BB). Dengan memanfaatkan kedua indikator ini secara sinergis, mencari peluang perdagangan yang berbalik dengan probabilitas tinggi di zona oversold di pasar. Strategi ini menggunakan rata-rata bergerak 20 periode sebagai garis dasar Bollinger Bands, dengan 2 kali selisih standar untuk naik dan turun, sementara analisis momentum menggunakan 14 siklus RSI, menghasilkan sinyal perdagangan ketika RSI menembus titik 30⁄70 dan harga mencapai batas Bollinger Bands.
Logika inti dari strategi ini didasarkan pada sinergi antara dua indikator teknis utama:
Strategi ini membangun sistem perdagangan yang lengkap melalui sinergi RSI dan Brinband. Tidak hanya memberikan sinyal masuk dan keluar yang jelas, tetapi juga memiliki mekanisme pengendalian risiko yang baik. Meskipun ada beberapa risiko yang melekat, strategi ini diharapkan untuk mempertahankan kinerja yang stabil di berbagai lingkungan pasar melalui optimasi dan perbaikan yang berkelanjutan.
/*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")