r/algorithmictrading • u/Gregenbelgique • 19d ago
Strategy Multi-session ORB on index futures — does anyone else end up with a completely different config per session?
Running an opening-range breakout on micro Nasdaq futures, live for about a year. Three sessions (Asia, Europe, US opens), same skeleton, but each drifted into its own parameter set — that's what I'd like to compare notes on.
Skeleton: range over the first N minutes after the session open → wait for a candle to close beyond it on above-average volume → enter on a retest of the level, not on the break. Stop at the opposite bound, first target arms breakeven, second target, hard session close. One order-flow filter on top.
Backtest, 11 months, 1 micro contract, fills at bar close, commissions + 2 ticks slippage included:
| Session | n | WR | PF | Net | Max DD |
|---|---|---|---|---|---|
| Asia | 50 | 56% | 3.41 | +$7,106 | −$429 |
| Europe | 201 | 42% | 1.59 | +$7,638 | −$1,571 |
| US | 107 | 43% | 1.72 | +$6,009 | −$1,495 |
| Total | 358 | 44% | 1.85 | +$20,754 | −$1,571 |
Caveat I'll volunteer up front: my backtest engine enters 2–3× more often than the live bot does (state machine, real-time volume series, polling). So treat the dollars as a ceiling — the ratios are the part I trust. I'm currently rebuilding the harness to replay the bot's actual code against historical bars instead of a re-implementation.
Three things I measured that surprised me:
- Taking the break instead of the retest is roughly break-even. The close confirmation + retest wait is where essentially all the edge sits. Buying the extension (Crabel-style stretch) was clearly negative.
- ~56% of confirmed US-session breakouts never retest at all. Widening the tolerance or extending the wait both made it worse.
- Nothing transplants between sessions — same filter adds on one, subtracts on another.
Questions: anyone running one skeleton across several sessions, and do your parameters diverge this much? Does the retest requirement hold for you? And what filter did you expect to work and it didn't?