Strategi ini adalah berdasarkan kepada penunjuk Bollinger Bands. Ia memasuki kedudukan panjang apabila harga penutupan memecahkan di atas band atas dan memasuki kedudukan pendek apabila harga penutupan memecahkan di bawah band bawah. Syarat keluar untuk kedudukan panjang adalah apabila harga jatuh di bawah band tengah, dan syarat keluar untuk kedudukan pendek adalah apabila harga memecahkan di atas band tengah. Strategi ini menggunakan kedudukan harga berbanding dengan band atas dan bawah Bollinger Bands untuk menentukan arah trend dan masa kemasukan dan keluar.
Strategi ini adalah strategi trend-mengikuti klasik yang menangkap pasaran trend menggunakan Bollinger Bands. Logik strategi jelas, dan kelebihan adalah jelas, tetapi ia juga mempunyai risiko tertentu. Dengan mengoptimumkan stop-loss, mengambil keuntungan, pengurusan kedudukan, dan penapis masuk, prestasi strategi boleh ditingkatkan, dan kebolehsesuaian dapat ditingkatkan. Walau bagaimanapun, setiap strategi mempunyai keterbatasan dan perlu digunakan dengan fleksibel bersama dengan keadaan pasaran sebenar.
/*backtest start: 2024-03-01 00:00:00 end: 2024-03-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 // Bollinger Bands: Madrid : 14/SEP/2014 11:07 : 2.0 // This displays the traditional Bollinger Bands, the difference is // that the 1st and 2nd StdDev are outlined with two colors and two // different levels, one for each Standard Deviation strategy(shorttitle='MBB', title='Bollinger Bands', overlay=true) src = input(close) length = input.int(20, minval=1, title = "Length") mult = input.float(2.0, minval=0.001, maxval=50, title = "Multiplier") basis = ta.sma(src, length) dev = ta.stdev(src, length) dev2 = mult * dev upper1 = basis + dev lower1 = basis - dev upper2 = basis + dev2 lower2 = basis - dev2 // Strategy long_condition = ta.crossover(close, upper1) short_condition = ta.crossunder(close, lower1) if (long_condition) strategy.entry("Long", strategy.long) if (short_condition) strategy.entry("Short", strategy.short) // Exit conditions exit_long_condition = ta.crossunder(close, basis) exit_short_condition = ta.crossover(close, basis) if (exit_long_condition) strategy.close("Long") if (exit_short_condition) strategy.close("Short") colorBasis = src >= basis ? color.blue : color.orange pBasis = plot(basis, linewidth=2, color=colorBasis) pUpper1 = plot(upper1, color=color.new(color.blue, 0), style=plot.style_circles) pUpper2 = plot(upper2, color=color.new(color.blue, 0)) pLower1 = plot(lower1, color=color.new(color.orange, 0), style=plot.style_circles) pLower2 = plot(lower2, color=color.new(color.orange, 0)) fill(pBasis, pUpper2, color=color.new(color.blue, 80)) fill(pUpper1, pUpper2, color=color.new(color.blue, 80)) fill(pBasis, pLower2, color=color.new(color.orange, 80)) fill(pLower1, pLower2, color=color.new(color.orange, 80))