
Strategi ini dinamakan Strategi Kuantitatif Bollinger Berasaskan Reversal Band of Volatility. Strategi ini menggunakan Bollinger Bands untuk membuat keputusan pembelian dan penjualan. Apabila harga saham berada di sekitar Reversal Band of Volatility dan terdapat tanda-tanda pecah ke bawah, yang menunjukkan bahawa harga saham mungkin berada pada masa yang berbalik, maka pembelian dilakukan; apabila harga saham naik ke dekat Reversal Band of Volatility, yang menunjukkan bahawa harga saham mungkin berbalik turun, maka penjualan dilakukan.
Strategi ini menggunakan indikator RSI untuk menentukan masa pembelian. Secara khusus, ia akan menentukan sama ada harga penutupan satu bar yang terakhir adalah lebih rendah daripada harga terendah 6 bar sebelumnya, dengan lebar lebar Brin (BBW) lebih besar daripada had yang ditetapkan, dan nisbah Brin (BBR) berada dalam julat yang ditetapkan. Jika syarat-syarat ini dipenuhi, ini menunjukkan bahawa harga saham mungkin berada pada masa yang berbalik, ketika itu membeli dan membuka kedudukan.
Exit adalah lebih mudah, apabila RSI lebih besar daripada 70, menunjukkan harga saham terlalu panas, dan ketika itu menjual kedudukan rata.
Kelebihan terbesar strategi ini adalah bahawa ia menggunakan Bollinger Bands untuk membuat keputusan, membeli dan menjual apabila Bollinger Bands berbalik, untuk mengambil peluang pembalikan jangka pendek. Berbanding dengan strategi RSI yang mudah, strategi ini lebih ketat dalam menentukan masa membeli, untuk mengelakkan kemungkinan perdagangan yang salah.
Selain itu, strategi ini lebih sensitif terhadap parameter, dan boleh dioptimumkan untuk varieti yang berbeza dengan menyesuaikan parameter BBW, BBR, untuk mendapatkan kesan yang lebih baik.
Risiko utama strategi ini adalah bahawa Brinband tidak dapat meramalkan perubahan harga 100 peratus, dan jika masa yang tidak tepat, ia boleh menyebabkan kehilangan peluang membeli yang terbaik atau kerugian maya.
Selain itu, turun naik harga saham dalam jangka pendek boleh menyebabkan strategi sering membuka dan melonggarkan kedudukan, meningkatkan kos urus niaga dan kos slippage. Jika pembalikan tidak cukup kuat, terdapat risiko kehilangan kedudukan.
Strategi ini boleh dioptimumkan dalam beberapa aspek:
Parameter pengoptimuman. Parameter seperti BBW, BBR boleh diuji dan dioptimumkan dengan kaedah yang lebih halus, memilih parameter yang paling sesuai untuk varieti perdagangan yang berbeza.
Peningkatan mekanisme hentian. Hentian bergerak atau hentian masa boleh ditetapkan untuk mengawal kerugian maksimum.
Gabungan dengan penunjuk lain. Ia boleh digabungkan dengan penunjuk lain seperti KDJ, MACD, dan sebagainya untuk membuat isyarat pembelian lebih tepat dan dipercayai.
Mekanisme keluar yang dioptimumkan. Mekanisme keluar yang sedia ada lebih mudah dan boleh dioptimumkan, seperti menetapkan halangan bergerak yang sesuai, atau keluar dengan keadaan yang bergelombang.
Strategi ini menggunakan ciri-ciri Bollinger Bands untuk menentukan kapan harga mungkin berbalik, untuk membeli dan menjual. Strategi ini lebih tepat daripada RSI dan lain-lain indikator. Dengan parameter pengoptimuman dan seting stop loss, anda boleh membuat strategi lebih dipercayai. Tetapi ramalan Bollinger Bands tidak sempurna, jadi kesan yang dicapai oleh strategi ini mempunyai sedikit kebarangkalian.
/*backtest
start: 2022-11-15 00:00:00
end: 2023-11-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
//study(title = "Bolinger strategy", overlay=true)
strategy("Bolinger strategy",currency="SEK",default_qty_value=10000,default_qty_type=strategy.cash,max_bars_back=50)
len = 5
src = close
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
bbw3level = input(15, title="bbw3")
bbr3level = input(0.45, title="bbr3level")
bbrlower = input(0.4480, title="bbrlower")
bbrhigher = input(0.4560, title="bbrhigher")
sincelowestmin = input(7, title="sincelowestmin")
sincelowestmax = input(57, title="sincelowestmax")
length = input(20, minval=1)
mult = 20
src3 = close[3]
basis3 = sma(src3, length)
dev3 = mult * stdev(src3, length)
upper3 = basis3 + dev3
lower3 = basis3 - dev3
bbr3 = (src3 - lower3)/(upper3 - lower3)
bbw3 = (upper3-lower3)/basis3*100
basis = sma(src, length)
dev = mult * stdev(src, length)
upper = basis + dev
lower = basis - dev
bbr = (src - lower)/(upper - lower)
bbw = (upper-lower)/basis*100
criteriamet = 0
crossUnderB0 = crossunder(bbr,0)
since_x_under = barssince(crossUnderB0)
sincelowest = barssince(close[6] > close[3] and close[5] > close[3] and close[4] > close[3] and close[2] > close[3] and close[1] > close[3] and close > close[3] and bbw3 > bbw3level and bbr3 < bbr3level) // and bbr3 < 0
if sincelowest > sincelowestmin and sincelowest < sincelowestmax and bbr > bbrlower and bbr < bbrhigher
criteriamet := 1
else
criteriamet := 0
//plot (criteriamet)
//exit
exitmet = 0
if rsi > 70
exitmet := 1
else
exitmet := 0
if criteriamet == 1
strategy.entry("long", strategy.long)
if exitmet == 1
strategy.close("long")