Skip to main content

Reference

Futures Trading

Complete guide to futures trading on Tradovate and NinjaTrader - bracket orders, tick-based SL/TP, copy trading, and platform differences from forex.


Trade Wzrd supports futures trading through Tradovate and NinjaTrader, connected via the ntvateREST API. This guide covers everything you need to know about trading futures on Trade Wzrd.


Forex vs Futures

Feature Forex Futures
Platforms MT4, MT5, TradeLocker, cTrader, DXTrade Tradovate, NinjaTrader
Instruments Currency pairs, metals, crypto, indices Futures contracts (ES, NQ, CL, GC, etc.)
Symbol format Broker-specific (EURUSD, EURUSDm, XAUUSD) Base symbol (ES, NQ, CL, GC)
SL/TP type Pips, Price, Balance, Percentage Ticks, Price
SL/TP mechanism Fields on the position Separate bracket orders (OSO)
Pending orders Supported Supported in terminal, not yet in automation signals
Lot sizing Standard lots (1.00 = 100,000 units) Contracts (1 = 1 contract)
Magic number Supported Not supported
Comment Supported Not supported

Popular Futures Contracts

Symbol Contract Tick Size Tick Value Point Value
ES E-mini S&P 500 0.25 $12.50 $50.00
NQ E-mini Nasdaq 100 0.25 $5.00 $20.00
MES Micro E-mini S&P 500 0.25 $1.25 $5.00
MNQ Micro E-mini Nasdaq 100 0.25 $0.50 $2.00
CL Crude Oil 0.01 $10.00 $1,000.00
GC Gold 0.10 $10.00 $100.00
YM E-mini Dow Jones 1.00 $5.00 $5.00
RTY E-mini Russell 2000 0.10 $5.00 $50.00

The platform resolves base symbols to the front-month contract automatically. Enter ES and the platform trades the current active contract.


Tick-Based SL/TP

On futures platforms, SL and TP can be set in ticks from the entry price. Use TPSLTYPE=TICKS in signals or select “Ticks” in the terminal SL/TP dropdown.

Tick Conversion

Examples

ES at 5800.00 (tick size 0.25):

  • SL=4 ticks → SL at 5799.00 (4 × 0.25 = 1.00 below entry)
  • TP=10 ticks → TP at 5802.50 (10 × 0.25 = 2.50 above entry)
  • Risk per contract: 4 ticks × $12.50 = $50.00
  • Reward per contract: 10 ticks × $12.50 = $125.00

NQ at 20500.00 (tick size 0.25):

  • SL=8 ticks → SL at 20498.00 (8 × 0.25 = 2.00 below entry)
  • TP=20 ticks → TP at 20505.00 (20 × 0.25 = 5.00 above entry)

Bracket Orders (OSO)

On futures platforms, SL and TP are implemented as bracket orders using the OSO (Order Sends Order) mechanism. When you open a position with SL+TP:

  1. The entry order is placed first
  2. When the entry fills, the SL order is placed
  3. When the entry fills, the TP order is placed
  4. If the SL fills → TP is automatically cancelled
  5. If the TP fills → SL is automatically cancelled

BRACKET Command

The BRACKET command opens a position with SL+TP as bracket orders in a single signal:

On forex platforms, BRACKET works identically to BUY/SELL with SL/TP.

Adding SL/TP After Entry

You can also add SL/TP to an existing position using MODIFY:

This places SL/TP as bracket orders on the existing position.

Removing Individual Brackets

Automatic Bracket Cleanup

When a futures position is fully closed (via CLOSE, CLOSEALL, or the TP/SL being hit), all remaining bracket orders are automatically cancelled. You do not need to manually cancel brackets.

Partial closes reduce volume but keep bracket orders attached.


Copy Trading with Futures

Copy Modes Matrix

Sender Receiver Mode What’s Copied
Futures Futures Hybrid (full) Entry, exit, SL/TP brackets, partial closes
Futures Forex Entry/Exit Open + close signals only
Forex Futures Entry/Exit Open + close signals only
Forex Forex Full Entry, exit, SL/TP, partial closes, breakeven

Hybrid Mode (Futures → Futures)

When both sender and receiver are futures accounts, copy trading operates in hybrid mode with full bracket support:

  • Sender opens with SL/TP → receiver opens with matching bracket orders
  • Sender modifies SL/TP → receiver’s bracket orders are updated
  • Sender partial closes → receiver’s volume and brackets are adjusted
  • Sender full closes → receiver closes and brackets auto-cancel
  • Sender uses REMOVE_SL/REMOVE_TP → receiver’s matching bracket is cancelled

Entry/Exit Mode (Cross-Asset)

When copying between forex and futures, only entry and exit signals are copied. SL/TP management is not copied because:

  • Distance units differ (pips vs ticks)
  • SL/TP mechanisms differ (order fields vs bracket orders)
  • Contract sizes and leverage are fundamentally different

Risk-Based Position Sizing

Use RISK instead of VOL to calculate position size based on your account balance and SL distance:

Calculation:

Example: Account balance $50,000, RISK=2, SL=6 ticks on ES:

  • Risk Amount = $50,000 × 0.02 = $1,000
  • Contracts = $1,000 / (6 × $12.50) = 13.3 → 13 contracts

Futures Commands Reference

Command Description Futures Example
BUY Open long position BUY,ES,VOL=2,SL=4,TP=10,TPSLTYPE=TICKS
SELL Open short position SELL,NQ,VOL=1,SL=8,TP=20,TPSLTYPE=TICKS
BRACKET Open with SL+TP brackets BRACKET,ES,VOL=2,SL=4,TP=10,TPSLTYPE=TICKS
MODIFY Update SL/TP brackets MODIFY,ES,SL=6,TP=15,TPSLTYPE=TICKS
REMOVE_SL Remove SL bracket REMOVE_SL,ES
REMOVE_TP Remove TP bracket REMOVE_TP,ES
CLOSE Close position (auto-cancel brackets) CLOSE,ES
CLOSE,PERCENT=50 Partial close (brackets stay) CLOSE,ES,PERCENT=50
CLOSEALL Close all + cancel brackets CLOSEALL,ES
BREAKEVEN Move SL to entry (in ticks) BREAKEVEN,ES,OFFSET=4,TPSLTYPE=TICKS
LAYER_CLOSE Close to target volume LAYER_CLOSE,ES,VOL=1

Key Differences from Forex

  1. Pending orders in terminal only - You can place pending orders manually in the terminal on Tradovate/NinjaTrader. Automation signals for pending orders (BUYLIMIT, SELLLIMIT, BUYSTOP, SELLSTOP) are not yet supported for futures.
  2. No magic numbers or comments - These fields are not supported by the futures API
  3. SL/TP are separate orders - Not fields on the position, but bracket orders managed independently
  4. Tick-based distances - Use TPSLTYPE=TICKS instead of TPSLTYPE=PIPS
  5. Automatic bracket cleanup - Full close always cancels remaining brackets
  6. Base symbols - Enter ES not ESM6, the platform resolves to front-month
  7. Contract sizing - Volume is in contracts, not lots. 1 ES contract = $50/point