Files
momentum-system/experiments/orb_pmhigh_gate_v1.json
T
momentum devandClaude Fable 5 c7249b22e2 feat: orb_pmhigh_gate_v1 — premarket-high reclaim gate, forward OOS test
H3 (enter the pm-high break at 9:30 instead of the ORB) FAILED its
pre-registered bar on the year replay: paired delta -0.069R (n=689) —
entering earlier on the same names does not pay; the 5-minute wait stays.

The decomposition found the real signal: ORB fires where RTH price also
reclaimed the premarket high ran +0.316R (n=689) vs -0.298R (n=477) where
it never did — 100th percentile of a 2000-draw random-gate null at the
same keep-rate (null p99 +0.127), sign-consistent 14/14 months. First
lever of 15 to survive both checks in-sample.

Because the split was found in this dataset, it counts for nothing until
fresh fires confirm: new 'pmhigh_gate' intervention kind (fail-open on a
missing premarket_structure row, RTH-only reclaim check at/before the
entry bar) + registered spec with expR_delta >= 0.05 at n >= 200 forward
bar. Cohort self-registers on the next nightly experiments run.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-31 22:20:25 -05:00

10 lines
786 B
JSON

{
"id": "orb_pmhigh_gate_v1",
"hypothesis": "Allow an ORB entry only if regular-hours price has reclaimed the PREMARKET high at/before entry. In-sample (year replay, 2026-08-01): kept fires +0.316R (n=689) vs gated -0.298R (n=477), 100th percentile of a 2000-draw random-gate null at the same keep-rate, 14/14 months sign-consistent. This experiment is the FORWARD out-of-sample test on fresh fires; the in-sample split does not count toward the bar.",
"population": {"min_entry_gap_pct": 0.10, "min_day_volume": 300000, "price_min": 2.0, "price_max": 20.0},
"intervention": {"kind": "pmhigh_gate"},
"bars": {"expR_delta_min": 0.05, "min_n": 200},
"futility": {"min_n": 400, "expR_delta_max": -0.02},
"fidelity": {"atr_frac": 0.25, "spread_mult": 3, "adverse_ticks": 1}
}