Isolate legacy range-expansion factor
This commit is contained in:
@@ -541,10 +541,53 @@ Run only these new arms on macOS:
|
||||
--only-arm legacy_range_grid_neutral --workers 14
|
||||
```
|
||||
|
||||
The touch arm should closely reproduce `legacy_traffic_grid_only`; that is the
|
||||
volume-removal parity check. The touch-versus-neutral comparison then attributes
|
||||
any remaining difference to occupancy strength. Freeze the winner before running
|
||||
the post-2024-06-30 validation command; do not tune the bin count on training data.
|
||||
The touch arm reproduced `legacy_traffic_grid_only` exactly: all 121,464
|
||||
candidates, 504 qualified setups, cohort membership, expectancy, and portfolio
|
||||
metrics match. Volume contributes nothing. Neutral strength won the training
|
||||
portfolio comparison (Sharpe 1.98 versus 1.72), but failed the locked validation:
|
||||
|
||||
| validation arm | Sharpe | CAGR | MaxDD | net avg R | ex-top-5% |
|
||||
|---|---:|---:|---:|---:|---:|
|
||||
| production control | **2.78** | **73.3%** | **11.7%** | 0.174 | 0.022 |
|
||||
| neutral range grid | 1.85 | 43.2% | 15.2% | **0.178** | **0.039** |
|
||||
|
||||
The neutral grid is a no-ship. The validation failure prompted a causal audit of
|
||||
the control rather than another detector sweep. One relationship survives both
|
||||
periods: dense legacy ladders are a proxy for a wide multiplicative price range.
|
||||
|
||||
| control cohort | training ex-top-5% | validation ex-top-5% |
|
||||
|---|---:|---:|
|
||||
| at least 70 legacy levels | +0.165R | +0.185R |
|
||||
| fewer than 70 levels | +0.004R | -0.379R |
|
||||
|
||||
Level count is not independently useful after controlling for the last 504
|
||||
trading days' range. For `log(max(high) / min(low)) >= 1.0315` (about a 2.8x
|
||||
high/low ratio), the overlap cohort returns +0.292R training and +0.322R
|
||||
validation ex-top-5%. High density without high range returns -0.096R and
|
||||
+0.029R. Correlation between the explicit range and legacy level count is 0.864
|
||||
training and 0.822 validation.
|
||||
|
||||
This isolates the hidden feature as a two-year realized price-excursion factor,
|
||||
accidentally encoded by how many full-history pivots survive a 0.5% merge. It is
|
||||
not evidence that the arbitrary lines are structural. A rounded threshold of
|
||||
`log range >= 1.0` remains positive across a 0.9/1.0/1.1 sensitivity plateau.
|
||||
|
||||
Two diagnostic-only arms now test whether the explicit scalar replaces the side
|
||||
effect:
|
||||
|
||||
- `production_range504`: deployed targets plus the explicit range gate;
|
||||
- `rewrite_range504_legacy_primary`: clean targets, frozen primary selection,
|
||||
plus the identical range gate.
|
||||
|
||||
Run on pre-2024 training data only:
|
||||
|
||||
```bash
|
||||
.venv/bin/python scripts/run_sr_v2_matrix.py factor --workers 14
|
||||
```
|
||||
|
||||
The post-2024 window has been opened and is now analysis data, not a valid final
|
||||
promotion holdout. These arms can isolate mechanism, but neither may ship without
|
||||
new future data or a separately pre-registered walk-forward protocol.
|
||||
|
||||
**Next runs, if picked back up:**
|
||||
|
||||
|
||||
Reference in New Issue
Block a user