tests done
This commit is contained in:
@@ -0,0 +1,341 @@
|
||||
# Sector-residual deep test (masked, repaired snapshot)
|
||||
|
||||
Generated: `2026-07-19T11:33:19.102779`
|
||||
|
||||
> **SURVIVORSHIP BIAS: today's constituents backfilled. Relative IC only — not levels.**
|
||||
|
||||
## Pre-registered grade (mechanical)
|
||||
|
||||
**Verdict: FAIL**
|
||||
|
||||
Task 1 CLOSED — sector residual dead on deep evidence.
|
||||
|
||||
Reason: failed one or more pre-registered checks (see checks)
|
||||
|
||||
```json
|
||||
{
|
||||
"sector_row": {
|
||||
"signal": "mom_12_1_sector_resid",
|
||||
"weeks": 83,
|
||||
"avg_cross_section": 480.0,
|
||||
"mean_ic": 0.0268,
|
||||
"ic_t_stat": 1.69,
|
||||
"ic_positive_pct": 60.2,
|
||||
"mean_quintile_spread": 0.0126,
|
||||
"reliable": true,
|
||||
"liquid_breadth_top_n": 1500,
|
||||
"liquid_min_price": 5.0,
|
||||
"avg_raw_pool": 481.2,
|
||||
"avg_eligible_pre_mask": 480.0,
|
||||
"mask_binds_pct": 0.0
|
||||
},
|
||||
"resid_row_for_t": {
|
||||
"signal": "mom_12_1_resid",
|
||||
"weeks": 83,
|
||||
"avg_cross_section": 480.0,
|
||||
"mean_ic": 0.0251,
|
||||
"ic_t_stat": 1.3,
|
||||
"ic_positive_pct": 57.8,
|
||||
"mean_quintile_spread": 0.011,
|
||||
"reliable": true,
|
||||
"liquid_breadth_top_n": 1500,
|
||||
"liquid_min_price": 5.0,
|
||||
"avg_raw_pool": 481.2,
|
||||
"avg_eligible_pre_mask": 480.0,
|
||||
"mask_binds_pct": 0.0
|
||||
},
|
||||
"resid_t_source": "identical_subset",
|
||||
"pre_2021": {
|
||||
"signal": "mom_12_1_sector_resid",
|
||||
"weeks": 36,
|
||||
"avg_cross_section": 460.7,
|
||||
"mean_ic": 0.0149,
|
||||
"ic_t_stat": 0.64,
|
||||
"ic_positive_pct": 58.3,
|
||||
"mean_quintile_spread": 0.0063,
|
||||
"reliable": true,
|
||||
"liquid_breadth_top_n": 1500,
|
||||
"liquid_min_price": 5.0,
|
||||
"avg_raw_pool": 462.8,
|
||||
"avg_eligible_pre_mask": 460.7,
|
||||
"mask_binds_pct": 0.0
|
||||
},
|
||||
"post_2021": {
|
||||
"signal": "mom_12_1_sector_resid",
|
||||
"weeks": 48,
|
||||
"avg_cross_section": 494.5,
|
||||
"mean_ic": 0.033,
|
||||
"ic_t_stat": 1.39,
|
||||
"ic_positive_pct": 60.4,
|
||||
"mean_quintile_spread": 0.0158,
|
||||
"reliable": true,
|
||||
"liquid_breadth_top_n": 1500,
|
||||
"liquid_min_price": 5.0,
|
||||
"avg_raw_pool": 495.1,
|
||||
"avg_eligible_pre_mask": 494.5,
|
||||
"mask_binds_pct": 0.0
|
||||
},
|
||||
"abs_mean_ic_ge_0_03": false,
|
||||
"sign_positive": true,
|
||||
"reliable": true,
|
||||
"weeks_ge_50": true,
|
||||
"weeks": 83,
|
||||
"t_ge_resid_same_cs": true,
|
||||
"sector_t": 1.69,
|
||||
"resid_t": 1.3,
|
||||
"era_both_present": true,
|
||||
"era_sign_consistent_positive": true,
|
||||
"pre_ic": 0.0149,
|
||||
"post_ic": 0.033,
|
||||
"avg_cross_section": 480.0
|
||||
}
|
||||
```
|
||||
|
||||
## Step-1 sanity
|
||||
|
||||
```json
|
||||
{
|
||||
"skipped": true,
|
||||
"sanity": {
|
||||
"passed": true,
|
||||
"megacap": {
|
||||
"AAPL": {
|
||||
"symbol": "AAPL",
|
||||
"bars": 2649,
|
||||
"min_date": "2016-01-04",
|
||||
"max_date": "2026-07-17"
|
||||
},
|
||||
"MSFT": {
|
||||
"symbol": "MSFT",
|
||||
"bars": 2649,
|
||||
"min_date": "2016-01-04",
|
||||
"max_date": "2026-07-17"
|
||||
},
|
||||
"JPM": {
|
||||
"symbol": "JPM",
|
||||
"bars": 2649,
|
||||
"min_date": "2016-01-04",
|
||||
"max_date": "2026-07-17"
|
||||
},
|
||||
"XOM": {
|
||||
"symbol": "XOM",
|
||||
"bars": 2649,
|
||||
"min_date": "2016-01-04",
|
||||
"max_date": "2026-07-17"
|
||||
},
|
||||
"JNJ": {
|
||||
"symbol": "JNJ",
|
||||
"bars": 2649,
|
||||
"min_date": "2016-01-04",
|
||||
"max_date": "2026-07-17"
|
||||
}
|
||||
},
|
||||
"megacap_ok": true,
|
||||
"megacap_reasons": [],
|
||||
"feed_floor": "2016-01-04",
|
||||
"spy_benchmark": {
|
||||
"n": 2649,
|
||||
"min": "2016-01-04",
|
||||
"max": "2026-07-17"
|
||||
},
|
||||
"old_shallow_floor": "2020-01-01",
|
||||
"sector_etfs": {
|
||||
"XLB": {
|
||||
"n": 2649,
|
||||
"min": "2016-01-04",
|
||||
"max": "2026-07-17"
|
||||
},
|
||||
"XLC": {
|
||||
"n": 2030,
|
||||
"min": "2018-06-19",
|
||||
"max": "2026-07-17"
|
||||
},
|
||||
"XLE": {
|
||||
"n": 2649,
|
||||
"min": "2016-01-04",
|
||||
"max": "2026-07-17"
|
||||
},
|
||||
"XLF": {
|
||||
"n": 2649,
|
||||
"min": "2016-01-04",
|
||||
"max": "2026-07-17"
|
||||
},
|
||||
"XLI": {
|
||||
"n": 2649,
|
||||
"min": "2016-01-04",
|
||||
"max": "2026-07-17"
|
||||
},
|
||||
"XLK": {
|
||||
"n": 2649,
|
||||
"min": "2016-01-04",
|
||||
"max": "2026-07-17"
|
||||
},
|
||||
"XLP": {
|
||||
"n": 2649,
|
||||
"min": "2016-01-04",
|
||||
"max": "2026-07-17"
|
||||
},
|
||||
"XLRE": {
|
||||
"n": 2649,
|
||||
"min": "2016-01-04",
|
||||
"max": "2026-07-17"
|
||||
},
|
||||
"XLU": {
|
||||
"n": 2649,
|
||||
"min": "2016-01-04",
|
||||
"max": "2026-07-17"
|
||||
},
|
||||
"XLV": {
|
||||
"n": 2649,
|
||||
"min": "2016-01-04",
|
||||
"max": "2026-07-17"
|
||||
},
|
||||
"XLY": {
|
||||
"n": 2649,
|
||||
"min": "2016-01-04",
|
||||
"max": "2026-07-17"
|
||||
}
|
||||
},
|
||||
"sector_etfs_deep_count": 11,
|
||||
"sector_etfs_ok": true,
|
||||
"sector_etf_reasons": [],
|
||||
"still_shallow_count": 2882,
|
||||
"still_shallow_sample": [
|
||||
"AACB",
|
||||
"AACBR",
|
||||
"AACBU",
|
||||
"AACI",
|
||||
"AACIU",
|
||||
"AACIW",
|
||||
"AACO",
|
||||
"AACOU",
|
||||
"AACOW",
|
||||
"AACP",
|
||||
"AACPR",
|
||||
"AACPU",
|
||||
"AACPW",
|
||||
"AAPG",
|
||||
"AARD",
|
||||
"ABAT",
|
||||
"ABCL",
|
||||
"ABLV",
|
||||
"ABLVW",
|
||||
"ABNB"
|
||||
],
|
||||
"still_shallow_note": "Remaining 'shallow' names are mostly post-2017 IPOs/listings \u2014 expected, not a two-tier defect.",
|
||||
"xlc_note": "XLC lists mid-2018 \u2192 Communication Services residual coverage from ~mid-2019.",
|
||||
"feed_note": "Empirical Alpaca floor observed via SPY: 2016-01-04 (n=2649). Calendar history_days=5000 is a request cap, not a guarantee \u2014 sanity grades against the feed floor, not 5000 calendar days.",
|
||||
"target_history_days": 5000
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Mask diagnostics
|
||||
|
||||
```json
|
||||
{
|
||||
"reference_signal": "vol_6m",
|
||||
"avg_cross_section": 1499.3,
|
||||
"avg_raw_pool": 2641.3,
|
||||
"avg_eligible_pre_mask": 2098.8,
|
||||
"mask_binds_pct": 95.5,
|
||||
"weeks": 88
|
||||
}
|
||||
```
|
||||
|
||||
## Signal table (rows only — no narrative for non-sector signals)
|
||||
|
||||
| signal | mean_ic | t | weeks | avg_N | reliable |
|
||||
|---|---:|---:|---:|---:|---|
|
||||
| fip_id | -0.0184 | -2.11 | 83 | 1499.4 | True |
|
||||
| high_52w | 0.0761 | 4.46 | 84 | 1499.2 | True |
|
||||
| mom_12_1 | 0.0355 | 2.41 | 83 | 1499.4 | True |
|
||||
| mom_12_1_resid | 0.0148 | 1.02 | 83 | 1499.4 | True |
|
||||
| mom_12_1_sector_demeaned | 0.0076 | 0.46 | 83 | 483.2 | True |
|
||||
| mom_12_1_sector_resid | 0.0268 | 1.69 | 83 | 480.0 | True |
|
||||
| mom_3_1 | 0.0256 | 2.24 | 90 | 1498.6 | True |
|
||||
| mom_6_1 | 0.0101 | 0.91 | 88 | 1499.3 | True |
|
||||
| reversal_1m | 0.0156 | 1.37 | 89 | 1499.0 | True |
|
||||
| trend_200 | 0.0371 | 2.63 | 85 | 1499.6 | True |
|
||||
| vol_6m | -0.0704 | -3.14 | 88 | 1499.3 | True |
|
||||
|
||||
### Era split — mom_12_1_sector_resid only (for grade)
|
||||
|
||||
| era | IC | t | weeks | N |
|
||||
|---|---:|---:|---:|---:|
|
||||
| pre_2021 | 0.0149 | 0.64 | 36 | 460.7 |
|
||||
| post_2021 | 0.033 | 1.39 | 48 | 494.5 |
|
||||
|
||||
### Identical-subset baselines (sector CS)
|
||||
|
||||
```json
|
||||
{
|
||||
"mom_12_1_sector_resid": {
|
||||
"signal": "mom_12_1_sector_resid",
|
||||
"weeks": 83,
|
||||
"avg_cross_section": 480.0,
|
||||
"mean_ic": 0.0268,
|
||||
"ic_t_stat": 1.69,
|
||||
"ic_positive_pct": 60.2,
|
||||
"mean_quintile_spread": 0.0126,
|
||||
"reliable": true,
|
||||
"liquid_breadth_top_n": 1500,
|
||||
"liquid_min_price": 5.0,
|
||||
"avg_raw_pool": 481.2,
|
||||
"avg_eligible_pre_mask": 480.0,
|
||||
"mask_binds_pct": 0.0
|
||||
},
|
||||
"mom_12_1_resid": {
|
||||
"signal": "mom_12_1_resid",
|
||||
"weeks": 83,
|
||||
"avg_cross_section": 480.0,
|
||||
"mean_ic": 0.0251,
|
||||
"ic_t_stat": 1.3,
|
||||
"ic_positive_pct": 57.8,
|
||||
"mean_quintile_spread": 0.011,
|
||||
"reliable": true,
|
||||
"liquid_breadth_top_n": 1500,
|
||||
"liquid_min_price": 5.0,
|
||||
"avg_raw_pool": 481.2,
|
||||
"avg_eligible_pre_mask": 480.0,
|
||||
"mask_binds_pct": 0.0
|
||||
},
|
||||
"mom_12_1": {
|
||||
"signal": "mom_12_1",
|
||||
"weeks": 83,
|
||||
"avg_cross_section": 480.0,
|
||||
"mean_ic": 0.0192,
|
||||
"ic_t_stat": 0.92,
|
||||
"ic_positive_pct": 56.6,
|
||||
"mean_quintile_spread": 0.0099,
|
||||
"reliable": true,
|
||||
"liquid_breadth_top_n": 1500,
|
||||
"liquid_min_price": 5.0,
|
||||
"avg_raw_pool": 481.2,
|
||||
"avg_eligible_pre_mask": 480.0,
|
||||
"mask_binds_pct": 0.0
|
||||
},
|
||||
"mom_12_1_sector_demeaned": {
|
||||
"signal": "mom_12_1_sector_demeaned",
|
||||
"weeks": 83,
|
||||
"avg_cross_section": 479.0,
|
||||
"mean_ic": 0.0063,
|
||||
"ic_t_stat": 0.39,
|
||||
"ic_positive_pct": 55.4,
|
||||
"mean_quintile_spread": 0.0048,
|
||||
"reliable": true,
|
||||
"liquid_breadth_top_n": 1500,
|
||||
"liquid_min_price": 5.0,
|
||||
"avg_raw_pool": 480.2,
|
||||
"avg_eligible_pre_mask": 479.0,
|
||||
"mask_binds_pct": 0.0
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Status
|
||||
|
||||
PENDING_HUMAN beyond the mechanical PASS/FAIL above. Nothing merged into production docs or prod code.
|
||||
|
||||
JSON: `reports/sector-resid-deep-20260719-113319.json`
|
||||
|
||||
Reference in New Issue
Block a user