Strategi ini menggabungkan Bollinger Bands dan osilator Stochastic untuk mengenal pasti peluang overbought dan oversold di pasaran. Ia bertujuan untuk memanfaatkan kenaikan harga dari ekstrem yang ditakrifkan oleh Bollinger Bands, dengan pengesahan dari Stochastic untuk memaksimumkan kebarangkalian operasi yang berjaya.
Strategi ini menggunakan 20 tempoh, 2 Band Bollinger deviasi standard untuk mengenal pasti sama ada harga menyentuh atau memecahkan jalur atas atau bawah. Menyentuh jalur bawah menunjukkan keadaan oversold yang mungkin semasa memecahkan jalur atas yang terlalu banyak dibeli. Di samping itu, osilator Stochastic dengan kitaran garisan K 14 dan kitaran penyelarasan nilai D 3 menentukan overbought dan oversold. Apabila harga dekat di bawah jalur bawah Bollinger dan nilai Stochastic K di bawah 20, ia menandakan oversold untuk masuk panjang. Apabila dekat berada di atas jalur atas Bollinger dan Stochastic K di atas 80, ia menandakan overbought untuk masuk pendek.
Selepas masuk, strategi menggunakan penunjuk Julat Benar Purata untuk kehilangan berhenti. Titik kehilangan berhenti ditetapkan pada 1.5 kali ATR, yang boleh menentukan julat kehilangan berhenti berdasarkan turun naik pasaran, mengelakkan kehilangan berhenti terlalu ketat atau terlalu longgar.
Strategi ini mempunyai kelebihan berikut:
Menggabungkan Bollinger Bands dan osilator Stochastic untuk menentukan overbought / oversold memberikan ketepatan yang lebih tinggi dalam menangkap peluang perdagangan.
Penyesuaian dinamik titik stop loss berdasarkan turun naik pasaran menghasilkan jarak berhenti yang munasabah.
Mekanisme kehilangan hentian menghalang jarak hentian daripada terlalu dekat untuk mengelakkan hentian awal.
Peraturan strategi yang mudah dan jelas menjadikannya mudah difahami dan dilaksanakan.
Terdapat beberapa risiko dalam strategi ini:
Bollinger Bands band atas/bawah tidak dapat menjamin pembalikan harga, mungkin terdapat kelanjutan pecah.
Penyesuaian parameter Stochastic yang tidak betul boleh menghasilkan isyarat yang tidak tepat.
Stop trailing boleh membawa kepada stop loss yang terlalu luas melebihi turun naik pasaran yang munasabah.
Hentian pengangkut dinamik mungkin berfungsi dengan lebih baik dengan penyesuaian mikro jarak hentian berdasarkan turun naik pasaran.
Strategi ini boleh dioptimumkan lagi dalam aspek berikut:
Uji kesan parameter Bollinger yang berbeza untuk mencari kombinasi parameter yang optimum.
Uji parameter Stochastic yang berbeza untuk meningkatkan prestasi penunjuk.
Sesuaikan jarak berhenti secara dinamik berdasarkan masa pemicu kehilangan berhenti dan keuntungan.
Tambah penunjuk lain untuk menapis isyarat kemasukan dan meningkatkan kadar kejayaan.
Tambah mekanisme masuk semula stop loss untuk menangkap sepenuhnya trend pasaran.
Strategi ini mengenal pasti overbought / oversold berdasarkan Bollinger Bands, dengan pengesahan dari penunjuk Stochastic. Ia mempunyai kelebihan peraturan yang jelas dan kehilangan berhenti yang fleksibel. Ia juga mempunyai risiko seperti kriteria penilaian yang tidak tepat dan konfigurasi jarak berhenti yang tidak betul. Prestasi dapat ditingkatkan lagi melalui pengoptimuman parameter, penapisan isyarat tambahan, penyesuaian dinamik kehilangan berhenti dan lain-lain.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Bollinger y Estocástico con Trailing Stop", overlay=true) // Parámetros de entrada lengthBB = input(20, title="Longitud BB") stdDevBB = input(2, title="Desviación Estándar BB") kLength = input(14, title="Longitud K Estocástico") dLength = input(3, title="Longitud D Estocástico") smooth = input(3, title="Suavizado Estocástico") atrLength = input(14, title="Longitud ATR") trailStopATRMultiple = input(1.5, title="Multiplicador ATR para Trailing Stop") // Cálculos [upperBB, basisBB, lowerBB] = ta.bb(close, lengthBB, stdDevBB) stochK = ta.sma(ta.stoch(close, high, low, kLength), smooth) atr = ta.atr(atrLength) // Condiciones de trading longCondition = close < lowerBB and stochK < 20 shortCondition = close > upperBB and stochK > 80 // Ejecutar operaciones if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short) // Trailing Stop strategy.exit("Exit Long", from_entry="Long", trail_points=atr * trailStopATRMultiple, trail_offset=atr * trailStopATRMultiple) strategy.exit("Exit Short", from_entry="Short", trail_points=atr * trailStopATRMultiple, trail_offset=atr * trailStopATRMultiple)