Generated 2026-10-04 | PIT-S&P 500 panel 2006-08-14..2026-08-12 | 39 features x 14 targets = 546 tests | BH-FDR q<0.05: 128
Method: trailing daily features; forward target aggregates; rank-IC; effective-n (Newey-West lag 21) p; Benjamini-Hochberg across all 546 tests; partial IC controls trailing SPY 21d return + vol; labels ** robust (q<0.05, IS/OOS sign-stable, |OOS IC|>=0.05), * weak-but-significant.
Table A -- OOS rank-IC: feature x target
| feature | spy_fwd1 | spy_fwd5 | spy_fwd21 | spy_vol_fwd5 | spy_vol_fwd21 | momls_fwd21 | eqmom_fwd21 | flagship_fwd21 |
|---|---|---|---|---|---|---|---|---|
| breadth_sma20 | -0.04* | -0.06** | -0.12 | -0.33** | -0.26** | +0.02 | -0.09 | -0.13 |
| breadth_sma50 | -0.05* | -0.10** | -0.18** | -0.40** | -0.32** | +0.08 | -0.13 | -0.17* |
| breadth_sma200 | -0.04 | -0.11* | -0.20* | -0.48** | -0.43** | +0.07 | -0.17 | -0.18 |
| adv_pct | -0.03* | -0.03 | -0.02 | -0.12* | -0.09 | -0.00 | -0.02 | -0.03 |
| dec_pct | +0.03* | +0.03 | +0.02 | +0.12* | +0.10 | +0.00 | +0.03 | +0.03 |
| ad_ratio | -0.03* | -0.03 | -0.02 | -0.12* | -0.09 | -0.00 | -0.02 | -0.03 |
| newhigh_20d | -0.06** | -0.09** | -0.13 | -0.37** | -0.30** | +0.03 | -0.09 | -0.11 |
| newlow_20d | +0.01 | +0.00 | +0.00 | +0.15** | +0.11 | +0.03 | +0.02 | +0.04 |
| newhigh_52w | -0.08** | -0.14** | -0.20** | -0.44** | -0.38** | +0.01 | -0.18 | -0.17* |
| newlow_52w | -0.00 | -0.01 | +0.00 | +0.25** | +0.20** | -0.05 | -0.00 | +0.07 |
| hl_spread_52w | -0.06** | -0.12** | -0.18** | -0.46** | -0.39** | +0.03 | -0.16 | -0.18* |
| pct_pos_5d | -0.04* | -0.06** | -0.06 | -0.21** | -0.17** | +0.02 | -0.03 | -0.07 |
| pct_pos_20d | -0.03* | -0.06 | -0.15* | -0.32** | -0.25** | +0.06 | -0.11 | -0.16* |
| breadth50_chg5 | -0.01 | -0.01 | -0.00 | -0.15** | -0.12* | -0.02 | +0.01 | -0.01 |
| breadth50_chg20 | -0.01 | -0.02 | -0.07 | -0.22** | -0.17* | +0.00 | -0.04 | -0.06 |
| breadth200_chg20 | -0.01 | -0.03 | -0.10 | -0.28** | -0.21** | +0.09 | -0.04 | -0.12 |
| breadth50_z | -0.04* | -0.08** | -0.14* | -0.34** | -0.28** | +0.09 | -0.08 | -0.12 |
| breadth50_pct | -0.04* | -0.07** | -0.14* | -0.35** | -0.29** | +0.08 | -0.07 | -0.12 |
| disp1 | +0.02 | +0.06 | +0.09 | +0.35** | +0.39** | +0.01 | +0.14 | +0.15 |
| disp5 | +0.03 | +0.06 | +0.12 | +0.35** | +0.38** | +0.03 | +0.17 | +0.17* |
| disp20 | +0.03 | +0.07 | +0.13 | +0.32** | +0.34** | +0.03 | +0.15 | +0.17* |
| sector_disp | +0.02 | +0.06 | +0.08 | +0.34** | +0.35** | -0.04 | +0.08 | +0.12 |
| resid_disp | +0.02 | +0.06 | +0.09 | +0.34** | +0.37** | +0.02 | +0.14 | +0.14 |
| resid_sector_disp | +0.02 | +0.05 | +0.09 | +0.34** | +0.38** | +0.03 | +0.15 | +0.14 |
| avg_corr20 | +0.04* | +0.10** | +0.23** | +0.42** | +0.38** | -0.14** | +0.15 | +0.22* |
| avg_corr60 | +0.03 | +0.09** | +0.20* | +0.37** | +0.35** | -0.18* | +0.11 | +0.11 |
| corr_spy20 | +0.03 | +0.09* | +0.22** | +0.35** | +0.30** | -0.17** | +0.12 | +0.19 |
| corr_spy60 | +0.02 | +0.08* | +0.19* | +0.30** | +0.27** | -0.21** | +0.09 | +0.09 |
| sector_corr60 | +0.03 | +0.10** | +0.21** | +0.36** | +0.33** | -0.18* | +0.11 | +0.10 |
| spy_minus_ew | -0.02 | -0.03 | -0.03 | -0.05 | -0.02 | -0.02 | -0.02 | -0.02 |
| top5_dvwt | -0.01 | -0.01 | -0.02 | +0.24 | +0.31** | +0.09 | +0.00 | +0.00 |
| top10_dvwt | -0.00 | -0.00 | -0.03 | +0.25** | +0.31** | +0.09 | +0.01 | +0.01 |
| hhi_dv | -0.01 | -0.01 | -0.02 | +0.23* | +0.30** | +0.09 | +0.00 | +0.00 |
| top5_contrib | -0.03* | -0.02 | -0.02 | -0.01 | +0.05 | +0.01 | +0.01 | +0.00 |
| pct_sectors_pos | -0.02* | -0.02 | -0.02 | -0.12* | -0.09 | -0.00 | -0.02 | -0.02 |
| pct_sectors_beat_spy | +0.02 | +0.02 | +0.02 | +0.06 | +0.04 | +0.01 | +0.02 | +0.02 |
| top_sector_excess | +0.01 | +0.02 | +0.06 | +0.30** | +0.31** | -0.02 | +0.06 | +0.09 |
| sector_hhi | +0.00 | +0.01 | +0.03 | +0.03 | +0.04 | +0.00 | +0.04 | +0.03 |
| sector_lead_persist | -0.02 | +0.02 | +0.02 | -0.00 | -0.01 | -0.03 | +0.00 | +0.02 |
Strongest findings (INTERESTING status)
| feature | target | IC full | IC OOS | partial IC | q | CI95 | perm p |
|---|---|---|---|---|---|---|---|
| breadth_sma200 | spy_vol_fwd5 | -0.445 | -0.479 | -0.167 | 3.53e-16 | [-0.53,-0.38] | 0.000 |
| hl_spread_52w | spy_vol_fwd5 | -0.485 | -0.463 | -0.264 | 1.55e-19 | [-0.54,-0.44] | 0.000 |
| newhigh_52w | spy_vol_fwd5 | -0.452 | -0.445 | -0.231 | 1.33e-16 | [-0.53,-0.40] | 0.000 |
| breadth_sma200 | spy_vol_fwd21 | -0.409 | -0.429 | -0.145 | 1.77e-10 | [-0.50,-0.32] | 0.000 |
| avg_corr20 | spy_vol_fwd5 | +0.432 | +0.420 | -0.115 | 3.43e-15 | [+0.37,+0.49] | 0.000 |
| top10_dvwt | eqmom_vol_fwd21 | +0.341 | +0.420 | +0.324 | 1.77e-07 | [+0.25,+0.41] | 0.000 |
| resid_sector_disp | eqmom_vol_fwd21 | +0.286 | +0.413 | +0.221 | 2.42e-05 | [+0.19,+0.37] | 0.000 |
| resid_disp | eqmom_vol_fwd21 | +0.281 | +0.409 | +0.226 | 3.68e-05 | [+0.19,+0.36] | 0.000 |
| disp1 | eqmom_vol_fwd21 | +0.293 | +0.408 | +0.226 | 1.5e-05 | [+0.20,+0.37] | 0.000 |
| avg_corr20 | flagship_vol_fwd21 | +0.210 | +0.403 | -0.113 | 0.00548 | [+0.07,+0.31] | 0.000 |
| disp5 | flagship_vol_fwd21 | +0.257 | +0.403 | +0.116 | 0.00034 | [+0.16,+0.34] | 0.000 |
| disp1 | flagship_vol_fwd21 | +0.260 | +0.402 | +0.128 | 0.000272 | - | - |
| breadth_sma50 | spy_vol_fwd5 | -0.410 | -0.401 | -0.121 | 1.4e-13 | - | - |
| top5_dvwt | eqmom_vol_fwd21 | +0.323 | +0.397 | +0.312 | 1.03e-06 | - | - |
| resid_sector_disp | flagship_vol_fwd21 | +0.245 | +0.395 | +0.114 | 0.000731 | - | - |
| hhi_dv | eqmom_vol_fwd21 | +0.306 | +0.395 | +0.294 | 4.58e-06 | - | - |
| disp5 | eqmom_vol_fwd21 | +0.289 | +0.394 | +0.220 | 2.03e-05 | - | - |
| resid_disp | flagship_vol_fwd21 | +0.249 | +0.394 | +0.124 | 0.00058 | - | - |
| hl_spread_52w | spy_vol_fwd21 | -0.418 | -0.393 | -0.228 | 6.39e-11 | - | - |
| disp20 | eqmom_vol_fwd21 | +0.278 | +0.386 | +0.224 | 4.78e-05 | - | - |
| disp1 | spy_vol_fwd21 | +0.431 | +0.386 | +0.243 | 1.58e-11 | - | - |
| avg_corr20 | spy_vol_fwd21 | +0.403 | +0.383 | -0.158 | 3.31e-10 | - | - |
| disp5 | spy_vol_fwd21 | +0.433 | +0.381 | +0.239 | 1.21e-11 | - | - |
| newhigh_52w | spy_vol_fwd21 | -0.383 | -0.377 | -0.187 | 3.53e-09 | - | - |
| resid_sector_disp | spy_vol_fwd21 | +0.416 | +0.376 | +0.234 | 7.38e-11 | - | - |
Table C -- PIT-quintile forward strategy return (overlapping 21d sums)
Mean forward 21d return of the frozen sleeve by the feature's trailing (PIT, 3y-rank) quintile. Q1=lowest, Q5=highest.
| feature | target | Q1 | Q2 | Q3 | Q4 | Q5 | Q5-Q1 | hit Q4/Q5 | hit Q1/Q2 |
|---|---|---|---|---|---|---|---|---|---|
| avg_corr20 | spy_fwd5 | +0.001 | +0.002 | +0.003 | +0.004 | +0.004 | +0.003 | 62% | 58% |
| avg_corr20 | spy_fwd21 | +0.005 | +0.010 | +0.012 | +0.008 | +0.017 | +0.011 | 68% | 66% |
| avg_corr20 | momls_fwd21 | +0.000 | +0.006 | +0.004 | -0.010 | -0.022 | -0.023 | 46% | 57% |
| avg_corr20 | eqmom_fwd21 | +0.011 | +0.019 | +0.024 | +0.015 | +0.016 | +0.004 | 64% | 64% |
| avg_corr20 | flagship_fwd21 | +0.008 | +0.013 | +0.019 | +0.021 | +0.024 | +0.016 | 60% | 61% |
| avg_corr60 | spy_fwd5 | +0.001 | +0.004 | +0.002 | +0.002 | +0.003 | +0.002 | 60% | 61% |
| avg_corr60 | spy_fwd21 | +0.009 | +0.014 | +0.005 | +0.004 | +0.020 | +0.011 | 67% | 70% |
| avg_corr60 | momls_fwd21 | +0.001 | +0.007 | +0.001 | -0.011 | -0.021 | -0.022 | 45% | 56% |
| avg_corr60 | eqmom_fwd21 | +0.014 | +0.028 | +0.015 | +0.009 | +0.022 | +0.008 | 65% | 67% |
| avg_corr60 | flagship_fwd21 | +0.013 | +0.017 | +0.014 | +0.016 | +0.025 | +0.012 | 57% | 65% |
| breadth_sma200 | spy_fwd5 | +0.005 | +0.002 | +0.001 | +0.003 | +0.002 | -0.003 | 62% | 61% |
| breadth_sma200 | spy_fwd21 | +0.020 | +0.011 | +0.003 | +0.012 | +0.010 | -0.010 | 71% | 69% |
| breadth_sma200 | momls_fwd21 | -0.012 | -0.014 | +0.002 | +0.003 | +0.003 | +0.015 | 55% | 48% |
| breadth_sma200 | eqmom_fwd21 | +0.025 | +0.018 | +0.006 | +0.019 | +0.020 | -0.005 | 68% | 66% |
| breadth_sma200 | flagship_fwd21 | +0.029 | +0.017 | +0.008 | +0.018 | +0.014 | -0.015 | 67% | 60% |
| breadth_sma50 | spy_fwd5 | +0.005 | +0.002 | +0.002 | +0.002 | +0.002 | -0.003 | 61% | 60% |
| breadth_sma50 | spy_fwd21 | +0.023 | +0.007 | +0.005 | +0.008 | +0.009 | -0.015 | 68% | 68% |
| breadth_sma50 | momls_fwd21 | -0.013 | -0.005 | -0.004 | -0.002 | +0.004 | +0.017 | 54% | 51% |
| breadth_sma50 | eqmom_fwd21 | +0.028 | +0.012 | +0.012 | +0.014 | +0.019 | -0.009 | 66% | 65% |
| breadth_sma50 | flagship_fwd21 | +0.029 | +0.018 | +0.013 | +0.011 | +0.010 | -0.019 | 61% | 61% |
| corr_spy20 | spy_fwd5 | +0.002 | +0.002 | +0.003 | +0.003 | +0.004 | +0.002 | 62% | 58% |
| corr_spy20 | spy_fwd21 | +0.006 | +0.010 | +0.012 | +0.008 | +0.017 | +0.011 | 68% | 66% |
| corr_spy20 | momls_fwd21 | +0.002 | +0.007 | +0.002 | -0.005 | -0.030 | -0.031 | 45% | 58% |
| corr_spy20 | eqmom_fwd21 | +0.013 | +0.019 | +0.024 | +0.018 | +0.013 | +0.000 | 64% | 65% |
| corr_spy20 | flagship_fwd21 | +0.008 | +0.013 | +0.023 | +0.018 | +0.025 | +0.017 | 59% | 61% |
| corr_spy60 | spy_fwd5 | +0.001 | +0.003 | +0.003 | +0.002 | +0.004 | +0.002 | 61% | 60% |
| corr_spy60 | spy_fwd21 | +0.009 | +0.011 | +0.007 | +0.007 | +0.019 | +0.010 | 67% | 69% |
| corr_spy60 | momls_fwd21 | +0.003 | +0.004 | +0.000 | -0.004 | -0.026 | -0.029 | 45% | 56% |
| corr_spy60 | eqmom_fwd21 | +0.014 | +0.023 | +0.017 | +0.016 | +0.018 | +0.003 | 66% | 66% |
| corr_spy60 | flagship_fwd21 | +0.013 | +0.016 | +0.017 | +0.013 | +0.026 | +0.013 | 57% | 64% |
| disp20 | spy_fwd5 | +0.004 | +0.001 | +0.003 | +0.004 | +0.001 | -0.002 | 59% | 61% |
| disp20 | spy_fwd21 | +0.011 | +0.007 | +0.017 | +0.015 | +0.005 | -0.007 | 65% | 68% |
| disp20 | momls_fwd21 | -0.005 | -0.001 | +0.003 | +0.004 | -0.015 | -0.010 | 53% | 49% |
| disp20 | eqmom_fwd21 | +0.015 | +0.011 | +0.024 | +0.027 | +0.010 | -0.005 | 64% | 65% |
| disp20 | flagship_fwd21 | +0.013 | +0.008 | +0.019 | +0.022 | +0.019 | +0.006 | 59% | 62% |
| disp5 | spy_fwd5 | +0.002 | +0.002 | +0.003 | +0.004 | +0.002 | -0.001 | 59% | 61% |
| disp5 | spy_fwd21 | +0.011 | +0.011 | +0.013 | +0.011 | +0.007 | -0.004 | 65% | 70% |
| disp5 | momls_fwd21 | -0.003 | -0.001 | +0.000 | +0.003 | -0.015 | -0.012 | 53% | 50% |
| disp5 | eqmom_fwd21 | +0.017 | +0.014 | +0.018 | +0.021 | +0.014 | -0.003 | 64% | 67% |
| disp5 | flagship_fwd21 | +0.013 | +0.009 | +0.016 | +0.019 | +0.023 | +0.009 | 59% | 62% |
| hl_spread_52w | spy_fwd5 | +0.006 | +0.003 | +0.002 | +0.002 | +0.001 | -0.005 | 60% | 62% |
| hl_spread_52w | spy_fwd21 | +0.016 | +0.010 | +0.013 | +0.008 | +0.005 | -0.011 | 68% | 67% |
| hl_spread_52w | momls_fwd21 | -0.012 | -0.004 | -0.005 | +0.001 | -0.001 | +0.011 | 53% | 53% |
| hl_spread_52w | eqmom_fwd21 | +0.022 | +0.019 | +0.018 | +0.014 | +0.011 | -0.011 | 66% | 66% |
| hl_spread_52w | flagship_fwd21 | +0.028 | +0.017 | +0.019 | +0.011 | +0.009 | -0.019 | 60% | 60% |
| newhigh_52w | spy_fwd5 | +0.007 | +0.003 | +0.002 | +0.001 | +0.001 | -0.006 | 59% | 63% |
| newhigh_52w | spy_fwd21 | +0.021 | +0.011 | +0.012 | +0.005 | +0.005 | -0.016 | 66% | 69% |
| newhigh_52w | momls_fwd21 | -0.010 | -0.005 | -0.006 | +0.002 | -0.002 | +0.009 | 53% | 52% |
| newhigh_52w | eqmom_fwd21 | +0.029 | +0.020 | +0.016 | +0.011 | +0.010 | -0.018 | 65% | 66% |
| newhigh_52w | flagship_fwd21 | +0.029 | +0.020 | +0.017 | +0.010 | +0.009 | -0.020 | 59% | 63% |
| pct_pos_20d | spy_fwd5 | +0.005 | +0.000 | +0.003 | +0.002 | +0.002 | -0.002 | 61% | 59% |
| pct_pos_20d | spy_fwd21 | +0.023 | +0.004 | +0.008 | +0.008 | +0.008 | -0.015 | 67% | 69% |
| pct_pos_20d | momls_fwd21 | -0.012 | -0.003 | -0.003 | +0.001 | -0.002 | +0.010 | 53% | 53% |
| pct_pos_20d | eqmom_fwd21 | +0.030 | +0.010 | +0.015 | +0.014 | +0.015 | -0.015 | 65% | 66% |
| pct_pos_20d | flagship_fwd21 | +0.031 | +0.015 | +0.014 | +0.012 | +0.011 | -0.020 | 60% | 63% |
| sector_corr60 | spy_fwd5 | +0.001 | +0.003 | +0.003 | +0.002 | +0.006 | +0.005 | 63% | 58% |
| sector_corr60 | spy_fwd21 | +0.008 | +0.004 | +0.011 | +0.005 | +0.027 | +0.019 | 70% | 65% |
| sector_corr60 | momls_fwd21 | +0.003 | +0.004 | -0.007 | -0.006 | -0.020 | -0.023 | 44% | 56% |
| sector_corr60 | eqmom_fwd21 | +0.016 | +0.008 | +0.019 | +0.014 | +0.030 | +0.014 | 68% | 64% |
| sector_corr60 | flagship_fwd21 | +0.013 | +0.012 | +0.023 | +0.005 | +0.031 | +0.018 | 58% | 61% |
Reading
- 128/546 feature-target rank-ICs survive BH-FDR q<0.05; 114 pass the stricter robust gate.
- Robust RETURN-timing pairs found:
corr_spy60->momls_fwd21(OOS IC -0.206, partial -0.112, q 0.0261).corr_spy20->momls_fwd21(OOS IC -0.174, partial -0.129, q 0.0152).avg_corr20->momls_fwd21(OOS IC -0.144, partial -0.094, q 0.0478).
- The dominant, robust signal is forward volatility prediction: breadth, new-high/low spread, dispersion and average correlation all forecast future SPY vol and sleeve vol with |OOS IC| 0.3-0.5; several retain partial IC (e.g. hl_spread_52w -> spy_vol_fwd5 partial -0.26; hhi_dv -> eqmom_vol_fwd21 partial +0.29).
- Breadth/correlation levels are negatively related to forward market return (high breadth = post-rally mean reversion). The most promising return-timing result is that high average/cross-market correlation predicts a WORSE raw momentum long-short spread: corr_spy20 -> momls_fwd21 OOS IC -0.17, corr_spy60 -0.21, avg_corr20 -0.14, all BH-significant with non-zero partial IC (~-0.09..-0.13). This is the classic momentum-crash regime and is the leading Phase-2 candidate - but it applies to the generic momentum spread, not yet to the residual-momentum (eqmom) or ML (flagship) sleeves.
Top 5 by |OOS IC| per sleeve target:
| target | feature | IC OOS | partial IC | q |
|---|---|---|---|---|
| eqmom_fwd21 | newhigh_52w | -0.179 | -0.053 | 0.377 |
| eqmom_fwd21 | disp5 | +0.171 | +0.042 | 0.458 |
| eqmom_fwd21 | breadth_sma200 | -0.168 | +0.047 | 0.955 |
| eqmom_fwd21 | hl_spread_52w | -0.160 | -0.038 | 0.469 |
| eqmom_fwd21 | disp20 | +0.153 | +0.054 | 0.406 |
| flagship_fwd21 | avg_corr20 | +0.217 | +0.010 | 0.0656 |
| flagship_fwd21 | corr_spy20 | +0.187 | -0.045 | 0.295 |
| flagship_fwd21 | hl_spread_52w | -0.179 | -0.059 | 0.0767 |
| flagship_fwd21 | breadth_sma200 | -0.175 | +0.008 | 0.284 |
| flagship_fwd21 | breadth_sma50 | -0.175 | -0.074 | 0.074 |
| eqmom_vol_fwd21 | top10_dvwt | +0.420 | +0.324 | 1.77e-07 |
| eqmom_vol_fwd21 | resid_sector_disp | +0.413 | +0.221 | 2.42e-05 |
| eqmom_vol_fwd21 | resid_disp | +0.409 | +0.226 | 3.68e-05 |
| eqmom_vol_fwd21 | disp1 | +0.408 | +0.226 | 1.5e-05 |
| eqmom_vol_fwd21 | top5_dvwt | +0.397 | +0.312 | 1.03e-06 |
| flagship_vol_fwd21 | breadth_sma200 | -0.483 | -0.037 | 0.00585 |
| flagship_vol_fwd21 | avg_corr20 | +0.403 | -0.113 | 0.00548 |
| flagship_vol_fwd21 | disp5 | +0.403 | +0.116 | 0.00034 |
| flagship_vol_fwd21 | disp1 | +0.402 | +0.128 | 0.000272 |
| flagship_vol_fwd21 | resid_sector_disp | +0.395 | +0.114 | 0.000731 |
Phase-1 verdict
Equity-state features carry real, robust information about future risk (volatility) with incremental value over trailing SPY vol, and correlation robustly times the raw momentum spread. They do not carry a robust standalone return timing edge for the frozen eqmom/flagship sleeves. Phase 2 is justified on two fronts: (1) conditioning sleeve volatility/drawdown on state, and (2) the correlation -> momentum-spread effect. A return-timing overlay on the sleeves is NOT justified by Phase 1.