
EMA mid-line plus ATR-scaled bands — breakout above the upper band signals real momentum, mid-line exit catches reversals early. ATR-adaptive trend following.
Keltner Channel Breakout uses the classic Keltner-Channel construction: an EMA mid-line with an ATR-scaled corridor around it. Unlike Bollinger Bands (which use standard deviation), Keltner's corridor scales with real volatility (Average True Range), so it breathes naturally with high-volatility regimes and tightens in calm markets.
Three lines:
Trade logic:
The ATR-scaled bands are the structural edge over Bollinger-based breakout strategies: in volatile regimes the bands widen (you don't get whipsawed by normal volatility), in quiet regimes they tighten (smaller breakouts already qualify). Same parameters work across asset classes — Keltner is asset-class agnostic by construction.
The entry has no first-bar special case (unlike RSI/SMA Cross): Keltner only goes long on a real upper-band crossover, never on a hot start. This avoids buying into already-extended price action.
| Name | Default | Range | Description |
|---|---|---|---|
| EMA Period | 20 | 5–200 | Mid-line EMA period. Default 20 is the most common Keltner setting. |
| ATR Period | 10 | 2–100 | Lookback for the ATR (Average True Range) used to scale the bands. |
| ATR Multiplier | 2 | 0.5–5 | Width of the channel in ATR units. Higher = wider bands, fewer breakouts; lower = tighter bands, more trades. |
The pre-baked mini-backtest is refreshed daily — check back soon or start a live run in the Arena.
Run in Arena →// Compute lines
mid = EMA(close, emaPeriod) // default 20
atr = ATR(close, atrPeriod) // default 10
upper = mid + atr * atrMultiplier // default mult 2.0
lower = mid - atr * atrMultiplier
// Entry — upward crossover of Upper Band
if prev_close <= prev_upper AND curr_close > curr_upper:
if position.is_flat:
BUY
// Exit — depends on exitMode
if exitMode == 'mid-line':
if prev_close >= prev_mid AND curr_close < curr_mid:
if position.is_long:
SELL
else: // exitMode == 'lower-band'
if prev_close >= prev_lower AND curr_close < curr_lower:
if position.is_long:
SELLBollinger Bands use **standard deviation** to size their bands; Keltner Channels use **ATR** (Average True Range). The practical difference: in high-volatility regimes Bollinger bands explode in width because std-dev reacts to outliers; ATR is more robust because it's a true-range measure. The trade-off: Keltner reacts a bit slower to volatility shocks, but produces fewer whipsaws when you don't want bands flapping wildly.
Mid-Line is the default for a reason: it exits earlier when a trend weakens, which limits drawdowns and tends to produce a higher win rate at the cost of cutting some winners short. Lower Band is the classic Keltner setup — it gives the trade maximum room to breathe, only exiting on a fully-reversed trend. Use Lower Band if your edge is in catching big macro trends and you can stomach 30%+ drawdowns. Use Mid-Line if drawdown control matters more than maximum CAGR.
Breakout strategies need confirmation. On the first valid bar of a backtest, you don't know whether price was above or below the upper band before — entering on a hot start would mean buying into already-extended price action without a real breakout signal. Keltner only enters on an actual upward crossover of the upper band, which guarantees the entry is a real breakout, not an artifact of where the backtest happens to start.
Two EMAs plus an ATR-based neutral zone — like the commercial Larsson Line, but tunable, transparent, and backtested. Choose your bias.
Two weighted moving averages crossing — recent candles weight more, signals fire faster than SMA-based crosses. Validated on BTC weekly.
The classic trend-following signal — when the 50-day SMA crosses above the 200-day SMA, the trend has flipped bullish.
Check out our Strategy Insights Reports — pre-baked deep-dives with historical results, comparisons, and market context.