Technical notes
Notes
Lower-friction technical notes on backtesting, validation, execution assumptions, and trading system design.
- Frictions all the way down: the implementation gap, layer by layer New 2026-06-19 Reporting one top-line Sharpe is a claim about the cleanest possible layer. Measuring the same strategy at the instrument and integer-contract layers — and naming which step costs the most — is more honest, and it changes where you spend your effort.
- Arithmetic can be legislated; capital allocation cannot New 2026-06-19 Pre-registered thresholds are a commitment device for the things that should be mechanical. The failure mode is overreach — the moment a rule starts deciding how much capital is at risk, it has left the domain where pre-registration protects you.
- Look-ahead prevention as a unit test, not a promise New 2026-06-19 "We were careful" is not a control. Perturb the future and assert the present does not move — a direct, mechanical check for look-ahead that keeps working as the codebase changes.
- Selection bias in 0DTE breakout backtests: how full-population validation overturned four positive drafts Four drafts of the Donchian 0DTE paper reported +$80K, +$50K, and +$32K per year. Full-population tick validation reported −$107K. The gap was two compounding biases — and the larger one was a selection filter that looked like engineering hygiene.
- Black-Scholes with VIX1D under-prices ATM 0DTE entry premium by roughly 85% Across thousands of validated trades, real entry mid / BSM entry premium has a median of 1.85. The error is stable, asymmetric between entry and exit, and large enough to manufacture phantom edge on a signal that has none.
- Dual-clock backtesting: minute-level signals with a 1-second risk clock Signals fire on closed minute bars; stops, targets, and trailing logic are evaluated on 1-second closes with a strict per-second event order. Validation showed minute-only risk evaluation distorts tight-stop strategies by −55% while leaving wide-stop profiles almost untouched.
- Cross-day rolling Donchian channels for valid day-one signals With a 30-bar 5-minute lookback computed within-session, no signal can exist for the first 2.5 hours of each day. Rolling the channel across session boundaries restores the open — at the cost of overnight-gap distortion that needs its own policy.
- Option-proxy design: BSM, delta proxy, and VIX-scaled IV versus real SPXW quotes The research ladder prices option exposure three increasingly honest ways — delta proxy, BSM with a VIX-scaled IV, BSM with real/fitted IV — and reserves the tradability verdict for real quote-chain replay. Each proxy has a defined role and a defined ceiling.
- Walk-forward, OOS, Deflated Sharpe, and PBO: overfitting controls that matter The controls that did the work here are walk-forward gates with in-window selection, bootstrap confidence intervals, dominance checks, and parameter-stability evidence. Deflated Sharpe and PBO are specified as acceptance criteria but deliberately deferred — and saying so plainly is part of the methodology.
- Risk invariants and execution safety in live 0DTE systems Safety outranks correctness, which outranks profit. The live 0DTE systems encode that as hard invariants — single position, long-only, daily hard stops, forced EOD flatten — enforced by state machines and schema-level tests rather than comments, with production incidents converted into permanent regression tests.
- Why next-open execution can still be optimistic Signal at close, execute at next open is the standard honest daily convention — and it still assumes a fill nobody guarantees. Lag-grid evidence from intraday work shows edges decaying within seconds, and spread measurements show exits costing four times entries.
- The window trap: unequal histories make rankings lie New 2026-06-25 Full-available rankings mix long and short histories, so they reward an accident of inception. Re-rank on a single equal window before believing any "best performer" claim — the leader can flip.
- A monthly crisis window can hide the crash New 2026-06-25 Crisis performance measured on monthly returns can post a gain while the asset fell 38% peak-to-trough inside the very same window. Report intra-window daily drawdown to measure a crash faithfully.
- 'Defensive' is a claim that needs a significance test New 2026-06-25 A point-estimate ranking of "defensive" assets is not evidence of a defensive edge. Attach n, t, and p before believing it — here the highest mean was insignificant, and the reliable hedge had the smaller mean.
- 73 corrections or 339? The counting convention decides New 2026-07-10 Anchor drawdowns at all-time highs and a 98-year history has 73 episodes of 5%+; anchor them at local peaks and it has 339. Neither is wrong — they answer different questions. Never quote a drawdown count without its convention.
- The median bear recovers in 764 days — the error bars span 666 to 2310 New 2026-07-10 Recovery-time "averages" come from a dozen observations, so their uncertainty is enormous — the 95% CI on the median 20%+ recovery is [666, 2310] days. Meanwhile half the loss is typically back in 220 days. Quote the interval and the milestones, not just the point estimate.
- In income-scaled DCA, the window picks the winner New 2026-07-10 Money-weighted returns inherit the window trap — with growing contributions, late-cycle dollars dominate, and own-inception rankings mix unequal histories. Compare DCA outcomes only on a common window where every asset receives the same cash-flow schedule.
- The universe was chosen after the race New 2026-07-10 Any study whose asset list contains known ex-post winners carries hindsight selection and survivorship bias by construction. Read counterfactual DCA results as expectation-setting against a broad benchmark, never as evidence for a selection rule.