What an Indicator Is
An indicator is a function of numbers you already have, and four consequences follow from that sentence alone. It cannot add information: anything readable off the line was readable off the prices, because the line was computed from them. It discards, and the discarding can be counted — two ten-bar windows of the series below have averages 0.09 of a point apart and standard deviations 0.076 apart, so every band and channel built from those two numbers sits in the same place on both, while one window drifts nowhere and the other trends, at efficiency ratios of 0.053 and 0.536. And it is late by an amount you compute rather than guess, because the delay is the first moment of the weight vector: 4.50 bars for the ten-period simple average and 4.50 bars for the ten-period exponential one, which also remove exactly the same amount of noise. The fourth is what the next lesson is about. An indicator that uses any bar after the one it draws will change what it has already drawn, and on the series below a five-bar centred average is still moving on all 56 eligible bars at the moment each of them closes, by up to 0.99 of a point against a typical bar-to-bar move of 1.20.
Prerequisites: Lesson 36, which computed the first statistic in this course off the tape and, as it turns out, one of the few that notices the order of the bars inside its own window, lesson 38, which established that a bar is already a rule applied to the tape, so an indicator is a rule applied to a rule, and lesson 45, whose effective count settles how many readings three indicators on one series really are.
A function of what you already have
An indicator is a rule that takes some prices and returns a number. That covers all of them: averages, oscillators, bands, channels, ratios, counts, the ones with names and the ones with acronyms. Whatever else is claimed for a particular formula, it is arithmetic performed on numbers that were already sitting on your screen.
One consequence follows immediately and it is not a matter of opinion. If the indicator is a function of the price history, then any question you can answer from the indicator you could have answered from the price history, because you could always have computed the indicator yourself and then answered. The reverse fails: there are questions the prices answer that the indicator cannot. Applying a function can lose and can never gain. That is the direction of the arrow, and it holds for every indicator that has ever been written, including the ones not yet written.
This does not make indicators useless, and reading it that way is the standard overreaction. A summary that discards is worth having precisely because it discards. You are not a computer, the decision in front of you has a cost in attention, and reducing sixty numbers to one is a real service. The mistake is never using the summary. The mistake is believing the summary told you something the prices did not.
There is a sharper failure underneath, and it is the reason the rest of this module exists. A function cannot add information but it can add the appearance of structure. Take a series whose successive changes are unrelated to each other — no pattern of any kind, by construction. Its ten-bar average is heavily patterned. Consecutive readings of that average share nine of their ten inputs, so the output has an autocorrelation of 0.9 at one bar, 0.5 at five, and reaches zero only at ten. The smoothness you are looking at is the filter’s, not the market’s. Waves in the line are not evidence of waves in the prices.
What it discards, counted
An indicator with a window maps a great many possible windows onto one number. The useful question is not whether it discards but what, and that is answerable rather than rhetorical.
Here are two stretches of this module’s own sixty closes, bars 8 to 17 and bars 39 to 48, which do not overlap. The first runs 102.1, 105.3, 103.7, 106.7, 104.6, 103.0, 105.7, 102.2, 104.9, 100.8. The second runs 102.4, 101.3, 101.7, 102.1, 103.1, 104.4, 104.8, 105.6, 106.6, 106.1. The standard deviation below is the sample one, dividing by nine rather than by ten, which is what a spreadsheet gives you by default and what moves the band by about two tenths of a point against the other convention.
| Statistic | Bars 8 to 17 | Bars 39 to 48 | Difference |
|---|---|---|---|
| Ten-bar average | 103.90 | 103.81 | 0.09 |
| Standard deviation | 1.860 | 1.936 | 0.076 |
| Two standard deviations above | 107.62 | 107.68 | 0.06 |
| Two standard deviations below | 100.18 | 99.94 | 0.24 |
| Highest | 106.70 | 106.60 | 0.10 |
| Lowest | 100.80 | 101.30 | 0.50 |
| Net change, last less first | -1.30 | +3.70 | 5.00 |
| Efficiency ratio | 0.053 | 0.536 | 0.483 |
| Simple RSI over the window | 47.35 | 76.81 | 29.47 |
Read the top of the table against the bottom. The averages are nine hundredths of a point apart and the standard deviations eight hundredths, so a band drawn two standard deviations out lands within a quarter of a point of the same place on both windows. The highs differ by a tenth and the lows by half a point. Anything assembled out of those numbers — a moving average, a band, a channel, the percentage position of the close inside the range — cannot tell these two stretches apart.
They are not remotely the same. The first falls 1.30 across its ten bars and the second rises 3.70, a five-point difference in behaviour, which is fifty-six times the difference in their averages. Lesson 36’s efficiency ratio puts them at 0.053 and 0.536, a factor of ten: the first is chop that ends where it started, the second is a clean advance. All of that was in the twenty numbers the table was computed from. None of it survived into the band.
The general reason is worth stating exactly, because it tells you in advance which indicators have this problem. Take any window and reorder its bars. The average, the standard deviation, the highest, the lowest and the median are symmetric functions: they never look at which bar came first, so all 3,628,800 orderings of ten bars give each of them the same answer. Reverse this module’s bars 41 to 50 and the average stays at 104.70, the standard deviation stays at 1.833 and the two-deviation band stays at 101.03 to 108.37, while the window goes from rising 4.20 to falling 4.20.
That splits the indicators you own into three classes. Some are blind to every reordering, which is the list just given and everything built on it. Some are blind to reversal alone: the efficiency ratio and the autocorrelation of the changes both survive being read backwards, but sorting those same bars 41 to 50 into ascending order sends the efficiency ratio from 0.618 to 1.000. And some see the ordering: the net change, the regression slope, and RSI. RSI has an exact relation here worth carrying away — reversing a window sends it to 100 minus itself, so bars 41 to 50 read 80.88 forward and 19.12 backward. Those are not two readings. They are one statement about direction, written twice.
So before trusting a line to tell you something, ask which reorderings of its own window it cannot see. Whatever falls inside that blind spot is information the indicator threw away, and it was in the prices when the indicator started.
Lag is the first moment of the weights
Every smoothing indicator is a weighted sum of past bars, whatever the interface calls it. Write the weights down in order and two numbers fall out, both exact and neither requiring a backtest to obtain.
The first is the delay. The average lateness a filter imposes is the weighted average of the lags it uses: the sum of each weight times how many bars back it sits, with the weights adding to one. For an n-bar simple average that comes to (n-1)/2, so 4.50 bars when n is ten. For the exponential average with the conventional smoothing constant of 2/(n+1), the same sum works out to exactly (n-1)/2 as well. The two filters that every course contrasts have identical average delay.
The second is how much of the input’s noise survives. If the errors in the input are independent, the variance of the output is the variance of the input times the sum of the squared weights. For the ten-bar simple average that sum is 0.100. For the exponential one it is the smoothing constant divided by two minus that same constant, which is also exactly 0.100. The two filters are identical in both numbers, so the claim that one of them is faster than the other is not true in either sense that can be made precise.
| Filter | Mean lag, bars | Share of input variance surviving | Bars after the low before it turned |
|---|---|---|---|
| Simple average, ten bars | 4.50 | 0.100 | 8 |
| Exponential average, ten bars | 4.50 | 0.100 | 7 |
| Linearly weighted, ten bars | 3.00 | 0.127 | 4 |
The linearly weighted average is genuinely faster, at (n-1)/3 or 3.00 bars, and the table shows what it pays: 0.127 against 0.100, which is 27 per cent more of the input’s noise arriving at the output. That is not a flaw in the design. It is the trade, and the next section prices it properly.
The last column is a measurement rather than a derivation, and it carries a caveat that matters. This module’s series bottoms at bar 24, and turned means the bar at which each line reaches its own lowest value: 8 bars later for the simple average, 7 for the exponential, 4 for the linearly weighted. Read it the looser way instead, as the first bar on which the line ticks up at all, and the same three filters give 5, 6 and 5, which reverses the ordering the column is here to show — because a line can tick up once inside a bottom that is still forming. The column reports the low. The first two differ by a bar even though their first moments are identical, because a turning point is one particular input shape and a first moment describes the average across all shapes. Equal mean delay does not mean equal behaviour on every input; it means equal delay on average and equal noise suppression exactly. Both statements are true and neither is a substitute for the other.
Three indicators, one and a bit readings
If every indicator is a function of the same prices, then two indicators are two functions of one thing, and lesson 45 has already established what to do with that.
Take three of the most common shapes and compute each on this module’s sixty closes over a ten-bar window: the percentage change across ten bars, the position of the close inside the ten-bar range, and the distance of the close from the ten-bar average. Fifty readings each, on the same fifty bars.
Their pairwise correlations come out at 0.77, 0.83 and 0.90, averaging 0.835. Lesson 45’s effective count turns three readings at that average correlation into three divided by one plus twice 0.835, which is 1.12. Three lines on the chart. One and an eighth readings.
What matters is not that these three happen to resemble each other. It is that they are functions of the same ten numbers, so they could not have been independent whatever their formulas looked like; the only open question was how much redundancy the particular arithmetic left behind. Adding a fourth indicator computed on the same window will not move the count much past 1.2, and adding a fifth will move it less. The count only rises when a new input arrives, which is a different thing from a new formula.
The one thing that would not be a function of the past
The definition so far has been a function of prices you already have. One class of indicator quietly breaks the word already, and it is worth being able to detect that class without reading anybody’s source code.
The test is a single question. At the moment bar t closes, does the value drawn at bar t depend on any bar after t? If it does, what is drawn there is provisional, and it will change.
Here is the smallest honest example. A five-bar centred average at bar t is the mean of bars t-2 through t+2, two of which have not printed. If a chart draws something at bar t anyway — the mean of whatever part of the window exists, which is three bars at the close of t and four after one more — it must revise that value later. On this module’s series every one of the 56 eligible bars is still moving at the moment it closes, by 0.39 of a point on average and by as much as 0.99 in the worst case, against a mean bar-to-bar move of 1.20. One further bar and all 56 are still wrong, by up to 0.68. Two further bars and every one of them settles, because the definition needs exactly two.
None of this is a criticism of a centred average, which is honest about needing bars it does not have. It is a criticism of drawing one at a bar that has just closed. And it is the small version of a much larger problem: any indicator whose current value depends on what happens next will eventually show you a history that never existed. That is the whole subject of the next lesson. The test above is how to check any indicator you are handed, in about a minute, without knowing how it works.
What it costs to make an average faster
The two numbers from the weight vector turn filter design into the constrained problem it actually is. Fix the window at ten bars. Require the weights to add to one, so the filter neither inflates nor shrinks the level. Then ask the only question left: for a given average delay, what is the least noise a filter can leave?
Minimising the sum of squared weights under those two constraints is a short piece of algebra with a clean answer. The optimal weights vary linearly with the lag — each weight is some constant plus some multiple of how many bars back it sits. So the efficient filters, at every delay, are the straight-line ones.
Evaluate that at the delays people actually use. At 4.50 bars the minimum achievable sum of squares is 0.100, which is exactly what the plain ten-bar average delivers. The simple average is not a crude first attempt that better designs improve on; it is the optimal linear filter for its own delay, and nothing can beat it without being later. At 3.00 bars the minimum is 0.127, which is exactly what the linearly weighted average delivers. Both of the two commonest smoothers sit on the frontier rather than near it.
Now push along it and watch the price of speed. Coming down from 4.50 bars, the minimum sum of squares runs 0.103 at 4.00, 0.112 at 3.50 and 0.127 at 3.00. The first half-bar of speed costs 3 per cent more noise. The third half-bar costs 13 per cent more. The exchange rate gets worse the faster you go, which is the shape of every constrained optimisation and the reason speed is not free anywhere in this subject.
Then the wall. Keep following the frontier down and the weight on the oldest bar shrinks; at a delay of 2.667 bars it reaches zero. Below that, every efficient filter must give some bar a negative weight. This is what a low-lag or zero-lag smoother is doing, whatever the name on it: subtracting older bars from the sum in order to lean forward. The consequence is not hidden and it is not a matter of taste. A filter with negative weights amplifies rather than suppresses at some frequencies, which on a chart is the overshoot you see after a fast move, when the line goes further than the price did.
So the question to put to any smoother is not whether it is fast. It is where it sits against this frontier, and whether it bought its speed with negative weights. Both are answerable from the weight list alone, which is arithmetic you can do in a spreadsheet, and neither requires a single historical bar.
What this leaves you with
Everything above has been subtraction, so it is worth setting down what remains, because it is more than nothing and it is specific.
An indicator is a summary, and a summary earns its place when attention is the scarce resource rather than data. Sixty numbers reduced to one is a genuine service, provided you can say which sixty and which one.
The weight list is the entire specification of a smoother. Delay and surviving noise fall out of it exactly, and so does the blind spot: which reorderings of its own window the thing cannot see. Three numbers, no backtest, no argument.
And the honest use is comparative rather than predictive. An indicator cannot tell you what the market will do next, because it contains nothing the market has not already published. It can tell you how this stretch compares with other stretches under the same rule, on your own series, which is a real statement and the only kind it is entitled to make.
What this does not settle
That an indicator adds nothing at all. It adds no information, in the exact sense that it is computed from prices you already hold. It does add three other things. It adds compression, which is worth paying for when attention is the scarce resource. It adds a shared vocabulary, which is why a level everybody watches can matter. And it adds apparent structure that was not in the input, which is the failure mode rather than the feature: a moving average of a series with no autocorrelation at all comes out with an autocorrelation of 0.9 at one bar. Slutzky showed in 1937 that summing random causes produces convincing cycles. Keep the three apart and the first claim stays exact.
That the lag figures describe any single turn. They are the first moment of the weight vector, which is an average across every input shape. A particular turning point is one shape. On this module’s series the simple and exponential averages turn up 8 and 7 bars after the low despite having identical first moments, because their weight shapes differ even where their means agree. Both statements are true and neither replaces the other.
That 0.100 is how much of this series’ noise a ten-bar average removes. The sum of the squared weights is the noise gain only when the errors in the input are independent, which this lesson stated once and then leaned on throughout. Lesson 44 measured this series’ lag-one autocorrelation at minus 0.66, and running the full quadratic form on its own autocorrelations gives 0.0395 for the simple average rather than 0.100, and 0.0512 for the linearly weighted rather than 0.127. The ordering survives and so does the exchange rate, which comes out at 29 per cent more noise for the faster filter rather than 27. The levels do not: they are wrong by a factor of two and a half on this series, in the direction that flatters the filter. On a tape that reverses this hard a smoother removes far more than its weight list predicts, and on a trending one it removes far less. What the weight vector settles exactly is the comparison between two filters. How much noise either of them actually removes is a fact about the input.
That the frontier settles which filter to use. It settles the exchange rate between delay and noise for a fixed window and linear weights. It says nothing about which delay you want, which depends entirely on what you intend to do with the number and how long you can afford to be late. And it says nothing at all about indicators that are not weighted sums — anything with a maximum, a ratio, a condition or a reset in it is outside this arithmetic, though the ordering test above still applies to all of them.
That the three indicators tested are the whole family. They are three formulas on one window length on one series, which is why the effective count of 1.12 is an illustration rather than a constant. What is structural is the reason behind it: functions of the same ten numbers cannot be independent of each other, so the only open question was how much redundancy the particular formulas happened to leave. Change the window or feed one of them something the others do not see, and the count moves.
That these sixty numbers are anybody’s price series. They are the module’s own sixty closes, carried here so that every figure above can be recomputed rather than believed. This series contains one turning point clean enough to time, which is why the turn timings are reported as one observation each rather than as an average. The arithmetic transfers; the numbers do not.
Problems
- Find the blind spot of the indicator you use most. Write down its formula, then take any ten bars and feed the indicator the same ten bars in a different order — reversed first, then sorted. Every output that does not change is a piece of the ordering the indicator cannot see, and that ordering was in the prices before you applied it. If nothing changes under either, you are looking at a symmetric function of the window and it knows nothing whatever about direction.
- Get the weights, then compute the two numbers. For any smoother, feed it a series that is zero everywhere except one bar. What comes out is the weight list, in order, whatever the documentation says. Then compute the sum of the weights times their lags, which is the delay, and the sum of their squares, which is the share of input noise that survives. Compare both against a simple average with the same delay. If the smoother is worse on the second number, you have paid for something.
- Run the revision test on every line on your chart. Note what each indicator reads at the last closed bar. Wait three bars and look at that same bar again. Anything whose value moved is drawing a history that did not happen, and every backtest you have run on it is a backtest of signals that were not available at the time. This takes a minute per indicator and it is the only test in this lesson that requires no arithmetic at all.
Sources. Thomas M. Cover and Joy A. Thomas, Elements of Information Theory (Wiley, 1991), for the data-processing inequality, which is the exact form of the claim that applying a function to data cannot increase the information the data carries. Eugen Slutzky, “The Summation of Random Causes as the Source of Cyclic Processes” (Econometrica, 1937), for the demonstration that smoothing independent noise manufactures waves convincing enough to be mistaken for a cycle. Richard W. Hamming, Digital Filters (Prentice-Hall, 1977), for the weight-vector view of any smoother and for delay and noise gain as properties of that vector rather than of the name on the menu. Abraham Savitzky and Marcel J. E. Golay, “Smoothing and Differentiation of Data by Simplified Least Squares Procedures” (Analytical Chemistry, 1964), for least-squares smoothing filters and for where negative weights come from. Frederick R. Macaulay, The Smoothing of Time Series (National Bureau of Economic Research, 1931), for the first systematic account of what moving averages do to an economic series, written before anyone was selling them.
An indicator is arithmetic on numbers you already have. That single sentence fixes what it can do, what it must throw away, and how late it will be, and all three are computable from the formula without a single backtest. The fourth question is the one this lesson only tested rather than explored: whether the line is still moving after the bar that carries it has closed. Lesson 49 takes that up as its whole subject, because an indicator that revises its own history does something worse than mislead you in real time. It produces a record of signals that were never available, and every measurement you make on that record — hit rate, expectancy, drawdown — is a measurement of a strategy nobody could have traded.
Markets Have Modes
The efficiency ratio, which turns out to be one of the few statistics that sees the order of its own window.
Read Lesson →What a Timeframe Is
The rule that makes the bars, before any indicator is computed on them.
Read Lesson →Correlation
The effective count that turns three lines on a chart into one and an eighth readings.
Read Lesson →Repainting
What happens when the value drawn at a bar keeps moving after that bar has closed.
Read Lesson →Educational only. Trading involves substantial risk of loss. Not financial advice. Past performance does not guarantee future results.
💬 Discussion (0 comments)
Loading comments...
Ready to Trade with Signal Pilot?
Apply your trading education with professional indicators and real-time market analysis tools.
Back to Signal Pilot →