Backtesting It

Leverage-timing rules on US equities, tested over a century of survivorship-bias-free data and charged what leverage actually costs.

Three configurations of one index

Each column carries a base exposure and a stack of rules. Every rule adds to or takes from that exposure for the day — +0.15, −0.05 — the increments are summed, and the total, bounded by the cap and the floor, is what the book holds.

Boxes marked like this are the ones that size the book.

1926-07-01 โ†’ 2026-07-31 ยท 26,296 trading days
1926-07-01 โ†’ 2026-07-31 ยท 26,296 trading days

Drawdown from the prior peak

Equity exposure carried, day by day

Gold exposure carried, day by day

Performance & risk

Year by year: the difference in annual return

minus
Calendar-year return of the first configuration minus the second, in percentage points, over the period selected above. Green where the first did better, red where it did worse. A strategy that wins by a lot in a few years and loses a little in most looks very different here from one that wins a little almost every year, even when the two end in the same place. Faded bars are years the period only partly covers.

Rules

Risk targeting divides a volatility target by an estimate of volatility, and moves the book that fraction of the way there, adding the difference to the book: a leg at 30% whose target asks for 2.0× adds +0.30. The legs add like every rule here, so the three that ship — 30% each — come to 90% of a full targeting effect rather than all of it, leaving a tenth of the book untargeted on purpose, and switching one off leaves it two thirds targeted: a real setting rather than a broken one. That is also the reason to run more than one: exposure is target over estimate, which is convex in the estimate, so splitting the effect between several is not the same as targeting their average, and they disagree most exactly when the disagreement is informative. Two of the three read realised volatility over 20 and 40 sessions; the third does not read realised volatility at all, which is the point of having it.

Which window? Swept across targets and read off where each one delivers the same realised volatility — because exposure is target over estimate, which is convex, so a noisier estimate buys more leverage at the same target and comparing at one target compares height rather than skill.

On the three-month tail the short window wins, and does so in both halves of the sample: at 20% realised volatility and the 8bp charged here, 20 days scores 0.587 over the full century and 0.672 over the last twenty-five years, against 30 days' 0.582 and 0.650, 40 days' 0.566 and 0.665, and 80 days' 0.543 and 0.609.

On the six-month tail the question dissolves. The same sweep, same cost, judged on CAGR over the 95% six-month shortfall, puts 20, 30, 40 and 60 days and blends of them inside 0.008 of each other over the century and 0.018 over the last twenty-five — and it reorders them between the two, 30 days nominally first historically and 40 days nominally first recently, by margins of one and two thousandths. Read the same curves off at 16% or 24% volatility instead and they reorder again.

Two things do that, and they compound. Costs penalise the short windows, which trade most: 20 days turns the book over 7.9 times a year against 60 days' 2.4, and moving from no cost to 8bp halves the spread between estimators. And a six-month tail is a blunter instrument than a three-month one — over half a year the big drawdowns arrive whatever is sizing the book, so differences in short-horizon risk management wash out. Each change halves the spread; together they leave nothing to choose from. On that measure the sensible tiebreaker is turnover, which favours the 20/40/60 blend at 3.9 times a year over the 20-day window's 7.9 for the same score.

Four of the estimators are trailing realised volatility over different windows. The fifth, credit-implied, is not computed from the market's returns at all: it is Moody's Baa yield over the ten-year Treasury, mapped onto a volatility by a regression refit on an expanding window, so the coefficients in force on any day come only from pairs whose outcome was already known then. It forecasts volatility worse than a realised window does, and is worth having anyway, because it turns exposure over far less often. Whether that trade is worth making depends entirely on the cost assumption, as the sweep above shows: at 8bp credit is the worst of them and at 50bp it is the best. It reads from 1988, once the spread has enough history behind it to fit.

Trend boost adds to exposure while a fast line is above a slow one — +0.20 per leg by default, so the three staged legs walk the book +0.20, +0.40 and +0.60 as the price clears its average by 2%, 3% and 4%. Set the fast line to 1 day and it is the price itself — the conventional "above its 200-day average". Set it longer and the rule becomes a moving-average cross, the golden and death cross, because that is the same rule with the fast side smoothed. All three legs open on the price against the same 200-day line with different buffers, so exposure walks up in steps rather than jumping the whole way at one price.

The buffer is the part that matters: the fast line must clear the slow one by that much to switch the leg on and fall as far below to switch it off, and in between the leg holds. A bare crossing is the most whipsaw-prone shape available — it flips about five times a year here and turns the book over six times.

Smoothing and buffering both cure that, and they are not equally good. Measured over the full sample at 2.00×, each cuts flips from 5.4 a year to roughly one; the question is what the cure costs. At matched average exposure and with costs charged, a 2.5% buffer on the price keeps an edge of +3.4 points of CAGR over a flat book, while a 50/200 cross with the same turnover keeps +1.3. Smoothing the fast side to 20 days gives +2.3, to 50 days +1.3, to 100 days +1.3 — the edge falls away as the fast window lengthens, and it does not do that when the buffer widens instead (+3.5 at 1%, +3.4 at 2.5%, +3.3 at 5%).

Which average, and how many? Swept at a matched peak exposure and with costs charged, the conventional 200-day line is the best single choice on this sample and in every sub-period tried: at a 2.00× peak it beats a flat book carrying the same average exposure by +3.4 points of CAGR over the full century and +2.6 since 1990, against +3.0 and +1.6 for a 150-day line and +2.8 and −0.3 for a 100-day one. The short window is the only length that fails outright, and it fails in the modern half.

Running two legs instead of one does not earn more. At the same peak exposure the average edge across pairs is the same as across single lines — +3.0 against +3.0 over the full sample — and what changes is the dispersion: the spread between the best and worst choice falls from 0.73 points to 0.43 over the century, and from 2.9 to 1.6 since 1990. Splitting the rule does not make it better, it makes the choice of length matter about half as much. That is why the default is split into legs, and it is worth having when the length came out of a sweep in the first place.

The legs here stage by buffer on one 200-day line rather than by length, and that is measured too: against pairs staged by length at a 3% buffer, buffer-staging came out fractionally ahead on both windows (+0.75 against +0.71 over the century, +0.64 against +0.59 since 1990) at slightly lower turnover. Fractionally, on differences of a few hundredths of a point — the honest summary is that the two stagings are equivalent and the default is not the thing to spend effort on.

The reason is what each one filters on. A buffer filters by size: it ignores moves too small to mean anything, and a decisive move still reaches the book the day it happens. A cross filters by time: a 50-day average lags the price by about twenty-five sessions, so every signal arrives late, and lateness is the expensive failure in a trend rule — you de-lever after the fall and re-lever after the recovery. Both destroy the signal if overdone, which is why a 12% buffer is worth only +0.5; the buffer simply has a far wider range in which it works.

Dip boost buys short-term weakness: the close sits a set distance under a short average and the session itself fell sharply. The hold is flat and re-arms are not allowed — a trigger inside a running hold is ignored rather than restarting it, so the hold length means what it says. Three legs test three depths — 2% under the 15-day average on a 1% down day, 1.4% on 0.7%, 0.8% on 0.4% — each worth +0.15, so a deep dip fires all three and a shallow one only the last. All are gated to uptrends, because running the same test below the 200-day average does not shrink the edge, it inverts it.

Two weekend rules were tested and left out, and they are worth a paragraph because of how they failed. Both read the last session of the week — the last session, not Friday, since a week that ends on Thursday for a holiday still ends — and both hold for one session, coming off at Monday's close. One cuts to 0.90× after that session falls more than 0.7%; the other lifts to 1.10× after it rises more than 0.7%.

In the raw, both signals are among the strongest on this page. Over the century the session after a week-ending fall of 0.7% averages −0.44% against a −0.09% baseline, at t = −4.9; after a rise of 0.7% it averages +0.18%, at t = +5.7. That is weekend momentum, and it holds above and below the 200-day average alike. It is also gone:

era after a 0.7% fallt after a 0.7% riset
1926–1951−0.54%−3.3 +0.31%+2.2
1952–1969−0.74%−3.3 +0.41%+6.5
1970–1989−0.66%−4.1 +0.46%+7.2
1990–2009−0.22%−1.7 +0.17%+1.7
2010–2026−0.10%−0.7 −0.04%−0.4

Excess next-session return against each era's own week-ending sessions, so a change in the market's drift is not what is moving. The effect is enormous through the 1980s, halves in the 1990s, and by the 2010s both legs read zero and the up leg has changed sign. The weekend effect entered the literature in the late 1970s; this is what an anomaly looks like on the other side of being published.

Costs finish what decay started. Each rule fires about nine times a year and pays a round trip every time, which at 8bp is 10–14bp a year against a gross edge of about the same size — the break-even cost is 7–9bp for both rules in the modern era, and raising the size does not help because it scales the edge and the round trip together. At matched exposure the de-levering leg is worth +0.23% of CAGR over the full sample, +0.03% from 1990 and −0.02% over the last twenty-five years; the levering leg is worth −0.02%, −0.11% and −0.27%. Added to Every rule on they take 0.35% of CAGR off the last twenty-five years between them. Everything either of them ever earned was earned before 1990.

Capitulation waits. A volatility spike on its own says the fall is not over, so the leg arms only once volatility has peaked above a threshold and come back under a lower one — panic, then relief. It pays out on a straight line: the boost on the day it fires, decaying to nothing over the following months. Re-arms are allowed here, so the opening boost is a minimum in a long crisis rather than a maximum: a second capitulation inside a crisis is new information about a fall that has not finished, which is the opposite of what a second shallow dip means.

That line replaced a ladder of individually set rungs, and the replacement is worth a word because it changed almost nothing. Both shapes find the same episodes and carry within half a percent of the same average exposure, and over the full sample the line scores fractionally better — a tenth of a point of CAGR, half a point less drawdown — with the sign flipping between periods. The reason is the rebalance band: at the default 0.08×, a boost of +0.15 decaying over 120 sessions moves the book by about 0.001× a day, so almost none of the slope ever reaches the book. Both shapes are, in practice, a jump to the boost and a step back at the end. Narrow the band and the shape starts to matter; leave it and the card will say so under the switch.

All three legs read VIX and differ only in the size of the spike: A arms once VIX has been over 32% in the last twenty sessions, B over 36%, C over 40%, and each waits for its two-day average to fall under its ten-day. Each is worth +0.15, so a real panic stacks to +0.45; a smaller scare fires A alone. VIX begins in 1990, so the rule is dark for the first sixty-four years of a run starting in 1926 — the card says so under the switch. Either leg can be switched to realised volatility, which covers the whole sample.

The valuation tilt is the slow one. It moves exposure by up to the swing either way by where a measure sits in its own trailing twenty years — +0.15 at the cheapest end of that range, −0.15 at the dearest, in proportion between. Ranking rather than using the level is what makes it answerable: it asks whether the market is dear by the standard of the regime it is in, and a percentile is bounded, so no reading can ask for unbounded exposure. Three measures are on offer. The total-return CAPE yield is an earnings yield. Shiller's excess CAPE yield is the same thing with the real ten-year Treasury yield netted off, so it moves with the rate regime rather than comparing today against the 1950s — at the end of 2021 the first called the market dearer than 98% of the preceding twenty years and the second called it middling. The third is not a yield at all: the share of the investable pile already held in equities, from the Federal Reserve's financial accounts, inverted so that a high reading still means cheap. A and B open on the first and the third, because those two are the least alike.

A fourth measure was tested and left out. PEG — price/earnings over earnings growth — is the obvious way to let growth into a valuation measure, and it fails here for a structural reason rather than a statistical one. Ten-year real earnings growth is negative in about a quarter of months, and a ratio whose denominator changes sign cannot be ranked: a high multiple divided by shrinking earnings sorts as the cheapest reading on record. Measured over this sample, that tilt asks for 1.07× while earnings are shrinking and 0.98× while they are growing, and through 1930–1933 it sat at 1.09× — near its maximum, into the worst fall in the sample. Built instead on the total-return earnings base, whose growth never turns negative, PEG is well behaved but ranks 0.75 with the CAPE yield percentile already here, so it is a repackaging rather than a second opinion. The rankable version adds nothing the card does not have; the version that would add something is not rankable.

Read the equity-allocation measure with its limits in view. It is the strongest of the three at long horizons and the least redundant, but its denominator is debt, so a fall in corporate leverage raises it without anyone buying a share; it is quarterly, and lagged two quarters here because the release lands about ten weeks after the quarter it describes; and it reaches back to 1960 rather than to the start of this sample.

Keep the size of all this in proportion. Measured at a swing of ±0.10, the tilt moved exposure by a tenth at the extremes, and across every measure tried — including the ones that were rejected — full-sample CAGR moved by less than a third of a point either way. The default is now ±0.15. The valuation tilt is the slowest and smallest thing on the card, and the differences between measures are smaller still.

The tilt's gate is not decoration. Do not read this as a bottom-buying rule: valuation gives back most of its edge in a panic, because a market that has just fallen is cheap by construction, and ungated it levers into crashes. Standing aside while VIX is high is what stops a measure with no timing in it from being used as one — and before 1990 there is no VIX and therefore no gate, which is worth holding in mind when reading the early decades.

Fed hikes is on in Config C and in what “Restore default parameters” applies. Each leg takes 0.10 off the book while the Fed has raised the funds rate by more than a threshold over its window: A by more than 50bp in six months, B by more than 100bp in twelve, each taking 0.15 off, so a hiking cycle that has run long enough to trip both takes 0.30. The rule reads the monthly average of the effective rate, not announced moves, so a hike lands across the month it was made and the next. The rate starts in 1954, so the rule has nothing to say before 1955.

It is here because it was the one survivor of thirteen macro signals tried against the years Config C trails the market by most — oil shocks, the Sahm unemployment rule, an inverted yield curve, industrial production and manufacturing jobs in place of a PMI (ISM's is not free to use), credit spreads, housing starts, jobless claims, consumer sentiment, accelerating inflation. The economic series turn after the market has already fallen, so cutting on them sells near the bottom and costs one to two and a half points of CAGR a year. Oil works after 1976 but arrived after the peaks it would have needed to warn of. The curve and the Fed worked before 1976 on their own; only the Fed survived as an overlay after it.

Within Every rule on, at the same volatility, the two legs are worth +0.41 points of CAGR over the century, +0.31 before 1976, +0.45 after it and +0.12 since 2000 — the last quarter century is where the inflation rule below does more of the work. Its timing is real: shift the same on/off pattern at random through the sample and the real one beats all twenty shifts. The thresholds matter less than the size of the cut: faster sets (25bp in three months, 50bp in six, 75bp in nine) and "or more" in place of "more than" all landed within 0.04 points of each other. What it cannot do is tell a hike into a recession from a soft landing. It earns in 1969, 1973 and 1980–81, and it pays in 1989, 1995 and 2006, when the Fed stopped without a recession and the rule was still off for the rally. A harder version — exposure capped at 100% instead of trimmed — earned more before 2000 and nothing after, which is why this one only trims.

Making the legs wait for a sign that the Fed is tightening into a late-cycle economy, rather than normalising after a recession, was tested and is not offered: only if inflation is rising — 12-month inflation at least a point above its lowest reading of the last twelve months — or only if oil is up 20% or more in 12 months. With two legs at −0.20 on Every rule on, both kept the recession years — 1974, 1980, 1987, 2000 — and cut the soft-landing losses: with oil, 1989 and 1995 cost about five points each instead of ten, and 2023 nothing instead of five. At the same volatility the oil version was worth +0.52 points of CAGR from 1976 and since 2000, on only 7% of days, against +0.52 and +0.23 for the same legs with no condition; the inflation version, at a point above the 12-month low, +0.65 and +0.38, and it beat all twenty random shifts of its own timing in every period tested. Measured against a year earlier instead of the recent low, or at half a point or none, inflation landed within a tenth of a point of that: the effect does not hang on the exact definition. Oil says nothing before 1973, when its price was set rather than traded, and both conditions rest on the handful of hiking cycles since then. The inflation half of that finding became the rule below, which acts on its own; the hike legs stay unconditional.

Inflation rising is the same inflation test as a rule of its own: while 12-month inflation is at least a point above its lowest reading of the last twelve months, take 0.15 off the book, whatever the Fed is doing. It is on in Config C. Within Every rule on, at the same volatility, it is worth +0.13 points of CAGR over the century, −0.08 before 1976, +0.34 after and +0.49 since 2000, on about a third of days. Its best years are the late inflations and the crashes that followed them (1987, 1970, 1974, 1978); its worst are the recoveries where inflation came back with growth (1950–51, 1975, 1991, 2021). A first result rather than a tested one: it has not been through the placebo the Fed legs passed.

The gold sleeve is the one rule that allocates rather than levers. A minimum weight, 15% by default, held every day beside the equity book, funded from the same cash line, never rebalanced through the no-trade band — the weight is the weight, plus whatever the rotation below adds while gold is winning. Its case is the correlation, not the return: over 1975–2026 gold returned 6.1% at 19.1% volatility, which is a worse asset than the equity it sits next to, and ran a correlation of −0.00 against it, which is the point. It gained 25.6% in 2002 against equities' −20.4%, and 4.3% in 2008 against −36.5%.

On an unlevered book that is worth having, and the size matters less than you would think: at 100% equity, sleeves of 10%, 20% and 30% lift Sharpe from 0.545 to 0.560, 0.565 and 0.569 while taking the worst drawdown from −54.6% to −50.7%, and the 2000s go from losing money to making 3.1% a year. Past about 30% it starts costing more than it pays.

On a levered book it is not free, and the card shows you why. The sleeve widens the gross position: every rule on with a 20% sleeve carries 1.86× gross rather than 1.66×, and the extra notional is financed like any other. Over 1975–2026 that buys half a point of CAGR and 0.014 of Sharpe, and it makes the worst drawdown deeper — −56.0% against −50.7%. Diversification and leverage pull against each other here, which is exactly the trade the gross figure on the card is there to make visible.

Gold against equities is the one rule that moves the diversifying sleeve rather than levering. Divide the gold price by the equity index and compare the ratio to its own trailing average — 350 sessions by default, about sixteen months. Above it gold is winning and the sleeve gets 15 more points of the book on top of its minimum; below it equities are winning and the sleeve sits at that minimum. Nothing is added to equities: tried at +0.15× while they win, it left CAGR where it was and made the worst drawdown three points deeper, because the trend legs already do that job. The sleeve is the only weight on this page that trades, and it pays for it.

Which is why it carries a buffer, the same hysteresis the trend legs use: the ratio has to clear its average by buffer to tilt toward equities and fall as far below it to tilt toward gold, and in between the sleeve holds whatever it already was. Until the first decisive crossing there is no tilt at all — the sleeve sits at its minimum rather than guessing. On the bare crossing the rule changes its mind six times a year; at the 2% that ships it does so 1.6 times, which takes turnover from 1.04× a year to 0.60× and the cost from 8bp to 5bp.

About half of what the buffer is worth is that saved cost and the rest is not whipsawing. Against the matched control the buffer adds +0.23% of CAGR over 1976–2026, +0.24% from 1990 and +0.38% over the last twenty-five years, and the sweep is flat-topped rather than pointed: every buffer from 0.5% to 3% beats no buffer, and a longer average does not make it redundant — on a 600-session average the buffer is worth more, not less. Read one thing with care: at this width the rule makes fewer than eighty decisions in fifty years, so this is a result resting on few crossings, and the wide end of the sweep wanders for exactly that reason.

As it ships — a 350-session average, 10 points of the book, a 2% buffer — the whole rule is worth +1.01% of CAGR over 1976–2026, +0.73% from 1990 and +0.99% over the last twenty-five years, on +0.040, +0.027 and +0.034 of Sharpe. That is about half what the 20-point version below earns, which is the point of the next few paragraphs: the effect scales with how much of the book the rule is allowed to move, and 10 points is a deliberately modest setting for a rule that rests on this few decisions.

There used to be a second field tilting the equity multiplier the opposite way, and it is gone. Against a matched control it was worth −0.8% of CAGR while the sleeve field was worth +1.3%: cutting equity exposure on this ratio is a worse way to do it than cutting it on the equity trend, which trend A and B already do. What it bought was drawdown — three to twelve points off the worst one — and that is recorded here rather than left as a field nobody should set.

The control is the whole argument here. A signal that says equities 59% of the time swings a 20% sleeve between 0% and 40% and therefore averages 16.4% — and gold returned 7.6% against equities' 12.1% over this window, so simply holding less gold looks like skill. Every figure below is against a fixed-weight book solved to the same average equity exposure and the same average sleeve, which leaves timing and nothing else.

On that basis the two halves pointed in opposite directions. Both measured at 20 points and no buffer, which is twice the tilt the rule now ships with — the comparison is between the two halves, not a statement of what the default earns:

tilting1976–2026 1990–20262001–2026
the sleeve, ±20pp+1.25% +1.07%+1.46%
equities, ±20%−0.79% −0.58%−0.94%
both, as first asked+0.43% +0.43%+0.39%

CAGR against the matched control, monthly signal. The sleeve half carries the rule and the equity half took most of it back, which is why only the sleeve half ships. It is not redundancy with the trend legs: switch those off and the equity tilt still loses 0.65%.

Three things say the sleeve half is signal rather than luck. It survives a placebo: take the real signal and shift it circularly in time, so the share of days in equities, the flip rate and the autocorrelation all survive and only the alignment with returns is destroyed, and the true signal beats twelve such shifts in all three windows — they average −0.5%. It is not a lucky window: every average from six months to forty is positive in every window, and longer is better, not worse. And it scales monotonically with the tilt — 5pp, 10pp, 15pp and 20pp give +0.35%, +0.61%, +0.91% and +1.25%, which is what a real signal does and an artefact usually does not.

Keep the size honest. It fires about six times a year, is on for under half the sample because gold starts in 1975, and the whole effect is a fifth of a Sharpe point at best. What it is not is a market-timing rule: it never leaves the market, it only decides which of two things the diversifying sleeve should be.

The sleeve is not timed twice, and that was tested. The two rules the equity book runs were asked of gold as well: boost the sleeve by 5 points of the book while gold is above its own 200-session average with a 2% buffer, and boost it 5 points for ten sessions when gold is above that average but sits 2% under its 15-session line and falls 1% on the day. Both read a gold price index rebuilt from the return series, both were charged, and both were read against a fixed-weight book matched on average equity exposure and average sleeve weight — without which a rule that simply holds more of a worse asset looks like skill.

rule1975–2026 1990–20262001–2026
gold trend, +5pp+0.13% −0.03%+0.04%
gold dip, +5pp for 10d−0.05% −0.05%−0.05%
both+0.07% −0.09%−0.02%

Nothing there. The dip rule is negative in all four eras, at every hold length from five sessions to forty, and whether it is gated to gold's uptrend, its downtrend or neither — which is itself worth noting, because on equities that gate is the difference between a rule and its inverse. The trend rule is flat: 100, 200 and 300 sessions all read the same, so do buffers of 0%, 2% and 5%, and its whole positive contribution is one era. Split at the decade it is +0.59% through 1975–1989 and then −0.23%, −0.11% and +0.10% — the gold bull market, not a rule.

The placebo settles it. Shift the gold price the rules read circularly in time, keeping the share of days on, the trigger count and the autocorrelation and destroying only the alignment with what follows: the real signal beats ten such shifts ten times out of ten over the full sample, but only four times out of ten since 1990. The equities-against-gold ratio beat its placebo twelve times out of twelve in every window, which is what a signal looks like. Neither gold rule ships.

It starts in 1975, and that is a legal fact rather than a data gap. Private gold ownership was illegal in the United States from 1933 until the last day of 1974, and the price was pegged until 1971 and managed through two devaluations after that. A sleeve that compounded the 1971–74 revaluation would be earning a return no market set, on an asset no American was allowed to hold. The series this page carries begins the first session of 1975, when both objections lapse at once.

The cap and the floor bind the finished sum, never an individual rule, and they always trade — they are risk limits, not preferences. The share of days each one binds is on every card, because a plateau in the exposure chart is worth being able to attribute.

Method

When the signal is read, and when it reaches the book

A rule reads the close of one session and the position it asks for is established at that close. The exposure earning the move from Friday's close to Monday's close was decided on Friday's close. There is no waiting day: this is a market-on-close order, and the only thing it assumes you cannot quite have is the official print at the moment you submit.

Which raises the two questions either side of it, and they are not symmetric. Being a day late is an execution problem. Set the fill to next close on any column and the order misses the close it read and waits for the following one. On every rule here at once it costs 0.15% of CAGR — these rules are slow, and a day of slippage barely touches them; which way it lands depends on what is switched on, because the dip legs would rather buy a fall a day after the price that told them about it. On the fast yardstick below it costs 2.50%, because a rule that doubles the whole book the day the price crosses one line depends on being prompt.

Being a day early is not an execution choice at all. It means reading the close of the session whose return you then earn, which requires the print before the session has happened. It is the error a backtest makes by accident when it indexes signal and return on the same day, and it is published here because it is worth seeing how much it flatters a rule.

All three numbers below are that same yardstick — a bare 50-day trend rule that doubles the book, which is not one of the rules on this page and cannot be selected in a column. It is here because it moves exposure further than anything the page offers, so it shows the error at its largest:

A day early — impossible 36.5% CAGR / 1.25 Sharpe
At that close — honest 14.4% CAGR / 0.54 Sharpe
A day late 11.9% CAGR / 0.45 Sharpe

The middle number is the real one, and a backtest of a moving average quoting a Sharpe above 1 is usually reporting the first without realising it. But the size of that gap is a property of the rule rather than of the mistake: it scales with how far the rule moves the book. The staged trend legs this page defaults to move exposure by a tenth rather than doubling it, and the same error is worth +0.07 of Sharpe to them.

It is not always a gift either. Reading the dip legs a day early makes them worse by 0.20 of Sharpe: they buy the fall they have just seen, at the price that told them about it, and eat what comes next.

Not every input is published. The traded returns, VIX and the valuation percentiles ship with this page, because their sources permit it. The Baa credit spread does not: FRED serves it with Moody's notice that their information may not be reproduced, repackaged or redistributed in whole or in part. What ships instead is the fitted volatility estimate, at month-end and rounded to a tenth of a point — roughly twelve numbers a year, from which the daily spread cannot be usefully recovered. It costs the rule nothing measurable, because the estimate's whole value is how little it moves.

Gold sits between those two cases. The LBMA Gold Price is published by its administrator with no registration and no key, and the licence it carries is for pricing things with the benchmark — marking a book, settling a contract, building a product — rather than a bar on reproduction. A backtest is none of those. What ships is a daily return series, not the price levels, and the citation travels with it.

Two engines, checked against each other. The page recomputes in your browser; the fallback charts and the research files were computed in Python. Those are two implementations of the same daily loop, so every build runs both over the default columns, every preset and a few dozen randomised configurations, and compares each one day by day. The returns agree exactly — not to a tolerance — and the published statistics to four parts in ten trillion, which is a real cross-check because pandas computes them on one side and a hand-written loop on the other.

The no-trade band sits between the rules and the book. Every rule has its say, the cap and floor bind, and only then is the finished number compared with what you are actually holding — if they are closer than the band, nothing trades. The position drifts on its own between trades, because holding through a day multiplies the position by one plus the market and your equity by one plus the portfolio, so a column at a fixed 1.50× wanders slightly rather than sitting at 1.50× forever.

Financing. Borrowed notional costs the risk-free rate plus 75 bps a year, and cash earns the risk-free rate. Trading costs are charged on the notional actually traded rather than per event: a rebalance that moves exposure by 0.15× at 8bp costs 1.2bp of the book, which is what a spread does to you.

Moving averages are computed on a total-return index rather than a price index, because the source publishes returns. Dividends make that index drift above a price index, which shifts crossings a little against the textbook version of the rule.

Periods. Every row in the table is the same run cut to that window, with equity recompounded from 1.0 on its first day. Decades therefore do not multiply out to the full period: each pays its own first-day entry cost, and a decade of a levered rule is not the same bet as a century of it.

Warm-up is per rule. A leg whose window has not filled has no reading and therefore no opinion, so it contributes nothing and the book holds what the other rules asked for. The same treatment covers a series that does not reach back to the start of the sample: VIX before 1990 is absent, not zero. Nothing is back-filled, and no rule sees a number that did not exist yet.

The valuation measures are lagged two months. Shiller's row for a month is built from that month's average price and from earnings reported later, so it cannot be read during that month. One month is the conventional allowance; two is used here because a measure built on ten years of earnings does not move enough in a month for the extra caution to cost anything, and it removes the argument.

These defaults were not found here. Most of these rules are conventional settings drawn from work on samples starting in the 1980s or later. This sample starts in 1926, which is four decades more than most of them have ever been tested against, and they are not re-tuned to flatter it.

What these results are not. Hypothetical, gross of tax, and with no allowance for the tracking error of actually holding the underlying portfolio. Past behaviour of a rule over a long sample is weak evidence about its next decade.

Data

Ken French Data Library — Fama/French 3 factors, daily. Mkt-RF is the excess return on the value-weighted portfolio of all CRSP US common stocks; RF is the daily risk-free rate. Kenneth R. French Data Library, Tuck School of Business at Dartmouth. Copyright Eugene F. Fama and Kenneth R. French.

Ken French Data Library — Portfolios formed on market equity, daily. 'Hi 10' is the value-weighted total return of the largest size decile of US stocks, reconstituted each June on NYSE breakpoints. Kenneth R. French Data Library, Tuck School of Business at Dartmouth. Copyright Eugene F. Fama and Kenneth R. French.

Cboe Global Markets — Daily close of the Cboe Volatility Index (VIX), the 30-day implied volatility of S&P 500 options, from January 1990. Cboe Global Markets, VIX historical data.

Robert Shiller, Yale — Monthly US stock market data since 1871: the cyclically adjusted price/earnings ratio on a total-return basis (TR CAPE) and the excess CAPE yield, which subtracts the real ten-year Treasury yield so the measure moves with the rate regime. Robert J. Shiller, online data, shillerdata.com. Stock market data used in "Irrational Exuberance", Princeton University Press.

Federal Reserve Economic Data (FRED) — Moody's Seasoned Baa Corporate Bond Yield Relative to Yield on 10-Year Treasury Constant Maturity Moody's Seasoned Baa Corporate Bond Yield Relative to Yield on 10-Year Treasury Constant Maturity, retrieved from FRED, Federal Reserve Bank of St. Louis.

Federal Reserve Economic Data (FRED) — All Sectors; Corporate Equities; Asset, Level All Sectors; Corporate Equities; Asset, Level, retrieved from FRED, Federal Reserve Bank of St. Louis.

Federal Reserve Economic Data (FRED) — All Sectors; Debt Securities and Loans; Liability, Level All Sectors; Debt Securities and Loans; Liability, Level, retrieved from FRED, Federal Reserve Bank of St. Louis.

Federal Reserve Economic Data (FRED) — Federal Funds Effective Rate Federal Funds Effective Rate, retrieved from FRED, Federal Reserve Bank of St. Louis.

Federal Reserve Economic Data (FRED) — Consumer Price Index for All Urban Consumers: All Items in U.S. City Average Consumer Price Index for All Urban Consumers: All Items in U.S. City Average, retrieved from FRED, Federal Reserve Bank of St. Louis.

London Bullion Market Association — LBMA Gold Price (PM auction), US dollars per troy ounce, daily from 1968. Published here only as a daily return series, and only from 1975, when US investors could both legally hold gold and buy it at a market-set price. LBMA Gold Price (PM), administered by ICE Benchmark Administration; intellectual property rights owned by the London Bullion Market Association.