Strategi FiboBuLL Wave diadaptasi dari versi filter dari studi Bollinger Bands, yang dapat ditemukan di bawah halaman skrip saya.
Bollinger Bands adalah indikator klasik yang menggunakan rata-rata bergerak sederhana dari 20 periode, bersama dengan plot band atas dan bawah yang 2 deviasi standar dari band tengah. Band ini membantu memvisualisasikan volatilitas harga dan tren berdasarkan di mana harga relatif terhadap band.
Strategi ini tidak memperhitungkan parameter lain seperti Volume / RSI / Fundamentals dll, sehingga pengguna harus menggunakan kebijaksanaan berdasarkan konfirmasi dari indikator atau fundamental lainnya.
Ini bekerja dengan baik ketika ada kelanjutan bar setelah harga ditutup di atas/di bawah band atas/bawah. Pasti bermanfaat untuk menggunakan strategi ini atau filter Bollinger Bands bersama dengan indikator lain untuk mendapatkan sekilas awal pelanggaran / kegagalan band pada penutupan lilin selama BB memeras atau berdasarkan volatilitas.
Strategi ini dapat digunakan pada lilin Heikin Ashi untuk menemukan tren tetapi lilin HA tidak dianjurkan untuk entri perdagangan karena mereka tidak mencerminkan harga sebenarnya dari aset.
Logika inti di balik strategi FiboBuLL Wave adalah untuk berdagang berdasarkan pecahnya Bollinger Bands. Bollinger Bands terdiri dari band tengah, band atas dan band bawah. Band tengah adalah rata-rata pergerakan sederhana 21 periode harga penutupan; Band atas dihitung dengan menambahkan 1 standar deviasi di atas band tengah, mencerminkan kisaran fluktuasi harga atas; Band bawah diperoleh dengan mengurangi 1 standar deviasi di bawah band tengah, mencerminkan kisaran pergerakan harga bawah.
Sinyal panjang dihasilkan ketika harga penutupan melanggar band atas; Sinyal pendek dipicu ketika harga penutupan melanggar band bawah. Setelah mengambil posisi panjang atau pendek, perdagangan yang ada akan ditutup ketika harga melanggar band berlawanan lagi.
Strategi ini menggunakan fungsi barssince untuk melacak perputaran harga relatif terhadap band atas dan bawah. Sinyal panjang dihasilkan ketika jumlah bar sejak perputaran band atas kurang dari band bawah. Sinyal pendek dipicu ketika jumlah bar sejak perputaran band bawah kurang dari band atas.
Dengan menyesuaikan periode band tengah dan parameter pengganda standar deviasi, sensitivitas breakout Bollinger Bands dapat diubah, sehingga menyesuaikan waktu masuk.
Strategi FiboBuLL Wave memiliki beberapa keuntungan:
Ada juga beberapa risiko yang harus diperhatikan untuk strategi FiboBuLL Wave:
Optimalisasi dapat dilakukan dalam aspek berikut:
Arah optimasi utama untuk strategi FiboBuLL Wave:
Dengan peningkatan di atas, stabilitas dan profitabilitas strategi FiboBuLL Wave dapat ditingkatkan secara signifikan.
Strategi FiboBuLL Wave menggunakan prinsip dasar Bollinger Bands dalam mengidentifikasi breakout dan reversi ke band tengah untuk melacak volatilitas harga. Dengan konsep sederhana dan penerapannya yang luas, ini berfungsi sebagai pendekatan yang efektif dalam mengukur fluktuasi pasar.
Namun, hanya mengandalkan breakout cenderung menghasilkan sinyal palsu dan whipsaws. Oleh karena itu konfirmasi menggunakan volume, tren, indikator dll harus dimasukkan untuk menentukan keandalan breakout, sementara menerapkan stop loss / take profit untuk mengendalikan risiko, untuk memaksimalkan kegunaan strategi.
Strategi FiboBuLL Wave menyediakan kerangka dasar untuk merancang perdagangan berdasarkan tindakan harga. Dengan optimasi konstan dan integrasi faktor tambahan, ia memiliki potensi untuk menjadi alat yang kuat dalam merumuskan keputusan perdagangan.
/*backtest start: 2022-11-24 00:00:00 end: 2023-11-30 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 //@FiboBuLL strategy(shorttitle='FB Wave', title='FiboBuLL Wave (A version of Bollinger Bands Breakout Strategy By Trade Chartist)', overlay=true, pyramiding=1, currency=currency.NONE, initial_capital=100000, default_qty_type=strategy.percent_of_equity, default_qty_value=100) src = input(close, title='Source') length = input.int(21, minval=1, title='SMA length') // 20 for classis Bollinger Bands SMA line (basis) mult = input.float(1., minval=0.236, maxval=2, title='Standard Deviation') //2 for Classic Bollinger Bands //Maxval = 2 as higher the deviation, higher the risk basis = ta.sma(src, length) dev = mult * ta.stdev(src, length) Show = input.string('Both', options=['Longs Only', 'Shorts Only', 'Both'], title='Trade Type') CC = input(true, 'Color Bars') upper = basis + dev lower = basis - dev //Conditions for Long and Short - Extra filter condition can be used such as RSI or CCI etc. short = src < lower // and rsi(close,14)<40 long = src > upper // and rsi(close,14)>60 L1 = ta.barssince(long) S1 = ta.barssince(short) longSignal = L1 < S1 and not (L1 < S1)[1] shortSignal = S1 < L1 and not (S1 < L1)[1] //Plots and Fills ////Long/Short shapes with text // plotshape(S1<L1 and not (S1<L1)[1]?close:na, text = "sᴇʟʟ", textcolor=#ff0100, color=#ff0100, style=shape.triangledown, size=size.small, location=location.abovebar, transp=0, title = "SELL", editable = true) // plotshape(L1<S1 and not (L1<S1)[1]?close:na, text = "ʙᴜʏ", textcolor = #008000, color=#008000, style=shape.triangleup, size=size.small, location=location.belowbar, transp=0, title = "BUY", editable = true) // plotshape(shortSignal?close:na, color=#ff0100, style=shape.triangledown, size=size.small, location=location.abovebar, transp=0, title = "Short Signal", editable = true) // plotshape(longSignal?close:na, color=#008000, style=shape.triangleup, size=size.small, location=location.belowbar, transp=0, title = "Long Signal", editable = true) p1 = plot(upper, color=color.new(#ff0000, 75), display=display.all, title='Upper Band') p2 = plot(lower, color=color.new(#008000, 75), display=display.all, title='Lower Band') p = plot(basis, color=L1 < S1 ? #008000 : S1 < L1 ? #ff0000 : na, linewidth=2, editable=false, title='Basis') fill(p, p1, color=color.new(color.teal, 85), title='Top Fill') //fill for basis-upper fill(p, p2, color=color.rgb(217, 161, 161), title='Bottom Fill', transp=85) //fill for basis-lower //Barcolor bcol = src > upper ? color.new(#8ceb07, 0) : src < lower ? color.new(#ff0000, 0) : src > basis ? color.green : src < basis ? color.red : na barcolor(CC ? bcol : na, editable=false, title='Color Bars') // === INPUT BACKTEST RANGE === FromMonth = input.int(defval=1, title='From Month', minval=1, maxval=12) FromDay = input.int(defval=1, title='From Day', minval=1, maxval=31) FromYear = input.int(defval=2018, title='From Year', minval=2015) ToMonth = input.int(defval=1, title='To Month', minval=1, maxval=12) ToDay = input.int(defval=1, title='To Day', minval=1, maxval=31) ToYear = input.int(defval=9999, title='To Year', minval=2010) // === FUNCTION EXAMPLE === start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window window() => time >= start and time <= finish ? true : false if window() and (Show == 'Longs Only' or Show == 'Both') strategy.entry('AL', direction=strategy.long, when=longSignal) strategy.close('LongAL', when=shortSignal, comment='AL KAPA') if window() and (Show == 'Shorts Only' or Show == 'Both') strategy.entry('SAT', direction=strategy.short, when=shortSignal) strategy.close('SAT', when=longSignal, comment='SAT KAPA')