Strategi ini adalah sistem perdagangan swing yang menggabungkan indikator RSI dengan Bollinger Bands. Strategi ini mengidentifikasi kondisi pasar overbought dan oversold sambil mempertimbangkan posisi harga dalam Bollinger Bands untuk keputusan perdagangan. Strategi ini menggunakan ambang RSI yang relatif santai (overbought pada 60, oversold pada 40) dan mengintegrasikan batas Bollinger Band untuk waktu masuk dan keluar, bersama dengan mekanisme pengambilan keuntungan 2%.
Logika inti didasarkan pada beberapa komponen utama:
Kondisi pembelian:
Kondisi Jual:
Risiko pasar berbelit-belit: Dapat menghasilkan perdagangan sering di pasar sampingan. Solusi: Tambahkan filter rata-rata bergerak atau mekanisme konfirmasi tren.
Risiko Pelanggaran Palsu: Pelanggaran harga Bollinger Bands yang singkat dapat memicu sinyal palsu. Solusi: Tambahkan periode konfirmasi atau tingkatkan persyaratan breakout.
Ketergantungan pada Lingkungan Pasar: Kinerja dapat bervariasi dalam siklus pasar yang berbeda. Solusi: Sesuaikan parameter secara dinamis berdasarkan karakteristik pasar.
Strategi ini membangun sistem perdagangan swing yang relatif kuat melalui sinergi RSI dan Bollinger Bands. Fitur utamanya adalah mempertahankan peluang perdagangan sambil mengendalikan risiko melalui beberapa mekanisme konfirmasi. Meskipun ada risiko potensial, stabilitas dan keandalan strategi dapat ditingkatkan lebih lanjut melalui optimasi parameter dan kondisi penyaringan tambahan.
/*backtest start: 2024-12-06 00:00:00 end: 2025-01-04 08:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Demo GPT - Adjusted Swing Trading for SBI", overlay=true, commission_type=strategy.commission.percent, commission_value=0.1, slippage=3) // Input Parameters rsiLength = input.int(14, minval=1, title="RSI Length") rsiOverbought = input.int(60, minval=50, maxval=100, title="RSI Overbought Level") // Relaxed level rsiOversold = input.int(40, minval=0, maxval=50, title="RSI Oversold Level") // Relaxed level bbLength = input.int(20, minval=1, title="Bollinger Bands Length") bbMult = input.float(2.0, minval=0.1, maxval=5, title="Bollinger Bands StdDev Multiplier") maLength = input.int(50, minval=1, title="Moving Average Length") // RSI Calculation rsi = ta.rsi(close, rsiLength) // Bollinger Bands Calculation bbBasis = ta.sma(close, bbLength) bbDev = bbMult * ta.stdev(close, bbLength) bbUpper = bbBasis + bbDev bbLower = bbBasis - bbDev // Moving Average ma = ta.sma(close, maLength) // Buy Signal: Price near or below lower Bollinger Band AND RSI below oversold level buySignal = (close <= bbLower * 1.01) and (rsi < rsiOversold) // Sell Signal: Price near or above upper Bollinger Band OR RSI above overbought level sellSignal = (close >= bbUpper * 0.99) or (rsi > rsiOverbought) // Date Range Inputs startDate = input(timestamp("2018-01-01 00:00"), title="Start Date") endDate = input(timestamp("2069-12-31 23:59"), title="End Date") inDateRange = true // Strategy Logic if buySignal and inDateRange strategy.entry("Swing Long SBI", strategy.long) if strategy.position_size > 0 and (sellSignal or close >= strategy.position_avg_price * 1.02) strategy.close("Swing Long SBI") // Plotting plot(bbBasis, title="Bollinger Bands Basis", color=color.blue) plot(bbUpper, title="Bollinger Bands Upper", color=color.red) plot(bbLower, title="Bollinger Bands Lower", color=color.green) plot(ma, title="Moving Average", color=color.orange) hline(rsiOverbought, "RSI Overbought", color=color.red, linestyle=hline.style_dotted) hline(rsiOversold, "RSI Oversold", color=color.green, linestyle=hline.style_dotted) plot(rsi, title="RSI", color=color.purple) // Fill Bollinger Bands for Visualization fill(plot(bbUpper), plot(bbLower), title="Bollinger Bands Background", color=color.rgb(33, 150, 243, 95))