Isolate legacy range-grid features

This commit is contained in:
2026-07-13 07:57:52 +02:00
parent 37836f8824
commit f7c2e35e29
7 changed files with 223 additions and 40 deletions
+43 -18
View File
@@ -481,13 +481,13 @@ into production as-is.
### Hidden-feature isolation
The remaining hypothesis is that the deployed detector accidentally measures
long-memory historical price traffic rather than genuine S/R. A dedicated matrix
holds the complete gate fixed and changes one legacy component at a time:
The deployed detector accidentally measures long-memory historical price traffic
rather than genuine S/R. A dedicated matrix holds the complete gate fixed and
changes one legacy component at a time:
- `legacy_geometry_neutral`: old locations, every merged strength fixed at 50;
- `legacy_pivots_only`: unfiltered full-history pivots, no VP grid;
- `legacy_traffic_grid_only`: old range-volume price grid, no pivots.
- `legacy_traffic_grid_only`: deployed HVN+LVN grid, no pivots.
Run on macOS:
@@ -498,29 +498,54 @@ Run on macOS:
Do not validate any traffic arm yet. First establish whether geometry, pivots, or
the range-occupancy grid reproduces production on pre-2024 training data.
Initial result:
Corrected training result:
| arm | Sharpe | CAGR | MaxDD | net avg R | ex-top-5% |
|---|---:|---:|---:|---:|---:|
| production control | 1.28 | 28.8% | 21.4% | 0.230 | 0.066 |
| pivots only | 1.38 | 32.9% | 25.2% | 0.236 | 0.076 |
| traffic grid only | **1.72** | **41.8%** | **16.8%** | **0.271** | **0.136** |
| arm | qualified | Sharpe | CAGR | MaxDD | net avg R | ex-top-5% |
|---|---:|---:|---:|---:|---:|---:|
| production control | 676 | 1.28 | 28.8% | 21.4% | 0.230 | 0.066 |
| corrected neutral geometry | 505 | 1.48 | 33.5% | 18.2% | 0.230 | 0.087 |
| pivots only | 717 | 1.38 | 32.9% | 25.2% | 0.236 | 0.076 |
| traffic grid only | 504 | **1.72** | **41.8%** | **16.8%** | **0.271** | **0.136** |
The traffic grid is the first research arm to beat control simultaneously on
Sharpe, CAGR, drawdown, and robust expectancy. It retains 264 production setups,
adds 240 positive-expectancy setups, and removes 412 weaker setups. This supports
the hypothesis that the useful legacy feature is the volume-weighted range-
occupancy grid, not pivots or visually meaningful S/R.
Sharpe, CAGR, drawdown, and robust expectancy. It retains 264 production setups
at +0.214R ex-top-5%, adds 240 at +0.051R, and removes 412 at only +0.010R.
Against corrected neutral geometry, only 239 qualified setups overlap; the 265
traffic-only setups return +0.140R ex-top-5% versus +0.073R for the 266
neutral-only setups. This is different selection, not merely a lower trade count.
The first geometry-neutral result is not interpretable: neutral strength was set
before the shared zone cluster, which summed multiple 50-strength constituents
back to 100. Neutrality is now enforced after clustering. Rerun only that arm:
The old `volume_profile` name is misleading. Its helper returns both HVN and LVN
bins, so their union retains almost every one of the 20 evenly spaced centers over
the expanding historical high-low range (19.987 levels on average in the audit).
The later strength calculation does not use volume; it counts bars whose ranges
cross each center. The candidate feature is therefore:
1. a normalized, expanding 20-bin price-range grid;
2. range-touch occupancy strength;
3. no full-history pivot ladder or pivot/grid strength saturation.
Two final training arms isolate the first two items explicitly:
- `legacy_range_grid_touch`: all 20 range centers, no volume calculation, legacy
touch strength;
- `legacy_range_grid_neutral`: identical centers, strength fixed at 50 after
clustering.
Run only these new arms on macOS:
```bash
.venv/bin/python scripts/run_sr_v2_matrix.py traffic \
--only-arm legacy_geometry_neutral --workers 14
--only-arm legacy_range_grid_touch --workers 14
.venv/bin/python scripts/run_sr_v2_matrix.py traffic \
--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.
**Next runs, if picked back up:**
- A **per-name target model** for clear-air setups instead of a constant k×ATR. This