trading / confluences / b_dwell

b_dwell — persistence of the break DEAD

Corpus lane — EN-35 · 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

Did the break hold? The bit wants the last two closed 1-minute bars to BOTH close beyond the level in the signal direction.

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

EN-35 persistence-of-break. 1 iff the last 2 CLOSED 1m bars at the
decision BOTH close strictly beyond the candidate's `level` in the signal
direction (long: close > level; short: close < level).

Persistence, not bar size — deliberately distinct from the FDR-dead
`n3-displacement`. Fewer than 2 closed 1m bars, or a non-finite close -> 0.

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 componentEN-35-break-dwell-persistence
Evidence tierCLAIMED
Backlog rank#33 · 2 source threads
bars2
frame"m1"
reference"candidate level"
stricttrue
Notepersistence, not bar size — distinct from dead n3
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
70.64%
of filled rows
Pooled Δ mean R
-0.0265
stratified, vs bit=0
Matched-null p
0.6627
33.73th pctile of own null
BH q (15-bit family)
0.9278
q=0.25 gate
Bootstrap 95% CI
[-0.142, +0.091]
week-block, n=20,000 · p=0.6626
Win-rate Δ
-0.0324
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,79070.89%-0.06280.3527[-0.191, +0.067]
2025+49969.74%+0.09550.4975[-0.168, +0.362]

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)73.80%
Limit fill rate — bit = 176.02%
Limit fill rate — bit = 089.01%
Fill-conditioning gap-0.1298
Live take rate — bit = 115.23%
Live take rate — bit = 023.58%

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_trend44.78%0.3013
c2_vwap41.24%0.3903
c3_volume66.40%0.6364
c4_sweep59.37%0.5654
c5_htf41.50%0.2565
c6_room33.29%0.0922

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 SMALL20-0.4742
other live bits == 19214-0.3009-0.1034-0.1975
other live bits == 2503166-0.0359-0.1592+0.1233
other live bits == 3657296-0.0433+0.0223-0.0656
other live bits == 4311165+0.0817+0.1771-0.0954
other live bits == 54629-0.0700+0.0429-0.1129
other live bits == 6 SMALL62-0.1518-0.3237+0.1719

Status — DEAD

NEGATIVE: pooled −0.026 R, win-rate delta −0.032, matched p=0.663 (33.7th percentile), q=0.928. It also carries the slate's second-largest fill conditioning in the wrong direction (fills 76.0% with the bit vs 89.0% without), which is the mechanical explanation for why 'wait for confirmation' costs more than it earns here: the trades you confirm your way into are the ones that ran away from your limit. Distinct from the dead n3-displacement by design (persistence, not bar size) — the distinction was honoured and the answer was still no.

Retest path

None. Its 5m sibling b_closeconf was dropped as a tautology before scoring, so the whole close-confirmation family is now answered on this method.

Standing caveats

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