Position sizing in futures does not work like sizing stocks, and the most expensive mistake is not arithmetic: it is using the wrong contract multiplier. An E-mini and its micro are named almost identically, move exactly the same and are worth ten times differently.
How do you calculate futures position size?
With one formula: contracts = risk in cash ÷ (stop distance in points × point value). You choose the cash risk — a percentage of the account, usually between 0.5% and 2%. Your setup chooses the stop distance. You do NOT choose the point value: the contract fixes it.
The multipliers worth keeping in front of you
CME contract specifications. They are stable — they change rarely and with notice — unlike commissions or margins.
| Contract | Point value | Minimum tick | Tick value |
|---|---|---|---|
| ES · E-mini S&P 500 | $50 | 0.25 | $12.50 |
| MES · Micro E-mini S&P 500 | $5 | 0.25 | $1.25 |
| NQ · E-mini Nasdaq-100 | $20 | 0.25 | $5.00 |
| MNQ · Micro E-mini Nasdaq-100 | $2 | 0.25 | $0.50 |
| GC · Gold (100 oz) | $100 | 0.10 | $10.00 |
| CL · WTI Crude (1,000 bbl) | $1,000 | 0.01 | $10.00 |
A worked example
A $50,000 account risking 1% per trade = $500. The setup calls for an 8-point stop on the S&P.
- In ES: 8 points × $50 = $400 per contract. 500 ÷ 400 = 1.25 → 1 contract. Risk left unused, and no way to size finer.
- In MES: 8 points × $5 = $40 per contract. 500 ÷ 40 = 12.5 → 12 micros. Same risk, ten times the resolution.
That is the real reason micros exist, and why an account under six figures should almost always size in micros: not because you risk less, but because you can hit the size instead of rounding to it.
What changes per platform
The arithmetic is identical across all three. What changes is where the numbers come from and how much manual work is left.
| Where the balance comes from | Automatable from outside | |
|---|---|---|
| NinjaTrader | The account in the platform | Via NinjaScript (C#), inside the platform |
| Tradovate | The account in the cloud | Yes, via REST/WebSocket API |
| Interactive Brokers | TWS API, Web API or a Flex report | Yes, and with no open session if you use Flex |
The costliest failure is not the formula: it is mixing currencies. If your account is in euros and the contract settles in dollars, the 1% you think you are risking is not the 1% you are risking. Convert the risk into the contract's currency BEFORE dividing.
What about margin?
Intraday margin is not your risk: it is the collateral the broker demands to open. You can have margin for ten contracts while your risk only justifies two. Always size by risk and treat margin purely as a ceiling — if the risk calculation asks for more contracts than margin allows, the ceiling wins.
Fulcrum Quant
Position sizing, IBKR portfolio sync, risk analytics and tax reporting in one place.
Join the waitlist