◆ 12 STRATEGY TEMPLATES · BATTLE-TESTED · PARAMETRIC · USER-TUNABLE ─── COVERS ~95% OF FUTURES SETUPS TRADERS ACTUALLY USE ─── NO CUSTOM CODE GEN · NO RCE RISK · SHIPS IN 5 DAYS ─── ◆ 12 STRATEGY TEMPLATES · BATTLE-TESTED · PARAMETRIC · USER-TUNABLE
12
DOC / STRATEGY-TEMPLATES/ 12 PARAMETRIC TEMPLATES · NO CUSTOM CODE · SAFE BACKTESTER 📈 TRADER-GRADE

12 STRATEGIES.
PICK. TUNE. RUN.

Instead of letting users upload Python (security nightmare + RCE), we ship 12 professional-grade templates covering 95% of real futures setups. Users tune parameters, run backtests, graduate strategies to live monitoring. Safe. Fast. Shipped in 5 days.

/ 01 · THE TEMPLATE SCHEMA · SHARED BY ALL 12

ONE FORMAT.

# packages/strategies/schema.ts export interface StrategyTemplate { id: string; // 'vwap_reclaim' name: string; // user-facing label category: 'trend' | 'mean_rev' | 'breakout' | 'scalp'; description: string; // short pitch for marketplace tagline: string; // one-liner applicable_symbols: string[]; // ['NQ','ES','GC',...] applicable_timeframes: string[]; // ['1m','5m','15m'] parameters: Parameter[]; // tunable knobs entry_logic: string; // Python function ref exit_logic: string; // Python function ref default_params: Record<string,any>; aggressive_preset: Record<string,any>; conservative_preset: Record<string,any>; realistic_expectation: { win_rate_range: [number, number]; // e.g. [0.45, 0.62] avg_r_range: [number, number]; trades_per_day_range: [number, number]; best_session: 'rth' | 'globex' | 'both'; }; firm_suitability: { // which prop firms work well apex: 'excellent' | 'good' | 'marginal' | 'avoid'; topstep: 'excellent' | 'good' | 'marginal' | 'avoid'; // ...all 8 firms }; required_indicators: string[]; // 'vwap', 'atr', 'ema' } export interface Parameter { id: string; label: string; type: 'int' | 'float' | 'enum' | 'time' | 'bool'; default: any; min?: number; max?: number; step?: number; options?: string[]; // for enum help: string; // tooltip }
/ 02 · THE LIBRARY · 12 TEMPLATES

THE ROSTER.

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
/ 03 · STRATEGY LIFECYCLE · IDEA → BACKTEST → LIVE

FROM IDEA TO LIVE.

01 · IDEA

Pick a template

User browses 12 templates, reads description + stats. Starts with Aggressive/Default/Conservative preset.

02 · TUNE

Adjust params

Sliders + inputs. Live-preview: "Your last 30 days with these params would have..."

03 · BACKTEST

Run historical

Hits Databento for tick data. Full stats + equity curve + trade-by-trade review in <30 sec.

04 · VALIDATE

Paper trade

14-day paper run with live data. Proves strategy works in current regime, not just historical.

05 · GRADUATE

Go live

Strategy becomes active watcher. User trades it themselves; we monitor their fills + fire alerts when setups occur.

/ 04 · BACKTEST INTEGRITY · NO LIES

REAL NUMBERS.
REAL FILLS.

/ WE COMMIT TO
  • Tick-accurate historical data (Databento)
  • No lookahead bias (signal uses only past bars)
  • Realistic slippage: 1 tick on limit, 2-3 ticks on market
  • Commission modeled per exchange fee schedule
  • Fills only on bars that actually traded through the price
  • Partial fills respected (not "all or nothing")
  • Walk-forward option (no in-sample overfit)
  • Equity curve + drawdown + monte-carlo optional
  • Daily P&L distribution (show losing days not just aggregate)
  • Export to CSV for user's own analysis
/ WE REFUSE TO DO
  • Curve-fitting ("optimized" params that won't generalize)
  • Unrealistic instant fills at perfect prices
  • Hide losing periods from summary stats
  • Show only best-case scenarios
  • "Backtest" on random data
  • Promise future performance based on past
  • Let users run 10,000 backtests to p-hack
  • Display Sharpe without context
  • Run code users paste (security hole)
/ STANDARD BACKTEST REPORT
Trades
127
Win rate
58%
Avg R
1.8
Profit factor
1.9
Max DD
-$2,840
Sharpe
1.4
Sortino
2.1
Trades/day
1.8
Longest losing streak
6
Apex suitability