strategy · on price · open source
Bollinger Mean Reversion
Running…
Loading chart…
About
Bollinger Band mean reversion: long at the lower band, exit on the move back to the basis. The bands themselves are plotted for visual confirmation.
- Lower
Multfor tighter bands (more signals, smaller wins); raise it for stretchier extremes. - Pair with a higher-timeframe trend filter to avoid mean-reverting into a crash.
- Best on range-bound assets and short timeframes.
Source code
//@version=5
strategy("Bollinger Mean Reversion", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=10, commission_type=strategy.commission.percent, commission_value=0.05)
len = input.int(20, "Length", minval=5, maxval=100, step=1)
mult = input.float(2, "StdDev Mult", minval=0.5, maxval=5, step=0.1)
stopPct = input.float(1.5, "Stop Loss %", minval=0.5, maxval=10, step=0.1)
tpPct = input.float(4, "Take Profit %", minval=0, maxval=20, step=0.1)
[basis, upper, lower] = ta.bb(close, len, mult)
longSignal = strategy.position_size == 0 and close <= lower
exitSignal = strategy.position_size > 0 and close >= basis
if longSignal
strategy.entry("Long", strategy.long)
if strategy.position_size > 0
strategy.exit("Risk", stop=stopPct > 0 ? strategy.position_avg_price * (1 - stopPct / 100) : na, limit=tpPct > 0 ? strategy.position_avg_price * (1 + tpPct / 100) : na)
if exitSignal
strategy.close("Long", comment="Back to basis")
p_Basis = plot(basis, "Basis", color=color.gray, linewidth=1)
p_Upper = plot(upper, "Upper", color=color.blue, linewidth=1)
p_Lower = plot(lower, "Lower", color=color.blue, linewidth=1)
fill(p_Upper, p_Lower, color=color.new(color.blue, 92))
plotshape(longSignal, "Long", style=shape.triangleup, location=location.belowbar, color=color.green, text="L")
plotshape(exitSignal, "Exit", style=shape.triangledown, location=location.abovebar, color=color.red, text="X")
alertcondition(longSignal, "BB long entry", "Price touched lower Bollinger Band")
alertcondition(exitSignal, "BB exit", "Price returned to basis")
No comments yet.
Sign in to comment.