Strategi ini merancang strategi perdagangan kuantitatif berdasarkan Bollinger Bands dan Indeks Kekuatan Relatif (RSI). Ia menggabungkan pengesanan trend dan penilaian overbought / oversold untuk memasuki pasaran pada permulaan trend dan keluar pada tahap overbought / oversold untuk keuntungan.
Strategi ini menggunakan Bollinger Bands untuk menentukan trend harga dan tahap sokongan / rintangan. Harga yang mendekati Bollinger Band bawah dilihat sebagai isyarat oversold, sementara harga yang mendekati Bollinger Band atas dilihat sebagai isyarat overbought. Pada masa yang sama, ia menggabungkan penunjuk RSI untuk menentukan sama ada keadaan oversold atau overbought wujud.
Peraturan dagangan khusus adalah: pergi panjang apabila harga di bawah Bollinger Band bawah dan RSI di bawah 30; pergi pendek apabila harga di atas Bollinger Band atas dan RSI di atas 70. Untuk mengambil keuntungan, tetapkan Bollinger Band tengah atau Bollinger Band bertentangan sebagai tahap mengambil keuntungan. Stop loss ditetapkan pada peratusan tertentu dari harga kemasukan.
Strategi ini menggabungkan keupayaan pengesanan trend Bollinger Bands
Berbanding dengan menggunakan satu penunjuk seperti Bollinger Bands atau RSI sahaja, strategi ini menggunakan beberapa penunjuk dan parameter untuk meningkatkan ketepatan keputusan. Dengan penyesuaian parameter yang betul, ia dapat mencapai prestasi yang agak stabil.
Strategi ini sangat bergantung pada pengoptimuman parameter. Tetapan parameter yang tidak betul boleh menyebabkan tren yang hilang atau menghasilkan isyarat palsu. Sebagai contoh, tempoh Bollinger yang tidak sesuai boleh menyebabkan masalah seperti itu.
Strategi juga bergantung kepada instrumen dagangan. Untuk aset yang sangat tidak menentu, parameter Bollinger Band perlu diselaraskan dengan sewajarnya. Untuk instrumen dengan trend yang tidak jelas, prestasi mungkin mengalami juga. Juga dipengaruhi oleh kos transaksi, slippage dan peristiwa pasaran yang melampau.
Ujian pengoptimuman parameter disyorkan untuk menilai tahap mengambil keuntungan / berhenti kerugian dan prestasi di pelbagai aset dan rejimen pasaran.
Beberapa aspek boleh ditingkatkan:
Menilai dan mengoptimumkan parameter untuk Bollinger Bands dan RSI untuk lebih sesuai dengan ciri-ciri instrumen dagangan
Menggabungkan penunjuk tambahan seperti KDJ, MACD untuk membina model pelbagai faktor
Mengkaji strategi mengambil keuntungan/berhenti kehilangan, seperti kehilangan berhenti atau keluar skala.
Melakukan penyesuaian parameter dinamik berdasarkan aset tertentu dan keadaan pasaran
Tambah model pembelajaran mesin untuk menilai kualiti isyarat dan tahap risiko
Strategi ini mengintegrasikan Bollinger Bands dan RSI untuk sistem trend berikut yang komprehensif. Terdapat ruang lebih lanjut untuk meningkatkan keberkesanan dan kestabilan melalui penyesuaian parameter dan pengurusan risiko. Penyesuaian dan pengoptimuman tersuai disyorkan berdasarkan keperluan individu dan keutamaan risiko untuk prestasi 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)