trading / confluences / b_pmor

b_pmor — pre-market opening-range break DEAD

Corpus lane — SW-36 / c02267 · Scored and did not clear its own noise floor.

BURNED DATA — 2019–2026 was selected on before this lab existedNOT TV-VERIFIEDSCREENING ≠ CERTIFICATIONOPTIMISTIC FILL MODEL — touch fills, zero slippageMES ONLY · P1 M2 managementSOLO LEDGER IS NOT A BOOK — never summed

What it asks

Is price beyond the 09:00–09:15 ET pre-market range in the trade's direction at the decision?

Exact definition · verbatim docstring from backtests/conf_lab/bits.py (sha1 5473adbbf694)

SW-36 / c02267 pre-market opening range. 1 iff the last CLOSED 1m close
at the decision is strictly beyond the 09:00-09:15 ET range of the decision
day in the signal direction (long: > window high; short: < window low).

Window = CLOSED 1m bars whose OPEN time-of-day is in [09:00, 09:15); fewer
than 10 such bars -> 0. NY execution is untouched; this is a confluence read
only. Window and the 10-bar minimum fixed a priori.

Fixed parameters & provenance

Every parameter below was fixed in the design document before any candidate value was computed. No sweep, no tuning: a bit that needs tuning to pass has failed.

FieldValue
Source componentSW-36-premarket-opening-range
Evidence tierCLAIMED
Backlog rank#34 · cluster c02267
frame"m1"
min_bars10
stricttrue
window_et["09:00", "09:15"]
Design docbacktests/conf_lab/SCREEN-2026-08-07-DESIGN.md
Doc sha256e2ba7ca77acce01c03ebcdb7afb51ffade7bb7a591303a2923329dba13a91d94

Screen analytics — screen-2026-08-07

Conditional association on mean solo R, stratified on the count of the OTHER live bits, against a per-bit prevalence-matched null (50,000 i.i.d. Bernoulli draws at this bit's own prevalence, scored on its own strata). Population: 2,882 candidates, 2,289 filled, MES, 2019-06-04 → 2026-07-31.

Prevalence
76.93%
of filled rows
Pooled Δ mean R
+0.1012
stratified, vs bit=0
Matched-null p
0.1261
87.39th pctile of own null
BH q (15-bit family)
0.4414
q=0.25 gate
Bootstrap 95% CI
[-0.030, +0.233]
week-block, n=20,000 · p=0.1274
Win-rate Δ
+0.0216
secondary statistic

Per era · reported separately, never pooled into a verdict — each cell is a smaller sample than the headline

Eran filledPrevalenceΔ mean Rmatched pboot 95% CIflag
pre-20251,79076.93%+0.09520.1987[-0.048, +0.238]
2025+49976.95%+0.13370.3825[-0.170, +0.430]

Funnel & fill conditioning · a bit that mostly predicts whether a limit FILLS is not the same discovery as a bit that predicts whether a trade WINS

MeasureValue
Candidate rate (all 2,882)78.87%
Limit fill rate — bit = 177.47%
Limit fill rate — bit = 086.70%
Fill-conditioning gap-0.0922
Live take rate — bit = 114.96%
Live take rate — bit = 026.60%

Novelty vs the six live bits · high agreement means the bit is mostly restating a gate that is already in the stack

Live bitAgreementJaccard
c1_trend42.07%0.3065
c2_vwap49.37%0.4696
c3_volume70.42%0.6838
c4_sweep64.18%0.6198
c5_htf32.94%0.2212
c6_room27.00%0.0849

By stratum — does it work where the method actually trades? · the live A/B take rule is count >= 4, so the count>=4 rows are the only ones that could change a live trade

Stratumn onn offmean R onmean R offcrude Δ
other live bits == 0 SMALL11-1.3246+0.3762-1.7007
other live bits == 18917-0.3423+0.0784-0.4207
other live bits == 2552117-0.0292-0.2425+0.2133
other live bits == 3728225+0.0002-0.0978+0.0980
other live bits == 4334142+0.1429+0.0487+0.0942
other live bits == 55124-0.0198-0.0402+0.0204
other live bits == 6 SMALL62-0.1518-0.3237+0.1719

Status — DEAD

The best of the losers and still dead: pooled +0.101 R, matched p=0.126 (87.4th percentile), q=0.441 — above q=0.25, so it does not survive the correction for having looked at fifteen bits. It is also fill-conditioned (77.5% vs 86.7%), which is the same construction problem b_onbreak has: a bit that says 'price already went' partly predicts whether your limit ever fills, not whether the trade wins. Reporting it as a near-miss rather than a miss would be exactly the self-deception the FDR gate exists to prevent.

Retest path

If a future screen has a smaller declared family (fewer bits = a less punishing correction) this is a defensible candidate to re-declare — as a NEW registration citing this one, so the attempt count stays visible.

Standing caveats

screen-2026-08-07stream conflab-pop-v1opportunity sha256 b62ca795de4a647b…harness ok · 0 real violations