Trading Indicators: What They Measure and Where They Fail
Trading indicators are formulas applied to bars that have already closed. That is the entire definition, and holding onto it will save you money.
Nothing on this page predicts anything. Each formula compresses recent price or volume into one number so you can compare today against the last few weeks without squinting at a chart. Useful, frequently. Prophetic, never. The trouble starts when a smooth line on a screen begins to feel like knowledge about tomorrow. Indicators are one of the three families that make up technical analysis, and this page covers that one.
What an indicator actually is
Feed in the last n closes. Get back a number — that is the whole machine, and every indicator you have ever loaded onto a chart is a variation on those two steps.
Every indicator in every platform is that shape underneath, differing only in which bars it reads and what arithmetic it applies. A 14-period RSI reads fourteen bars. A 200-day moving average reads two hundred. Change the lookback and you change the answer, which is why two traders can stare at "the RSI" and disagree — they are running different functions and calling them the same name.
Because the input is closed bars, the output can only describe what already happened. When I am reviewing a strategy that looks too good, the first thing I check is whether a value was available at the moment the trade claims to have fired. Half the time it was not, and the edge evaporates.
The four families, and what each one is blind to
Indicators cluster into four groups by what they measure. Knowing which group something belongs to tells you its blind spot immediately, before you have looked at a single chart, tuned a single parameter, or read anybody's opinion about which setting is best.
Momentum measures how one-sided recent moves have been. RSI, stochastics, rate of change. They answer "has one side been winning?" and say nothing about direction of trend. Five are broken down in full here: the stochastic oscillator, RSI, the MACD, the Stochastic Momentum Index, and the Relative Vigor Index. All 36 of them, and the four kernels that answer one question in four different units, are inventoried under momentum trading — where you will also find why relative strength is not the same phrase as the R in RSI.
Trend measures direction and persistence — ADX, the simple and exponential moving averages, and the golden cross built out of two of them. They are slow by construction, because smoothing is the entire mechanism. Both average pages score the same crossing rule on the same 282 symbols, which is the only way to compare two of them honestly.
Volatility measures how wide the range has become, and three channel families each get their own page: Bollinger Bands from a deviation of closes, the Keltner Channel from an average true range, and the Donchian Channel from raw extremes. Width tells you about risk and position size, never about which way price breaks. Nest the first inside the second and you get the TTM squeeze, a construction our crate ships no function for at all.
Volume measures participation behind a move. On-balance volume, the volume profile whose point of control the engine computes but whose histogram it deliberately does not, and VWAP, whose session reset is the detail almost every explanation of it leaves out. Delete that reset and you have anchored VWAP, which our engine does not ship and which turns out to be the same function three lines shorter. In crypto, treat exchange-reported volume with suspicion; the number is only as honest as the venue publishing it.
Stack three momentum indicators and you have not built confluence. You have asked the same question three times and been reassured by your own echo.
Every indicator page here, and the function behind it
| Page | What it measures | Engine function |
|---|---|---|
| Momentum | ||
| MACD | The distance between a fast and a slow exponential average of the close | batch_macd |
| McClellan Oscillator | Advancing issues minus declining ones, smoothed; breadth data this engine cannot carry | batch_ema |
| Momentum Trading | Not a formula but a discipline, scored here against the 36 momentum kernels we ship | batch_mom |
| RSI Indicator | How lopsided buying has been against selling, compressed onto a 0-100 scale | batch_rsi |
| Relative Strength | One market's price divided by another's, which is not the R in RSI | batch_ratio |
| Relative Vigor Index | Where the close sits in its own range, smoothed and read against a signal line | batch_relative_vigor |
| Stochastic Momentum Index | Where the close sits in its recent range, centered on zero and smoothed twice | batch_smi_ergodic |
| Stochastic Oscillator | Where this bar closed inside the high-low range of the last fourteen bars | batch_stochf |
| Trend | ||
| Directional Movement Index (DMI) | Which side extended the bar's range, and how strong the push is once direction is dropped | batch_adx |
| Exponential Moving Average | A blend of today's close with yesterday's average, forgetting older bars geometrically | batch_ema |
| Golden Cross | The moment a 50-bar mean of the close rises through the 200-bar mean | batch_sma |
| Ichimoku Cloud | Midpoints of the high-low range over three windows, two of them shifted in time | batch_ichimoku |
| Simple Moving Average | The arithmetic mean of the last n closes, plotted on the bar it ends on | batch_sma |
| Volatility | ||
| Average True Range | Fourteen gap-aware bar ranges, smoothed by Wilder's recursion into one number | batch_atr |
| Bollinger Bands | Where price sits inside a two-deviation channel, and how wide that channel has become | batch_bbands_pctb |
| Donchian Channel | The highest high and the lowest low of the last twenty bars, with nothing smoothed | batch_donchian |
| Keltner Channel | An exponential average with rails set two average true ranges either side | batch_keltner |
| TTM Squeeze | Whether the Bollinger Bands sit inside the Keltner Channel, a comparison not a kernel | batch_keltner |
| True Range | How far a bar really moved, counting the gap it opened across | batch_true_range |
| Volume | ||
| Accumulation Distribution Line | Where the close landed inside each bar's own range, scaled by that bar's volume | batch_ad |
| Anchored VWAP | A volume-weighted average price started at a bar you choose, with no session reset | batch_vwap |
| Money Flow Index | An RSI computed on typical price times volume instead of on the close | batch_mfi |
| On Balance Volume | A running total of volume signed by whether the close rose or fell | batch_obv |
| VWAP | The volume-weighted average price of the session so far, reset at each session start | batch_vwap |
| Volume Profile | How much volume traded at each price rather than in each period | batch_volume_profile_poc |
| Price structure and levels | ||
| Fibonacci Retracement | Five horizontal levels between a swing high and a swing low that you pick yourself | batch_zigzag |
| Pivot Points | Seven price levels derived arithmetically from one previous bar | batch_pivot_points |
| Smart Money Concepts | Named chart shapes such as order blocks and fair value gaps, which no kernel emits | batch_zigzag |
| Wyckoff Method | A narrative reading of accumulation and markup that no per-bar function can emit | batch_zigzag |
| Statistics | ||
| Linear Regression Slope | The gradient of the straight line that best fits the last fourteen closes | batch_linearreg_slope |
| Order flow | ||
| Order Flow Trading | Which side crossed the spread on every print, the one bit a candle chart drops | batch_obv |
| Patterns as indicators | ||
| Candlestick Indicators | Whether a bar satisfies one of the 63 pattern rules the engine ships as code | batch_hammer |
| Foundations | ||
| Technical Analysis | The whole practice, and what price and volume history alone can and cannot say | batch_zigzag |
The table below is the whole section, family by family. Nobody types it: each row reads its own name, its one-line summary and the detector it documents straight out of the article it points at, so a page published next week shows up the day its file lands rather than whenever somebody remembers to come back and add a link.
Two of those columns are ordinary; the third is not. It names the function inside our engine that the page pulls apart, and that is the detail no textbook and no broker blog can hand you, because neither of them ships the code. Where our crate has no function for a popular tool — fibonacci levels, Wyckoff phases, the squeeze — the page names the nearest thing it does compute and says so in its opening paragraph.
RSI, exactly as the engine computes it
batch_rsi runs. Because each average is built from the one before it, two charts with different history give slightly different RSI on the same candle.Our detector batch_rsi uses Wilder's smoothing, which is where most explanations quietly diverge from most implementations.
Split each bar's change into gains and losses. Seed the first average over n periods. Then every subsequent bar updates the average as ((prev * (n - 1)) + current) / n — a recursive smoothing that weights history more heavily than a plain mean would. Relative strength is the ratio of average gain to average loss, and RSI maps that onto a 0–100 scale.
The consequence is worth stating plainly: because the average carries the whole series forward, an RSI reading depends on where your data started. Two charts with different history give different values on the same candle. It is a small difference, usually. It is not zero, and it is why we ported the rule from the crate source rather than from a textbook.
For the full walkthrough — overbought levels, divergence, and the specific market where RSI misleads worst — read the RSI breakdown.
Every indicator lags, and lag has a price
Smoothing removes noise by ignoring recent data. There is no version of that trade where you get the smoothing and keep the responsiveness.
A 200-period average needs a great many bars before it turns. That is precisely what makes it useful as a regime marker and useless as an entry trigger. Shorten the window for faster signals and you buy whipsaws instead.
I have watched people chase this by tuning lookbacks until the backtest glows. It glows because the parameter was picked after the data was already on the screen, which is the oldest way there is to build something that performs beautifully everywhere except in the future. Out of sample, the glow goes.
Candlesticks sit at the other end of this trade-off: a hammer is a single-bar signal with no lag at all, and correspondingly more noise. Pivot points live there too, reading one previous bar and smoothing nothing, which is exactly why they cannot report anything that bar did not already say. Neither approach is better; they fail differently, and that is the only reason combining them helps. Four popular tool sets sit outside every family here because the crate ships nothing for them: fibonacci retracement and smart money concepts, whose pages say so first and then measure what it does ship, joined by the McClellan oscillator, which needs breadth data nobody here carries, and the Wyckoff method, whose phase labels no per-bar function can emit. Written as code, the patterns become indicators like any other — which is what candlestick indicators covers: all 63 detectors our engine ships, nineteen of them scored.
Using them without fooling yourself
Three habits separate people who get value from indicators from people who collect them.
Pick indicators from different families. Momentum plus volatility tells you two things; two momentum indicators tell you one thing twice.
Define the failure before the entry. An indicator that cannot be wrong is not giving you information — it is giving you comfort, and comfort is expensive at scale.
Check the regime first. Oscillators behave sensibly in ranges and get shredded in strong trends, where "overbought" prints for weeks while price keeps climbing. The same reading means opposite things in the two environments, and no amount of parameter tuning fixes that.
None of this requires more indicators. It requires fewer, each one understood well enough that you could rebuild it from the arithmetic, with its limits written down somewhere you will actually see them at the moment you are tempted to ignore them. Fewer, understood. That is the whole discipline.
Frequently asked questions
What are the best trading indicators? There is no ranking that survives contact with a different market. Match the family to the question you are asking, use one from each, and understand the arithmetic before you trust the line.
How many indicators should a chart have? Two or three, from different families. Beyond that you are usually adding correlated opinions rather than information.
Do indicators work in crypto? The arithmetic works anywhere there are bars. Crypto's thinner books and reported-volume problems make volume-based indicators the least reliable family, and the 24/7 clock removes the session boundaries several classic indicators assume.
Are indicators better than candlestick patterns? They fail in different places, which is the useful property. Indicators lag and smooth; candlestick patterns are immediate and noisy.
Can indicators be used on on-chain data? Yes, and the inputs are often cleaner — settlement is observable rather than reported, as the DeFi primer lays out.
This is educational material, not financial advice. Indicators describe past price and do not predict future prices; trading carries substantial risk of loss, and no formula on this page removes it.