Retire completed GTL tuning harnesses
This commit is contained in:
@@ -459,65 +459,14 @@ metrics. Keep the SSH tunnel open only while creating the snapshot; the backtest
|
||||
run itself is local/offline. `backtest_snapshots/` and generated backtest reports
|
||||
are git-ignored.
|
||||
|
||||
### One-command GTL tuning run
|
||||
### Archived GTL tuning decision
|
||||
|
||||
The Gate Target Ladder has a research-only, single-variable matrix for testing
|
||||
whether its useful screening behavior can be made more explicit. It runs 20
|
||||
complete backtests **sequentially** so each arm gets the full worker pool:
|
||||
|
||||
```bash
|
||||
# macOS/Linux
|
||||
.venv/bin/python scripts/run_gtl_tuning_matrix.py \
|
||||
backtest_snapshots/prod.sqlite --workers 14
|
||||
```
|
||||
|
||||
The arms cover GTL history length, grid density, pivots, price-traffic scoring,
|
||||
proposal merging, target-zone width, candidate count, and maximum target
|
||||
distance. Every arm includes the full-period production book, the fixed
|
||||
`2024-07-01` train/test split, a candidate-level paired audit, and the same
|
||||
pre-registered robustness screen. This is one long command, not a Cartesian
|
||||
parameter search; expect total runtime to be roughly 20 times one full local
|
||||
backtest.
|
||||
|
||||
Progress is checkpointed after every arm to
|
||||
`reports/backtest-YYYYMMDD-gtl-tuning-matrix.json` and the matching `.md` table.
|
||||
The large per-arm reports are removed only after successful consolidation. If
|
||||
the run fails, they remain available for diagnosis; pass `--keep-arm-reports`
|
||||
to retain them after success too. No arm changes live scanner defaults or
|
||||
deploys anything.
|
||||
|
||||
The replacement matrix found no winning single constant. Its evidence-selected
|
||||
follow-up keeps control geometry and isolates retained versus added cohorts in
|
||||
one 13-arm confirmation/union run:
|
||||
|
||||
```bash
|
||||
# macOS/Linux
|
||||
.venv/bin/python scripts/run_gtl_confirmation_matrix.py \
|
||||
backtest_snapshots/prod.sqlite --workers 12
|
||||
```
|
||||
|
||||
It first verifies exact control parity with the completed tuning matrix, then
|
||||
checkpoints consolidated JSON and Markdown reports under
|
||||
`reports/backtest-YYYYMMDD-gtl-confirmation-matrix.*`.
|
||||
|
||||
The confirmation matrix's only near-hit was strength-1000 intersection: it
|
||||
improved full/train/post-2024 Sharpe but missed the unchanged drawdown guardrail
|
||||
by 0.3 percentage points. The final narrow sensitivity check is:
|
||||
|
||||
```bash
|
||||
.venv/bin/python scripts/run_gtl_strength_sensitivity.py \
|
||||
backtest_snapshots/prod.sqlite --workers 12
|
||||
```
|
||||
|
||||
It checks eight coarse scales around 1000, verifies exact control and
|
||||
strength-1000 replication, and requires two adjacent scales to pass every
|
||||
original guardrail before calling the result stable.
|
||||
|
||||
Final result: control and strength-1000 replication both passed, but there was
|
||||
no adjacent passing plateau. Scale 1500 passed in isolation while lowering CAGR
|
||||
and setup expectancy; its neighbors failed. The research decision is therefore
|
||||
to keep the frozen GTL unchanged and evaluate any future challenger only on new
|
||||
forward data. See the [full research record](docs/research/sr-levels-and-exits.md#gtl-tuning-matrix).
|
||||
The completed replacement, cohort-composition, and strength-sensitivity
|
||||
matrices found no stable improvement over the frozen Gate Target Ladder. The
|
||||
temporary matrix runners and tuning hooks have been retired; their three compact
|
||||
consolidated report pairs remain in `reports/` as the decision audit. Keep the
|
||||
GTL unchanged and evaluate any future challenger only on new forward data. See
|
||||
the [full research record](docs/research/sr-levels-and-exits.md#gtl-tuning-matrix).
|
||||
|
||||
### Reading a local backtest report
|
||||
|
||||
@@ -557,7 +506,6 @@ Research-only flags, all off by default (the default report is byte-identical to
|
||||
| `BACKTEST_HOLDOUT_SPLIT=YYYY-MM-DD` | Adds a `holdout` section: train (entries before) vs test (entries on/after), as disjoint books |
|
||||
| `BACKTEST_MIN_RR_SWEEP=1` | Sweeps the activation R:R floor against portfolio Sharpe. Combine with `BACKTEST_HOLDOUT_SPLIT` to sweep out-of-sample |
|
||||
| `BACKTEST_SR_VARIANT=<arm>` | Research-only S/R detector/gate arm; see `docs/research/sr-levels-and-exits.md` for the detector and hidden-feature matrices |
|
||||
| `BACKTEST_GTL_CONFIG=<json>` | Parameterizes only the `gtl_tuning` research arm; normally set by `run_gtl_tuning_matrix.py` |
|
||||
| `BACKTEST_ENTRY_START=YYYY-MM-DD` | Restrict candidate entry dates to a validation window |
|
||||
| `BACKTEST_ENTRY_END=YYYY-MM-DD` | Restrict candidate entry dates to a training window |
|
||||
| `BACKTEST_SR_AUDIT=1` | Add momentum-slice candidate rows for paired S/R cohort comparison |
|
||||
|
||||
Reference in New Issue
Block a user