RPT Validation Reporting
Presenting results clearly and honestly — no cherry-picking
Learning Objectives
- •Learn how to create clear, honest validation reports
- •Understand what metrics to include and how to present them
- •Build reports that enable informed deployment decisions
Explain Like I'm 5
A validation report should make it obvious whether to deploy or not. Include the good and the bad. If your strategy has a weakness, report it. Hiding it doesn't make it go away — it just means you'll be surprised when it matters most.
Think of It This Way
A good validation report is like a medical checkup report. It shows everything — blood pressure, cholesterol, good numbers and bad numbers. Hiding the bad numbers doesn't make you healthy. Reporting them honestly lets you make informed decisions.
1Required Metrics
2The Report Structure That Works
3Honest Reporting
In-Sample vs Out-of-Sample Performance Gap
4Red Flags in Other People's Reports
Hands-On Code
Automated Validation Report
def generate_validation_report(results, mc_results, pbo, benchmarks):
"""Generate structured validation report."""
report = []
report.append("=" * 60)
report.append("ENGINE VALIDATION REPORT")
report.append("=" * 60)
report.append("\n--- PERFORMANCE ---")
report.append(f"Win Rate: {results['win_rate']:.1%} "
f"(n={results['n_trades']})")
report.append(f"Total R: {results['total_r']:+.1f}")
report.append(f"Profit Factor: {results['profit_factor']:.2f}")
report.append("\n--- RISK ---")
report.append(f"Max Drawdown: {results['max_dd']:.2%}")
report.append(f"95th Pctl DD: {mc_results['p95_dd']:.2%}")
report.append(f"Breach Prob: {mc_results['breach_prob']:.2%}")
report.append("\n--- VALIDATION ---")
report.append(f"PBO: {pbo:.3f} "
f"{'[PASS]' if pbo < 0.25 else '[FAIL]'}")
report.append(f"Walk-Forward: "
f"{'Yes' if results['walk_forward'] else 'No'}")
deploy = (results['win_rate'] > 0.55
and mc_results['breach_prob'] < 0.05
and pbo < 0.25)
report.append("\n--- RECOMMENDATION ---")
report.append(f"{'DEPLOY' if deploy else 'DO NOT DEPLOY'}")
return "\n".join(report)Automated reports ensure nothing gets missed. Every deployment decision should be backed by a thorough, honest validation report.
Knowledge Check
Q1.Your strategy passes all validation checks except PBO is 0.35. Should you deploy?
Assignment
Generate a complete validation report for your strategy. Share it with someone who can review it critically. Does the report provide enough information for an informed deployment decision?