
Strategi perdagangan ini didasarkan pada fenomena deviasi antara indikator yang relatif kuat (RSI) dan pergerakan harga, yang bertujuan untuk menangkap peluang pembalikan tren potensial. Strategi ini menghasilkan sinyal beli dan jual secara berurutan dengan mendeteksi deviasi multihead dan deviasi head. Ketika RSI berlawanan dengan harga, yang menunjukkan bahwa tren saat ini mungkin akan segera berbalik, memberikan peluang perdagangan potensial bagi pedagang.
Strategi perdagangan reversal yang didasarkan pada RSI adalah strategi yang sederhana dan mudah digunakan yang berlaku untuk beberapa pasar keuangan. Namun, pedagang perlu memperhatikan faktor risiko seperti sinyal palsu, keterbelakangan, dan sensitivitas parameter. Dengan menggabungkan indikator lain, menyesuaikan parameter secara dinamis, dan menambahkan langkah-langkah pengoptimalan seperti manajemen risiko, strategi dapat ditingkatkan lebih lanjut.
/*backtest
start: 2024-04-01 00:00:00
end: 2024-04-30 23:59:59
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("RSI Divergence Strategy", overlay=true)
// Input parameters
rsiLength = input.int(14, title="RSI Length")
rsiOverbought = input.int(70, title="RSI Overbought Level")
rsiOversold = input.int(30, title="RSI Oversold Level")
lookback = input.int(5, title="Lookback Period for Divergence")
// Calculate RSI
rsi = ta.rsi(close, rsiLength)
// Function to detect bullish divergence
bullishDivergence(price, rsi, lookback) =>
var bool bullDiv = false
for i = 1 to lookback
if (low[i] < low and rsi[i] > rsi)
bullDiv := true
bullDiv
// Function to detect bearish divergence
bearishDivergence(price, rsi, lookback) =>
var bool bearDiv = false
for i = 1 to lookback
if (high[i] > high and rsi[i] < rsi)
bearDiv := true
bearDiv
// Detect bullish and bearish divergence
bullDiv = bullishDivergence(close, rsi, lookback)
bearDiv = bearishDivergence(close, rsi, lookback)
// Plot RSI
hline(rsiOverbought, "Overbought", color=color.red)
hline(rsiOversold, "Oversold", color=color.green)
plot(rsi, title="RSI", color=color.blue)
// Generate buy signal on bullish divergence
if (bullDiv and ta.crossover(rsi, rsiOversold))
strategy.entry("Buy", strategy.long)
// Generate sell signal on bearish divergence
if (bearDiv and ta.crossunder(rsi, rsiOverbought))
strategy.entry("Sell", strategy.short)
// Plot buy/sell signals on chart
plotshape(series=bullDiv, location=location.belowbar, color=color.green, style=shape.labelup, text="Bull Div")
plotshape(series=bearDiv, location=location.abovebar, color=color.red, style=shape.labeldown, text="Bear Div")