Futures Position Size Calculator
How many contracts your stop allows, what a trade makes or loses, and what to type into NinjaTrader’s ATM dialog.
Ticks holds at any quantity. —
Commissions, exchange fees and slippage come off on top. This is the move times the tick value, nothing else.
How the number is worked out
There is only one piece of arithmetic here, and it is worth knowing by heart.
Contracts = risk budget ÷ (stop in ticks × tick value)
Say you trade MES with a $50,000 account and risk 1% — that is a $500 budget. A 20-tick stop on MES risks 20 × $1.25 = $25 per contract. $500 ÷ $25 = 20 contracts.
The result is always rounded down. You cannot trade part of a futures contract, and rounding up quietly breaks the risk limit you just set.
Putting it into NinjaTrader’s ATM strategy
NinjaTrader’s ATM strategy dialog lets you set a stop or target in five parameter types, Ticks, Currency, Price, Percent and Pips. The calculator gives you Ticks and Currency, the distance and the dollars. Price is a fixed price level rather than a distance, and Percent and Pips are not how futures stops are usually set.
Ticks is the one to save in a template
A Ticks value is a distance. Twenty ticks is twenty ticks whether you trade one contract or ten, so a template built in ticks behaves the same way every time you use it. The dollars it risks still grow with the size you trade. That is why the calculator lists Ticks first.
Currency is a total, not a per-contract amount
This is the part that catches people, and it is worth reading twice.
When you set a stop in Currency mode, NinjaTrader treats that dollar figure as the risk for the whole allocated quantity — not per contract. It divides by the quantity to work out the distance.
So a $50 Currency stop on MES lands at two different distances.
- on 1 contract, lands 40 ticks from the fill — $50 ÷ $1.25
- on 2 contracts, lands 20 ticks from the fill — $50 ÷ ($1.25 × 2)
Same number in the box, half the distance on the chart. If you built the template on a 1-lot and later traded a 2-lot, your stop is twice as tight as you think it is — and nothing on screen tells you before the fill.
Two more details, both found by watching real fills rather than by reading the dialog.
- The quantity that divides is the quantity on the entry order you actually send — whatever is in the Chart Trader quantity box — not the quantity saved in the ATM template row. A 1-lot order on a row saved at quantity 3 divides by 1.
- We measured this on templates with one stop and one target. Templates with several targets may divide differently. We have not verified them, so do not assume the same rule holds there.
None of this is a bug — it is what Currency mode is for. It only bites when you assume the number is per contract. If you would rather not think about it, use Ticks.
Contract specifications used
Every number in the calculator comes from this table. Tick value is always the point value multiplied by the tick size, and the calculator refuses to use any row where that does not hold.
| Symbol | Contract | Tick size | Tick value | Point value |
|---|---|---|---|---|
| ESE-mini S&P 500 | E-mini S&P 500 | 0.25 | $12.50 | $50 |
| MESMicro E-mini S&P 500 | Micro E-mini S&P 500 | 0.25 | $1.25 | $5 |
| NQE-mini Nasdaq-100 | E-mini Nasdaq-100 | 0.25 | $5 | $20 |
| MNQMicro E-mini Nasdaq-100 | Micro E-mini Nasdaq-100 | 0.25 | $0.50 | $2 |
| YME-mini Dow | E-mini Dow | 1 | $5 | $5 |
| MYMMicro E-mini Dow | Micro E-mini Dow | 1 | $0.50 | $0.50 |
| RTYE-mini Russell 2000 | E-mini Russell 2000 | 0.1 | $5 | $50 |
| M2KMicro E-mini Russell 2000 | Micro E-mini Russell 2000 | 0.1 | $0.50 | $5 |
| CLCrude Oil | Crude Oil | 0.01 | $10 | $1,000 |
| MCLMicro Crude Oil | Micro Crude Oil | 0.01 | $1 | $100 |
| NGNatural Gas | Natural Gas | 0.001 | $10 | $10,000 |
| RBRBOB Gasoline | RBOB Gasoline | 0.0001 | $4.20 | $42,000 |
| GCGold | Gold | 0.1 | $10 | $100 |
| MGCMicro Gold | Micro Gold | 0.1 | $1 | $10 |
| SISilver | Silver | 0.005 | $25 | $5,000 |
| HGCopper | Copper | 0.0005 | $12.50 | $25,000 |
| ZB30-Year T-Bond | 30-Year T-Bond | 0.03125 | $31.25 | $1,000 |
| ZN10-Year T-Note | 10-Year T-Note | 0.015625 | $15.625 | $1,000 |
| ZF5-Year T-Note | 5-Year T-Note | 0.0078125 | $7.8125 | $1,000 |
| 6EEuro FX | Euro FX | 0.00005 | $6.25 | $125,000 |
| 6BBritish Pound | British Pound | 0.0001 | $6.25 | $62,500 |
| 6JJapanese Yen | Japanese Yen | 0.0000005 | $6.25 | $12,500,000 |
These are exchange contract specifications, not margins. Margins change and differ by broker. Tick values are set by the exchange and rarely change. The futures tick values guide has the same table, and MNQ, MES, NQ, ES, MGC and GC each have their own page with examples.
Common questions
Why did it tell me zero contracts?
Because one contract would risk more than your budget allows. That is a real answer, not an error. A futures contract cannot be split, so the trade does not fit at this size. Where a micro contract exists, it risks a tenth as much per tick.
Why was my stop rounded?
NinjaTrader's ATM dialog works in whole ticks. A 2.1-point stop on ES is 8.4 ticks, which cannot be placed, so the calculator rounds it to the nearest whole tick and says so under the result.
Should I risk 1% or 2%?
That is your decision and it depends on things a calculator cannot see. The field is there so you can put your own number in, not because we think there is a correct one.
Does this account for commissions or slippage?
No. It sizes the position against your stop distance. Fills happen at the price the market gives you, and commissions and fees come off on top. Treat the result as the planned risk, not the guaranteed loss.
Can I share a calculation?
Yes, for the position size. The address bar holds those inputs as soon as you change one, so copying the address carries them with it. The profit or loss calculator is not kept in the address.
This tool does arithmetic on numbers you supply. It is not trading advice and it does not know anything about your circumstances. Futures trading carries substantial risk of loss. See our risk disclosure.