
Strategi ini didasarkan pada indikator teknis relatif kuat (RSI) untuk membuat keputusan perdagangan dengan menganalisis kondisi overbought dan oversold aset. Ketika RSI berada di bawah batas oversold, sinyal beli dipicu, dan ketika RSI berada di atas batas oversold, sinyal jual dipicu. Strategi ini juga menggunakan mekanisme stop loss berbasis persentase untuk mengendalikan risiko dan mengunci keuntungan dengan menetapkan persentase keuntungan dan persentase kerugian yang tetap.
Strategi perdagangan RSI berbasis persentase stop loss dengan menangkap keadaan overbought oversold di pasar, digabungkan dengan mekanisme stop loss persentase tetap, dan dihapus pada waktu yang tepat untuk mendapatkan keuntungan yang stabil ketika tren berbalik. Prinsip strategi ini sederhana dan mudah dimengerti, dapat dikontrol risiko, dan memiliki kemampuan beradaptasi yang kuat. Namun, ada juga masalah seperti sensitivitas parameter, kinerja pasar yang tidak stabil, risiko penyesuaian tren, dll. Dengan menyesuaikan parameter secara dinamis, memperkenalkan penyaringan tren, mengoptimalkan mekanisme stop loss, masuk posisi, dan mengelola kombinasi dengan indikator lain, Anda dapat lebih meningkatkan kebugaran dan profitabilitas strategi, lebih baik beradaptasi dengan lingkungan pasar yang berubah-ubah.
/*backtest
start: 2024-05-01 00:00:00
end: 2024-05-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("RSI Strategy with Adjustable TP and SL", overlay=true,
default_qty_type=strategy.percent_of_equity,
default_qty_value=10,
initial_capital=100000,
currency=currency.USD,
commission_type=strategy.commission.percent,
commission_value=0.1)
// RSI settings
rsiPeriod = input.int(14, title="RSI Period")
rsiOverbought = input.int(70, title="RSI Overbought Level", minval=50, maxval=100)
rsiOversold = input.int(30, title="RSI Oversold Level", minval=0, maxval=50)
// Fixed TP and SL settings
takeProfitPct = input.float(20, title="Take Profit Percentage", step=0.1) / 100
stopLossPct = input.float(5, title="Stop Loss Percentage", step=0.1) / 100
// Calculate RSI
rsiValue = ta.rsi(close, rsiPeriod)
// Plot RSI
hline(rsiOverbought, "RSI Overbought", color=color.red)
hline(rsiOversold, "RSI Oversold", color=color.green)
plot(rsiValue, title="RSI", color=color.purple)
// Entry conditions
buyCondition = ta.crossunder(rsiValue, rsiOversold)
sellCondition = ta.crossover(rsiValue, rsiOverbought)
// Calculate stop loss and take profit prices
var float entryPrice = na
var float stopLossLevel = na
var float takeProfitLevel = na
if (buyCondition)
entryPrice := close
stopLossLevel := entryPrice * (1 - stopLossPct)
takeProfitLevel := entryPrice * (1 + takeProfitPct)
strategy.entry("Buy", strategy.long)
// Close positions when TP or SL is hit
if (strategy.position_size > 0)
if (close <= stopLossLevel)
strategy.close("Buy", comment="Stop Loss Hit")
if (close >= takeProfitLevel)
strategy.close("Buy", comment="Take Profit Hit")
// Close positions when RSI crosses above overbought level
if (sellCondition)
strategy.close("Buy", comment="RSI Overbought")
// Optional: Add alerts
alertcondition(buyCondition, title="Buy Alert", message="RSI crossed below oversold level")
alertcondition(sellCondition, title="Sell Alert", message="RSI crossed above overbought level")