Anti-Overfit Validation
Use this procedure when a workflow reviews a backtest, signal, model result,
technical rule, or paper-alpha claim.
Required output shape:
- look-ahead leakage
- survivorship bias
- data snooping and multiple testing
- walk-forward or out-of-sample coverage
- transaction costs, slippage, borrow, funding, and taxes where relevant
- liquidity and capacity constraints
- regime sensitivity
- signal decay
- paper alpha versus live implementation friction
Quality floor:
- Treat validation as review, not strategy creation.
- Before comparing candidates, freeze the hypothesis, selection rule, parameter
trial budget, chronological train/validation/holdout windows, and costs. Log
every generated, tried, revised, or discarded variant rather than only the
winner.
- Treat a holdout as single-use. Repeated inspection or tuning on its result
turns it into training feedback and requires a new untouched holdout or
live-forward period.
- In the
data_snooping result, state the observed trial count or defensible
effective count and the multiple-testing adjustment used. Use methods such as
a reality check, Deflated Sharpe Ratio, or probability of backtest overfitting
only when their assumptions and required inputs are actually supported; do
not make one statistic a universal gate.
- Mark unsupported performance claims
not-decision-ready, revise, or
blocked.
- Do not imply execution readiness from a chart, backtest, or signal alone.
- Separate empirical performance from economic plausibility. A high in-sample
Sharpe ratio alone is not evidence of a robust effect.
When these checks are in scope, set anti_overfit_required: true and write an
anti_overfit_checks object into artifact frontmatter. Include every key below
with status (pass, fail, or not_applicable), a non-empty reason, and
an evidence_refs list; pass and fail require at least one exact evidence
reference.
anti_overfit_checks:
leakage:
status: pass
reason: "State the observed check result."
evidence_refs: ["exact-artifact-or-source-snapshot-id"]
Use that object shape for leakage, survivorship_bias, data_snooping,
out_of_sample, walk_forward_consistency, monte_carlo_permutation,
bootstrap_sharpe_ci, cost_assumptions, capacity, and live_friction.
Replace the example with observed status and exact evidence. Do not rely on
English body keywords to activate or prove validation; the structured fields
are language-neutral machine contracts.
1---2name: tcx-anti-overfit3description: Review backtests, signals, and model-performance claims for leakage, data snooping, costs, capacity, and live friction.4---56# Anti-Overfit Validation78Use this procedure when a workflow reviews a backtest, signal, model result,9technical rule, or paper-alpha claim.1011Required output shape:1213- look-ahead leakage14- survivorship bias15- data snooping and multiple testing16- walk-forward or out-of-sample coverage17- transaction costs, slippage, borrow, funding, and taxes where relevant18- liquidity and capacity constraints19- regime sensitivity20- signal decay21- paper alpha versus live implementation friction2223Quality floor:2425- Treat validation as review, not strategy creation.26- Before comparing candidates, freeze the hypothesis, selection rule, parameter27 trial budget, chronological train/validation/holdout windows, and costs. Log28 every generated, tried, revised, or discarded variant rather than only the29 winner.30- Treat a holdout as single-use. Repeated inspection or tuning on its result31 turns it into training feedback and requires a new untouched holdout or32 live-forward period.33- In the `data_snooping` result, state the observed trial count or defensible34 effective count and the multiple-testing adjustment used. Use methods such as35 a reality check, Deflated Sharpe Ratio, or probability of backtest overfitting36 only when their assumptions and required inputs are actually supported; do37 not make one statistic a universal gate.38- Mark unsupported performance claims `not-decision-ready`, `revise`, or39 `blocked`.40- Do not imply execution readiness from a chart, backtest, or signal alone.41- Separate empirical performance from economic plausibility. A high in-sample42 Sharpe ratio alone is not evidence of a robust effect.4344When these checks are in scope, set `anti_overfit_required: true` and write an45`anti_overfit_checks` object into artifact frontmatter. Include every key below46with `status` (`pass`, `fail`, or `not_applicable`), a non-empty `reason`, and47an `evidence_refs` list; `pass` and `fail` require at least one exact evidence48reference.4950```yaml51anti_overfit_checks:52 leakage:53 status: pass54 reason: "State the observed check result."55 evidence_refs: ["exact-artifact-or-source-snapshot-id"]56```5758Use that object shape for `leakage`, `survivorship_bias`, `data_snooping`,59`out_of_sample`, `walk_forward_consistency`, `monte_carlo_permutation`,60`bootstrap_sharpe_ci`, `cost_assumptions`, `capacity`, and `live_friction`.61Replace the example with observed status and exact evidence. Do not rely on62English body keywords to activate or prove validation; the structured fields63are language-neutral machine contracts.