Straud

Audit your trading strategy

Your backtest was profitable, so why does your live trading fail?
The causes are few and identifiable, and every one of them is already present in the results you have:

Straud finds all that apply — with the evidence behind each, and what to do before you trade it again.

Get Straud (full version) Download the free version

Runs locally offline · no account · no subscription · no data leaves your machine


What Straud checks

Statistical validity — can the sample carry the claim once the search is accounted for? Deflated Sharpe against declared trials, effective sample size once observations stop being independent, and the power to detect the claimed effect.

Data integrity — does the file record the past, or assume it? Look-ahead, archive coverage holes, survivorship, and columns that are a frozen assumption rather than a measurement.

Robustness — does the result hold away from the chosen operating point? Placebo cutoffs, parameter plateaus rather than spikes, consistency across eras, and P&L concentrated in a small subset of names.

Execution realism — does the edge survive execution at a real venue? Cost sweeps and break-even headroom, funding settlements, borrow against the observed band, and short availability.

Capacity — is the size you intend to trade supported by the liquidity available? Trade size against accessible volume, and the headroom remaining.

Selection pressure

One question most tools never ask: how many strategy variants did you test before choosing this one? Every variant. Including those discarded.

You declare The verdict
1 trial Survives
200 trials Not distinguishable from luck

Nothing about the strategy changed — only the declared size of the search. That number is what the statistical checks run on, which is why Straud (full version) keeps a trial ledger.


What Straud reports

Every audit returns one verdict, a list of findings, and a list of what was not tested.

Verdict

Verdict What it means
Survives Passed every test applied.
Conditional Real signal, but survival depends on assumptions that probably do not hold live.
Unproven No critical finding, but the trial-adjusted edge is not distinguishable from zero.
Fatal A confirmed critical finding. Do not trade this strategy.

Severity

Severity What it means
· Note Contextual information. No defect identified.
Caution Verify before relying on this result.
Serious A real defect. Deploying without addressing it is a decision, not an oversight.
🔴 Critical The result does not support the claim being made.

Confidence

Confidence What it means
Confirmed The test ran and it fails deterministically.
Likely The test indicates it, but an assumption could explain it.
Possible A heuristic flag that needs your own domain knowledge.

Real-world use case

A finding from a deployed live strategy — by Straud.

Verdict: Conditional — real signal, but survival depends on assumptions that probably do not hold live.

n n effective Sharpe / obs trials declared deflated Sharpe
1,234 974 0.145 8 0.996

3 findings: 1 Serious · 2 Note


Serious — Robustness · Confirmed

The edge lives in entities that RECUR, not in the universe

By how often an entity appears — 1×: n=596, −139bp; 2×: n=294, +889bp; 3–5×: n=297, +1883bp; 6+×: n=47, +1122bp. Entities seen once carry −139bp over 596 events, against +1369bp for recurring ones (difference t +6.10).

What this means: the P&L is not concentrated in a few names (top 2 = 3% of winnings), so this is not a fake sample. It is a conditional edge: recurrence is part of the signal, and the one-appearance majority dilutes the headline.

Cost of ignoring: trading the whole universe at a size justified by an edge only the recurring subset supplies.

Remedy: condition on recurrence explicitly and re-test, or report first-time and repeat entities separately. Do not average them.


· Note — Statistical validity · Confirmed

Survives the trial count supplied

Across 8 declared trials the expected maximum under the null is 0.047 — deflated Sharpe 0.996.


· Note — Statistical validity · Confirmed

This result survives up to ~170,049 tested variants

Question: across everything ever run against this data — including discarded variants and earlier sessions — is the true count below ~170,049? If not, this becomes Critical.

The research had clustered by date (correctly), but had never checked concentration by symbol. Those are different defects, and fixing one does nothing about the other.
Straud (full version) produces all of it: the measurement, the mechanism, and the remedy.
The free version names the finding and its severity.


Why trust us?

Straud is a tool that criticises statistical work, so it is built to be judged the same way. Its calibration is published in full — the corpus it was tested against, the results it produced, and the limits it found — every claim on this page can be checked independently.

See the evidence →