This is an intelligent trading strategy that combines Bollinger Bands and SuperTrend indicators. The strategy primarily uses Bollinger Bands to identify market volatility ranges while utilizing the SuperTrend indicator to confirm market trend direction, enabling trades at high-probability positions. The strategy is designed for various trading instruments and timeframes, performing particularly well on 30-minute and 2-hour timeframes.
The core logic of the strategy is based on the following key elements:
This is a complete trading system combining classic technical analysis indicators, which can perform well in both trending and volatile markets through the synergy of Bollinger Bands and SuperTrend. The strategy’s visualization design and parameter flexibility make it highly practical. Through the suggested optimization directions, the strategy’s stability and profitability can be further enhanced. It is recommended to conduct thorough backtesting and parameter optimization before live trading.
/*backtest start: 2024-12-05 00:00:00 end: 2024-12-12 00:00:00 period: 5m basePeriod: 5m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Bollinger Band & SuperTrend Strategy (Standard Chart)", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100) // Bollinger Bands Settings length_bb = input.int(20, title="Bollinger Band Length") mult_bb = input.float(2.0, title="Bollinger Band Multiplier") [bb_upper, bb_basis, bb_lower] = ta.bb(close, length_bb, mult_bb) // Median Bands bb_median_upper = (bb_upper + bb_basis) / 2 bb_median_lower = (bb_lower + bb_basis) / 2 // SuperTrend Settings atr_length = input.int(10, title="ATR Length") factor = input.float(3.0, title="SuperTrend Factor") // SuperTrend Calculation based on standard chart OHLC data [supertrend, direction] = ta.supertrend(factor, atr_length) // Plotting Bollinger Bands plot(bb_upper, color=color.red, title="Bollinger Upper Band") plot(bb_median_upper, color=color.orange, title="Bollinger Median Upper Band") plot(bb_basis, color=color.blue, title="Bollinger Basis") plot(bb_median_lower, color=color.purple, title="Bollinger Median Lower Band") plot(bb_lower, color=color.green, title="Bollinger Lower Band") // Plotting SuperTrend supertrend_color = direction > 0 ? color.green : color.red plot(supertrend, color=supertrend_color, style=plot.style_line, title="SuperTrend Line") // Customizable Signal Shape Inputs buy_shape = input.string("shape_triangle_up", title="Buy Signal Shape", options=["shape_triangle_up", "shape_circle", "shape_cross", "shape_diamond", "shape_flag"]) sell_shape = input.string("shape_triangle_down", title="Sell Signal Shape", options=["shape_triangle_down", "shape_circle", "shape_cross", "shape_diamond", "shape_flag"]) // Entry Conditions buy_condition = ta.crossover(low, bb_lower) and direction > 0 sell_condition = ta.crossunder(high, bb_upper) and direction < 0 // Exit Conditions exit_buy_condition = ta.crossunder(close, supertrend) and direction < 0 exit_sell_condition = ta.crossover(close, supertrend) and direction > 0 // Strategy Logic if buy_condition strategy.entry("Buy", strategy.long) if sell_condition strategy.entry("Sell", strategy.short) if exit_buy_condition strategy.close("Buy") if exit_sell_condition strategy.close("Sell") // Plot Buy Signal Shape plotshape(series=buy_condition, title="Buy Signal", location=location.belowbar, color=color.green, style=buy_shape, text="BUY", textcolor=color.white) // Plot Sell Signal Shape plotshape(series=sell_condition, title="Sell Signal", location=location.abovebar, color=color.red, style=sell_shape, text="SELL", textcolor=color.white)