From 1d84a40c0487d15156e8d7b5a234ed314da0de54 Mon Sep 17 00:00:00 2001 From: Dennis Thiessen Date: Mon, 13 Jul 2026 16:24:43 +0200 Subject: [PATCH] Document final GTL research decision --- README.md | 6 ++++++ docs/research/sr-levels-and-exits.md | 22 ++++++++++++++++++++++ reports/README.md | 6 ++++++ 3 files changed, 34 insertions(+) diff --git a/README.md b/README.md index 3879117..258c157 100644 --- a/README.md +++ b/README.md @@ -513,6 +513,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). + ### Reading a local backtest report The deployed **Signals → Track Record** page is deliberately trimmed to validation diff --git a/docs/research/sr-levels-and-exits.md b/docs/research/sr-levels-and-exits.md index 9e49906..b110eea 100644 --- a/docs/research/sr-levels-and-exits.md +++ b/docs/research/sr-levels-and-exits.md @@ -906,6 +906,28 @@ is rejected as sensitivity. backtest_snapshots/prod.sqlite --workers 12 ``` +Final result: **9/9 arms completed, control parity passed, and the +strength-1000 replication passed.** Scale 1500 was the only arm to clear all +six original checks, but neither adjacent scale (1250 or 2000) cleared them, so +the pre-registered stable-plateau requirement failed. It also traded away +return and setup quality despite its screen pass: CAGR fell from 50.0% to 48.8% +and qualified expectancy from +0.209R to +0.188R. + +The sensitivity curve shows a real but non-dominating trade-off. Scales +750–1000 produce small Sharpe improvements in parts of the sample but each +misses a different unchanged guardrail; higher scales eventually reduce +drawdown by filtering more setups, while CAGR, expectancy, and then Sharpe +decline. There is no robust parameter neighborhood that improves the whole +book. + +**Final decision: keep the frozen Gate Target Ladder and do not deploy a +strength-confirmation gate.** The GTL remains the explicit, volume-free +compatibility component that exactly reproduces the validated production +screen. Clean Structural S/R remains the separate human-facing chart/alert +model. This snapshot is now exhausted for GTL fitting; any future challenger +must be pre-registered and evaluated on genuinely new forward data rather than +another iteration over the same history. + 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. diff --git a/reports/README.md b/reports/README.md index b7fd4eb..5173d91 100644 --- a/reports/README.md +++ b/reports/README.md @@ -90,3 +90,9 @@ decomposition decision point. The final stability check writes: Its pre-registered decision requires at least two adjacent scales to pass all six unchanged checks. + +Final sensitivity result: exact control and strength-1000 replication passed. +Scale 1500 was the sole 6/6 arm, but no adjacent scale passed, so the stable- +plateau rule rejected it. Retain the consolidated JSON/Markdown as the closing +GTL decision point. No confirmation or tuned strength value should be promoted +from this snapshot.