Tier-1 alpha research (local only, no production deploy): Sector residual momentum: two-factor SPY+sector residual and sector demean signals, IC harness + A/B. Sector resid clears pre-registered bars narrowly (PROMOTE for human wire design only). Sector demean fails t vs market resid. Earnings: earnings_events backfill (FMP bulk paid; FMP/AV per-symbol), 2a gap diagnostic report-only, 2b SUE IC (PARK; incomplete 48/506 coverage). History-depth: pre-registered doc + runner for MacBook deep rebuild/harness. Do not ship production residual or filters from this branch.
332 lines
8.9 KiB
JSON
332 lines
8.9 KiB
JSON
{
|
|
"generated_at": "2026-07-19T09:31:29.078611",
|
|
"data_provenance": {
|
|
"snapshot": "C:\\Workspace\\signal-platform\\backtest_snapshots\\prod.sqlite",
|
|
"n_earnings_events": 5612,
|
|
"backfill_meta": {
|
|
"done": 48,
|
|
"universe_tickers": 506
|
|
},
|
|
"announce_range": {
|
|
"min": "1985-08-31",
|
|
"max": "2026-07-16"
|
|
},
|
|
"with_actual_and_estimate": 5018
|
|
},
|
|
"experiment_2a": {
|
|
"sim_summary": {
|
|
"sharpe": 2.09,
|
|
"sharpe_se": 0.497,
|
|
"cagr_pct": 51.6,
|
|
"max_drawdown_pct": 21.4,
|
|
"trades": 322,
|
|
"total_return_pct": 424.6
|
|
},
|
|
"n_trades_parsed": 322,
|
|
"q1_losses_worse_than_minus_1r": {
|
|
"n_losses_lt_minus_1r": 28,
|
|
"n_with_earnings_in_hold": 1,
|
|
"fraction_with_earnings": 0.0357,
|
|
"all_trades_with_earnings_in_hold": 14,
|
|
"fraction_all_trades_with_earnings": 0.0435
|
|
},
|
|
"q2_entry_within_3d_before_announce": {
|
|
"pre_earn_entries": {
|
|
"n": 4,
|
|
"mean": 1.9379,
|
|
"win_rate": 0.5,
|
|
"p05": -1.2428,
|
|
"p25": -0.8833,
|
|
"p50": 1.1209,
|
|
"p75": 3.942,
|
|
"p95": 6.2623,
|
|
"min": -1.3327,
|
|
"max": 6.8424
|
|
},
|
|
"other_entries": {
|
|
"n": 318,
|
|
"mean": 0.6965,
|
|
"win_rate": 0.3711,
|
|
"p05": -1.1052,
|
|
"p25": -1.0,
|
|
"p50": -0.8259,
|
|
"p75": 2.1053,
|
|
"p95": 6.077,
|
|
"min": -3.2587,
|
|
"max": 12.8654
|
|
},
|
|
"all_entries": {
|
|
"n": 322,
|
|
"mean": 0.7119,
|
|
"win_rate": 0.3727,
|
|
"p05": -1.1209,
|
|
"p25": -1.0,
|
|
"p50": -0.8251,
|
|
"p75": 2.1595,
|
|
"p95": 6.2246,
|
|
"min": -3.2587,
|
|
"max": 12.8654
|
|
},
|
|
"tail_trim_note": "Compare p95/max and mean of pre_earn vs other. Rising win_rate with falling mean/p95 = right-tail trim red flag."
|
|
},
|
|
"note": "REPORT-ONLY \u2014 no filter shipped."
|
|
},
|
|
"experiment_2b": {
|
|
"signal_eval_side_by_side": {
|
|
"mom_12_1": {
|
|
"signal": "mom_12_1",
|
|
"weeks": 35,
|
|
"avg_cross_section": 497.7,
|
|
"mean_ic": 0.0531,
|
|
"ic_t_stat": 1.61,
|
|
"ic_positive_pct": 65.7,
|
|
"mean_quintile_spread": 0.0206,
|
|
"reliable": true
|
|
},
|
|
"mom_12_1_resid": {
|
|
"signal": "mom_12_1_resid",
|
|
"weeks": 35,
|
|
"avg_cross_section": 497.7,
|
|
"mean_ic": 0.0552,
|
|
"ic_t_stat": 1.98,
|
|
"ic_positive_pct": 60.0,
|
|
"mean_quintile_spread": 0.0207,
|
|
"reliable": true
|
|
},
|
|
"mom_12_1_sector_resid": {
|
|
"signal": "mom_12_1_sector_resid",
|
|
"weeks": 35,
|
|
"avg_cross_section": 497.7,
|
|
"mean_ic": 0.0578,
|
|
"ic_t_stat": 2.34,
|
|
"ic_positive_pct": 65.7,
|
|
"mean_quintile_spread": 0.0245,
|
|
"reliable": true
|
|
},
|
|
"mom_12_1_sector_demeaned": {
|
|
"signal": "mom_12_1_sector_demeaned",
|
|
"weeks": 35,
|
|
"avg_cross_section": 496.7,
|
|
"mean_ic": 0.034,
|
|
"ic_t_stat": 1.32,
|
|
"ic_positive_pct": 62.9,
|
|
"mean_quintile_spread": 0.0154,
|
|
"reliable": true
|
|
},
|
|
"sue_latest": {
|
|
"signal": "sue_latest",
|
|
"weeks": 44,
|
|
"avg_cross_section": 47.4,
|
|
"mean_ic": 0.0172,
|
|
"ic_t_stat": 0.6,
|
|
"ic_positive_pct": 47.7,
|
|
"mean_quintile_spread": 0.0064,
|
|
"reliable": true
|
|
},
|
|
"fip_id": {
|
|
"signal": "fip_id",
|
|
"weeks": 35,
|
|
"avg_cross_section": 497.7,
|
|
"mean_ic": -0.045,
|
|
"ic_t_stat": -2.91,
|
|
"ic_positive_pct": 25.7,
|
|
"mean_quintile_spread": -0.0168,
|
|
"reliable": true
|
|
}
|
|
},
|
|
"signal_eval_identical_sue_subset": {
|
|
"mom_12_1": {
|
|
"signal": "mom_12_1",
|
|
"weeks": 35,
|
|
"avg_cross_section": 47.3,
|
|
"mean_ic": -0.0174,
|
|
"ic_t_stat": -0.42,
|
|
"ic_positive_pct": 45.7,
|
|
"mean_quintile_spread": 0.0077,
|
|
"reliable": true
|
|
},
|
|
"mom_12_1_resid": {
|
|
"signal": "mom_12_1_resid",
|
|
"weeks": 35,
|
|
"avg_cross_section": 47.3,
|
|
"mean_ic": -0.0104,
|
|
"ic_t_stat": -0.27,
|
|
"ic_positive_pct": 51.4,
|
|
"mean_quintile_spread": 0.0075,
|
|
"reliable": true
|
|
},
|
|
"sue_latest": {
|
|
"signal": "sue_latest",
|
|
"weeks": 44,
|
|
"avg_cross_section": 47.4,
|
|
"mean_ic": 0.0172,
|
|
"ic_t_stat": 0.6,
|
|
"ic_positive_pct": 47.7,
|
|
"mean_quintile_spread": 0.0064,
|
|
"reliable": true
|
|
}
|
|
},
|
|
"identical_subset_note": "Mom baselines re-scored only on (week, symbol) cells where SUE exists. Use this table when backfill is incomplete \u2014 full-universe mom N is not comparable.",
|
|
"full_signal_eval": [
|
|
{
|
|
"signal": "vol_6m",
|
|
"weeks": 39,
|
|
"avg_cross_section": 498.2,
|
|
"mean_ic": 0.0609,
|
|
"ic_t_stat": 1.48,
|
|
"ic_positive_pct": 64.1,
|
|
"mean_quintile_spread": 0.0337,
|
|
"reliable": true
|
|
},
|
|
{
|
|
"signal": "mom_12_1_sector_resid",
|
|
"weeks": 35,
|
|
"avg_cross_section": 497.7,
|
|
"mean_ic": 0.0578,
|
|
"ic_t_stat": 2.34,
|
|
"ic_positive_pct": 65.7,
|
|
"mean_quintile_spread": 0.0245,
|
|
"reliable": true
|
|
},
|
|
{
|
|
"signal": "mom_12_1_resid",
|
|
"weeks": 35,
|
|
"avg_cross_section": 497.7,
|
|
"mean_ic": 0.0552,
|
|
"ic_t_stat": 1.98,
|
|
"ic_positive_pct": 60.0,
|
|
"mean_quintile_spread": 0.0207,
|
|
"reliable": true
|
|
},
|
|
{
|
|
"signal": "mom_12_1",
|
|
"weeks": 35,
|
|
"avg_cross_section": 497.7,
|
|
"mean_ic": 0.0531,
|
|
"ic_t_stat": 1.61,
|
|
"ic_positive_pct": 65.7,
|
|
"mean_quintile_spread": 0.0206,
|
|
"reliable": true
|
|
},
|
|
{
|
|
"signal": "mom_12_1_sector_demeaned",
|
|
"weeks": 35,
|
|
"avg_cross_section": 496.7,
|
|
"mean_ic": 0.034,
|
|
"ic_t_stat": 1.32,
|
|
"ic_positive_pct": 62.9,
|
|
"mean_quintile_spread": 0.0154,
|
|
"reliable": true
|
|
},
|
|
{
|
|
"signal": "sue_latest",
|
|
"weeks": 44,
|
|
"avg_cross_section": 47.4,
|
|
"mean_ic": 0.0172,
|
|
"ic_t_stat": 0.6,
|
|
"ic_positive_pct": 47.7,
|
|
"mean_quintile_spread": 0.0064,
|
|
"reliable": true
|
|
},
|
|
{
|
|
"signal": "trend_200",
|
|
"weeks": 37,
|
|
"avg_cross_section": 497.9,
|
|
"mean_ic": 0.0161,
|
|
"ic_t_stat": 0.44,
|
|
"ic_positive_pct": 59.5,
|
|
"mean_quintile_spread": 0.006,
|
|
"reliable": true
|
|
},
|
|
{
|
|
"signal": "reversal_1m",
|
|
"weeks": 43,
|
|
"avg_cross_section": 498.7,
|
|
"mean_ic": 0.0059,
|
|
"ic_t_stat": 0.22,
|
|
"ic_positive_pct": 53.5,
|
|
"mean_quintile_spread": 0.0053,
|
|
"reliable": true
|
|
},
|
|
{
|
|
"signal": "mom_6_1",
|
|
"weeks": 39,
|
|
"avg_cross_section": 498.2,
|
|
"mean_ic": 0.0051,
|
|
"ic_t_stat": 0.21,
|
|
"ic_positive_pct": 56.4,
|
|
"mean_quintile_spread": 0.0087,
|
|
"reliable": true
|
|
},
|
|
{
|
|
"signal": "mom_3_1",
|
|
"weeks": 42,
|
|
"avg_cross_section": 498.5,
|
|
"mean_ic": -0.0064,
|
|
"ic_t_stat": -0.25,
|
|
"ic_positive_pct": 50.0,
|
|
"mean_quintile_spread": 0.0046,
|
|
"reliable": true
|
|
},
|
|
{
|
|
"signal": "high_52w",
|
|
"weeks": 35,
|
|
"avg_cross_section": 497.7,
|
|
"mean_ic": -0.0086,
|
|
"ic_t_stat": -0.26,
|
|
"ic_positive_pct": 54.3,
|
|
"mean_quintile_spread": -0.0088,
|
|
"reliable": true
|
|
},
|
|
{
|
|
"signal": "fip_id",
|
|
"weeks": 35,
|
|
"avg_cross_section": 497.7,
|
|
"mean_ic": -0.045,
|
|
"ic_t_stat": -2.91,
|
|
"ic_positive_pct": 25.7,
|
|
"mean_quintile_spread": -0.0168,
|
|
"reliable": true
|
|
}
|
|
],
|
|
"sue_grade": {
|
|
"green": false,
|
|
"checks": {
|
|
"mean_ic": 0.0172,
|
|
"sign_positive": true,
|
|
"abs_ge_0_03": false,
|
|
"reliable": true,
|
|
"ic_t_stat": 0.6,
|
|
"weeks": 44
|
|
},
|
|
"reason": "iron rule not met",
|
|
"row": {
|
|
"signal": "sue_latest",
|
|
"weeks": 44,
|
|
"avg_cross_section": 47.4,
|
|
"mean_ic": 0.0172,
|
|
"ic_t_stat": 0.6,
|
|
"ic_positive_pct": 47.7,
|
|
"mean_quintile_spread": 0.0064,
|
|
"reliable": true
|
|
}
|
|
},
|
|
"momentum_conditional_sue": {
|
|
"mean_ic": -0.0065,
|
|
"ic_t_stat": -0.1,
|
|
"weeks": 35,
|
|
"note": "IC of sue_latest within top mom_12_1 quintile (non-overlapping weeks)"
|
|
},
|
|
"sue_coverage": {
|
|
"symbols_with_sue": 48,
|
|
"avg_weeks_with_sue": 47.1,
|
|
"weeks_with_min_cross_section": 256
|
|
}
|
|
},
|
|
"verdict": "PARK",
|
|
"verdict_detail": "SUE IC=0.0172 below iron bar or unreliable; keep data, no wire.",
|
|
"human_next": "- No SUE book change.\n- Read 2a tails before considering any earnings-avoid filter.",
|
|
"report_path": "reports/earnings-gap-sue-20260719-093129.json",
|
|
"fmp_note": "Bulk earnings-calendar is paid (402 on free tier). Backfill used per-symbol /stable/earnings; see earnings-backfill-status.json."
|
|
}
|