strategy-dev
Indicator Reference — every signal the backtest engine computes
What each indicator measures, how to read it, when it works, and when it lies.
15 min · beginner
What you'll have when finished
- Understand RSI, EMA, Bollinger Width, Volume, and Price in plain English
- Know how to read each indicator on a real chart
- See which timeframe + strategy type each indicator suits
- Recognize when each indicator gives false signals
- Use derived indicators (X_VS_Y) for crossover events
Before you start
- No indicator predicts the future. Indicators describe the past — your strategy interprets that description into a guess.
- Indicators on small timeframes are noisier. Indicators on large timeframes lag. There is no "best" timeframe — only the right one for your hold time.
- When everyone uses the same indicators, they stop working at the obvious thresholds. RSI < 30 is famous BECAUSE algorithms front-run it. Adapt.
Walkthrough
-
RSI — Relative Strength Index
WHAT: Momentum oscillator from 0–100 measuring the ratio of recent up-moves to total moves. READ: > 70 = "overbought" (recent gains have been steep); < 30 = "oversold" (recent losses have been steep). USE FOR: catching reversals at extremes, confirming trend strength (>50 = bullish bias). FAILS WHEN: strong trends (RSI can stay overbought for weeks in a bull market). EXAMPLE: BTC in a bull run held RSI > 70 for 6 weeks straight in early 2024 — selling at first overbought signal would have cost you 40%.
-
EMA9 / EMA20 / EMA50 — Exponential Moving Averages
WHAT: Weighted averages of the last N closes, with recent prices weighted more. EMA9 = "where price has been the last few hours" (on 1h). EMA20 = "where price has been the last day". EMA50 = "where price has been the last 2 days". READ: price above EMA = recent uptrend; below = downtrend. USE FOR: trend identification (longer EMA), crossovers (shorter crossing above longer = bullish reversal signal). FAILS WHEN: choppy markets (price oscillates around EMAs causing false crossovers — exactly what your Triple EMA backtest hit in Feb 2026).
-
Bollinger Width — Volatility Compression Index
WHAT: (Upper Band − Lower Band) ÷ Middle Band, expressed as a percentage. Measures how spread out the bands are. READ: < 2% = ultra-tight (squeeze) → big move likely coming; > 5% = wide bands → high current volatility. USE FOR: detecting pre-breakout compression (squeeze → expansion); filtering trades by volatility regime. FAILS WHEN: market is in a clean steady trend without compression — width stays moderate without giving signals.
-
Volume — Institutional Participation
WHAT: Total trade size in the candle (number of base units exchanged). READ: high volume = many participants agree on the move; low volume = few participants, move is suspect. USE FOR: confirming breakouts (real breakouts have volume), filtering false signals (low-volume rally = fade material), spotting accumulation. FAILS WHEN: weekend/overnight crypto volume is structurally lower — don't apply weekday thresholds to weekends.
-
PRICE — Raw Price Level
WHAT: The close price of the candle. Just the number. READ: useful for absolute thresholds ("buy if BTC < 50000") or comparing against derived indicators (PRICE_VS_EMA20 > 0 means "price is above EMA20"). USE FOR: hard floor/ceiling triggers; reference price for derived deltas. FAILS WHEN: you hardcode a specific price level on a fast-moving asset — yesterday's "cheap" can be tomorrow's "expensive."
-
EMA_VS_EMA — Crossover Detectors (derived)
WHAT: A delta indicator that returns (EMA_short − EMA_long). When this crosses 0, the two EMAs crossed each other. READ: EMA9_VS_EMA20 crosses_above 0 means "EMA9 just crossed above EMA20" = bullish trend initiation. USE FOR: precise crossover triggers (instead of vague "EMA9 > 0" which doesn't catch the cross moment). The Golden Cross Hunter template uses this. FAILS WHEN: very short timeframes (1m) — crossovers happen constantly and are mostly noise.
-
PRICE_VS_EMA — Trend Direction & Strength (derived)
WHAT: Delta = close price − EMA value. Positive = price above EMA (uptrend confirmation). Negative = below (downtrend confirmation). READ: PRICE_VS_EMA50 > 0 = "macro trend is up" (use as a filter for entries in trend strategies). USE FOR: structural trend filters (only buy when above EMA50), and crossover events when price crosses an EMA. FAILS WHEN: price oscillates around an EMA in choppy markets — distance close to zero gives whipsaws.
-
PRICE_VS_BB — Statistical Extreme Detector (derived)
WHAT: Delta = close price − Bollinger Band level. PRICE_VS_BB_LOWER < 0 means price closed below the lower band (a 2σ statistical extreme). USE FOR: mean-reversion entries (the Statistical Mean Reversion template uses this). Combined with PRICE_VS_EMA50 > 0 gives "oversold inside an uptrend" = high-quality reversal signal. FAILS WHEN: a sustained trend pushes price beyond the bands for extended periods — buying every BB_LOWER touch in a bear market is how you average down to zero.
What's next
No indicator is "best." Each is a lens. Strong strategies combine 3-5 indicators across DIFFERENT lenses: one for trend (EMAs), one for momentum (RSI), one for volatility (Bollinger Width), one for volume confirmation. When all four agree, you have higher-quality signals than any one alone. That's exactly what the Advanced templates do (Multi-Factor Confluence Engine, Quant Momentum Stack).