← Results index

Berg tradable strategy promotion from robust indicator — no-promotion gate

2026-08-22T00:00:00Z Investigation completed Evaluated all four Berg empirical families against the frozen tradable promotion gate: no family shows a robust, causally-lagged, cost-aware, subperiod-stable overlay. Price/boundary (389 signals, 2008-2019 delta -0.70pp, overlay -10.3pp vs SPY), capitulation (183 signals, 2008-2019 -0.24pp, overlay -7.19pp), breadth thrust (221 signals, 2020-2026 -0.65pp, overlay -7.6pp), and composite (358 signals, 1994-2007 no edge, overlay -2.56pp) all fail regime stability, adjacent-parameter robustness, or portfolio translation. No independent strategy bead spawned; same_close remains prohibited, hit-rate kept separate from overlay, and future promotion would require G0-G13 rigor via a new bead.

Objective

Decide whether any of the four empirical Berg families warrants promotion as an independent tradable strategy bead with full G0–G13 rigor. Promotion requires a frozen StrategySpec, same_close-prohibited next-close execution, reported costs/turnover/multiple-testing controls, walk-forward/held-out validation, robustness matrix, and marginal contribution — evaluated separately from the indicator report.

Approach

  1. Intake classified as investigation with public_artifact (no temporal_research/external_data/database_import — this gate re-reads already-frozen public-proxy experiments rather than running new backtests or acquiring data). Split not required; child only if a robust edge exists.
  2. Planning pinned one blocking investigation work item and publication via notebook + results.
  3. Re-read four published experiments and ledger/gap ground truth as bounded offline experiment:
  1. Verified datastore provenance read-only (data/market.sqlite close_only v5, 127 tickers 806,897 rows, zero BERG tickers, proxy spans as declared) and bead states (qm-tykd.1–4 closed rejected, qm-t0u5 closed, qm-zfl5 open licensing, qm-ckab blocked ledger v2).
  2. Audited each family against the frozen gate: causal lag (T+1 only, T+2 retained, same_close prohibited), 10 bps costs, turnover trivial, 30k multiple-testing vs unconditional + event baselines, adjacent-threshold/window robustness, false-signal rates, subperiod regime stability, and overlay vs SPY marginal contribution. All four fail at least one blocking criterion — no post-hoc tuning.
  3. Authored executed notebook research/experiments/1241 (legacy qm-is3q).ipynb (10 cells, 6 code cells with outputs) documenting H0 vs H1, per-family gate table, provenance, and no-promotion decision. Converted via python3 -m research.reports notebooks --id 1241 (legacy qm-is3q) and rebuilt results via python3 -m research.reports results. No data/market.sqlite mutation; citations are URLs per no_pdf_redistribution.

Files changed

Validation

Results

No family passes the tradable promotion gate — H0 holds, no independent strategy bead spawned. Each headline beats unconditional (+0.52/+1.12/+0.55/+0.92pp) but fails subperiod stability (F1 2008–2019 -0.70pp vs 1994–2007 +0.18pp and 2020+ +4.42pp; F2 2008–2019 -0.24pp vs 1994–2007 +3.19pp; F3 2020–2026 -0.65pp vs 2001–2007 +2.07pp; F4 1994–2007 0.86% vs 0.87% uncond driven by 2020+ 4.97% n=67), adjacent-parameter fragility, and overlay versus SPY negative (-10.3pp, -7.19pp, -7.6pp, -2.56pp) with 27–37% false-signal rates (worse in failed regimes) and severe 30k multiple-testing hazard even before walk-forward. No StrategySpec freeze, no walk-forward/held-out, and no G11–G12 matrix is fabricated for a rejected edge; same_close remains prohibited and indicator vs strategy reporting stays separate. A future public proxy that clears causal lag, 10 bps, turnover, and regime-stable gates would spawn a new strategy bead with full G0–G13 rigor to a separate publication decision. Follow-up ownership remains qm-zfl5 (licensing), qm-ckab (ledger v2), and any future per-family improvement via new data-source work.

Source artifact: research/results/1241.md