H4 (3-book): keep-or-zero on trigger-bar volume concentration vs prior 5-bar sum (>1.0 = completed one-shot burst). H3 (5-book, direction disputed): fragility-camp primary — zero fires whose fill-time relative spread exceeds 2x the name's own 10-min median from quote_snapshots (which carry bid/ask SIZES since 07-02 — the note's data-upgrade #1 was already satisfied). Coverage design learns the dilution_veto_v1 lesson: no-quote fires are SKIPPED (variant None, excluded from n), so thin coverage cannot false-FAIL. H5 deliberately deferred until H1's verdict (its incremental value is defined net of H1's catches). 6 tests. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
9 lines
1.1 KiB
JSON
9 lines
1.1 KiB
JSON
{
|
|
"id": "orderflow_h3_spread_v1",
|
|
"hypothesis": "Spread-expansion at trigger (orderflow_notes.md H3, 5 books, direction disputed): PRIMARY = fragility camp (Bouchaud/CKS/Bellafiore) — relative spread at fill above 2.0x the name's own 10-min pre-trigger median (liquidity vacuum) marks fragile breakouts; zeroing them lifts kept expR. Two-sidedness handled by recording detail.expansion_ratio per fire: a strongly NEGATIVE delta here supports registering the flipped (adverse-selection) v2. COVERAGE: fires without >=5 usable pre-trigger snapshots are SKIPPED (variant None, excluded from n — the dilution_veto_v1 false-FAIL lesson); quote_snapshots exist since 2026-07-02, so n accrues ~30 fires/day and min_n is reached in ~2 weeks.",
|
|
"population": {"min_entry_gap_pct": 0.10, "min_day_volume": 300000, "price_min": 2.0, "price_max": 20.0},
|
|
"intervention": {"kind": "spread_expansion_gate", "baseline_minutes": 10, "max_expansion_ratio": 2.0},
|
|
"bars": {"expR_delta_min": 0.05, "min_n": 300},
|
|
"fidelity": {"atr_frac": 0.25, "spread_mult": 3, "adverse_ticks": 1}
|
|
}
|