Xiphers Research·← Back to indexDEEN

RV1 — will today's RTH be a big one? · ES

ES · decision at 09:30 New York · 1607 daily bars up to 2026-08-14

Verdict — ES

Can we tell at 09:30 whether the RTH range will come in above the median of the last 20 days (relr ≥ 1)?

Criterion met — BSS 17.8 % [12.4 ; 22.9], AUC 74.3 %, accuracy 68.0 % against a base rate of 50.0 %, n = 904 days pooled forward.

Criterion: BSS > 3 and AUC ≥ 60, pooled forward across 2023–2026

Setup
Decision time09:30 New York — bars up to t−1 complete, the opening print and every tick of session t before 09:30
Targetrelr ≥ 1 — RTH range divided by the median of the 20 previous RTH ranges
Data window2020-05-29 to 2026-08-14 · 1607 daily bars · last day 2026-08-14
Walk-forwardDev ≤ 2022 (definitions only), test 2023 / 2024 / 2025 / 2026, expanding with a yearly refit
ModelL2 logistic regression on 15 preregistered set C features, standardised on the training window; C from inner validation (the last training year). Features: gap_atr, abs_gap_atr, on_range_atr, ln_on_relr, on_vol_rel, on_delta_norm, open_pos_on, on_ext_recency, pre_range_share, on_high_vs_rh1_atr, on_low_vs_rl1_atr, open_pos_va, prev_ln_relr_rth, prev_ln_relr_mean5, prev_atr5_atr20
HoldoutThe PX holdout from 2026-05-01 concerns the PX theses on the tick store. This study is a walk-forward over 2023 to 2026 on daily data — explicitly approved by the user for regime rounds 1 and 2. Every test year is computed from data before it only; no fit ever sees its own test slice.

Test years and pooled forward

Every row is a forecast over the same days. Base rate, majority and persistence are the baselines; the model has to beat them, otherwise it does not count.

RowYearnBase Rate %Acc %AUC %BrierBSS %
Base Rate202324649.650.450.00.25000.0
Majority202324649.650.4
Persistence202324649.657.757.50.24561.8
Model (LogReg)202324649.663.468.80.224410.2
Base Rate202425052.847.250.00.25040.0
Majority202425052.847.2
Persistence202425052.859.659.50.24093.8
Model (LogReg)202425052.869.675.50.201919.3
Base Rate202525147.847.850.00.25010.0
Majority202525147.847.8
Persistence202525147.867.367.10.22599.7
Model (LogReg)202525147.872.178.60.187325.1
Base Rate202615749.750.350.00.25000.0
Majority202615749.750.3
Persistence202615749.758.658.30.24402.4
Model (LogReg)202615749.766.272.00.211715.3
Base Ratepooled90450.048.849.00.25010.0
Majoritypooled90450.048.8
Persistencepooled90450.061.159.30.23864.6
Model (LogReg)pooled90450.068.074.30.205717.8

Block bootstrap (20-day blocks, 1000 runs, pooled forward): BSS 95 % interval [12.4 ; 22.9].

Confusion matrix pooled: true 0 correct 329 of 452, true 1 correct 286 of 452 (recall 0 = 72.8 %, recall 1 = 63.3 %).

Regularisation chosen per refit — 2023: C = 0.01, n_train = 580 · 2024: C = 3, n_train = 826 · 2025: C = 0.03, n_train = 1076 · 2026: C = 0.1, n_train = 1327.

Calibration and sharpness

Decilenmean p %observed %difference
19118.520.92.4
29128.825.3-3.6
39134.530.8-3.7
49139.936.3-3.7
59044.845.60.8
69050.352.21.9
79056.266.710.4
89062.958.9-4.0
99071.776.75.0
109086.087.81.8

Sharpness: p ≥ 0.7 on 16.0 % of the days (n = 145), hitting 84.1 % there · p ≤ 0.3 on 16.9 % (n = 153), hitting 79.7 % there.

How to read this report
Base Ratethe unconditional frequency in the training window, and at the same time the constant comparison forecast.
Baselinethe number a model has to beat. Three of them here: base rate, majority (always the more frequent class) and persistence.
Persistencethe forecast “today like yesterday” — the value of the same target on the previous day, turned into a rate.
BSSBrier skill score: what percentage of the base rate constant's Brier score the model saves. 0 means equally good, negative means worse.
AUCthe probability that a random positive day is scored above a random negative one. 50 is a coin flip.
Brierthe mean squared error of the probability. Smaller is better.
Sharpnesson what percentage of the days the model says something clear (p ≥ 0.7 or ≤ 0.3) and how often it hits there. A calibrated model without sharpness is useless.
Value Areathe price band [rval, rvah] in which 70 % of the RTH volume traded. Always the previous day's here.
Trend Dayan RTH with a body ratio ≥ 0.6 — the body of the daily candle fills at least 60 % of its range.
Body Ratiobr = |rc − ro| / (rh − rl), computed on the RTH session.
relrRTH range divided by the median of the 20 previous RTH ranges. relr ≥ 1 means: today is bigger than the typical one of the last four weeks.
Walk-Forwardevery test year is computed from a model that has only seen data before it; the training window grows with every year. No fit sees its own test.

The numbers in this report are recomputed on every publish — from data/daily-bars-*.json and data/open-features-*.json, which the extractor builds from the tick store.

Run: 1607 daily bars, 0.5 s.