Audit Thresholds Playbook¶
Purpose¶
Define default, reusable thresholds used in docs/audits/audit_template.md.
These are defaults, not guarantees. The auditor may tighten thresholds based on: - leverage / account constraints (prop vs live) - liquidity and spread regime - strategy capacity - tail risk profile
If a strategy claims an exception (e.g., lower Sharpe but strong convexity), it must justify it explicitly in the audit.
How to Use¶
In each audit report, set these variables: - {{IS_SHARPE_MIN}} - {{OOS_SHARPE_MIN}} - {{OOS_DEGRADATION_MAX}} - {{WF_CONSISTENCY_MIN}} - {{MAX_DD_MAX}} - {{PF_MIN}} - {{MIN_OOS_TRADES}}
Then choose a profile below and copy the defaults into the audit.
Global Minimums (Hard Gates)¶
These apply to all strategies unless explicitly waived in writing.
| Metric | Default | Hard Gate Rule |
|---|---|---|
| Anti-bias tests | All PASS | Any FAIL → FAIL verdict |
| OOS trade count | ≥ 200 | If < 100 → FAIL (insufficient evidence) |
| OOS degradation | < 40% | If ≥ 60% → FAIL (edge likely unstable) |
| Max Drawdown | < 15% | If > 20% → FAIL (unless explicitly "high-risk sleeve") |
| Cost realism | Declared + tested | Missing costs/slippage assumptions → PASS-WITH-FIXES minimum |
Notes - "OOS degradation" means drop in key metric (Sharpe, PF, expectancy) from IS to OOS. - If OOS is very small, treat results as low confidence and demand more evidence.
Profiles (Choose One)¶
Profile A: Intraday Trend / Breakout (FX, Indices, Futures)¶
Good for NASDAQ futures, major FX pairs, liquid futures.
Defaults - {{IS_SHARPE_MIN}} = 1.2 - {{OOS_SHARPE_MIN}} = 0.9 - {{OOS_DEGRADATION_MAX}} = 35% - {{WF_CONSISTENCY_MIN}} = 60% - {{MAX_DD_MAX}} = 12% - {{PF_MIN}} = 1.25 - {{MIN_OOS_TRADES}} = 200
Extra gates - Must survive chop regimes without catastrophic DD. - Must include volatility/range filter or risk throttle.
Profile B: Intraday Mean Reversion (Indices/Futures, Some FX)¶
Mean reversion often looks great in-sample and dies out-of-sample, so be stricter.
Defaults - {{IS_SHARPE_MIN}} = 1.4 - {{OOS_SHARPE_MIN}} = 1.0 - {{OOS_DEGRADATION_MAX}} = 30% - {{WF_CONSISTENCY_MIN}} = 65% - {{MAX_DD_MAX}} = 10% - {{PF_MIN}} = 1.35 - {{MIN_OOS_TRADES}} = 250
Extra gates - Must pass stress tests: spread spikes + gap scenarios. - Must show parameter stability across bands/thresholds.
Profile C: Swing Trend (FX/Crypto/Indices)¶
Lower trade count, longer holds, higher variance. Require longer OOS window.
Defaults - {{IS_SHARPE_MIN}} = 1.0 - {{OOS_SHARPE_MIN}} = 0.7 - {{OOS_DEGRADATION_MAX}} = 40% - {{WF_CONSISTENCY_MIN}} = 55% - {{MAX_DD_MAX}} = 15% - {{PF_MIN}} = 1.20 - {{MIN_OOS_TRADES}} = 80 (but require long time window)
Extra gates - OOS must cover multiple volatility regimes (at least 2). - Must define event/news risk rules if applicable.
Profile D: Crypto 24/7 Momentum / Trend (BTC/ETH + majors)¶
Crypto has regime shifts, funding effects, weekend behavior. Require regime testing.
Defaults - {{IS_SHARPE_MIN}} = 1.1 - {{OOS_SHARPE_MIN}} = 0.8 - {{OOS_DEGRADATION_MAX}} = 40% - {{WF_CONSISTENCY_MIN}} = 55% - {{MAX_DD_MAX}} = 15% - {{PF_MIN}} = 1.20 - {{MIN_OOS_TRADES}} = 150
Extra gates - Must include funding/fees assumptions. - Must test weekends vs weekdays. - Must test high-vol crash weeks.
Profile E: Prop-Firm Conservative (Any Asset)¶
This profile is designed to minimize rule violations and smooth equity curve. It sacrifices raw return to avoid daily loss breaches.
Defaults - {{IS_SHARPE_MIN}} = 1.3 - {{OOS_SHARPE_MIN}} = 1.0 - {{OOS_DEGRADATION_MAX}} = 30% - {{WF_CONSISTENCY_MIN}} = 70% - {{MAX_DD_MAX}} = 8% - {{PF_MIN}} = 1.30 - {{MIN_OOS_TRADES}} = 150
Extra gates - Worst day must not breach representative daily loss limit under baseline costs. - Must include strict kill-switch rules and scaling ladder. - Must cap consecutive losses and max trades/day if needed.
Cost & Slippage Standards (Baseline + Stressed)¶
Audits must declare BOTH baseline and stressed assumptions.
FX (majors)¶
- Baseline: 0.5–1.5 pips + typical commission
- Stressed: 2–5 pips during events
Indices / Futures (e.g., NQ)¶
- Baseline: 1–2 ticks slippage + commission
- Stressed: 3–8 ticks (news / open)
Metals (Gold/Silver futures)¶
- Baseline: 1–3 ticks
- Stressed: 5–12 ticks around data releases
Crypto (spot/perps)¶
- Baseline: 2–10 bps + fees + funding estimate
- Stressed: 20–80 bps in volatility spikes
If the strategy fails under stressed costs, it must either: - add execution filters, or - reduce trade frequency, or - redesign the entry/exit model.
Walk-Forward Consistency Definition¶
A "walk-forward window" is counted as positive if it meets BOTH: - PF ≥ ({{PF_MIN}} - 0.10) OR Sharpe ≥ ({{OOS_SHARPE_MIN}} - 0.1) - DD within 1.25× of target (e.g., if MAX_DD_MAX=10%, WF window DD ≤ 12.5%)
Then: - {{WF_CONSISTENCY_MIN}} is the % of positive windows.
When to FAIL immediately (Non-Negotiables)¶
- Any confirmed lookahead/leakage/repainting used for signals
- Missing cost/slippage assumptions after audit request
- OOS results based on tiny sample size with no plan to expand
- Extreme sensitivity: small parameter changes flip profitability
- Worst-week or worst-day breaches typical risk constraints with no mitigation plan
When PASS-WITH-FIXES is acceptable¶
- Strategy is sound but missing:
- explicit cost model tables
- stress tests
- reproducibility evidence
- kill-switch table
- parameter sensitivity sweep
Must include a deadline and rerun evidence.
Notes on Interpretation¶
- A lower Sharpe can be acceptable if the strategy is uncorrelated and improves portfolio-level Sharpe.
- Strategies should be judged not only on return but on:
- stability
- drawdown behavior
- tail risk
- execution robustness
- capacity
If claiming portfolio value, the audit must include correlation reasoning.