Strategi ini adalah strategi dagangan berasaskan Bollinger Bands yang menghasilkan isyarat beli dan jual melalui penyeberangan Bollinger Bands dan secara dinamik menetapkan tahap stop loss dan mengambil keuntungan. Logik strategi jelas dan mudah dilaksanakan, dan ia boleh disesuaikan dengan keadaan pasaran yang berbeza. Walau bagaimanapun, ia mungkin menghasilkan perdagangan berlebihan di pasaran sampingan dan tidak mempunyai penilaian arah trend. Pada masa akan datang, prestasi strategi dapat ditingkatkan dengan memperkenalkan penunjuk penilaian trend, mengoptimumkan kaedah menetapkan tahap stop loss dan mengambil keuntungan, menambah syarat penapisan, dan mengoptimumkan parameter.
/*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", overlay=true) // Bollinger Bands settings length = 20 src = close mult = 2.0 // 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, title="Middle Band") plot(upper, color=color.red, title="Upper Band") plot(lower, color=color.green, title="Lower Band") // Trade logic // Buy when the price crosses below the lower Bollinger Band buySignal = ta.crossover(lower, src) // Sell when the price crosses above the upper Bollinger Band sellSignal = ta.crossover(src, upper) // Define stop loss and take profit levels var float stopLoss = na var float takeProfit = na // Calculate stop loss and take profit levels if (buySignal) stopLoss := ta.lowest(low, length) takeProfit := na if (sellSignal) stopLoss := ta.highest(high, length) takeProfit := na // Update take profit on new signals if (buySignal) takeProfit := na if (sellSignal) takeProfit := na // Execute trades if (buySignal) strategy.entry("Buy", strategy.long, stop=stopLoss, limit=takeProfit) if (sellSignal) strategy.entry("Sell", strategy.short, stop=stopLoss, limit=takeProfit) // Plot signals on chart plotshape(series=buySignal, location=location.belowbar, color=color.green, style=shape.labelup, text="Buy", title="Buy Signal") plotshape(series=sellSignal, location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell", title="Sell Signal") // Alert conditions alertcondition(buySignal, title="Buy Alert", message="Buy Signal detected") alertcondition(sellSignal, title="Sell Alert", message="Sell Signal detected")