Strategi ini berdasarkan pada penunjuk Bollinger Bands dan mengenal pasti peluang beli dan jual yang optimum dengan menganalisis pergerakan harga berbanding dengan Bollinger Bands atas, bawah, dan tengah. Strategi ini menguruskan kedudukan panjang dan pendek dengan bijak, yang membolehkan keuntungan dari semua arah pasaran. Parameter strategi boleh disesuaikan untuk menampung toleransi risiko dan pendekatan pasaran yang berbeza. Strategi ini menyediakan penunjuk visual yang jelas pada carta dan amaran masa nyata untuk isyarat beli dan jual.
Strategi Bollinger Bands menyediakan kerangka kerja yang kukuh untuk menghasilkan isyarat perdagangan yang tepat berdasarkan pergerakan harga yang berkaitan dengan Bollinger Bands. Dengan mengintegrasikan pengurusan kedudukan panjang dan pendek, parameter yang boleh disesuaikan, dan ciri visual dan amaran yang intuitif, strategi ini membolehkan peniaga untuk dengan yakin merebut peluang di pelbagai keadaan pasaran. Walaupun strategi ini berfungsi dengan baik, terdapat ruang untuk pengoptimuman, seperti menggabungkan penunjuk tambahan, pengiraan turun naik dinamik, teknik pengurusan risiko yang kukuh, dan ukuran kedudukan adaptif berdasarkan keadaan pasaran. Dengan penyempurnaan dan penyesuaian berterusan, Bollinger Bands boleh menjadi tambahan strategi yang berharga kepada kotak alat mana-mana peniaga, membantu mereka menavigasi pasaran dinamik dan memaksimumkan pulangan.
/*backtest start: 2024-04-01 00:00:00 end: 2024-04-30 23:59:59 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Bollinger Bands Strategy with Long and Short", overlay=true) // Bollinger Bands settings length = input.int(20, title="BB Length") src = input(close, title="Source") mult = input.float(2.0, title="BB Multiplier") // Calculate Bollinger Bands basis = ta.sma(src, length) dev = mult * ta.stdev(src, length) upper = basis + dev lower = basis - dev // Plot Bollinger Bands plot(basis, color=color.blue, linewidth=1, title="Basis") p1 = plot(upper, color=color.red, linewidth=1, title="Upper Band") p2 = plot(lower, color=color.green, linewidth=1, title="Lower Band") fill(p1, p2, color=color.rgb(173, 216, 230, 90)) // Long Buy and Sell conditions buyConditionLower = ta.crossover(src, lower) sellConditionUpper = ta.crossunder(src, upper) buyConditionBasis = ta.crossover(src, basis) sellConditionBasis = ta.crossunder(src, basis) // Combine long conditions buyCondition = buyConditionLower or buyConditionBasis sellCondition = sellConditionUpper or sellConditionBasis // Short Sell and Buy conditions shortConditionUpper = ta.crossunder(src, upper) coverConditionLower = ta.crossover(src, lower) shortConditionBasis = ta.crossunder(src, basis) coverConditionBasis = ta.crossover(src, basis) // Combine short conditions shortCondition = shortConditionUpper or shortConditionBasis coverCondition = coverConditionLower or coverConditionBasis // Execute strategy orders for long if (buyCondition) strategy.entry("Long", strategy.long) if (sellCondition) strategy.close("Long") // Execute strategy orders for short if (shortCondition) strategy.entry("Short", strategy.short) if (coverCondition) strategy.close("Short") // Plot Buy and Sell signals for long plotshape(series=buyCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", title="Buy Signal") plotshape(series=sellCondition, location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", title="Sell Signal") // Plot Sell and Cover signals for short plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, text="SHORT", title="Short Signal") plotshape(series=coverCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="COVER", title="Cover Signal") // Alert conditions for long alertcondition(buyCondition, title="Buy Alert", message="Price crossed above the lower Bollinger Band or Basis") alertcondition(sellCondition, title="Sell Alert", message="Price crossed below the upper Bollinger Band or Basis") // Alert conditions for short alertcondition(shortCondition, title="Short Alert", message="Price crossed below the upper Bollinger Band or Basis") alertcondition(coverCondition, title="Cover Alert", message="Price crossed above the lower Bollinger Band or Basis")