You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.0 KiB
2.0 KiB
| name | description | type |
|---|---|---|
| PEAD Strategy Results | Pure PEAD 7% strategy is the first configuration to show consistent OOS profitability across all temporal splits | project |
PEAD 7% Base — Production Candidate (2026-03-14)
First strategy to show positive expectancy out-of-sample on all splits.
Signal
- Entry: earnings reaction_day_return >= 7%, volume_ratio_20d >= 1.5x
- Scoring model:
peadinlibs/backtest/scoring.py(compute_pead_score()) - Earnings-only, all other event types disabled
- Filters disabled: veto_oneoff_penalty=1.0, veto_unknown_direction=false, veto_bearish_direction=false
Combined Results (155 trades across train/test/valid)
- Win Rate: 67.1% (stable 64.7-67.5% across all splits)
- Avg Win: +5.45%, Avg Loss: -3.48%
- Mean PnL per trade: +2.51%
- Median PnL: +3.73%
- W/L Ratio: 1.57
- PF: 1.31 (test), 1.95 (valid), 1.68 (train)
Key Files
- Manifests:
configs/experiments/pead_pure_7pct.json,pead_7pct_drift_a.json - Scoring:
libs/backtest/scoring.py—compute_pead_score() - Domain:
libs/backtest/domain.py—SignalConfig.scoring_model,pead_reaction_threshold,pead_volume_threshold - Store wiring:
apps/backtester/run.py—_build_store()dispatches to PEAD scoring
Drift A Variant (wider target 3.0 ATR, hold 25d)
- Higher per-trade returns (+7.13% avg win) but lower win rate (56.1%)
- Mean PnL nearly identical (+2.59%) but median much lower (+0.40%)
- OOS less stable (valid WR dropped to 40%)
- Not recommended for production
Why: Previous strategies (baseline 3-factor scoring, small/mid-cap variants, execution optimization) all failed OOS. PEAD 7% succeeds because it relies on a well-documented academic anomaly with a simple, hard-to-overfit signal.
How to apply: Use PEAD 7% Base as the foundation. Any future strategy modifications should be compared against this baseline. The signal is the edge — execution/risk parameters have limited room for improvement (5 execution variants tested, none beat baseline OOS).