research: volatility-standardized residual momentum screen, failed
Strategy review (2026-09-08) and a frozen, paired signal screen of residual 12-1 momentum divided by its formation-window residual volatility. Across 73 non-overlapping windows the normalized signal's IC is 0.0128 against 0.0145 for the matched control, below the frozen 0.03 floor, so the conditional portfolio replay was not run and nothing in production changes. Code-review fixes to the runner, before first commit: a missing OHLC price stops the run instead of reading as 0; the snapshot connection is closed explicitly (on Windows it otherwise kept the file locked); the paired-coverage check raises instead of asserting, so python -O cannot strip it; and source files are recorded as git blob ids with line endings normalized, so the report can be checked against history. The report was regenerated with the fixed runner; its screen section is byte-identical to the original run. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
70d17c1491
commit
7a9b3ad38b
9 files changed
+2659
No files matched your search
@@ -0,0 +1,35 @@
|
||||
# Residual normalization — signal screen
|
||||
|
||||
Generated: 2026-10-10T07:53:06.165467+00:00
|
||||
|
||||
**Verdict: FAIL**
|
||||
|
||||
Previously inspected historical data; no production change or new out-of-sample claim.
|
||||
|
||||
| Era | Arm | Windows | Avg stocks | Mean IC | IC 95% interval | Quintile spread |
|
||||
|---|---|---:|---:|---:|---|---:|
|
||||
| full | unrestricted_control | 73 | 485.5 | 0.0145 | [-0.0257, 0.0450] | 0.97% |
|
||||
| full | paired_control | 73 | 485.4 | 0.0145 | [-0.0257, 0.0450] | 0.97% |
|
||||
| full | normalized | 73 | 485.4 | 0.0128 | [-0.0271, 0.0442] | 0.75% |
|
||||
| pre_2021 | unrestricted_control | 30 | 472.0 | 0.0078 | [-0.0338, 0.0682] | 0.76% |
|
||||
| pre_2021 | paired_control | 30 | 471.7 | 0.0078 | [-0.0338, 0.0683] | 0.75% |
|
||||
| pre_2021 | normalized | 30 | 471.7 | 0.0050 | [-0.0395, 0.0661] | 0.46% |
|
||||
| post_2021 | unrestricted_control | 42 | 495.2 | 0.0238 | [-0.0125, 0.0630] | 1.26% |
|
||||
| post_2021 | paired_control | 42 | 495.2 | 0.0238 | [-0.0125, 0.0630] | 1.26% |
|
||||
| post_2021 | normalized | 42 | 495.2 | 0.0226 | [-0.0147, 0.0631] | 1.06% |
|
||||
|
||||
Paired normalized-minus-control IC differences:
|
||||
|
||||
- full: -0.0016; 95% interval [-0.004960466538844113, 0.0015584142071432597].
|
||||
- pre_2021: -0.0028; 95% interval [-0.008151700038659202, 0.001515881215178447].
|
||||
- post_2021: -0.0012; 95% interval [-0.005965195533675296, 0.003076462018338155].
|
||||
|
||||
Screen checks: `{"mean_ic_ge_0_03": false, "at_least_12_windows": true, "pre_2021_positive": true, "post_2021_positive": true}`
|
||||
|
||||
Portfolio stage: **not_run_failed_signal_screen**.
|
||||
|
||||
Signal IC and quintile spreads are predictive diagnostics, not simulated strategy returns.
|
||||
Intervals resample paired blocks of four non-overlapping forward windows; they remain exploratory.
|
||||
The unrestricted control shows the effect of requiring complete formation history.
|
||||
|
||||
[Frozen protocol](../docs/research/residual-normalization.md)
|
||||
Reference in new issue
Block a user