—

Risk Architecture & Market Regimes

Adaptive Markets: Financial Evolution at the Speed of Thought

Andrew W. Lo · first published 2017

Lo's answer to the efficient-markets fight: markets are neither always efficient nor always irrational, they are ecosystems. How predictable prices are depends on who is competing and how the environment is changing, so an edge that works today can fade tomorrow.

The big picture

For decades finance argued about two camps. The efficient-markets camp says prices already reflect available information, so there is nothing systematic to exploit. The behavioral camp lists the ways people misjudge risk and says prices drift away from value. Lo's core bet is that both describe the same system at different moments. He calls it the Adaptive Markets Hypothesis: investors are not optimizers but adapters who use rules of thumb (heuristics) that worked in past environments. Competition, adaptation and selection, the same forces that shape biological species, decide which of those rules survive. Efficiency is therefore not a fixed property of a market; it rises when many capable players compete for an opportunity and falls when the environment changes faster than behavior can follow.

Why it matters now: an AI-driven market has changed quickly. Index weights are concentrated in a handful of names, systematic and passive money reacts to the same inputs, and relationships that held for years (bonds hedging stocks, momentum paying steadily, low volatility being cheap) have shifted more than once since 2020. The book does not say which environment comes next. It says the useful question is not whether a market is efficient, but how efficient it is right now, for this strategy, and whether that has just changed.

Efficiency is a moving target — predictability rises and falls with the market's ecology AC1 = corr(r_t, r_t−1) over W = 60 days  ·  random-walk band ±2/√W = ±0.26 ROLLING AC1 OF ONE EXAMPLE SERIES RANDOM WALK TRENDING TURBULENT +0.26 0 −0.26 day 61 380 590 800 SAME STATISTIC, THREE ENVIRONMENTS inside the band: little to exploit outside it: an edge exists — until it is crowded synthetic EXAMPLE data from the Applied Pack, not a real security THE ADAPTIVE LOOP EDGE FOUND CROWDING EDGE DECAYS ADAPTATION competition sets the pace FOUR GAUGES ON YOUR OWN SERIES AC1 · outside ±2/√W VOLx · vol vs its median, >1.5× dCORR · correlation moved >0.30 dSHP · rule Sharpe fell >1.0 2+ flags = re-check assumptions
Predictability is not a fixed property of a market. It rises when an environment rewards a behavior and falls as competitors crowd in or conditions change; the gauges show when your own series has moved.

The 3 strategic pillars

  1. Efficiency is a moving target

    How predictable prices are depends on the number of competitors, the size of the opportunity and how fast participants adapt. None of these is constant, so the degree of efficiency changes over time.

    Lo's own measurements show it: the first-order autocorrelation of US stock index returns (how much one period's return tells you about the next), computed over rolling five-year windows, has drifted between clearly positive and negative values across more than a century. A random walk would keep it near zero. The pack applies the same gauge to your series with a band of ±2/√W, about ±0.26 for a 60-day window; readings outside the band say the series currently behaves unlike a random walk.

  2. Heuristics fit environments, not markets in general

    People decide with rules of thumb that are good enough rather than optimal (Herbert Simon's term is satisficing). A rule that was well adapted to one environment turns into a so-called bias when the environment changes. Loss aversion, herding and overconfidence are, in this view, adaptations out of place.

    The practical form is calibration drift. A stop-loss distance, a position size or a rebalancing band is set on the volatility of the recent past. When volatility doubles, the same rule does something different. The pack's volatility gauge divides rolling volatility by its own median over the last 250 days and flags readings above 1.5× or below 0.67×: the point where rules tuned on the old level deserve a new look.

  3. Edges die when crowded

    A profitable pattern attracts capital. As more money runs the same trade, the return shrinks and the positions start to move together, so when one holder is forced out the others are hit at the same time.

    Lo's work with Amir Khandani on August 2007 documents the pattern: many quantitative long-short equity funds held similar positions, and forced selling by some caused sharp losses across the group within a few days, while the broad market barely moved. Two measurable traces of crowding are a rolling Sharpe ratio (return per unit of volatility) that falls below its own history and correlations between assets or strategies that jump. The pack tracks both on your data.

What a Closelooknet reader does with it

The working use is a regular check that the environment your approach was built in still exists. Instead of asking whether a strategy works, ask whether the conditions it was tested in are still present: is the series still as predictable (or unpredictable) as it was, is volatility in the same range, do the assets still move together the way they did, is a simple rule still earning what it used to? The pack answers those four questions on your own price series and marks the days when two or more of them change at once. The mistake it prevents is the slow one: running a rule calibrated on a past environment long after that environment ended, and reading the losses as bad luck.

The bridge to the Closelooknet approach

Closelooknet already reads markets as regimes rather than as a fixed state. The Market Regime framework scores the environment as green, yellow or red (glossary: Market Regime), Money Temperature tracks how hot capital flows are running, and Regime-Specific Baselines judges each structural indicator against what is normal for the current regime, which is Lo's point in operational form: the same reading means different things in different environments. The Factor Regime ratio and the Regime Signature quadrants show when leadership and trend quality shift. On the shelf, Trend Following is an adaptive strategy that pays in some environments and bleeds in others, and Misbehaving covers the behavioral side Lo sets out to reconcile.

Action-Kit — from theory to practice

Tooling & data

What you needWhere to get itCost
Daily price history for YOUR series Input for the monitor: one or two columns of closing prices; the pack ships only synthetic EXAMPLE data Stooq (free CSV downloads) or your broker's export Use adjusted closes and at least 332 daily prices with the default settings. Free
Factor return histories Run the Sharpe-decay gauge on published factor returns (momentum, value, size) to see how long-known edges have waxed and waned Kenneth R. French Data Library, Dartmouth Tuck School of Business Daily and monthly files; convert the return column to a cumulative index before feeding it to the monitor. Free
Macro and rates series Second series for the rolling-correlation gauge, e.g. a Treasury yield or a credit spread against your equity series FRED, Federal Reserve Bank of St. Louis Free

The formulas

  • Rolling first-order autocorrelation (efficiency gauge)

    AC1_t = corr(r_s, r_s−1) for s = t−W+1 … t; flag if |AC1_t| > 2 / √W
    • r_s = ln(P_s / P_s−1) — log return
    • W — rolling window in periods (default 60)

    The ±2/√W band is the approximate 95% range under a random walk; volatility clustering makes the true band somewhat wider.

  • Variance ratio

    VR(q) = Var(r_t + … + r_t−q+1) / (q · Var(r_t)) ≈ 1 + 2 · Σ_{k=1}^{q−1} (1 − k/q) · ρ_k
    • q — aggregation horizon in periods (default 5)
    • ρ_k — autocorrelation at lag k

    The test Lo and MacKinlay used in 1988: 1 = random walk, above 1 = trending, below 1 = mean-reverting.

  • Volatility regime ratio

    VOLx_t = σ_W,t / median(σ_W over the last L periods); σ_W = stdev(r) · √252
    • W — volatility window
    • L — long lookback (default 250)

    Flag above 1.5 or below 1/1.5. A series that has been turbulent for a full lookback looks normal to itself.

  • Rule Sharpe decay

    dSHP_t = SR_W,t − median(SR_W over L); SR_W = mean(s) / stdev(s) · √252; s_t = sign(P_t−1 / P_t−1−M − 1) · r_t
    • s_t — daily return of a simple M-day momentum rule, decided with yesterday's close
    • M — rule lookback (default 20)

    Flag when dSHP < −1.0: the rule earns clearly less than it used to. The rule is a probe of the environment, not a strategy.

Applied Pack · free members

Lo Adaptive Markets Pack

Your price series in, the environment made visible: four rolling gauges (autocorrelation, volatility regime, correlation shift, rule Sharpe decay) that flag when a market's ecology has changed. Software for your own research, never signals.

  • Lo_Regime_Monitor.xlsx — Monitor sheet with live formulas for rolling AC1 and its random-walk band, volatility vs its median, rolling correlation shift, a momentum rule's rolling Sharpe and its decay, four flags and a SHIFT/STABLE state with a 3-day confirmation rule; Summary sheet with the latest reading and history counts; Charts sheet; amber input cells for up to 1,500 prices
  • lo_regime_monitor.py — stdlib-only Python with the same logic plus the variance ratio VR(q), CSV in (one or two price columns), a dated table of gauges, flags and state changes out
  • prices_sample.csv — 800 synthetic EXAMPLE prices with three built-in environments (random walk, trending, turbulent and mean-reverting), not real securities
  • README.txt — the idea in one paragraph, every gauge and input explained, how to run it on daily or weekly data, limits, and the educational-use disclaimer

Pack security

Macro-free Excel · plain-text Python you can read before you run it · no installers, no network access — the code works only on files you provide. Served only from closelook.net; we never distribute through download portals or email attachments. How to verify in 30 seconds →

SHA-256 e093aeb063147f4d87d386bf59b9fc669c8a94300e3c311a2d913c22afb5d4ef

Independent scan report — VirusTotal, 70+ engines ↗

The pack is a free-membership download — no card, free forever. Membership also delivers the Daily Pulse and Weekly Signal to your inbox.

Join the Look — free →

Closelooknet publishes a market diary, not investment advice. This condensed read restates the book's ideas in our own words for education — for the author's full argument, go to the source.