Reports you can print or share — including the tests that failed
Every study in AlgoCrucible can be turned into a report: a single sheet with the verdict first, the figures behind it, the charts, and the settings that produced it, ready to Print or Save as PDF. A report is what you hand to someone else — a partner, a prop firm, the developer of a strategy you are evaluating — or keep for yourself, so that months from now you can see exactly what was tested and what it found.
That includes the tests that failed. A walk-forward that lost money on unseen data, an audit that came back MIRAGE, a run NinjaTrader refused to finish: each of those is a finding, and often the one most worth sharing. A strategy's developer learns more from "it stopped working on unseen months in 2026" than from another good-looking backtest.
Where to find them
- On a run's page, once it has finished: Open the full report →.
- On a run that ended without a result (an error, or stopped): Open the run record →.
- On a timeframe comparison's page, once every timeframe has run: Open the report →.
At the top of every report are Print and Save as PDF. Save as PDF produces the file directly; Print uses your browser's print dialog. Before either, the app offers to add every one of the strategy's settings on a separate page — useful when someone needs to reproduce the run exactly.
What each report shows
| Report | The verdict | What else is on it |
|---|---|---|
| Walk-forward | Held up, marginal, or failed on unseen data | The unseen windows combined (trades, net, profit factor, drawdown, how many windows made money); the result by year; the joined equity curve and drawdown; the net of every window; each window with the settings its learning period chose; how far those settings moved from one window to the next; the ranges searched |
| Audit | ROBUST, marginal, thin, or MIRAGE | The fixed setting on its learning period and on both unseen periods; every candidate tested and its verdict |
| Perturbation | ROBUST, sensitive, cliff edge… | How many nearby settings kept the edge; the tested setting's full-period figures; each input nudged on its own, with fragile and no effect marked; the out-of-sample map when the run has one |
| Robustness | Chance of profit across reshuffled trade orders | The spread of outcomes luck could have produced, and the drawdown to plan around |
| Certification | Probability of passing the evaluation | The rules tested, the outcomes of the simulations, and the validation trail behind the setting |
| Timeframe comparison | The timeframe where the largest share of settings made money | That share for every timeframe, as a chart and a table; each timeframe's best setting; the ranges searched — and the reminder that a comparison is a screen, not a test |
| Run record (no result) | Why the run stopped | What was asked (strategy, instrument, bars, dates, session, order fills); NinjaTrader's own log line when it gave one; anything that finished before it stopped; the run log |
Why the walk-forward report splits the result by year
A walk-forward's combined figure can hide when the money was made. Twenty unseen months that add up to a good profit might be twenty steady months — or twelve good months followed by eight flat ones. Those are very different strategies: the second one may have stopped working. The By year table and the net-by-window chart make that visible at a glance. If the recent year is flat or negative, treat the total with suspicion, whatever it says.
Reports on runs that failed
A run can end without a result for reasons that have nothing to do with whether the strategy is any good — NinjaScript recompiling while it ran, NinjaTrader restarting — and for reasons that are very much about the strategy, like an order NinjaTrader rejected because a stop was placed on the wrong side of the market. The run record says which, in plain words, and quotes NinjaTrader's log where it named the problem (the price and the bar of a rejected order, for instance). That is usually exactly what a strategy's developer needs to fix it.
What is kept out of a report
A report is made to be shared, so anything that looks like a secret — an input whose name contains licence, license, password, secret or token — is printed as its first few characters followed by (hidden), in the settings tables and in the run log alike.
What a report does not say
Every figure on a report comes from a backtest on historical data, net of the commission and slippage the run applied. None of it is a promise about the future, and a report is only as honest as the test behind it: a comparison or an optimization on its own is a screen, not a verdict. The reports that carry the most weight are the walk-forward, the audit and the perturbation — the tests that look at data the settings were not tuned on.