Pre-registered proposal: reports/research_proposal_eqmom_pead_overlay.md.
Universe: top-100 names by listing persistence. EqMom: top-decile trailing-126d return, 21d rebalance, lag=1, next_open fill, 10bps round trip. PEAD: most recent earnings event in trailing 60 calendar days; strong surprise >= 5.0% boosts size to 1.25x; recent miss reduces size to 0.75x; otherwise passthrough. Sizing buckets: {0.75, 1.0, 1.25} (pre-registered).
Window: 2016-01-01..2026-07-31 (2659 days, 2512 days with at least one EqMom long). IS/OOS pre-registered split: 2021-01-01.
Primary variants
| Variant | Days | Ret | Sharpe | PF | MaxDD |
|---|---|---|---|---|---|
| baseline (EqMom long-only top-decile) | 2659 | +1002.01% | 1.23 | 1.21 | -36.43% |
| primary overlay (0.75/1.0/1.25 by PEAD) | 2659 | +1048.98% | 1.25 | 1.21 | -36.43% |
Bucket distribution (per-day, any-name-active)
| Bucket | Days | Share |
|---|---|---|
| 0.75x (conflict) | 1488 | 56.0% |
| 1.0x (passthrough) | 963 | 36.2% |
| 1.0x (no signal) | 147 | 5.5% |
| 1.25x (strong agreement) | 61 | 2.3% |
Within EqMom-long days, fraction with at least one name at PEAD-active (1.25x or 0.75x): 26.6%.
Bootstrap p(overlay beats baseline, full window): 0.132 Bootstrap p(IS): 0.069 Bootstrap p(OOS): 0.201
IS/OOS split (pre-registered 2021-01-01)
| Segment | Variant | Days | Ret | Sharpe | PF | MaxDD |
|---|---|---|---|---|---|---|
| IS baseline | - | 1259 | +168.74% | 1.16 | 1.22 | -36.43% |
| IS overlay | - | 1259 | +171.52% | 1.17 | 1.22 | -36.43% |
| OOS baseline | - | 1400 | +310.07% | 1.29 | 1.21 | -28.07% |
| OOS overlay | - | 1400 | +323.17% | 1.31 | 1.21 | -27.60% |
Verdict (pre-registered)
- IS baseline Sharpe: 1.16, ret +168.74%
- IS overlay Sharpe: 1.17, ret +171.52%
- OOS baseline Sharpe: 1.29, ret +310.07%
- OOS overlay Sharpe: 1.31, ret +323.17%
- Bootstrap p(OOS): 0.201
- Pre-registered pass: OOS Sharpe +>= 0.05 AND p < 0.10 AND maxDD not +> 5pp
- Result: REJECT (sharpe ++0.03 (need +0.05); p=0.201)
Honest caveats
- Earnings cache depth: yfinance only serves ~5 recent quarters per name; pre-2020 names have sparse PEAD signals. The OOS sample is therefore thinner on the long tail; this is a survivorship-favorable bias (recent quarters are better covered). The IS window 2016-2020 has fewer PEAD hits per name; the OOS 2021-2026 has more.
- PEAD-EqMom correlation: per the edge_hunt15 study, PEAD and 12-1 momentum have correlation 0.39 on the S&P pilot. The two signals are moderately related; the meta-signal isn't fully independent of either input. The honest read is 'joint information', not 'independent confirmation'.
- Asymmetric multipliers (0.75/1.25) are heuristic — not optimized. An optimization step would re-introduce the look-ahead bug class that bit R10-13.
- Surprise threshold 5.0% is pre-registered. The robustness grid (REPORTED, not selected) tests {2.5, 5.0, 7.5, 10.0}% in a follow-up run.