01
RUNNER
VWAP Reclaim
id: vwap_reclaim
Long when price reclaims VWAP with volume step-up after a pullback. Classic opening-drive continuation.
# Params
vwap_timeframe: "5m" # 1m/5m/15m
volume_mult: 1.5 # min volume vs 20-bar avg
confirmation_bars: 1 # bars close above VWAP
stop_atr_mult: 1.5 # stop below VWAP low - 1.5 ATR
target_r: 2.0 # 2× risk
session: "rth"
max_entries_day: 3
# Realistic: 52-68% win · 1.6-2.1R · 1-3 trades/day
# Best on: NQ/ES RTH · avoid GC thin sessions
02
BREAKOUT
Opening Range Breakout
id: orb
Mark the high/low of the first N minutes. Enter on break with volume. Most battle-tested futures pattern.
# Params
range_minutes: 15 # 5/15/30/60
confirmation: "close" # close vs tick
volume_mult: 1.3
stop_type: "opposite_range"
target_type: "range_multiple"
target_mult: 1.5 # 1.5× range size
failed_break_exit: true # exit if re-enters range
session: "rth"
max_entries_day: 2
# Realistic: 48-60% win · 1.8-2.5R · 1-2 trades/day
# Best on: all futures · daily bread-and-butter
03
MEAN REV
Mean Reversion
id: mean_reversion
Fade price when it stretches N× ATR outside VWAP. Bollinger-band-style contrarian entries.
# Params
band_type: "bb" # 'bb' | 'keltner' | 'vwap_stddev'
band_periods: 20
band_mult: 2.0 # 2σ
wick_entry: true # enter on wick rejection
stop_atr_mult: 1.0
target_mid: true # T1 = middle band
rsi_filter: 30 # RSI < 30 for long
session: "rth"
avoid_trend_days: true
# Realistic: 58-70% win · 1.2-1.6R · 2-4 trades/day
# Best on: GC/SI · avoid NQ trending days
04
RUNNER
Moving Average Cross
id: ma_cross
Fast MA crosses slow MA with trend filter. Simple, robust, proven for swing style futures trading.
# Params
fast_period: 9
slow_period: 21
ma_type: "ema" # 'sma' | 'ema' | 'wma'
trend_filter: "ma_200" # only long if above MA200
atr_trailing: 2.0 # trailing stop ATR
initial_stop_atr: 1.5
target_r: 3.0
session: "both"
max_entries_day: 2
# Realistic: 42-52% win · 2.2-3.0R · 1-2 trades/day
# Best on: swing traders · whiplash in chop
05
BREAKOUT
Prior High Breakout
id: breakout_prior_high
Enter long on break of prior session high with volume. Reverse for prior low. Simple trend-day capture.
# Params
reference_session: "rth_prior" # 'rth_prior'|'globex'|'week'
buffer_ticks: 2 # break + buffer
volume_confirm: true
retest_acceptable: true # allow entry on pullback
stop_below: "prior_high"
target_type: "range_projection"
target_mult: 1.0 # 1× prior session range
max_entries_day: 1
# Realistic: 50-62% win · 2.0-2.8R · 0-2 trades/day
# Best on: trend days · high ADX
06
BREAKOUT
Consolidation Break
id: breakout_consolidation
Detect flag/pennant consolidation after strong move, enter on break in direction of trend.
# Params
impulse_move_atr: 2.0 # prior move must be N ATRs
consolidation_bars: 8 # min flag width
consolidation_width_atr: 0.6 # max narrowness
volume_divergence: true # decreasing volume in flag
stop_flag_opposite: true
target_measured_move: true # = impulse size
session: "rth"
max_entries_day: 2
# Realistic: 54-66% win · 1.8-2.4R · 1-3 trades/day
# Best on: strong-trend days
07
MEAN REV
Gap Fill
id: gap_fill
Fade opening gaps toward prior close. ES/NQ overnight-gap dynamics. High probability on small-med gaps.
# Params
min_gap_pct: 0.2 # min gap size
max_gap_pct: 1.2 # above = avoid (trend day)
entry_trigger: "first_rejection"
stop_beyond_open: 5 # ticks beyond open
target_prior_close: true
partial_fill_ok: true # exit half at 50% fill
session: "rth_open"
time_cutoff: "11:00 ET" # no new entries after
# Realistic: 62-74% win · 1.0-1.5R · 0-1 trades/day
# Best on: ES/NQ · skip FOMC/CPI days
08
BREAKOUT
Globex Breakout
id: globex_breakout
Mark Globex (ETH) range. Enter on RTH open break of that range. Captures overnight→cash continuation.
# Params
globex_window: ["18:00 ET", "09:30 ET"]
range_expansion_mult: 1.1 # break + 10% range buffer
volume_confirm: true
stop_globex_mid: true
target_globex_range: 1.5 # 1.5× range up
session: "rth"
first_entry_before: "10:30 ET"
# Realistic: 50-60% win · 1.8-2.4R · 0-1 trade/day
# Best on: NQ/ES · trend mornings
09
MEAN REV
Globex Reversal
id: globex_reversal
Fade overnight extreme moves at RTH open. If ETH ran hard one way, RTH often reverses.
# Params
min_globex_move_atr: 1.5 # ETH moved ≥1.5 ATR
wait_for_rejection: true # need RTH open rejection
rejection_window: "09:30-09:45 ET"
stop_beyond_globex_extreme: true
target_globex_midpoint: true
max_entries_day: 1
# Realistic: 54-64% win · 1.4-2.0R · 0-1 trade/day
# Best on: NQ · fade news-driven overnight
10
BREAKOUT
Inside Bar / NR7 Break
id: inside_bar_break
Detect narrowest-range N bar (NR7) or inside bar. Enter on break. Volatility contraction → expansion.
# Params
pattern_type: "nr7" # 'nr7' | 'inside'
timeframe: "15m"
trend_filter: "ma_50" # only trade with trend
volume_expansion: 1.5
stop_pattern_opposite: true
target_r: 2.5
max_entries_day: 2
# Realistic: 46-56% win · 2.0-2.8R · 0-2 trades/day
# Best on: swing/positional · low-vol sessions
11
MEAN REV
Supply / Demand Zones
id: supply_demand_zone
Auto-identify supply/demand zones from prior impulse moves. Enter at zone test. Classic institutional-order-flow concept.
# Params
zone_lookback_days: 5
impulse_move_atr: 2.5 # define zone from impulse
fresh_zone_only: true # no prior test
reaction_required: true # need wick reject at zone
stop_beyond_zone: 3 # ticks
target_r: 2.5
timeframe: "15m"
max_entries_day: 2
# Realistic: 50-60% win · 2.0-2.8R · 1-2 trades/day
# Best on: all · popular with institutional-style traders
12
SCALP
Session Bias
id: session_bias
Stats-driven: if AM session was down → bias long for PM. If AM up → bias short. Rides afternoon reversions.
# Params
am_window: ["09:30 ET", "11:30 ET"]
pm_window: ["13:00 ET", "15:30 ET"]
min_am_move_atr: 0.8 # strong enough AM move
entry_type: "vwap_cross" # PM VWAP cross in bias direction
stop_atr_mult: 1.2
target_r: 1.8
max_entries_day: 1
# Realistic: 55-65% win · 1.4-1.8R · 0-1 trade/day
# Best on: ES/NQ · works on range days, fails on trend days