A Simulation-Calibrated Table Estimator
for Intraday Barrier Trading

Mathematical specification and falsification protocol

B. van Ooijen  ·  R. F. Kuhlmann

RoyRobinFinance research programme — internal technical report, v21 · 4 September 2026

Abstract. We give a complete mathematical specification of a six-stage estimator for short-horizon directional structure in price action, together with the statistical protocol used to test it. Stage 1 fits a palette of parametric laws to per-chunk price increments and converts AIC differences into tempered mixture weights. Stage 2 synthesises paths from that mixture and calibrates a bin envelope for a scale-free price-action feature. Stage 3 accumulates, per (transition channel, lookback horizon, feature bin), the conditional expectation of a forward-excursion functional. Stage 4 reads those tables on real held-out prices and aggregates them along the horizon ladder into a per-minute signal; stage 5 selects threshold rules from it; stage 6 executes them under a single-capital, non-overlapping barrier model with maker/taker fees and expanding-window re-selection. We characterise the law of the synthetic ensemble the tables are estimated on, decompose the table error into estimation variance and simulator bias, and give the identification argument that separates the two. The inferential apparatus is treated as part of the estimator rather than as reporting: a per-candidate effective sample size correcting the overlapping-label inflation of the selection statistic, a multiple-comparison floor at $\sqrt{2\ln N}$, an inner out-of-sample split for the selection decision itself, and a circular-rotation null that preserves marginals, autocorrelation, firing rate and clustering while severing only signal–outcome alignment. We derive the deployability criterion — a cost bar linear in the round trip, here $2.56\%$ gross per $10^{3}$ trades — and give the computational structure that makes each stage tractable. Applied to this estimator the protocol returns a negative verdict: the selection statistic is a property of the search rather than of the data, no rule clears the multiple-comparison floor once deflated, and the binding constraint localises in the simulated table build rather than in the choice of prediction target. Six further experiments are specified, each with the outcome that would falsify it.

Keywords: conditional expectation tables; Akaike mixtures; triple-barrier labelling; overlapping labels; deflated test statistics; rotation nulls; walk-forward validation.


1. Introduction and architecture

The object of study is a mapping from an observable state of a price path to an expectation about its immediate future, and the question is whether any such mapping survives contact with transaction costs once every source of statistical inflation has been removed. The method described here is organised as a pipeline of six stages, of which the first three estimate and the last three test:

① Distribution fitting. Per chunk, fit a palette of parametric laws to the price increments and convert their AIC differences into mixture weights. ② Envelope calibration. Simulate paths from the mixture, compute the feature on each, and record its global range per lookback horizon; this fixes the binning grid. ③ Table estimation. Simulate again, bin the feature, and accumulate per-cell sums of forward-looking outcome metrics; normalising by occupancy yields conditional expectations. ④ Signal construction. Read the table on real prices and aggregate over lookback horizons into a small bank of one-dimensional per-minute signals. ⑤ Rule selection. Score every (signal, side, threshold) rule on a validation window by a deflated t-statistic of selection edge, subject to a multiple-comparison floor. ⑥ Execution and validation. Trade the selected rules under a single-capital, non-overlapping barrier model with fees, re-selecting before every fold, and compare against a structure-preserving null and an explicit cost bar.

Stages 1–3 never see the holdout; stage 4 is the first that touches real prices. The design intent throughout is that every quantity a decision depends on can be recomputed under a null in which the only destroyed property is the one the hypothesis asserts.

2. Data model and notation

Let $\{p_t\}_{t\in\mathbb{Z}}$ be the per-minute mean price, $p_t=\tfrac14(o_t+h_t+l_t+c_t)$, which is used in place of the close to suppress single-print microstructure noise. Fix a maximal lookback $L$ (here $L=4320$ minutes, three days) and a chunk multiplier $\mu\in\mathbb{N}$. The series is reshaped into $C$ disjoint columns of length

$$B \;=\; \mu L,\qquad \mathbf{P}\in\mathbb{R}^{B\times C},\qquad \mathbf{P}_{t,c}=p_{\,t+cB},$$

with the first partial chunk discarded. Chunking is not a convenience: it makes every subsequent operation — feature computation, simulation, labelling, fold assignment — local to a column, so that no label, bracket or simulated path ever crosses a fold boundary and the embargo problem of Bailey and López de Prado [3] does not arise by construction.

Each column loses $L$ minutes to feature warm-up and a further $L$ to forward labelling, so the usable frame per chunk has length

$$T \;=\; B-2L \;=\; L(\mu-2).$$

The choice of $\mu$ is therefore consequential rather than cosmetic: at $\mu=3$ two thirds of every chunk is overhead and long forward windows are truncated at the chunk boundary; raising $\mu$ from $3$ to $6$ increases $T$ from $4320$ to $17280$ and reduces the truncation rate of the longest holds from $42$–$67\%$ to $10$–$17\%$. Section 10 records why this distinction proved decisive.

Chunks are ordered in time and split as

$$\mathcal{C}_{\mathrm{tr}}=\{0,\dots,C_{\mathrm{tr}}-1\},\qquad \mathcal{C}_{\mathrm{ho}}=\{C_{\mathrm{tr}},\dots,C-1\},\qquad C_{\mathrm{tr}}=\lfloor (1-\varphi)C\rfloor,$$

with holdout fraction $\varphi$. Tables are estimated on $\mathcal{C}_{\mathrm{tr}}$ only.

3. Stage 1 — tempered Akaike mixture of increments

3.1 Fitting

Let $\mathcal{F}=\{F_1,\dots,F_K\}$ be a palette of $K=11$ location–scale families (normal, Laplace, logistic, generalised normal, skew-normal, generalised extreme value, non-central $t$, Johnson $S_U$, double Weibull, exponentially-modified normal, hyperbolic secant). Undefined-variance candidates (Cauchy, Lévy, Student-$t$ with free $\nu$) are excluded, as the affine rescaling in §3.2 is undefined in expectation for them.

For chunk $c$, form the volatility-scaled column $\tilde{\mathbf{P}}_{\cdot,c}$ and its increment sample $\delta^{(c)}=\Delta\tilde{\mathbf{P}}_{\cdot,c}\in\mathbb{R}^{B-1}$. Each family is fitted by maximum likelihood, $\hat\theta_k=\arg\max_\theta \ell_k(\theta;\delta^{(c)})$, and scored by

$$\mathrm{AIC}_k \;=\; -2\,\ell_k(\hat\theta_k;\delta^{(c)}) \;+\; 2\,\dim\theta_k .$$

3.2 Tempered weights and path synthesis

Writing $\Delta_k=\mathrm{AIC}_k-\min_j \mathrm{AIC}_j$, the mixture weights are the tempered Akaike weights

$$w_k \;=\; \frac{\exp(-\alpha\,\Delta_k)}{\sum_{j=1}^{K}\exp(-\alpha\,\Delta_j)}, \qquad \alpha = 10^{-2}. \label{eq:akaike}$$

The canonical Akaike weight is $\alpha=\tfrac12$ [1]. With sample sizes of order $10^4$, AIC differences are of order $10^2$–$10^3$ and $\alpha=\tfrac12$ collapses the mixture onto a single family. The temperature $\alpha=10^{-2}$ is a deliberate flattening: the estimand is not "which law generated the increments" but a synthetic ensemble whose tail behaviour spans the plausible set, so several families are kept alive on purpose. This is a modelling choice, not an approximation to model averaging, and it should be read as such.

A path is then synthesised by drawing family counts multinomially and concatenating the draws:

$$(n_1,\dots,n_K)\sim\mathrm{Mult}\!\big(B,\;(w_1,\dots,w_K)\big),\qquad \varepsilon \;=\; \Pi\Big(\textstyle\bigcup_{k} \{X^{(k)}_j\}_{j\le n_k}\Big),\quad X^{(k)}_j\stackrel{\text{iid}}{\sim}F_k(\hat\theta_k),$$

where $\Pi$ is a uniform random permutation, applied so that the draw order carries no information about which family produced which increment. The cumulative sum is then mapped affinely onto the real chunk's range and anchored at its first price:

$$S^{0}_t=\sum_{s\le t}\varepsilon_s,\qquad S_t \;=\; \frac{S^{0}_t-\min_u S^{0}_u}{\max_u S^{0}_u-\min_u S^{0}_u} \Big(\max_u \mathbf{P}_{u,c}-\min_u \mathbf{P}_{u,c}\Big) \;+\; \mathbf{P}_{0,c}-S_0 . \label{eq:predict}$$

Equation \eqref{eq:predict} is the method's central modelling assumption and its principal liability. The synthetic path matches the chunk in support, range and distributional character of its increments, but the increments are exchangeable by construction: no volatility clustering, no autocorrelation, no serial dependence of any kind survives the permutation $\Pi$. A table estimated on such paths can only learn feature–outcome relationships that are implied by the marginal law and the range normalisation. Whether that is enough is an empirical question, and §11.4 reports that for most prediction targets it is not.

3.3 The law of the synthetic ensemble

It is worth stating precisely what Eq. \eqref{eq:predict} produces, because the estimator of §5 inherits exactly these properties and nothing else. Write $\nu=\sum_{k}w_k F_k(\hat\theta_k)$ for the fitted mixture. Three transformations separate $\nu$ from the law of the synthetic path.

(i) Exchangeability. Conditional on the counts $(n_1,\dots,n_K)$, the permuted sequence $\varepsilon$ is a draw without replacement from a fixed pool. Each $\varepsilon_t$ is therefore marginally $\nu$-distributed, but the coordinates are not independent: sampling without replacement induces a negative dependence of order $B^{-1}$, and the sequence is exchangeable rather than i.i.d. Exchangeability is the operative property, and it is fatal to serial structure: for any permutation $\pi$, $\varepsilon\stackrel{d}{=}\varepsilon\circ\pi$, so every statistic that distinguishes a market path from its own shuffle — volatility clustering, return autocorrelation, leverage effects — has the same law under the simulator as under white noise.

(ii) Path-dependent rescaling. Let $R=\max_u S^{0}_u-\min_u S^{0}_u$ be the range of the random walk and $\rho_c=\max_u\mathbf{P}_{u,c}-\min_u\mathbf{P}_{u,c}$ the real chunk's range. Then Eq. \eqref{eq:predict} gives increments

$$\Delta S_t \;=\; \frac{\rho_c}{R}\,\varepsilon_t ,$$

so the synthetic increments are not $\nu$-distributed either: they are a scale mixture of $\nu$ by the random factor $\rho_c/R$, where $R$ is the range of a $\nu$-walk of length $B$ and is itself heavy-tailed. The construction is thus range-matching, not volatility-matching, and it is this step — rather than the choice of palette in §3.1 — that fixes the amplitude of the ensemble.

(iii) Conditioning on the realised range. Dividing by $R$ conditions each path on its own extremes, which is precisely the statistic the feature of §4.2 reads. The synthetic paths are therefore not unconditionally distributed as $\nu$-walks; they are $\nu$-walks conditioned to have a prescribed range, and the feature is a functional of that conditioning.

The consequence for §5 can be stated exactly. Let $\mathcal{E}$ be the $\sigma$-algebra generated by functionals invariant to permutation of the increments and to the affine rescaling. The simulated tables can identify $\mathbb{E}[g\mid\text{cell}]$ only insofar as the feature–outcome relationship is $\mathcal{E}$-measurable; any component of it carried by the ordering of increments is, by construction, unavailable. Whether the relationship of interest lives inside $\mathcal{E}$ is an empirical question, and §11.4 is the measurement that answers it.

4. Stage 2 — the feature ladder and its envelope

4.1 Horizon ladder

Let $I=16$. Backward lookbacks $w_1<\dots<w_I$ are logarithmically spaced between $w_{\min}=60$ and $w_I=L$: with curvature $\gamma=L/\kappa$ and $\lambda_i=\gamma^{(i-1)/(I-1)}$,

$$w_i \;=\; \Big\lceil\, w_{\min} + (\lambda_i-\lambda_1)\, \frac{L-w_{\min}}{\lambda_I-\lambda_1} \,\Big\rfloor .$$

Forward windows use the same construction with $L$ replaced by $L/4$, giving $u_1=60,\dots,u_I=1080$. The factor $4$ is an architectural constant: it guarantees $u_I\le L$, so that a forward label started anywhere in the usable frame terminates inside the chunk. It also imposes a hard ceiling on any tradable horizon, $H\le L$.

4.2 Feature definitions

Two feature maps $f:\mathbb{R}^{B}\to\mathbb{R}^{T\times I}$ are defined; both are scale-free, both are computed from the same rolling extremes, and they are close to orthogonal.

(i) Recency asymmetry (raw). Let $\pi^{\mathrm{lo}}_{t,i}=\mathbb{1}[\,p_t\le \min_{t-w_i<s\le t}p_s\,]$ and $\pi^{\mathrm{hi}}_{t,i}=\mathbb{1}[\,p_t\ge \max_{t-w_i<s\le t}p_s\,]$ indicate a fresh rolling low/high. Let $\tau^{(\cdot)}_{t,i}=\max\{s\le t:\pi^{(\cdot)}_{s,i}=1\}$ be the last such time. Then

$$d^{(\cdot)}_{t,i}=\frac{t-\tau^{(\cdot)}_{t,i}}{w_i},\qquad f^{\mathrm{raw}}_{t,i} \;=\; d^{\mathrm{hi}}_{t,i}-d^{\mathrm{lo}}_{t,i}.$$

A positive value says the window's high is staler than its low, i.e. the most recent extreme was a low. Because $\pi$ is an indicator, the magnitude of the excursion is discarded by construction; this feature encodes timing only.

(ii) Range position (rpos). With $m_{t,i}=\min_{t-w_i<s\le t}p_s$ and $M_{t,i}=\max_{t-w_i<s\le t}p_s$,

$$f^{\mathrm{rpos}}_{t,i} \;=\; \frac{2\,(p_t-m_{t,i})}{M_{t,i}-m_{t,i}+\epsilon}-1 \;\in\;[-1,1].$$
Figure 1. Mean out-of-sample information coefficient against forward span, for three candidate features scored on real chunks over nine markets with the order_margin target. The incumbent recency feature (raw) decays through zero by a span of roughly $450$ minutes, whereas range position (rpos) holds $+0.05$ out to $600$ and remains positive at $1080$. A fourth candidate, $(p-\bar p_w)/\sigma_w$, is omitted: it correlates $+0.94$ with rpos and is a duplicate. This figure resolves a standing discrepancy — the claim that "information lives at short spans" was a fact about the incumbent feature, not about the market.

This is the exact magnitude complement of (i): where the recency feature asks when the extremes occurred, range position asks where inside them price currently sits. Empirically (Figure 1) $\mathrm{corr}(f^{\mathrm{raw}},f^{\mathrm{rpos}})=-0.485$, and residualising the second on the first per horizon retains $31$–$43\%$ of its predictive information, so it is a second feature rather than a reparameterisation.

4.3 Bin envelope

For each training chunk, $N_2=250$ paths are synthesised and the feature computed on each; the envelope is the global extremum per horizon,

$$e^{-}_i=\min_{c,\,n,\,t} f_{t,i}\big(S^{(c,n)}\big),\qquad e^{+}_i=\max_{c,\,n,\,t} f_{t,i}\big(S^{(c,n)}\big),$$

and the grid is $K_b=512$ equal-width bins on $[e^-_i,e^+_i]$, with bin index

$$b_{t,i}=\mathrm{searchsorted}\big(\mathbf{E}_i, f_{t,i}\big)-1,\qquad v_{t,i}=\mathbb{1}\big[\,0\le b_{t,i}<K_b-1\,\big].$$

The envelope is a property of the feature, so a change of feature invalidates this stage as well as the next; a change of prediction target invalidates only the next. This asymmetry is what makes target search cheap and feature search expensive, and it organises the cost ladder of §10.

4.4 Forward labels

For every minute $t$ and forward window $u_i$, define the indices and relative returns of the forward extremes

$$\kappa^{\mathrm{hi}}_{t,i}=\arg\max_{t\le s<t+u_i}p_s,\qquad \kappa^{\mathrm{lo}}_{t,i}=\arg\min_{t\le s<t+u_i}p_s,$$ $$h_{t,i}=\frac{p_{\kappa^{\mathrm{hi}}_{t,i}}}{p_t}-1\;\ge 0,\qquad l_{t,i}=\frac{p_{\kappa^{\mathrm{lo}}_{t,i}}}{p_t}-1\;\le 0,$$

together with the times to those extremes, $\theta^{\mathrm{hi}}_{t,i}=\kappa^{\mathrm{hi}}_{t,i}-t$ and $\theta^{\mathrm{lo}}_{t,i}=\kappa^{\mathrm{lo}}_{t,i}-t$. This is the pair of forward-excursion profiles from which every prediction target below is built. It is the natural label set for barrier trading, being exactly the information a take-profit/stop-loss bracket resolves against.

5. Stage 3 — transition-conditioned expectation tables

5.1 Cells and channels

The estimand is a conditional expectation indexed by a triple: transition channel $c\in\{1,2,3\}$, horizon $i\in\{1,\dots,I\}$, bin $b\in\{0,\dots,K_b-1\}$. The three channels partition each minute by how its bin membership changed:

$$\begin{aligned} \mathrm{stay}_{t,i} &= \mathbb{1}\big[b_{t,i}=b_{t-1,i}\big]\,v_{t,i}v_{t-1,i}, \\ \mathrm{enter}_{t,i} &= v_{t,i}\big(1-\mathrm{stay}_{t,i}\big), \\ \mathrm{leave}_{t,i} &= v_{t-1,i}\big(1-\mathrm{stay}_{t,i}\big), \end{aligned}$$

with the leave channel indexed at the previous bin $b_{t-1,i}$ and the other two at $b_{t,i}$. Conditioning on the transition rather than on the level alone is a deliberate enrichment: it distinguishes a state newly attained from the same state persisting, which under a mean-reverting mechanism carry different forward distributions.

5.2 Prediction targets

Two per-minute scalars are accumulated. The directional target is fixed across all configurations:

$$g^{(2)}_{t,i} \;=\; 2\,\mathbb{1}\big[\kappa^{\mathrm{hi}}_{t,i}<\kappa^{\mathrm{lo}}_{t,i}\big]-1 \;\in\;\{-1,+1\},$$

i.e. which barrier is touched first. The primary target $g^{(1)}$ is selectable, and the six modes implemented span three distinct notions of what a bracket monetises:

Table 1. Prediction targets $g^{(1)}_{t,i}$, with measured out-of-sample rank correlation against real prices (mean IC over spans $\le 112$ minutes, 6–8 markets).
ModeDefinitionRangemean IC
sum$h_{t,i}+l_{t,i}$$\mathbb{R}$+0.006
norm_asym$(h+l)/(h-l+\epsilon)$$[-1,1]$+0.015
order_margin$(\kappa^{\mathrm{lo}}-\kappa^{\mathrm{hi}})/u_i$$[-1,1]$+0.031
first_ext$\mathrm{sgn}(\kappa^{\mathrm{lo}}-\kappa^{\mathrm{hi}})$$\{-1,1\}$+0.024
vel_diff$v^{\uparrow}-v^{\downarrow}$$\mathbb{R}$+0.080
vel_asym$(v^{\uparrow}-v^{\downarrow})/(v^{\uparrow}+v^{\downarrow}+\epsilon)$$[-1,1]$+0.034

with excursion velocities $v^{\uparrow}_{t,i}=h_{t,i}/\max(\theta^{\mathrm{hi}}_{t,i},1)$ and $v^{\downarrow}_{t,i}=-l_{t,i}/\max(\theta^{\mathrm{lo}}_{t,i},1)$. Three observations organise this table, and each was arrived at by measurement rather than by preference.

First, sum — the historical target — is a small difference of two large, strongly correlated quantities. In a volatile window both $|h|$ and $|l|$ are large, so $\mathrm{Var}(h+l)$ is dominated by a volatility common mode and the asymmetry of interest lives in the residual. Dividing the common mode out (norm_asym) roughly triples the information content.

Second, magnitude targets are largely volatility forecasts in disguise (Figure 2). Under a control that residualises each target on trailing realised volatility, the bare excursion legs $h$ and $l$ retain only $20$–$50\%$ of their apparent predictive power, whereas all four asymmetry and order targets retain $99$–$100\%$. Since volatility predictability has been shown elsewhere in this programme not to convert into profit (§11.2), a target that is mostly a volatility forecast is real but unmonetisable.

Figure 2. (a) Out-of-sample IC against forward span for three prediction targets, pooled over eight markets. The order targets decay far more slowly than the magnitude asymmetry: at span $112$ the asymmetry has fallen to $+0.008$ while both order targets hold $+0.025$–$0.029$. (b) Fraction of each target's IC that survives residualising on trailing realised volatility. The bare excursion legs $h$ and $l$ are largely a volatility forecast; every asymmetry and order target is orthogonal to it. Since volatility predictability has repeatedly failed to convert into profit in this programme, (b) is the screen that decides which apparent information is worth pursuing.

Third, targets must remain complementary. Since $g^{(2)}$ is exactly first_ext, selecting that mode for $g^{(1)}$ makes the two tables identical, so that the derived signal $e_1-e_2$ collapses to numerical residue of order $10^{-7}$. Correlation being scale-invariant, that residue can still be selected as the "best" signal by a ranking procedure — a degeneracy that produced a false positive before a scale-relative guard was added. The measured cross-target correlations are $-0.709$ under sum, $+0.937$ under order_margin, and exactly $+1$ under first_ext.

5.3 Accumulation and the estimator

Over training chunks $c\in\mathcal{C}_{\mathrm{tr}}$ and $N_3=50$ synthetic paths each, three arrays are accumulated by scatter-add over the flattened cell index:

$$O_{c,i,b}=\sum_{n,t}\mathbb{1}[\text{channel}]\,\mathbb{1}[b^{(n)}_{t,i}=b],\qquad M^{(m)}_{c,i,b}=\sum_{n,t}\mathbb{1}[\text{channel}]\,\mathbb{1}[b^{(n)}_{t,i}=b]\;g^{(m)}_{t,i},$$

and the table is the occupancy-normalised mean

$$\hat\mu^{(m)}_{c,i,b} \;=\; \frac{M^{(m)}_{c,i,b}}{O_{c,i,b}} \;\approx\; \mathbb{E}\big[\,g^{(m)} \,\big|\, \text{channel } c,\ \text{horizon } i,\ \text{bin } b\,\big].$$

Optionally four further accumulators record $\mathbb{E}[h]$, $\mathbb{E}[l]$, $\mathbb{E}[\theta^{\mathrm{hi}}]$, $\mathbb{E}[\theta^{\mathrm{lo}}]$ per cell; these are the substrate for the per-minute barrier sizing of §8.3 and are purely additive, leaving $O,M^{(1)},M^{(2)}$ bit-identical.

The estimator is the binding constraint. Because $\hat\mu$ is estimated on synthetic paths, the expectation it converges to is that of the simulator's law, not the market's. Section 10.4 reports the diagnostic that isolates this: the advantage of a better target measured on real prices is between $2.1\times$ and $4\times$, and it collapses to $0.8$–$0.95\times$ — that is, to parity or worse — when the same target is routed through Eq. \eqref{eq:predict}. Three independent targets show the same collapse, which localises the failure in the estimator rather than in any target.

5.4 Error decomposition and the identification argument

Write $\mu_{\mathrm{sim}}$ for the conditional expectation of $g$ under the synthetic law of §3.3 and $\mu_{\mathrm{mkt}}$ for the same quantity under the market. The quantity that matters for trading is $\mu_{\mathrm{mkt}}$; the quantity the estimator converges to is $\mu_{\mathrm{sim}}$. The error therefore splits into two terms of different character,

$$\underbrace{\hat\mu-\mu_{\mathrm{mkt}}}_{\text{what we care about}} \;=\;\underbrace{\big(\hat\mu-\mu_{\mathrm{sim}}\big)}_{\text{estimation error}} \;+\;\underbrace{\big(\mu_{\mathrm{sim}}-\mu_{\mathrm{mkt}}\big)}_{\text{simulator bias}} . \label{eq:decomp}$$

The first term is a sample average over the cell's occupants. Because outcomes at nearby minutes within one path share most of their forward window, the same multiplicity argument as in Eq. \eqref{eq:neff} applies at the table level, so its variance is governed by an effective rather than a nominal occupancy,

$$\mathrm{Var}\big(\hat\mu_{c,i,b}\big)\;\approx\; \frac{\sigma^{2}_{\mathrm{sim}}(c,i,b)}{O^{\mathrm{eff}}_{c,i,b}},\qquad O^{\mathrm{eff}}_{c,i,b}\;=\;\frac{O_{c,i,b}}{\overline{m}_{c,i,b}}\;\ll\;O_{c,i,b},$$

and it decreases as $N_3^{-1/2}$ in the number of synthetic paths. The second term does not decrease in $N_3$ at all: it is fixed by Eq. \eqref{eq:predict}, and no quantity of simulation reduces it. This asymmetry is what makes the two terms separately identifiable, which is the argument §11.4 runs. Increasing the resources allocated to a simulated-table comparison moves the estimate along the first term only; if the advantage of a better target were estimation-limited, more paths would move it toward the value measured on real prices, whereas if it is bias-limited, more paths move it toward the biased value. The observed direction — toward parity, away from the real-price value — identifies the second term as dominant.

The same decomposition prices the alternative. Fitting the tables on real chunks instead of synthetic paths sets the bias term to zero by construction, at the cost of roughly a $50\times$ reduction in occupancy (one realised path per chunk against $N_3=50$ simulated ones), which inflates the standard deviation of the first term by about $\sqrt{50}\approx7$. Eq. \eqref{eq:decomp} therefore states the experiment of §13 precisely: it is worth trading a sevenfold increase in estimation noise for the removal of the bias term exactly when the bias exceeds seven of the current standard errors, and this is a measurable quantity rather than a matter of judgement.

6. Stage 4 — from tables to a per-minute signal

The tables are now read on real prices. For a held-out chunk with real feature bins $b_{t,i}$ and validity $v_{t,i}$, define the two channel-wise aggregates

$$e^{(1)}_{c,t}=\sum_{i=1}^{I} v_{t,i}\;\hat\mu^{(1)}_{c,i,b_{t,i}},\qquad e^{(2)}_{c,t}=\sum_{i=1}^{I} v_{t,i}\;\hat\mu^{(2)}_{c,i,b_{t,i}} . \label{eq:signal}$$

Summation over the horizon ladder is what makes the method generalise. A rule keyed to the exact $I$-tuple $(b_{t,1},\dots,b_{t,I})$ is a memorised signature; with $K_b=512$ bins and $I=16$ horizons such signatures essentially never recur out of sample, and the empirical record is unambiguous: $113$ signatures harvested in training produced $0$ exact recurrences in the holdout, with the closest out-of-sample match agreeing on $13$ of $16$ horizons. Equation \eqref{eq:signal} instead defines a value at every minute, which is the difference between a lookup and a model.

The signal bank is the small family

$$\mathcal{S}=\big\{\underbrace{e^{(1)}_{c}}_{\text{skew}_c},\; \underbrace{e^{(2)}_{c}}_{\text{dir}_c},\; \underbrace{e^{(1)}_{c}-e^{(2)}_{c}}_{\text{combo}_c}\big\}_{c=1,2,3},$$

the difference being taken because $e^{(2)}$ is negatively correlated with the outcome. A caution that follows directly from §5.2: under sum the two tables live on scales differing by roughly $173\times$ ($\|\hat\mu^{(1)}\|\sim 10^{-3}$ versus $\|\hat\mu^{(2)}\|\sim 4\times10^{-1}$), so $\mathrm{corr}(\text{combo}_c,-\text{dir}_c)=1.0000$ to four decimals: the family excluded from the default pool for chasing drift re-enters under a different name. Normalising the primary target restores $\text{combo}$ to an actual blend. Scale compatibility between signal components is not a cosmetic concern.

7. Stage 5 — rules and their statistics

7.1 Rule space

A strategy is a triple $r=(s,\sigma,\tau)$ with $s\in\mathcal{S}$, side $\sigma\in\{+1,-1\}$ and threshold $\tau$, firing on

$$\Phi_r(t) \;=\; \begin{cases} \mathbb{1}[\,s_t\ge\tau\,], & \sigma=+1,\\[2pt] \mathbb{1}[\,s_t\le\tau\,], & \sigma=-1.\end{cases}$$

Thresholds are empirical quantiles of $s$ over the validation window at levels $q\in\{0.55,\dots,0.99\}$ ($25$ points) for long and $1-q$ for short, so that the candidate set has cardinality $N=|\mathcal{S}|\times 2\times 25$, of order $2\times 10^3$. That number reappears in §7.4 as the multiple-comparison burden.

7.2 Outcome and the edge decomposition

The tradable outcome is the literal fixed-horizon return $y_t=p_{t+H}/p_t-1$, aligned to the feature frame. For a fired set $\mathcal{T}_r=\{t:\Phi_r(t)=1\}$ of size $n$, with round-trip cost $\phi$,

$$\bar{y}_r=\frac{1}{n}\sum_{t\in\mathcal{T}_r}\sigma y_t,\qquad \mathrm{net}_r=\bar{y}_r-\phi,\qquad \mathrm{edge}_r=\bar{y}_r-\sigma\,\bar{y},\quad \bar y=\tfrac1T\textstyle\sum_t y_t .$$

The distinction carries the whole argument of this method. Edge measures selection skill against a same-side always-trading baseline and is invariant to $\phi$, since a flat fee shifts a rule and its baseline equally. Net measures money. A rule can have strictly positive edge and lose capital — a short with genuine selection skill shorting into an upward drift is the canonical case. Reporting only edge is therefore not a mild optimism but a category error, and both are reported separately throughout.

7.3 Overlapping labels and the deflated statistic

Candidates are ranked by a $t$-statistic of edge. The naive form

$$t_r^{\text{naive}} \;=\; \frac{\mathrm{edge}_r}{\hat\sigma_r/\sqrt{n}}$$

assumes the $n$ fired minutes are independent. They are not: two entries one minute apart resolve over forward windows sharing $H-1$ of $H$ minutes. Following the uniqueness idea of López de Prado [3] but computing it per candidate, define the overlap multiplicity of a fired minute and the effective sample size

$$m_t \;=\; \big|\{u\in\mathcal{T}_r : t\le u<t+H\}\big|,\qquad n_{\mathrm{eff}}(r) \;=\; \frac{n}{\max\!\big(\overline{m},\,1\big)},\quad \overline{m}=\frac{1}{n}\sum_{t\in\mathcal{T}_r} m_t , \label{eq:neff}$$ $$t_r \;=\; \frac{\mathrm{edge}_r}{\hat\sigma_r/\sqrt{n_{\mathrm{eff}}(r)}} .$$

The per-candidate construction in Eq. \eqref{eq:neff} is essential and not a refinement. A flat divisor $n/H$ would rescale every candidate identically and leave the ranking — the only thing selection consumes — exactly unchanged. Because $\overline{m}$ varies between candidates, Eq. \eqref{eq:neff} penalises clustered rules more than sparse ones, which is precisely the intended correction: a rule that fires in bursts carries far less information than its count suggests. Sparse firing gives $\overline{m}\approx1$ and incurs no penalty.

7.4 Multiple-comparison floor and the inner split

Selection takes the maximum of $N\approx 2\times10^3$ statistics. Under a null of independent standard normal draws, $\mathbb{E}[\max_{j\le N} Z_j]\sim\sqrt{2\ln N}\approx 3.9$, so a candidate is admissible only if

$$t_r \;>\; t_{\mathrm{floor}} \;=\; \sqrt{2\ln N}. \label{eq:floor}$$

An empty book is a legal and honest outcome. Equation \eqref{eq:floor} is meaningful only in combination with Eq. \eqref{eq:neff}: an undeflated statistic clears any such bar trivially. This is the finite-sample counterpart of the deflated Sharpe ratio of Bailey and López de Prado [4] and of the data-snooping corrections of White [5] and Harvey et al. [6].

Finally, selection is itself split out of sample. The validation window is divided as $[0,(1-\rho)T_v)$ for ranking and $[(1-\rho)T_v,T_v)$ for scoring the shortlist, $\rho=0.25$, so that the act of choosing a rule is an out-of-sample decision rather than an in-sample one.

8. Stage 6 — execution models

8.1 Single-capital non-overlapping simulation

Rules are combined by majority vote, $\mathrm{pos}_t=\mathrm{sgn}\sum_{r\in\mathcal{R}}\sigma_r \Phi_r(t)$, and traded under a single-capital constraint: starting at $t=0$, if $\mathrm{pos}_t\neq0$ realise $\mathrm{pos}_t\,y_t-\phi$ and advance $t\mapsto t+H$; otherwise advance by one minute. The resulting trade sequence is non-overlapping by construction, which matters quantitatively: an overlapping per-minute accounting inflates both the trade count and the apparent $t$-statistics by roughly the factor $\overline{m}$ of Eq. \eqref{eq:neff}.

8.2 Expanding-window walk-forward

The holdout is partitioned into $F$ contiguous folds with boundaries $0=\beta_0<\dots<\beta_F=n_H$ at chunk granularity. For each evaluation fold $j\ge j_0$, the rule set is re-selected using all prior holdout data $[\,0,\beta_j)$ and evaluated on $[\beta_j,\beta_{j+1})$; the tables $\hat\mu$ remain fixed at their training-set fit, so only the decision rule adapts. Reported robustness is the count of evaluation folds in which net return is positive; a strategy "works" only if it is net-profitable in all of them, since a single split cannot distinguish skill from a favourable regime.

8.3 Barrier execution with dynamic sizing

The realistic execution path is a bracket: enter as a maker limit, exit at a take-profit limit, a protective stop, or a market timeout. With per-minute targets $(\Theta_t,\Sigma_t,W_t)$ for take-profit, stop and timeout, and maker/taker fees $\phi_m,\phi_t$, the signed per-minute net outcome for a long is

$$y^{\uparrow}_t=\begin{cases} \Theta_t-2\phi_m, & h_{t,\iota(W_t)}\ \ge\ \Theta_t \quad\text{(target filled)},\\[3pt] \dfrac{p_{t+W_t}}{p_t}-1-(\phi_m+\phi_t), & \text{otherwise (timeout at market)}, \end{cases}$$

and symmetrically for a short with $-l$ in place of $h$. The sizing rule blends a local volatility estimate with the trained excursion of §5.3. Let $\varsigma_t$ be the trailing standard deviation of one-minute log returns and $\bar h_t,\bar l_t,\bar\theta_t$ the per-cell trained excursions and time-to-target read at minute $t$. Then, with weight $\omega$, multipliers $a>b$ and base hold $W_0$,

$$W_t=\mathrm{clip}\Big(\max\big(W_0,\ \bar\theta_t\sqrt{a}\,\big),\,W_{\min},\,W_{\max}\Big), \qquad \upsilon_t=\omega\,\varsigma_t\sqrt{W_t}+(1-\omega)\,\bar h_t,$$ $$\Theta_t=a\,\upsilon_t,\qquad \Sigma_t=b\,\upsilon_t,\qquad a=2,\ b=1 . \label{eq:bracket}$$

Three properties of Eq. \eqref{eq:bracket} are deliberate. The $\sqrt{W_t}$ scaling is the diffusive law, so the target tracks the move actually available over the hold. The $\sqrt{a}$ scaling of the timeout follows from first-passage time to a barrier scaling as the square of its distance, so a wider target is given proportionally more time. And $a>b$ inverts the conventional risk–reward: a $1{:}2$ stop-to-target ratio bleeds even at a $54\%$ hit rate, because each loss cancels two wins.

The ceiling $W_{\max}$ defaults to $u_I=1080$, the horizon at which the trained excursion statistics stop. Raising it extrapolates the volatility term $\varsigma\sqrt{W}$ correctly while the trained term $\bar h$ remains pinned at the table's horizon, so the blend is sound only while $\omega$ is large — a caveat that is easy to violate silently.

9. Computational structure

The stages above are stated as mathematics; they are tractable only because each is implemented as a dense array operation rather than as the loop its definition suggests. Since the cost of a stage determines which hypotheses can be tested at all — and therefore which are tested — the complexity of each is part of the method rather than an implementation note.

9.1 Rolling extremes by sparse table

Stages 2–4 need, for every minute and each of $I$ windows, the extremes of the trailing window. Computed window by window this is $I$ passes of a monotone deque, $O(TI)$ with a large constant and no vectorisation across windows. Instead, precompute for each level $k=0,\dots,\lfloor\log_2 w_I\rfloor$ the block minima

$$m_k[t]\;=\;\min_{t\le u<t+2^{k}} p_u ,\qquad m_{k}[t]=\min\big(m_{k-1}[t],\,m_{k-1}[t+2^{k-1}]\big),$$

which costs $O(T\log w_I)$ and is a single vectorised minimum per level. Any window of length $w$ is then the minimum of two overlapping blocks of length $2^{\lfloor\log_2 w\rfloor}$,

$$\min_{t\le u<t+w} p_u \;=\; \min\big(m_k[t],\; m_k[t+w-2^{k}]\big), \qquad k=\lfloor\log_2 w\rfloor,$$

i.e. $O(1)$ per query, with all $N$ simulated paths carried along a leading batch axis and time on the contiguous axis. Ties must be handled to match the deque convention exactly — a fresh extreme is $p_t\le\min$ rather than $p_t<\min$ — or the boolean feature of §4.2 shifts by one minute in flat regions.

9.2 Scatter accumulation instead of a one-hot tensor

The definition in §5.3 sums over a one-hot indicator, which reads as the dense tensor $\mathbb{1}[b^{(n)}_{t,i}=b]\in\{0,1\}^{T\times I\times K_b}$ — at $T=17280$, $I=16$, $K_b=512$ that is $1.4\times10^{8}$ entries per path. The tensor is never formed. Because the indicator is one-hot in $b$ by construction, the accumulation is a scatter over the flattened cell index

$$\iota_{t,i} \;=\; i\,K_b + b_{t,i},\qquad M^{(m)} \;\mathrel{+}=\; \mathrm{bincount}\big(\iota[\text{mask}],\; \text{weights}=g^{(m)}[\text{mask}],\; \text{minlength}=IK_b\big),$$

which is $O(TI)$ in time and $O(IK_b)$ in memory, independent of $T$. The three transition channels of §5.1 are three such scatters differing only in mask and in whether the index uses $b_{t,i}$ or $b_{t-1,i}$.

9.3 Determinism and reproducibility

Per-chunk results are deterministic given the seed, which is what makes the repeated-epoch structure of the harvest stage a single cached pass rather than a recomputation, and what makes the regression checks of §12 exact rather than statistical: a refactor either reproduces a stored table bit-for-bit or it does not.

Table 2. Per-stage complexity and measured cost per market, at $I=16$, $K_b=512$, $B=25920$. $N_2=250$, $N_3=50$ are the path counts of stages 2 and 3; $Q$ is the number of thresholds and $|\mathcal{S}|$ the size of the signal bank.
StageDominant workComplexityMeasured
1 distributions$K$ MLE fits over $B$ incrementsoptimiser-bound77 s
2 envelope$N_2$ paths, sparse-table extremes$O(N_2 T\log w_I)$94 s
3 tables$N_3$ paths, scatter-add$O(N_3 TI)$125 s
4 signal$TI$ gathers per chunk$O(TI)$seconds
5 selection$2Q|\mathcal{S}|$ threshold rules$O(Q|\mathcal{S}|T)$seconds
6 executionnon-overlapping sweep per fold$O(T)$ per ruleminutes

Stage 1 is the only one that resists vectorisation, being bound by the optimiser inside each maximum-likelihood fit; its lever is parallelism across chunks rather than a better formulation. The asymmetry that organises everything else is the dependency structure: a change of prediction target invalidates stage 3 alone, whereas a change of feature invalidates stage 2 as well, because the bin envelope of §4.3 is the feature's own range. This is why target search is cheap and feature search is not, and it is the basis of the tier ladder in §10.3.

10. Validation protocol

10.1 The circular-rotation null

The programme's primary inferential instrument is a null that destroys exactly one property. Per chunk, the signal channels are circularly rotated in time by an offset drawn from the middle $80\%$ of the chunk,

$$\tilde e^{(m)}_{c,t}\;=\;e^{(m)}_{c,\,(t+\Delta_c)\bmod T},\qquad \Delta_c\sim\mathcal{U}\{\lfloor 0.1T\rfloor,\dots,\lfloor 0.9T\rfloor\},$$

with the same offset applied to every channel so that cross-channel structure survives. Rotation is chosen over permutation deliberately. A permutation destroys the autocorrelation of the signal, which collapses the run structure that makes rules fire in clusters; trade counts, concurrency and overlapping-label inflation would all change simultaneously, and the resulting comparison would be uninterpretable. Rotation preserves the marginal distribution, the autocorrelation function, the firing rate at every threshold and the clustering, severing only the alignment between signal and outcome. It is therefore a conservative null: every mechanism that could inflate a statistic for non-signal reasons remains present.

The diagnostic reading is direct. If the in-sample selection statistic under rotation is comparable to the real one, that statistic measures the search rather than the data; if it collapses toward zero, the in-sample edge is real and its decay is a genuine generalisation problem. The measured answer is unambiguous and is recorded in §11.1.

A rotation null on raw prices is not valid. An implementation that rotates a series with np.roll introduces a wrap discontinuity, which contaminates the level of the null. The honest baseline for entry timing is unconditional entry, and one hypothesis in this programme was rejected and then reinstated when this contamination was found.

10.2 Model-free feature screening

A second instrument evaluates a feature–target pair with no trading stack in the loop, at $2$–$3$ seconds per (feature, target, market) against $5$–$10$ minutes for a walk-forward. Bin edges are quantiles of the training feature only (quantile rather than equal-width binning, so that comparing two feature transforms is not covertly comparing their marginals). Per-bin means are fitted on train and scored on chronological test chunks:

$$\hat g(b)=\frac{\sum_{t\in\mathrm{tr}}\mathbb{1}[b_t=b]\,g_t}{\sum_{t\in\mathrm{tr}}\mathbb{1}[b_t=b]} \ \ \text{(train grand mean if empty)},\qquad \mathrm{IC}=\mathrm{corr}\big(\hat g(b_t),\,g_t\big)_{t\in\mathrm{te}},$$ $$R^2 \;=\; 1-\frac{\sum_{t\in\mathrm{te}}\big(g_t-\hat g(b_t)\big)^2} {\sum_{t\in\mathrm{te}}\big(g_t-\bar g_{\mathrm{te}}\big)^2}.$$

A negative $R^2$ says the fitted table generalises worse than predicting the mean, which is a stronger indictment than a small IC and is reported alongside it. Precision uses the overlap-aware $n_{\mathrm{eff}}=n/\mathrm{span}$ with a Fisher-$z$ scale $\mathrm{se}=(n_{\mathrm{eff}}-3)^{-1/2}$, and significance is read two ways: against a rotation null, $z=(\mathrm{IC}-\bar{\mathrm{IC}}_{\mathrm{null}})/\hat\sigma_{\mathrm{null}}$, and across markets as

$$t_{\mathrm{corr}} \;=\; \frac{\overline{\mathrm{IC}}} {\hat\sigma_{\text{mkt}}/\sqrt{\min(4,\,M)}} . \label{eq:tcorr}$$

The cap at $4$ in Eq. \eqref{eq:tcorr} is a deliberate haircut: cryptocurrency markets co-move strongly, so treating $M=11$ markets as independent replications overstates the evidence. The statistic behaves as if only four carried independent information; the uncapped version is reported as the optimistic end of the range, never as the headline.

10.3 Cost ladder

Because a target change invalidates only stage 3 whereas a feature change invalidates stages 2 and 3, hypotheses are tested on the cheapest tier that can falsify them:

Table 3. Validation tiers, measured cost per market.
TierInstrumentCostAnswers
0model-free IC screen (§10.2)~30 sdoes the feature know anything?
1stage-3 estimator, short segment~21 sdoes it survive the simulator?
2stage 3, full data~27 minfull-data tables
3stages 1–3 rebuild~65 minfeature or geometry change
4walk-forward + era splithoursdeployability

10.4 The deployability criterion

Costs are charged on gross return per $10^3$ trades. With round-trip cost $\phi_{\mathrm{rt}}$, capital weight $1/\mathcal{K}$ under a maximum-concurrency constraint $\mathcal{K}$, and aggregation over $\mathcal{M}$ markets, the bar is

$$\Phi_{1k} \;=\; \phi_{\mathrm{rt}}\cdot\frac{1}{\mathcal{K}}\cdot\frac{1}{\mathcal{M}}\cdot 10^{3} \;=\; 10^{-3}\cdot\frac{1}{3}\cdot\frac{1}{13}\cdot 10^{3} \;=\; 2.56\%, \label{eq:bar}$$

so that a configuration is deployable only if its gross return per $10^3$ trades exceeds $2.56\%$ and its out-of-sample selection statistic is positive. Equation \eqref{eq:bar} is linear in $\phi_{\mathrm{rt}}$; halving the round trip halves the bar. It is worth noting that maker and taker fees are equal in the relevant schedule, so routing exits as maker changes nothing — this is a fee-tier question, not an implementation one.

11. Application: what the protocol establishes here

This section applies the protocol of §§7–10 to the estimator of §§3–6 and records what each instrument returned. It is included because a specification is not testable without knowing what its tests do when run, and because several of the mathematical choices above — the deflation, the floor, the rotation null, the tier ladder — were adopted in response to specific results below rather than in anticipation of them. No configuration in the chain has cleared both conditions of §10.4 on data free of measurement artifacts; the interest here is in which instrument established that, and how.

11.1 The in-sample selection statistic is a property of the search

Under the rotation null of §10.1, which destroys only signal–outcome alignment, the in-sample selection statistic does not collapse. It rises. The real signal scores $\mathrm{sel\_in}=0.325$ (Figure 3); the null scores $0.436\pm0.026$ over its seeds, placing the real run $z=-4.25$ below its own null. The best candidate $t$-statistic behaves the same way: $43.2$ real against $101.4$ under rotation. Out of sample the ordering also survives, the null posting $+0.113$ against the real run's $-0.066$.

Figure 3. The real signal against its structure-preserving null. Rotation leaves the marginal distribution, the autocorrelation, the firing rate at every threshold and the clustering intact, and severs only the alignment between signal and outcome. (a) The in-sample selection statistic; error bar is the standard deviation across null seeds. (b) The largest $t$-statistic in the candidate pool. In both panels the null is higher than the real signal, which is the strongest available form of the negative result: these statistics are properties of taking a maximum over $\sim\!2\times10^3$ candidates ranked on overlapping labels, and they would look like this with no signal at all.

The reading is unambiguous, and it is the result on which the rest of the protocol was built. A positive in-sample selection statistic is not weak evidence of edge; it is no evidence of edge. This is what motivates the deflation of Eq. \eqref{eq:neff} and the floor of Eq. \eqref{eq:floor}, and it is why no result in this programme is reported without a null beside it.

11.2 Rejected hypotheses

(i) "The signal fires in volatility bursts and the bracket is stopped out." Rejected: the calm mid-band has the same exit mix ($\sim48\%$ stop, $\sim18\%$ target) as the tails. (ii) "Entry selection is the lever." Rejected: tails, mid-band and no gate give identical exit mixes. (iii) "Barrier geometry is the lever." Rejected on a $36$-cell target/stop grid; zero cells cleared the bar and the surface is flat near zero. (iv) "The unconditional bracket has an edge the signal subtracts from." Rejected: the drift-neutral unconditional bracket returns approximately zero. (v) "The signal is worse than random timing." Rejected, and instructive: it rested on a rotated null whose level was contaminated by a wrap discontinuity (§10.1).

One lever survived: holding period. The signal's margin over a signal-free baseline increases monotonically with the window — but not enough at the architectural maximum $H\le L=4320$.

11.3 A measurement artifact an era holdout cannot catch

Two configurations returned deployable verdicts, and an era-split holdout confirmed they were not regime-specific. They were nonetheless artifacts. At chunk multiplier $\mu=3$, forward windows of $1800$ and $2880$ minutes were truncated at the chunk boundary for $42$–$67\%$ of minutes, reading $+2.93$ and $+4.14$ gross per $10^3$; rebuilding at $\mu=6$, where truncation falls to $10$–$17\%$, the same windows read $+1.32$ and $+0.11$.

Figure 4. Gross return per $10^3$ trades against holding window, on rebuilt low-truncation data, with the cost bar of Eq. \eqref{eq:bar}. The signal beats unconditional entry at every window — holding period is a real lever, and the margin grows with it — but nothing reaches the bar: the best cell, at the architectural ceiling $W=4320$, delivers $+1.51\%$ against $2.56\%$, or $59\%$ of what is required. The pre-rebuild version of this figure showed $+2.93$ and $+4.14$ at $W=1800$ and $2880$ and was read as two deployable configurations; those cells were $42$–$67\%$ truncated.

The methodological point generalises. An era holdout tests for overfitting — a relationship that does not survive a change of regime. It has no power against a measurement artifact, which is present in both eras because it is a property of the instrument. The two failure modes require different instruments, and conflating them is how a false positive survives a holdout.

11.4 The estimator, not the target, is binding

Comparing tiers 0 and 1 of Table 3 isolates the effect of Eq. \eqref{eq:predict} (Figure 5):

Figure 5. The central negative result. Each pair compares the advantage a change buys when its table is fitted directly on real prices (Tier 0) against the same change routed through the Monte-Carlo table build of Eq. \eqref{eq:predict} (Tier 1). Three independent targets collapse from $1.6$–$4\times$ to below parity; allocating more resources to Tier 1 moves them toward parity rather than away from it, so this is not sampling noise. The feature rpos is the exception, retaining $1.76\times$ and improving with resources — so the simulator does transmit some real structure, and the constraint binds on the target side rather than universally.

Three independent targets, one common collapse: no target change beats the historical one through the estimator, and increasing the resources devoted to tier 1 moves the estimates toward parity rather than away from it, so this is not sampling noise. Combined with a negative out-of-sample $R^2$ at every span even on real tables, the conclusion is that the synthetic paths of Eq. \eqref{eq:predict} do not carry the real feature-to-outcome relationship for these targets.

The result is target-specific rather than universal, which is itself informative. Under the same tier-0/tier-1 comparison the range-position feature of §4.2 moves in the opposite direction — $2.21\times$ and $1.76\times$ through the estimator, increasing with allocated resources, and $2.3$–$3.6\times$ on every one of six fixed signals with no argmax involved, winning in six to eight of eight markets. The simulator therefore does transmit some real structure; it was binding on the target side, not everywhere.

A full rebuild at that feature nevertheless left the system undeployable: net return moved from $-7.74\%$ to $-10.83\%$, because the trade count and hence the fee bill of Eq. \eqref{eq:bar} roughly doubled. A feature that predicts better and trades twice as often can be strictly worse after costs. This is the clearest statement of the method's central asymmetry: predictive improvement and economic improvement are different quantities, and only the second is the object.

11.5 A boundary result on target composition

One negative result is worth stating as mathematics rather than as measurement. Modelling the forward high and low as separate targets and recombining them cannot help under a linear combination, since binned conditional means are linear:

$$\mathbb{E}[h\mid b]+\mathbb{E}[l\mid b]=\mathbb{E}[h+l\mid b],$$

verified numerically to $2.4\times10^{-8}$ across all spans and markets. The nonlinear recombination $(\hat h+\hat l)/(\hat h-\hat l)$ is strictly worse than fitting a table directly on the per-row ratio ($t_{\mathrm{corr}}$ between $-0.6$ and $-1.7$, against $+2.34$ for the direct fit), a ratio-of-means versus mean-of-ratios bias. The near-constant-denominator explanation was tested and does not hold, the denominator's across-bin spread being $0.55$–$0.88$ times the numerator's. The operative recommendation is therefore to normalise the target before fitting and keep a single table.

11.6 The selection fixes improve the window they are fitted on, and do not transfer

Sections 7.3 and 7.4 propose three corrections to the pick: deflation by $n_{\mathrm{eff}}$, the multiple-comparison floor, and an inner out-of-sample split for the selection decision. Applied at $W=4320$ on era A, they behave as designed. The untouched baseline reproduces exactly ($+1.51$ gross per $10^3$, $-1.87\%$ net, selection statistic $-0.062$), and each fix moves the out-of-sample selection statistic positive, with deflation and the inner split together reaching $+0.52$ and $+11.9\%$ net. The floor, applied honestly, selects nothing at all.

Figure 6. (a) Out-of-sample selection statistic for each variant of the pick on era A. Every fix moves it positive; the two variants carrying the multiple-comparison floor return an empty book, which is the honest outcome once the deflated statistics of §7.3 are compared against Eq. \eqref{eq:floor}. (b) The same four non-empty variants scored on era B's final fold. Era A's winner is era B's worst, and the untouched baseline beats it. The improvement in (a) does not transfer.

Panel (b) is the result that matters, and it is a negative one. Ranking the variants on era A selects "deflate + inner"; on era B's final fold that variant places last ($3.40\%$), behind the untouched baseline ($3.84\%$), while deflation alone wins ($5.13\%$). Choosing among corrections is itself a selection problem, and it is subject to exactly the inflation the corrections were built to remove — one era is a sample of size one. Two consequences follow. The apparently deployable configurations of panel (a) should not be trusted, and the empty book returned by the floor remains the only conclusion in this table that is stable across eras.

It is worth being explicit about how the positive variants achieve their numbers. Under the deflation the median candidate $t$ falls from $45.5$ to $1.31$, against the floor of $3.9$. The configurations that appear profitable are therefore aggregating picks that are individually indistinguishable from noise. The defensible claim is that the ranking carries some information, not that any rule in the book is sound — and Figure 6(b) shows that even the ranking claim does not survive a change of era.

12. Discussion

Three limitations are structural rather than incidental, and each maps onto an experiment in §13. First, the increment permutation of §3.2 removes all serial dependence, so the simulator cannot express volatility clustering or any autocorrelated mechanism; Figure 5 is the measurement of what that costs. Second, the targets of Table 1 order the forward extremes, not first passage to the fixed levels the bracket actually trades — they are proxies for the quantity of interest, not the quantity itself. Third, and most seriously, the deflated statistics sit consistently below the floor of Eq. \eqref{eq:floor}: after correcting for overlapping labels, no individual rule in this system is distinguishable from noise once the search is accounted for.

A fourth observation is not a limitation of the method but a property of the problem, and it governs how the next experiments should be judged. When the range-position feature replaced the incumbent — a change that is unambiguously better as prediction, by every screen in §10.2 — net return got worse, because the trade count and hence the fee bill of Eq. \eqref{eq:bar} roughly doubled. Predictive improvement and economic improvement are different quantities, they can move in opposite directions, and only the second is the object. Nothing in the current selection objective controls trade count.

Against those limitations, what the programme has produced is a set of statements each attached to a stated instrument and a stated null, several of which retired hypotheses that had already survived weaker tests — including two that had passed an era holdout. A protocol whose main output is a list of things that are not true is doing its job. The task now is to spend the next increment of effort where it is most likely to change the answer rather than refine the estimate.

13. What to do next

The experiments below are ordered by expected information per unit of cost, using the tier ladder of Table 3. Each is stated with the outcome that would falsify the reasoning behind it, so that a negative result is as informative as a positive one.

Table 4. The research agenda, ranked. "Cost" is per market on the ladder of Table 3.
#ExperimentCostSettles
A1Tables fitted on real chunks, not simulated pathsTier 2, ~27 minis the estimator the constraint?
A2Fixed-level first-passage targetsTier 0, ~30 sdoes the proxy cost anything?
A3Cost-aware selection objectivecode onlycan trade count be controlled?
A4Multi-era pre-registered choice of pickTier 4, hoursdo the fixes of §11.6 transfer?
A5Decouple trade horizon from the feature ladderTier 3, ~65 minis the one real lever exhausted?
A6Order flow as a second input seriesTier 3 + step 1is close price enough information?

A1. Build the tables from real chunks

This is the highest-value experiment and it is cheap, because the machinery exists: a real-table builder already emits stage-3 format (feature bins, bin transitions, the three channels), so it needs wiring as a table mode rather than writing. The trade to measure is occupancy: one real path per chunk against fifty simulated ones is roughly a $50\times$ reduction in cell counts, so Eq. \eqref{eq:predict} is buying statistical precision at the price of fidelity, and this experiment prices that exchange for the first time. Prediction: if Figure 5 is read correctly, real tables should recover a substantial part of the Tier-0 advantages despite the occupancy loss. Falsifier: if they do not — if real tables are no better than simulated ones — then the binding constraint is the binning and aggregation of §5–6, not the path model, and A6 becomes the only remaining move.

A2. Target the barriers the bracket actually trades

Every target in Table 1 orders the forward extremes within a fixed window. What a bracket resolves against is first passage to two fixed levels: whether $+\Theta$ is touched before $-\Sigma$ within $W$. The exact target is $g_{t}=+1$ if $\min\{s:p_s\ge p_t(1+\Theta)\}<\min\{s:p_s\le p_t(1-\Sigma)\}$ and $-1$ otherwise, with a third state for neither. This is a Tier-0 measurement and costs about thirty seconds per market. Prediction: the exact target should beat the extremum proxies, since it removes an approximation rather than adding a hypothesis. Falsifier: if it does not, the extremum proxies are adequate and the substantial remaining error is elsewhere — a useful narrowing either way.

A3. Put cost in the objective

Selection currently ranks by the $t$-statistic of edge, which is fee-invariant by construction (§7.2), and then re-ranks by simulated PnL. Nothing at either stage prices the number of trades the rule will take, which is why a strictly better feature produced a strictly worse book. Two concrete changes: gate candidates on expected per-trade edge exceeding the round-trip bar $\phi_{\mathrm{rt}}/\mathcal{K}$ rather than on statistical significance alone, and rank on net return per unit of capital-time rather than per trade — the fee is charged per round trip and is indifferent to holding time, which makes edge per unit of capital-time the fitness that matches the cost structure and makes holding period an output of the optimisation rather than a swept hyperparameter. This is a code change with no rebuild, and it should be made before any further Tier-3 work, so that later rebuilds are judged on the objective that actually matters.

A4. Choose the pick on more than one era

Figure 6(b) shows the selection fixes failing to transfer across a single era boundary. The correct response is not to pick the variant that won era B — that is the same error one era later — but to enlarge the comparison: more era splits, the choice of variant pre-registered before the later eras are scored, and the variant ranking itself treated as a selection subject to Eq. \eqref{eq:floor}. Prediction, stated in advance: the deflation of Eq. \eqref{eq:neff} is a bias correction with a derivation behind it and should survive; the inner split should survive; their apparent joint advantage on era A, being the largest of six numbers, should not.

A5. Unbind the horizon from the feature ladder

Holding period is the one lever this programme has confirmed (Figure 4), and the best configuration sits exactly at the architectural ceiling $H\le L=4320$ — which is to say the lever has not been tested to the point where it stops helping. The ceiling is an artifact of the forward-window construction of §4.1, not a property of the market. Raising $L$ would also respread the horizon ladder and change what the features measure, confounding the two effects; the clean version decouples the trade horizon from the feature geometry so that the holding period can be extended with the features held fixed. Only that version is interpretable.

A6. A genuinely new input

All of the above re-estimate from one series. The chunk matrix carries close price only, while the source data also carries volume, trade counts and taker-buy base and quote volume. Taker-buy imbalance is independent information about who is transacting, rather than another view of the same path, and it is the only candidate on this list that could raise the ceiling rather than approach it more efficiently. It is also the most expensive: stage 1 must carry a second series through chunking, and the Monte-Carlo simulator assumes a single price path, so A6 and A1 interact — a real-table build removes the need to simulate the second series at all. Sequence A1 first for that reason.

13.1 A stopping rule, stated in advance

The failure mode of a programme like this one is indefinite refinement: each negative result suggests one more variant, and the search continues until something crosses a threshold by chance. Eq. \eqref{eq:floor} exists to prevent that within a run; the following is its analogue across runs, and it is recorded here so that it is fixed before the results are seen.

If A1 and A2 both complete and the best resulting configuration still fails to clear the fee bar of Eq. \eqref{eq:bar} with a deflated statistic above $\sqrt{2\ln N}$ on more than one era, then the architecture — conditional-expectation tables over recency and range features of a close-price path — should be declared exhausted for this purpose. The remaining option at that point is A6, a new information source, and not a further variant of the estimator. A programme that cannot say in advance what would make it stop is not testing anything.

14. References

[1] Akaike, H. (1974). A new look at the statistical model identification. IEEE Transactions on Automatic Control, 19(6), 716–723.

[2] Burnham, K. P., & Anderson, D. R. (2002). Model Selection and Multimodel Inference: A Practical Information-Theoretic Approach (2nd ed.). Springer.

[3] López de Prado, M. (2018). Advances in Financial Machine Learning. Wiley. (Triple-barrier labelling; sample uniqueness under overlapping labels; purging and embargo.)

[4] Bailey, D. H., & López de Prado, M. (2014). The deflated Sharpe ratio: Correcting for selection bias, backtest overfitting and non-normality. Journal of Portfolio Management, 40(5), 94–107.

[5] White, H. (2000). A reality check for data snooping. Econometrica, 68(5), 1097–1126.

[6] Harvey, C. R., Liu, Y., & Zhu, H. (2016). …and the cross-section of expected returns. Review of Financial Studies, 29(1), 5–68.

[7] Politis, D. N., & Romano, J. P. (1994). The stationary bootstrap. Journal of the American Statistical Association, 89(428), 1303–1313.

[8] Bergmeir, C., & Benítez, J. M. (2012). On the use of cross-validation for time series predictor evaluation. Information Sciences, 191, 192–213.

[9] Newey, W. K., & West, K. D. (1987). A simple, positive semi-definite, heteroskedasticity and autocorrelation consistent covariance matrix. Econometrica, 55(3), 703–708.