‹ Backtest Strategies Lesson 15 of 17
Contents Lesson 15 of 17

5 min read · professional

The history wall

Course 1's wall was freshness. Course 2's was breadth. This one is depth, and it bites in a way the others did not: it removes the specific years that would have told you whether your rule is any good.

Find your own edge of the world

One call, and you know:

const bars = await load("AAPL.US");            // no date range
console.log(bars[0].date, bars.length);

On the account this course was written against — an unrestricted one — that prints 1980-12-12 and 11516. Yours will differ, and the difference is the wall. Run it now and write the date in PLAN.md, because every claim you make later is bounded by it.

What gets cut, and why it is the wrong part

History is cut from the old end, and the old end is where the interesting regimes are. Walk backwards from today and the sample loses, in order: 2020's crash and recovery, 2018's rate scare, and then 2008.

The 2008 figures from the previous lesson are the point. SPY fell 55.2% from its 2007 peak and took 1,224 trading days to recover. A backtest starting after 2009 still meets 2020 and 2022, but it never meets a drawdown that took nearly five years to come back — and that is the specific experience a rule needs to survive. The maximum drawdown it reports is then a fact about your window rather than about your rule.

Which produces the specific failure this wall causes: your risk numbers are the ones most damaged by a short history. Return might be roughly right. Maximum drawdown, time under water, and the walk-forward from the previous lesson are all measurements of rare events, and a short sample contains no rare events by construction.

The wall the other courses did not have

Note how this differs from breadth. In course 2 you could at least see that your universe was partial. Here, a short history produces a complete-looking result — a smooth curve, a modest drawdown, a plausible Sharpe if you computed one — that is confidently describing a calm decade.

There is no in-band signal for it. The tool cannot tell you. Only the first date can, which is why it goes in the report.

Write it into the report

Three lines, alongside the parameters:

History available:   ____-__-__ to 2026-08-25   (____ bars)
Regimes in sample:   __________________________
Regimes NOT tested:  __________________________

That third line is the honest output, and it usually reads "2008, 2020, every rate cycle before 2015".

What upgrading changes, precisely

Nothing in your code. Same backtester, same rule, same tests — with the years that would falsify it. And the same honesty as the other two walls: if you are testing a single instrument on a recent window and you know that is what you are doing, it fits, and you should not pay for anything. Live pricing is on the pricing page and deliberately not quoted here; a number written into a lesson goes stale and then lies to whoever reads it next.

Try it now

Find your earliest bar, then run your strategy twice: once on everything you have, once on 2015-onward only. Compare the maximum drawdowns. The difference between those two numbers is exactly what the wall is hiding from you, and seeing it once is worth more than being told.