Prinsip Strategi
Bollinger Bands terdiri daripada band tengah, band atas dan band bawah. Band tengah adalah purata bergerak n-periode, manakala band atas dan bawah dikira dengan menambah/mengurangkan x penyimpangan standard dari band tengah. Penembusan di atas band atas menunjukkan trend menaik, manakala penembusan di bawah band bawah menandakan penurunan. Parameter utama untuk membina Bollinger Bands adalah tempoh band tengah n dan pengganda penyimpangan standard m. Nilai biasa adalah 20 tempoh dan 1.5x penyimpangan standard. Tetapan n dan m secara langsung mempengaruhi lebar band, dan oleh itu kekerapan isyarat pecah.
Kelebihan strategi ini adalah menggunakan Bollinger Bands untuk menentukan trend dan turun naik pasaran, dan memasuki berdasarkan isyarat pecah dan keluar pada penarikan balik. Walau bagaimanapun, isu-isu seperti lag band, isyarat pecah yang tidak boleh dipercayai, dan kekurangan stop loss wujud. Secara keseluruhan, strategi ini berfungsi dengan lebih baik di pasaran dengan trend yang jelas, tetapi harus digunakan dengan berhati-hati. Pengoptimuman parameter, menambah berhenti, dan penapis isyarat dapat meningkatkan kestabilan strategi.
Ringkasnya, walaupun strategi breakout Bollinger Band mempunyai beberapa kelebihan, ia juga membawa risiko yang signifikan. Hanya dengan pengoptimuman yang betul, kawalan risiko dan pengurusan wang, strategi ini dapat digunakan dalam perdagangan langsung dengan cara yang stabil.
/*backtest start: 2022-09-04 00:00:00 end: 2023-09-10 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title="Bollinger Band Breakout", shorttitle = "BB-BO",default_qty_type = strategy.percent_of_equity,default_qty_value = 100, overlay=true) source = close length = input(20, minval=1, title = "Period") //Length of the Bollinger Band mult = input(1.5, minval=0.001, maxval=50, title = "Standard Deviation") // Use 1.5 SD for 20 period MA; Use 2 SD for 10 period MA basis = sma(source, length) dev = mult * stdev(source, length) upper = basis + dev lower = basis - dev if (crossover(source, upper)) strategy.entry("Long", strategy.long) if(crossunder(source, basis)) strategy.close("Long") plot(basis, color=color.red,title= "SMA") p1 = plot(upper, color=color.blue,title= "UB") p2 = plot(lower, color=color.blue,title= "LB") fill(p1, p2)