Cost-aware directional prediction for Binance USDⓈ-M perpetual BTCUSDT at 1h–2d holding
periods. This is Cycle 2 of a pre-registered research line; Cycle 1 (15-minute substrate,
repo btc-dollarbar-predictor) closed KILL-for-now — a real ~57%-accuracy signal worth $0
after 11 bps taker costs, fold-unstable, held-out never opened.
Cycle 2 is the single follow-on licensed by Cycle 1's registered reopen conditions: (a) materially lower costs (maker execution at longer holds) + (c) a new hypothesis class (features native to a 1h/4h timescale). It carries a pre-committed exit (D9): a second honest kill shelves the quant-research line as a solved question.
Status: CLOSED — KILL-for-now (tag
modeling-cycle-2-closed). 0/240 configs passed all validation gates with ≥200 OOS trades → registered insufficiency rule. Held-out never opened. D9 exit triggered: the quant-research line is shelved as a solved question.
The two-cycle answer. Cycle 1 (0/600) couldn't tell "no signal" from "signal below the cost floor." Cycle 2 halved the floor as designed — 40 configs cleared costs (G5) — but that was pooled drift-harvesting, not prediction: 0/240 beat majority (G1), 0/240 calibrated OOS (G3), max 4/6 positive folds (G4), and 35 of the 40 cost-clearers failed to beat costed buy-and-hold. Cost hypothesis confirmed, signal hypothesis refuted, in the same table. Across 840 configs, two substrates, two registered cycles with sealed held-out, BTCUSDT klines at 15m–2d horizons contain no directional edge exceeding retail-accessible costs; the residual pooled expectancy at 8–24h is drift, not skill.
- Closeout memo:
reports/CYCLE2_CLOSEOUT.md— verdict, mechanism, escape-hatch, honesty ledger - Decisive gate table:
reports/validation_folds.md· raw:reports/validation_results.csv - Honest bar (baselines):
reports/baselines.md· Data/features/labels:reports/data_quality.md,reports/features_labels.md - Design spec + full mechanic log:
docs/registration/2026-07-14-cycle2-design.md,docs/registration_log.md - Sealed held-out boundary (never opened, both cycles):
heldout.start_ms = 1752696900000(2025-07-16T20:15:00Z)
D9 reopening conditions after this cycle: condition (a) lower costs is spent (built, halved, survived). Live only under (c) a categorically different input — measured fills, trade-level/order-book data, or a different market. Never (a) again.
Independent git repo — deliberately separate from btc-dollarbar-predictor so Cycle 1's sealed,
closed status is never disturbed.