White noise and random walks — the null model every strategy must beat
▸ Pretest — guess, even if you don't know
A friend shows you a price chart with a clean uptrend, a double bottom, and a support level the price has bounced off three times. What can you conclude?
White noise: the sound of no structure
White noise is the simplest time series: iid with mean 0 and constant variance . Its ACF (D1-01) is zero at every lag — a flat line inside the noise band. Why care about the most boring series imaginable? Because it is the null model: "there is no linear structure here at all." Every claim of predictability in returns is implicitly a claim that returns are not white noise, and D1-01's Fact 1 says that for the direction of returns, white noise is uncomfortably close to the truth.
Random walk: white noise, accumulated
A random walk is the running sum of white noise:
The two models are one differencing apart: summing white noise gives a random walk; taking first differences (np.diff) of a random walk gives back white noise. Map this onto markets and you get the working approximation of this whole track: prices behave like a random walk; returns behave like white noise. (For prices the sum is really of log returns, so the walk lives in log-price space — the compounding detail from B1.) The approximation is not exactly true — the deviations are the interesting part below — but it is shockingly close for liquid markets.
Why a random walk looks trendy
Here is the trap the pretest set. A walk is a running sum, so a lucky streak of positive shocks does not average away — it gets baked into the level and stays there until an equally lucky negative streak undoes it. Long excursions above or below the start are the norm, not the exception. Your eye reads those excursions as trends, the local extremes as support and resistance, and the pattern-hungry brain does the rest. None of it predicts the next step, because the next step is a fresh coin flip by construction.
This is the statistical backbone of chart-pattern skepticism: the burden of proof is on the pattern, and "it looks like it works on this chart" cannot meet that burden, because random walks look like that too.
Variance grows with time
Independent shocks add in variance (the A1-04 rule with zero covariance terms):
Three things fall out of this one line. First, the is the same square-root-of-time scaling you used to annualize volatility in A2-02 — that convention silently assumes returns are uncorrelated, i.e. white noise. Second, forecast uncertainty grows without bound: a random walk has no anchor to revert to, so a 1-year-ahead price forecast is roughly times as uncertain as a 1-day-ahead one. Third, since is a sum of many iid shocks, the CLT (A1-07) says its distribution is approximately normal even if individual shocks are not — though fat-tailed shocks converge slowly, so short-horizon returns stay visibly fat-tailed.
The testable implication — and where edges live
If prices were exactly a random walk, then no function of past prices — no moving average, no pattern, no indicator — could have positive expected profit before costs. That is a falsifiable claim, and researchers have tested it: Lo and MacKinlay's variance-ratio tests rejected the strict random walk for US stocks (historically, small positive autocorrelation in index returns; more structure in the cross-section). So the honest summary is: prices are approximately a random walk, and the deviations are small, unstable, and fight against costs.
That sentence is the job description of a quant. Volatility clustering (D1-01 Fact 2), weak momentum, mean reversion in spreads — every systematic edge is a specific, measured deviation from the random walk null. So the first question for any strategy pitch, including your own: which deviation from the random walk does this exploit, and what is the evidence that deviation exists? If there is no answer, the strategy is trading the patterns a coin flip makes.
Try it
Build a walk from its steps — the deterministic core of every simulation you will write in this track.
Implement random_walk_from(increments): the walk that starts at 0.0 and then takes the given steps, so element t of the output is the sum of the first t increments. The output has length len(increments) + 1, and np.diff of the output recovers the increments exactly.
⧉ Review cardDefine white noise and explain why it is THE null model for returns.
⧉ Review cardHow are white noise and a random walk related, and how do prices and returns map onto them?
⧉ Review cardHow does the variance of a random walk grow with time, and what does that connect to?
⧉ Review cardWhy does a random walk chart look trendy even though it is unpredictable?
⧉ Review cardIf prices were exactly a random walk, what follows for trading — and what is the honest empirical status?
Explain it
Explain to a chart-reading friend, in plain words and no formulas, why the patterns on a cumulated-coin-flip chart look identical to the patterns on a stock chart — and what kind of evidence would actually distinguish a tradeable pattern from a coincidence. Say it out loud or write five sentences.
Predict before the next lesson
Next: stationarity and unit roots (D1-03). Before then, predict: you generate two independent random walks and regress one on the other with the tools from A2-06. What R-squared do you expect — and why might the answer be disturbing?
◈ Calibration check
Could you define white noise and a random walk, state how prices and returns map onto them, and derive why the variance of a walk grows linearly in time?
1 = guessing · 5 = could teach it
⏻ End of lesson
Mark it read to book its 5 review cards into your deck.
Sources & further reading
- bookCampbell, Lo & MacKinlay (1997), The Econometrics of Financial Markets — §2
- bookMalkiel (2019), A Random Walk Down Wall Street, 12e