Position Sizing for Futures Trading: The Complete Formula and Framework
Overview #
Position sizing in futures is the most consequential decision you make before a trade — not the entry, not the indicator, not the setup quality. Get it right and losing streaks stay survivable. Get it wrong and a single bad week wipes months of work. The math is unforgiving: futures contracts have fixed tick values, and your position size determines exactly how much equity rides on every tick the market moves.
This article covers the complete mechanics of futures position sizing: the dollar value per tick for every major contract, the core formula that converts a risk percentage into a specific contract count, ATR-based dynamic sizing, margin constraints, correlation risk when you hold multiple contracts, prop firm challenge sizing, and how to scale as your account grows. Every concept ties to a specific calculation you can run before the open.
The logic is simple: decide in advance how much of your account you'll risk per trade (typically 1-2%), and the formula converts that into a specific contract count based on your stop distance. One number. No guessing.
Why Futures Sizing Is Different #
Equity traders are used to thinking in share counts and dollar amounts: "I'll buy 100 shares at $50, risk $5 per share, total risk $500." Futures doesn't work that way. You can't fractionally size a contract. Every contract you add or remove changes your risk by a fixed dollar amount determined by the product spec, not by a price.
The mechanism that makes futures unique is the dollar value per tick (DVPT) — the fixed dollar amount your P&L moves with each minimum tick in the underlying. ES moves in 0.25-point increments, and each of those increments is worth $12.50 per contract. So if your stop is 20 ticks from entry, you're risking exactly $250 per ES contract you hold. This isn't approximate. It's exact.
That exactness is what makes futures position sizing cleaner than equities once you understand it. You're not estimating; you're calculating. The formula outputs an integer — a specific contract count — and you trade that number. No rounding judgment, no "close enough."
The second difference is leverage. Day trading margins for ES run $500-$1,000 per contract at most brokers (see day trading margins and intraday margin policies). A $50,000 account can technically hold 50-100 ES contracts intraday on margin alone. The risk formula will say 2. These two numbers coexist in your platform — relying on margin availability instead of risk calculations is how traders end up over-leveraged.
The margin trap: "I have the margin for it" is not a position sizing justification. Day trading margin requirements exist so brokers can clear the trade — they say nothing about what risk level your account can actually sustain. Always size by risk first, then check margin as a secondary constraint.
The third difference: correlation. ES and NQ trade with 85-95% correlation — holding both compounds your risk, not diversifies it.
Dollar Value Per Tick: The Foundation #
Before you can size a futures position, you need the DVPT for whatever you're trading. Here's the complete table for the most commonly traded contracts:
| Contract | Full Name | Tick Size | DVPT | Micro Version | Micro DVPT |
|---|---|---|---|---|---|
| ES | E-mini S&P 500 | 0.25 pts | $12.50 | MES | $1.25 |
| NQ | E-mini Nasdaq-100 | 0.25 pts | $5.00 | MNQ | $0.50 |
| YM | E-mini Dow | 1 pt | $5.00 | MYM | $0.50 |
| RTY | E-mini Russell 2000 | 0.10 pts | $5.00 | M2K | $0.50 |
| CL | Crude Oil | $0.01 | $10.00 | -- | -- |
| GC | Gold | $0.10 | $10.00 | MGC | $1.00 |
| SI | Silver | $0.005 | $25.00 | SIL | $12.50 |
| ZB | 30-Yr T-Bond | 1/32nd | $31.25 | -- | -- |
| ZN | 10-Yr T-Note | 0.5/32nd | $15.625 | -- | -- |
| NG | Natural Gas | $0.001 | $10.00 | -- | -- |
The $31.25 per tick on ZB stands out. This is the bond market's way of reminding you that it doesn't care about your equities-trader intuitions. A 20-tick stop on ZB costs $625 in risk per contract. Most equity index traders seeing that number for the first time assume it's a typo.
Micro contracts for precision: MES and MNQ are exactly 1/10th the size of their full-size counterparts. With a $10,000 account and a 40-tick stop on ES, the formula produces fewer than 1 full contract — you simply can't trade. But the same $10,000 with MES lets you trade 2-4 contracts at normal risk levels while you develop your edge. Micros aren't training wheels; they're precision instruments that let undercapitalized accounts maintain proper risk percentages.
@snax framed this well in a forum thread on ES sizing: the formula is deceptively simple — Risk$ divided by (stop ticks times tick value). What makes it hard is accepting the output. When the formula says 1 contract after you've been trading 4, that's information, not insult.
Real prices at last settlement: ES at 6944.25, NQ at 25675.25, CL at 57.95, GC at 4386.30, ZB at 115.8125. These are the numbers you'd plug into any per-point risk calculation for absolute-dollar stop sizing.
The Core Formula #
The position sizing formula for futures has one form:
Contracts = floor( (Account x Risk%) / (Stop_Ticks x DVPT) )
where floor() rounds down to the nearest integer (never up)
That's it. No approximation. No art. Every variable has a precise value before you trade:
- Account = your current account balance in dollars (today's, not yesterday's)
- Risk% = your predetermined risk percentage (1% standard, 2% maximum)
- Stop_Ticks = the distance from entry to stop, measured in minimum tick increments
- DVPT = dollar value per tick for the specific contract (from the table above)
Working through the standard example: $50,000 account, 1% risk, ES, 20-tick stop.
Step 1: Dollar risk = $50,000 x 1% = $500 Step 2: Risk per contract = 20 ticks x $12.50 = $250 Step 3: Contracts = floor($500 / $250) = floor(2.0) = 2 Step 4: Verify against margin (addressed below)
Result: 2 ES contracts.
Now the same account with a 40-tick stop: floor($500 / $500) = 1 contract. That's the formula communicating that your stop is wide and your account is relatively small for this instrument. It's not a suggestion — it's the math enforcing position discipline automatically.
@jamiej83 put it simply: position sizing has two elements — the risk component (dollar loss you'll accept) and the sizing component (how that translates to contracts given stop distance). Most traders grasp the first but underestimate how heavily the second constrains it.
The floor() function deserves emphasis. If your calculation produces 1.9 contracts, you trade 1. Not 2. Rounding up to "close enough" means 5% more risk than your plan specifies. Over hundreds of trades, that systematic rounding adds up to a materially different risk profile than you intended. The rule is absolute: always floor.
@Fat Tails, who has published extensively on position sizing theory at NexusFi, noted in a discussion on the "Risk of Ruin" thread that even small deviations from optimal position sizing compound much over a large trade sample. Optimal F and fixed fractional methods both rely on disciplined adherence to the formula output — not trader discretion about whether 1.9 "rounds to" 2.
The rounding trap: "It's only 0.1 contracts" doesn't exist in futures. You trade whole contracts. When the formula says 1.9, trade 1. When it says 0.9, trade 0 (use a micro). The floor function is non-negotiable.
ATR-Based Position Sizing #
The core formula assumes you've already chosen a stop distance. But where does the stop come from? If you're using fixed-point stops, the formula works as-is. But many systematic and semi-systematic traders anchor stops to recent volatility using the Average True Range (ATR).
ATR-based sizing adapts your contract count to current market conditions automatically. On high-volatility days, ATR expands, the formula gives you wider stops, and the contract count falls. On quiet days, ATR contracts, stops tighten, and the formula allows more contracts. The math enforces discipline without willpower.
ATR Formula:
Stop_Ticks = (ATR_points x k) / tick_size
Contracts = floor( Risk$ / (Stop_Ticks x DVPT) )
where k = 1.5 (default multiplier), tick_size = 0.25 for ES/NQ
Working through ES at current prices: ES at 6944.25 with a typical intraday ATR of 12-15 points.
Quiet day (ATR = 8 pts): Stop_Ticks = (8 x 1.5) / 0.25 = 48 ticks. Contracts = floor($500 / (48 x $12.50)) = floor($500 / $600) = 0. You'd drop to MES: floor($500 / (48 x $1.25)) = floor(8.3) = 8 MES.
Normal day (ATR = 12 pts): Stop_Ticks = (12 x 1.5) / 0.25 = 72 ticks. Contracts = floor($500 / (72 x $12.50)) = floor($500 / $900) = 0. Again MES territory for a $50K account.
Volatile day (ATR = 20 pts): Stop_Ticks = (20 x 1.5) / 0.25 = 120 ticks. Contracts = floor($500 / (120 x $12.50)) = 0. Entirely excluded from ES on this account size.
This is instructive. A $50,000 account is genuinely undercapitalized for ATR-based ES sizing unless either the ATR is very small (quiet days) or the stop is tighter than 1.5x ATR. Recognizing this isn't discouraging — it's clarifying. Either you use micro contracts, increase capitalization, or accept tighter stops in exchange for smaller positions.
@OccamsRazorTrader demonstrated this precisely with an ATR sizing example showing how stop distance (derived from k x ATR) dominates the output. The k value is a knob: smaller k = tighter stops, more contracts; larger k = wider stops, fewer contracts. Many traders use k=1.0 to k=1.5 depending on their timeframe and volatility tolerance. Day traders often use k=1.0 or k=0.75 because intraday noise-to-signal ratios are different from swing timeframes.
Most futures traders settle between k=1.0 and k=2.0: scalpers tighter, swing traders wider. If the ATR-derived stop forces your contract count below 1 MES, that signals the instrument is too volatile for your account size — pre-plan a no-trade rule rather than improvising. @OccamsRazorTrader explicitly noted ATR-based models need manual override protocols for scheduled high-impact events (FOMC, CPI, geopolitical shocks), where realized range can dwarf the prior ATR.
Margin-Aware Position Sizing #
The risk formula tells you how many contracts you should trade. The margin check tells you whether your broker will let you. For a deeper look at how leverage works in futures, see Futures Margin and Leverage. Both constraints are real; you always trade the smaller number.
Day trading margins vary by broker and contract. CME minimum margins are one benchmark; most retail futures brokers offer lower intraday margins to attract order flow. ES day trade margins at major brokers have ranged from $400 to $1,200 per contract historically. For the dual constraint model to work, you need today's actual margin requirement from your broker's platform.
Margin-Based Maximum:
Margin_Contracts = floor( (Account x 0.80) / Intraday_Margin_Per_Contract )
Final_Contracts = min(Risk_Based_Contracts, Margin_Contracts)
The 0.80 factor is a recommended buffer — don't use more than 80% of your account for margin. Some traders use 0.60 for a more conservative cap.
Working the dual constraint: $50,000 account, risk-based says 2 ES contracts, $500 day margin. Margin_Contracts = floor(40,000 / 500) = 80. Final = min(2, 80) = 2. Margin is non-binding for properly-sized accounts. If margin is ever the binding constraint, you're undercapitalized or using stops that are too wide.
@MXASJ articulated this as a "dual-constraint model" — compute both limits independently, take the minimum. The margin check exists because unusual broker configurations, account-level margin modifications, or very small accounts can produce cases where margin is actually the binding constraint. You want to catch that before the trade, not during.
The margin danger zone: If your margin-based maximum is consistently lower than your risk-based number, your account is undercapitalized for the instruments you're trading. The solution is either to trade micros, deposit more capital, or wait until your account grows naturally from profits. Increasing your risk percentage to compensate is the wrong move — it just masks the problem while compounding it.
@Fat Tails gave a concrete example in the PositionSizer thread: a $300 risk target on a $30,000 account with a 10-tick ES stop. Risk_per_contract = 10 x $12.50 = $125. Contracts = floor($300 / $125) = 2. That's the calculation. The margin check is secondary — almost always non-binding for accounts sized appropriately to their instruments.
The deeper point from @Fat Tails: position sizing isn't just risk per trade — it's about surviving long enough to let your edge manifest statistically. Sizing correctly is the prerequisite for everything else.
Correlation Risk: When Two Contracts Aren't Two Risks #
The standard position sizing formula treats each position independently. If you have 2 ES contracts and 2 NQ contracts, the naive view is that you have two separate $500 risks for a total of $1,000. The correct view is that you have one combined position with an effective risk closer to $950 — because ES and NQ move together almost all the time.
The actual combined portfolio risk for two correlated positions is:
Correlated Portfolio Risk:
Portfolio_Risk = sqrt( R1^2 + R2^2 + 2rhoR1*R2 )
where rho = correlation coefficient, R1/R2 = risk per position
At rho=0.90 (typical ES/NQ correlation): sqrt(500^2 + 500^2 + 20.90500*500) = sqrt(490,000) = $700. The true combined risk is $700 — lower than the naive $1,000 sum but also far higher than treating them as independent. For worst-case budgeting purposes, apply the correlation-adjusted formula and size so that the result stays within your 2% account limit.
Practical rule: if two positions have correlation above 0.70, treat them as a single combined position for portfolio risk budgeting. Reduce individual size so the combined risk stays within your 2% account limit.
@tigertrader made the correlation point in the context of scaling into winning trades. Pyramiding works differently in highly correlated instruments — each add-on doesn't just increase position size, it increases exposure to the same market factor. His point about "killer instinct" in position sizing was actually a caution against over-sizing through correlated adds rather than an argument for aggressive sizing.
High-correlation pairs (budget as one position): ES/NQ 0.85-0.95, ES/YM 0.85-0.92, ZB/ZN 0.95-0.99, GC/SI 0.70-0.85. Lower-correlation to equities: CL vs. ES 0.20-0.50, ZB vs. ES typically -0.30 to +0.30. When your positions all move together daily, you don't have diversification — you have one large position in multiple instruments.
Quick correlation check: Before placing a second equity index futures trade on the same day, ask: "Did these two instruments move together in the last 10 sessions?" If yes, budget them as one combined position, not two independent ones.
Prop Firm Challenge Sizing #
Prop firm challenges introduce a constraint that retail accounts don't have: a daily loss limit (DLL) that ends your challenge if breached. The mechanics of trailing versus static drawdown limits are covered in detail in Trailing Drawdown Mechanics in Prop Firm Trading. Standard prop firm DLLs run 4-5% of account balance. On a $50,000 simulated account with a 5% DLL, you have $2,500 of daily risk budget — not the full $50,000.
The critical insight from @kevinkdog in a TST Combine thread: the correct denominator for risk percentage in a prop challenge is the daily loss limit, not the account balance. "1% of $50,000 = $500" is the wrong calculation. The right calculation is "10% of $2,500 daily limit = $250 per trade."
Why 10% of the daily limit? Ten losers before breach, versus five with the naive 1%-of-balance approach — twice the runway to demonstrate your edge.
@kevinkdog's TST Combine example: $50,000 account, $2,500 DLL, 2 ES trades per day target. Risk per trade: $2,500 x 10% / 2 = $125. ES with 10-tick stop: $125 / $125 = 1 contract. The DLL structure dictates the math.
The three-constraint model for prop accounts, as @Fadi described it:
- Risk-based: floor( Account x Risk% / (Stop_Ticks x DVPT) ) — standard formula
- Margin-based: floor( Account x 0.80 / Day_Margin ) — broker constraint
- Drawdown-based: floor( DLL x DLL_Risk% / (Stop_Ticks x DVPT) ) — prop constraint
Final size = min(all three)
For most prop challenges, constraint 3 is the binding one. Accepting that is the difference between traders who pass challenges consistently and those who repeatedly fail after good starts.
The prop firm trap: "The simulated account is $100,000 so I can size larger." No. The challenge is decided at the daily loss limit, not the account size. A larger notional account means a larger absolute DLL, but the same proportional constraint. Never size based on the notional account balance in a challenge — always size based on the actual risk buffer (DLL).
@trekke shared a dynamic micro contract sizing ladder for prop accounts in a thread on funded trading. The principle: start at full allowable size when the buffer is intact, reduce incrementally as the buffer shrinks. For an MNQ trader with $2,500 DLL:
- Buffer 100% ($2,500): 10 MNQ contracts
- Buffer 60% ($1,500): 6 MNQ contracts
- Buffer 40% ($1,000): 4 MNQ contracts
- Buffer 20% ($500): 2 MNQ contracts
- Buffer 10% ($250): 1 MNQ contract
The ladder removes emotional decision-making during drawdown. You're not "giving up" when you drop from 10 to 6 MNQ. You're executing a pre-planned response to a defined condition. The traders who pass challenges consistently have this kind of explicit sizing protocol, not vague intentions to "be more careful" after losing.
Prop firm core rule: Size on the daily loss limit, not the account balance. Use 5-10% of the DLL per trade. Pre-define a sizing ladder that steps down as the buffer shrinks. Pass more challenges.
Scaling Position Size as Your Account Grows #
The standard approach to scaling is fixed fractional: you always risk 1% of current account balance. For the full framework on preserving capital during inevitable losing streaks, see Drawdown Management for Futures Trading. As the balance grows, the dollar risk grows proportionally. Contracts scale up when the formula allows additional contracts.
For ES at 1% risk and a 20-tick stop ($250/contract), the scaling thresholds are:
- $50,000: 2 contracts (floor($500 / $250))
- $62,500: 2 contracts (floor($625 / $250))
- $75,000: 3 contracts (floor($750 / $250))
- $100,000: 4 contracts (floor($1,000 / $250))
- $125,000: 5 contracts
- $150,000: 6 contracts
The jumps are nonlinear in contract count but linear in dollar risk. Every $25,000 in additional equity (at these parameters) adds one ES contract. This is predictable and plannable.
The alternative to fixed fractional is square-root scaling. Instead of risk growing proportionally with account, it grows as the square root of account growth:
Square Root Scaling:
Risk_Dollars = Base_Risk x sqrt( Current_Account / Base_Account )
where Base_Risk = Account_at_start x Risk%
At $100,000 (2x base of $50,000): Sqrt_Risk = $500 x sqrt(2) = $707. Fixed fractional risk at $100K: $1,000. Sqrt scaling gives 30% less risk at the same account level.
Fixed fractional works for most systematic futures strategies. Square root scaling is better for fat-tailed strategies where slippage, gaps, or limit-down moves can produce occasional outlier losses that exceed the typical distribution.
@Fat Tails analyzed Optimal F in the risk of ruin thread. Pure Optimal F sizes so aggressively that losing streaks draw accounts down 80-95% before recovery. Most practitioners use fractional Kelly (25-33% of theoretical optimal), which achieves most of the geometric growth benefit with survivable drawdowns.
The growth trap: "I doubled my account, I should double my contracts." Fixed fractional handles this automatically — the formula outputs the correct number. The danger is traders who scale up contract counts faster than the formula allows because they feel "confident" after a good run. Overconfidence-driven scaling is one of the most common reasons profitable trading periods end in significant losses.
Practical Application: Your Pre-Trade Checklist #
Position sizing is a calculation, not an estimate. Before every trade in futures, you run through a sequence of checks that ends with a single integer: the number of contracts you're authorized to trade for this specific setup. No exceptions for "high-conviction" setups. No exceptions for "just this once." For the full framework on stop placement techniques, see Stop Loss Strategies for Futures Trading.
The checklist:
1. Instrument and DVPT. ES $12.50/tick, NQ $5.00/tick, CL $10/tick. Confirm before every trade. 2. Account balance. Today's actual balance — P&L from yesterday changes the risk calculation. 3. Risk percentage. Pre-set: 1% standard, 0.5% conservative, 2% maximum. Set before markets open. 4. Stop distance in ticks. Where exactly does the trade fail? Convert the price to ticks. Be specific. 5. Run the formula. Account x Risk% / (Stop_Ticks x DVPT), then floor(). This is the authorized count. 6. Margin check. Can your broker clear this? For properly-sized accounts this is usually moot. 7. Correlation check. Existing positions in correlated instruments? Budget them as one combined risk. 8. Prop firm check. Does this trade fit within 10% of your remaining daily loss limit?
The output of all 8 checks is a single number: contracts. That number gets entered in the platform. Not a round number that "feels" about right. The calculated, floored result.
@Fat Tails' PositionSizer for NinjaTrader automates exactly this: input the stop, get the contract count. Even if you use automation, run through the manual calculation weekly — knowing how it works prevents blind trust in a tool that might have stale parameters.
One common failure mode: re-running the formula to "see if I can trade more." The formula is not a negotiation. Working backward from "I want 4 contracts" to find a stop that justifies it is sizing by desire, not discipline.
@jamiej83 made this point directly: position sizing has the risk component (dollar amount you'll accept losing) and the sizing component (contracts given that risk). Most traders have the first component vaguely defined and the second calculated backward from what they want to trade. The disciplined approach runs it forward: define risk, define stop, calculate contracts. Accept the output.
The one-sentence rule: Write down the contract count before you click the order button. If you can't write it down, you haven't calculated it — you've estimated it. Estimated sizing is not position sizing.
The Deeper Purpose #
Position sizing isn't primarily a risk management tool, though it functions as one. It's a discipline framework — a mechanical process that removes the worst category of trading decision from human discretion.
The decisions you should be making: what instrument to trade, when to enter, where the stop goes, when to exit. Position sizing is not in this category. Given your account, your risk percentage, your stop, and your instrument's DVPT, there is exactly one correct answer. The formula produces it.
Traders who understand this use position sizing as proof that their trading plan is complete. If you can't run the formula before entry, your setup isn't ready. If the formula produces "0 contracts," the trade doesn't meet your current account's sizing requirements. Both are information. Neither should be overridden.
The risk of ruin mathematics support this framework rigorously. @Fat Tails' analysis in the NexusFi risk-of-ruin thread showed that consistent over-sizing relative to account equity dramatically increases ruin probability regardless of win rate. A strategy with 55% win rate and 1:1 reward-to-risk that sizes at 5% per trade has a measurable ruin probability over 500 trades. The same strategy at 1% sizing has near-zero ruin probability over the same sample. The win rate didn't change. The edge didn't change. Sizing changed — and it changed everything.
Every calculation in this article exists to protect you from the version of yourself that sees a perfect setup and decides "this time is different." It isn't different. The math doesn't make exceptions for conviction. Run the formula. Trade the number.
Knowledge Map
Prerequisites
Understand these firstGo Deeper
Build on this knowledgeCitations
- — Risk of Ruin (2014) 👍 39“Optimal F and fractional sizing -- even small deviations from optimal position sizing compound significantly over a large trade sample”
- — PositionSizer for NinjaTrader (2011) 👍 17“$300 risk target on $30,000 account with ES -- 10-tick stop means $125/contract, floor($300/$125) = 2 contracts”
- — Concerning risk per trade sizing (2014) 👍 18“Position sizing has 2 key elements: the risk component and the sizing component”
- — Position Sizing by Van Tharp (2009) 👍 15“Dual-constraint model -- compute risk-based and margin-based limits independently, take the minimum”
- — Killer Instinct and the Home Run Mentality (2012) 👍 8“Pyramiding in correlated instruments -- each add-on doesn't just increase position size, it increases exposure to the same market factor”
- — Position Sizing (2015) 👍 4“Three-constraint model: risk-based, margin-based, and drawdown-based -- final size is minimum of all three”
- — TST Combine (2016) 👍 7“Size on the daily loss limit, not the account balance -- risk per trade should be 10% of daily limit”
- — Funded Trading (2021) 👍 4“Dynamic micro contract ladder for prop accounts -- step down as drawdown buffer shrinks”
- — ES Position Sizing (2019) 👍 3“Risk$ divided by (stop ticks times tick value) -- what makes it hard is accepting the output”
- — Volatility-Based Position Sizing (2021) 👍 2“ATR-based models work well on ordinary days but need manual override protocols for scheduled high-impact events”
- — CME Group: E-mini S&P 500 Contract Specifications
