Strategi ini merancang strategi perdagangan kuantitatif berdasarkan Bollinger Bands dan Relative Strength Index (RSI). Ini menggabungkan pelacakan tren dan penilaian overbought / oversold untuk memasuki pasar pada awal tren dan keluar pada tingkat overbought / oversold untuk mendapatkan keuntungan.
Strategi ini menggunakan Bollinger Bands untuk menentukan tren harga dan level support/resistance. Harga yang mendekati Bollinger Band yang lebih rendah dipandang sebagai sinyal oversold, sementara harga yang mendekati Bollinger Band yang lebih tinggi dipandang sebagai sinyal overbought. Pada saat yang sama, ini menggabungkan indikator RSI untuk menentukan apakah kondisi oversold atau overbought ada.
Aturan perdagangan khusus adalah: pergi panjang ketika harga berada di bawah Bollinger Band bawah dan RSI berada di bawah 30; pergi pendek ketika harga berada di atas Bollinger Band atas dan RSI berada di atas 70. Untuk mengambil keuntungan, atur Bollinger Band tengah atau Bollinger Band berlawanan sebagai tingkat mengambil keuntungan. Stop loss ditetapkan pada persentase tertentu dari harga masuk.
Strategi ini menggabungkan kemampuan pelacakan tren Bollinger Bands dan penilaian overbought/oversold RSI untuk menangkap waktu awal tren yang baik.
Dibandingkan dengan menggunakan satu indikator seperti Bollinger Bands atau RSI saja, strategi ini memanfaatkan beberapa indikator dan parameter untuk meningkatkan akurasi keputusan.
Strategi ini sangat bergantung pada optimasi parameter. Pengaturan parameter yang salah dapat menyebabkan hilangnya tren atau menghasilkan sinyal palsu. Misalnya, periode Bollinger yang tidak cocok dapat menyebabkan masalah seperti itu.
Strategi juga tergantung pada instrumen perdagangan. Untuk aset yang sangat fluktuatif, parameter Bollinger Band perlu disesuaikan. Untuk instrumen dengan tren yang tidak jelas, kinerja mungkin menderita juga. Juga dipengaruhi oleh biaya transaksi, slippage dan peristiwa pasar ekstrem.
Pengujian optimasi parameter dianjurkan untuk mengevaluasi tingkat profit taking/stop loss dan kinerja di berbagai aset dan rezim pasar.
Beberapa aspek dapat ditingkatkan:
Mengevaluasi dan mengoptimalkan parameter untuk Bollinger Bands dan RSI agar lebih sesuai dengan karakteristik instrumen perdagangan
Menggabungkan indikator tambahan seperti KDJ, MACD untuk membangun model multifaktor
Mengevaluasi strategi profit taking/stop loss, seperti trailing stop loss atau scale exit
Melakukan penyesuaian parameter dinamis berdasarkan aset spesifik dan kondisi pasar
Tambahkan model pembelajaran mesin untuk menilai kualitas sinyal dan tingkat risiko
Strategi ini mengintegrasikan Bollinger Bands dan RSI untuk sistem trend berikut yang komprehensif. Ada ruang lebih lanjut untuk meningkatkan efektivitas dan stabilitas melalui penyesuaian parameter dan manajemen risiko. Penyesuaian dan optimalisasi khusus dianjurkan berdasarkan kebutuhan individu dan preferensi risiko untuk kinerja yang lebih baik.
/*backtest start: 2023-11-01 00:00:00 end: 2023-11-30 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("BB + RSI Estrategia", overlay=true) longitud = input(20, title="Longitud BB", minval=5, maxval=50, step=1) multiplicador = input(2.0, title="Multiplicador BB", type=input.float, step=0.1) timeframe_bb = input("D", title="Marco de Tiempo BB", type=input.resolution) rsi_length = input(14, title="Longitud RSI", minval=5, maxval=50, step=1) rsi_overbought = input(70, title="Nivel de sobrecompra RSI", minval=50, maxval=80, step=1) rsi_oversold = input(30, title="Nivel de sobreventa RSI", minval=20, maxval=50, step=1) take_profit = input("Central", title="Take Profit (banda)", options=["Central", "Opuesta"]) stop_loss = input(2.00, title="Stop Loss", type=input.float, step=0.10) var SL = 0.0 [banda_central, banda_superior, banda_inferior] = security(syminfo.tickerid, timeframe_bb, bb(close, longitud, multiplicador)) rsi_value = rsi(close, rsi_length) comprado = strategy.position_size > 0 vendido = strategy.position_size < 0 if not comprado and not vendido if close < banda_inferior and rsi_value < rsi_oversold // Realizar la compra cantidad = round(strategy.equity / close) strategy.entry("Compra", strategy.long, qty=cantidad, when=cantidad > 0) SL := close * (1 - (stop_loss / 100)) if close > banda_superior and rsi_value > rsi_overbought // Realizar la Venta cantidad = round(strategy.equity / close) strategy.entry("Venta", strategy.short, qty=cantidad, when=cantidad > 0) SL := close * (1 + (stop_loss / 100)) if comprado // Verificar el take profit if take_profit == "Central" and close >= banda_central strategy.close("Compra", comment="TP") SL := 0 if take_profit == "Opuesta" and close >= banda_superior strategy.close("Compra", comment="TP") SL := 0 // Verificar el stop loss if close <= SL strategy.close("Compra", comment="SL") SL := 0 if vendido // Verificar el take profit if take_profit == "Central" and close <= banda_central strategy.close("Venta", comment="TP") SL := 0 if take_profit == "Opuesta" and close <= banda_inferior strategy.close("Venta", comment="TP") SL := 0 // Verificar el Stop loss if close >= SL strategy.close("Venta", comment="SL") SL := 0 // Salida plot(SL > 0 ? SL : na, style=plot.style_circles, color=color.red) g1 = plot(banda_superior, color=color.aqua) plot(banda_central, color=color.red) g2 = plot(banda_inferior, color=color.aqua) fill(g1, g2, color=color.aqua, transp=97) // Dibujar niveles de sobrecompra/sobreventa del RSI hline(rsi_overbought, "RSI Overbought", color=color.red) hline(rsi_oversold, "RSI Oversold", color=color.green)