
Strategi ini menggunakan indeks kekuatan relatif lemah (RSI) dan rata-rata bergerak sederhana (SMA) untuk mengidentifikasi peluang potensial untuk kembali ke nilai rata-rata di pasar. Ini menghasilkan sinyal beli ketika RSI lebih rendah dari buy threshold dan harga lebih rendah dari SMA. Ini menghasilkan sinyal jual ketika RSI lebih tinggi dari sell threshold dan harga lebih tinggi dari SMA. Strategi ini juga menetapkan level stop loss dan stop loss untuk mengelola risiko perdagangan dan mengunci keuntungan.
Prinsip inti dari strategi ini adalah konsep regresi rata-rata, yaitu bahwa harga pada tingkat ekstrem sering kembali ke sekitar nilai rata-ratanya. Dengan menggunakan indikator RSI untuk mengukur keadaan harga yang terlalu banyak dibeli dan dijual, dan dengan SMA sebagai acuan harga, strategi ini mencoba untuk menangkap kesempatan untuk kembali setelah harga menyimpang terlalu jauh dari rata-rata.
Secara khusus, strategi ini menggunakan langkah-langkah berikut:
Strategi pengembalian nilai rata-rata indeks yang relatif kuat ini menggunakan RSI dan SMA untuk menangkap peluang pengembalian setelah harga menyimpang dari nilai rata-rata. Ini memiliki keunggulan seperti mudah dipahami, mudah beradaptasi, namun mungkin berkinerja buruk di pasar yang sedang tren, dan bergantung pada pilihan parameter.
/*backtest
start: 2024-04-01 00:00:00
end: 2024-04-30 23:59:59
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy('Mean Reversion with Tight Stop Loss', overlay=true)
// Define parameters
rsiLength = 14
rsiThresholdBuy = 30
rsiThresholdSell = 70
smaPeriod = 20
stopLossPercentage = 0.5 // 0.5% stop loss
profitTargetPercentage = 1 // 1% profit target
// Calculate indicators
rsi = ta.rsi(close, rsiLength)
sma = ta.sma(close, smaPeriod)
// Entry conditions
buySignal = rsi < rsiThresholdBuy and close < sma
sellSignal = rsi > rsiThresholdSell and close > sma
// Exit conditions
if strategy.position_size > 0
stopLoss = strategy.position_avg_price * (1 - stopLossPercentage / 100)
takeProfit = strategy.position_avg_price * (1 + profitTargetPercentage / 100)
if close <= stopLoss or close >= takeProfit
strategy.close('Exit', comment='Stop Loss / Take Profit')
// Execute trades
if buySignal
strategy.entry('Buy', strategy.long)
if sellSignal
strategy.entry('Sell', strategy.short)