NexusFi: Find Your Edge


Home Menu

 



Correlation-Adjusted Position Sizing: Managing Aggregate Risk When Multiple Futures Positions Are Related

Overview #

Most futures traders know about position sizing. Risk 1% per trade, know your stop, size so. You've probably done it a hundred times: account equity times one percent divided by stop distance times point value. Clean enough.

But there's a version of that calculation that breaks the moment you hold more than one position simultaneously — specifically when those positions are in correlated instruments.

Long ES and long NQ isn't two independent 1% trades. It's closer to one 1.85% trade masquerading as two. The underlying drivers — S&P 500 sector earnings, Fed policy expectations, institutional risk appetite — move both contracts together. When one drops, the other follows. Your "diversified" two-contract portfolio is actually a concentrated bet on equity index direction.

This matters because the math of correlation compounds. If ES and NQ share an 0.85 correlation coefficient, holding both at full standalone size means your actual portfolio variance is:

sigma_portfolio^2 = sigma_ES^2 + sigma_NQ^2 + 2 × 0.85 × sigma_ES × sigma_NQ

That third term — the cross-correlation component — inflates total risk by 70-85% beyond what you'd carry on either leg alone. Three ES contracts and two NQ contracts on a $100,000 account, sized at 1% each, can put $4,700 at risk on a single correlated selloff. You intended $1,000.

This article covers the framework that fixes that: correlation-adjusted position sizing. Two formulas, one decision rule, and a portfolio heat cap that keeps your aggregate exposure within the risk budget you actually intend to maintain.

@Two positions in correlated markets are not two bets -- they're one bet expressed twice. The shrink factor is how you account for the overlap.
“”
Futures correlation matrix heatmap showing ES/NQ at 0.85, GC/SI at 0.62, CL/NG at 0.48
30-Day Rolling Pearson Correlation Matrix. ES+NQ at 0.85 means two 'independent' 1% trades create 1.85% portfolio risk.

Why Your Two Trades May Actually Be One #

Here's the mental model that makes correlation-adjusted sizing intuitive.

Imagine a factor called "equity risk sentiment" that drives 85% of ES's daily moves and 85% of NQ's daily moves. When institutions reduce risk appetite, they sell both. When the Fed sounds hawkish, both drop. When earnings disappoint, both crater. The fact that NQ has more tech exposure and ES is more blended doesn't change the underlying shared driver.

This is what a correlation coefficient of 0.85 is telling you. It's saying that 85% of the time, the directional movement of ES and NQ is explained by the same underlying force. Holding both long is not two bets — it's one bet with two instruments expressing it.

The correlation coefficient ranges from -1.0 to +1.0:

  • +1.0: Perfect positive correlation. Long both = identical risk as holding 2× one of them.
  • 0.0: No correlation. Genuinely independent. Full size on both is fine.
  • -1.0: Perfect negative correlation. Long one, short the other = neutral exposure.
  • +0.85 (ES/NQ): Highly correlated. Significant size reduction required on both legs.
  • +0.62 (GC/SI): Moderately correlated. Meaningful but not critical reduction needed.
  • +0.48 (CL/NG): Moderate but unstable — regime-sensitive, check frequently.

The most dangerous misconception is the "they're different markets" fallacy. Yes, ES and NQ are different contracts with different sectors and different tick values. But in terms of portfolio risk, what matters is not the instrument — it's the underlying factor exposure. During equity selloffs, both crater. That's the thing you're sizing against.

NexusFi member @baruchs captured this precisely in a post on effective risk management:

“In the situation of a correlation of 1 you don't lessen your risk at all. Like trading 3 contracts with the same stop and same profit target. Now the question is what is the correlation of your trades.”

And @Fat Tails, in his long-running thread on account sizing for multiple instruments, identified the practical solution:

“So from a practical point of view you need two limits — the 2% limit (I use 1%) per trade — a second global limit (for example 5%) for the maximum risk that you are willing to accept. If you apply this rule you will be protected from the scenario where all your positions run against you at the same time.”

That "global limit" is the portfolio heat cap. We'll get there. But first, you need to measure the correlation itself.


How to Calculate the Correlation Coefficient #

You don't need a Bloomberg terminal to compute this. A spreadsheet and continuous futures price data get you there in fifteen minutes.

Step 1: Get continuous price series

Use back-adjusted continuous futures data. Most brokers and data providers — DTN IQFeed, CQG, Rithmic — provide this automatically. The adjustment method (Panama, proportional, ratio) matters less than consistency: use the same method across all instruments you're comparing.

Pull daily closing prices. Log returns are preferred over simple returns because they're time-additive and handle compounding correctly:

r_t = ln(P_t / P_{t-1})

Most spreadsheet programs have a LN() function. In Python with pandas: np.log(prices).diff().

Step 2: Choose your lookback window

A 30-day rolling window (30 trading days, roughly six calendar weeks) is standard for daily traders. It's responsive enough to catch regime shifts without being so short that noise dominates.

Some traders use a dual-window approach:

  • 30-day: Short-term, current regime indicator
  • 90-day: Longer-term baseline for context

If the 30-day diverges significantly from the 90-day — more than 0.20 in either direction — treat the correlation as unstable and apply more conservative sizing until they reconverge.

Step 3: Calculate Pearson correlation

rho_XY = Cov(r_X, r_Y) / (sigma_X × sigma_Y)

In a spreadsheet: =CORREL(returns_X_range, returns_Y_range). Excel and Google Sheets both have this function built in. In Python: pd.Series.corr().

Step 4: Statistical sanity check

A rough 95% confidence interval for whether a correlation is significantly different from zero:

CI = ±1.96 / sqrt(N - 2)

With N=30, that's ±0.37. So a correlation of 0.25 on 30 data points is barely distinguishable from zero. For ES/NQ at 0.85, there's no ambiguity — the relationship is real and large.

Step 5: Build the matrix and repeat for all pairs

If you trade six instruments, you have 15 unique pairs. Build a spreadsheet table with one row per pair, updated each morning. A 20-minute setup that runs automatically every day afterward.

@Recalculate every day. Not because the number changes dramatically -- it usually doesn't -- but because you need to catch the day it does, which is always the day you least expect it.
“”

The day correlation spikes from 0.78 to 0.93 is the day of a macro shock — exactly when you're most vulnerable if your sizing assumed stability.

Shrink factor curve showing position size reduction as correlation rises from 0 to 1.0
Pairwise Shrink Factor 1/sqrt(1+rho). At ES/NQ correlation of 0.85, each leg must be sized to 74% of standalone to maintain 1% total portfolio risk.

The Pairwise Shrink Factor: Simple and Quantitative #

Once you have the correlation coefficient, the simplest useful formula for adjusting position size is the pairwise shrink factor:

Shrink Factor (SF) = 1 / sqrt(1 + rho)

Apply it to each leg's standalone raw size when holding same-direction exposure. Here's why it works:

If you hold two legs with equal risk contribution s each, portfolio variance is:

sigma_portfolio^2 = s^2 + s^2 + 2 × rho × s^2 = 2s^2(1 + rho)

For independent legs (rho=0): sigma_independent^2 = 2s^2

The ratio of correlated-to-independent portfolio volatility is sqrt(1+rho). To keep portfolio volatility constant despite the correlation, divide each leg by that ratio:

Adjusted_size = Raw_size × 1/sqrt(1+rho)

Worked example: ES + NQ, $100,000 account, 1% risk

ES stop: 20 points × $12.50 = $250/contract. Raw ES: $1,000/$250 = 4 contracts NQ stop: 30 points × $20.00 = $600/contract. Raw NQ: $1,000/$600 = 1.67 → 2 contracts

ES/NQ correlation rho = 0.85 Shrink Factor = 1/sqrt(1.85) = 0.744

Adjusted ES: 4 × 0.744 = 2.97 → 3 contracts Adjusted NQ: 2 × 0.744 = 1.49 → 1 contract

Combined risk: (3 × $250) + (1 × $600) = $750 + $600 = $1,350 — within range for two correlated positions targeting $1,000 combined, versus $2,200 unadjusted.

Quick reference for common pairs:

Pair Typical rho Shrink Factor Size Each Leg At
ES + NQ (equity indices) 0.85 0.744 74% of standalone
GC + SI (metals) 0.62 0.806 81% of standalone
ZB + ZN (bond curve) 0.82 0.741 74% of standalone
CL + NG (energy) 0.48 0.822 82% of standalone
ES + CL 0.14 0.941 94% of standalone
ES + GC 0.18 0.921 92% of standalone

The last two rows show why this matters selectively. ES and crude oil (rho=0.14) require nearly no adjustment — truly cross-sector. ES and gold (rho=0.18) are similar. True cross-sector positions with independent fundamental drivers get nearly full sizing. The adjustment only materially kicks in when correlation exceeds 0.30.

Six common futures pairs showing correlation ranges, shrink factors, and stability levels from ES/NQ (high) to ES/CL (low)
Six-Pair Correlation Spectrum. ES/NQ and ZB/ZN share the identical 0.744 shrink despite different markets -- same factor math. ES/CL runs at 94% standalone. Adjustment kicks in meaningfully above rho=0.30.

Opposite-direction positions

If you're long ES and short NQ (or long GC and short SI), the correlation effect runs in the other direction — positions partially offset each other, reducing net exposure. You might run more size than standalone on each leg. The full variance formula handles this if you treat short positions as negative weights:

sigma_portfolio^2 = w_1^2 × sigma_1^2 + w_2^2 × sigma_2^2 + 2 × w_1 × w_2 × rho × sigma_1 × sigma_2

Where w_1 = +1 (long) and w_2 = -1 (short). The cross-term becomes negative, reducing total variance.

Understanding this relationship between position sizing and portfolio correlation is the difference between traders who measure risk and traders who estimate it.

Before and after comparison: portfolio risk without vs with correlation adjustment on ES and NQ positions
The Risk Gap. Without adjustment: $4,700 exposed vs $1,000 intended. After shrink factor: $1,020. Same trade, dramatically different safety.

Real-World Examples: Six Common Futures Pairs #

ES + NQ (Equity Indices) — rho approximately 0.75 to 0.92

The most common pairing among retail futures traders. Both track equity market beta, with NQ carrying higher tech concentration. During normal conditions, correlation hovers in the 0.78--0.88 range. During macro shocks — Fed surprises, credit events, geopolitical escalations — it spikes toward 0.92--0.96.

At rho=0.85: Shrink factor = 0.744. Run both legs at approximately 74% of standalone size.

The trap with ES/NQ is the "different markets" illusion. They are different contracts, but they share the same primary factor. NexusFi member @KillerJukeBox described the hedging version of this directly in his micro e-mini journal:

“If these markets have a perfect correlation, this would give me 0 Risk units as I would be net flat. Of course the NQ and the ES aren't perfectly correlated, but there is a very high correlation, meaning some of my risk in ES is being canceled out by the NQ short hedge.”

That observation works in both directions. A long-long ES/NQ position amplifies risk. A long-short creates a partial hedge.

GC + SI (Gold/Silver) — rho approximately 0.30 to 0.75

The gold-silver relationship is real but less stable than equity indices. Both are monetary metals influenced by real interest rates, dollar strength, and inflation expectations. But silver has significant industrial demand (solar panels, electronics), which causes it to diverge from gold during periods of economic slowdown.

NexusFi member @myrrdin provided empirical correlation data from the Diversified Option Selling Portfolio thread:

“According to data from MRCI, correlations for Gold (previous 180 trading days) are: ES: 0.37, SI: 0.34, HG: 0.29, CL: 0.51”

Note that 180-day correlation for GC/SI was 0.34 in that data sample. On a 30-day rolling basis, you'll see the relationship range from 0.30 to 0.75 depending on whether macro forces or industrial demand are driving silver.

Conservative approach: assume 0.62 for sizing, use a shorter window to catch divergences early.

At rho=0.62: Shrink factor = 0.806. Run both at approximately 81% of standalone.

CL + NG (Energy Complex) — rho approximately -0.20 to +0.55

The most unstable of the common pairs. Crude oil's price is driven primarily by supply decisions (OPEC+), geopolitics, and refinery capacity — factors largely independent of the demand-side and weather-driven natural gas market.

@SMCJB, in the NexusFi Seasonal Trades thread, noted the cross-commodity correlation issue:

“I assume there's similar correlations within the Ags and Metals (I think Gold & Silver correlate) but maybe to a lesser degree. And then everything correlates in stress.”

That "everything correlates in stress" observation is the critical warning for CL/NG. In normal conditions, they may have rho=0.20--0.30, requiring minimal adjustment. During energy sector dislocations, correlation can temporarily spike. Use a 15-day lookback for this pair, and treat it as unstable if the 30-day diverges from the 90-day by more than 0.20.

ZB + ZN (Treasury Curve) — rho approximately 0.80 to 0.90

Thirty-year bonds (ZB) and ten-year notes (ZN) share deep correlation because both respond primarily to Fed rate expectations and long-end yield dynamics. A FOMC surprise moves both. Inflation data moves both. The spread between them (the curve) trades independently for spread traders, but for directional traders holding both long or short, the correlation is substantial.

At rho=0.85 (approximately the same as ES/NQ): same shrink factor of 0.744.

ZB + ES (Treasury Bonds vs. Equity Futures) — rho approximately -0.30 to +0.20

The classic risk-parity hedge: historically, bonds rally as stocks fall in recessions. From 2010--2020, negative correlation made this portfolio construction work. Since 2022, the relationship has broken down significantly — both can sell off simultaneously in a rate-driven selloff.

In 2022, traders who expected traditional negative correlation found both legs moving against them. Check the 30-day window carefully for this pair. If the sign has changed (positive correlation), apply the shrink factor accordingly. If it's remained negative, the correlation is actually helping your portfolio — you may be running near-full size on both.

ES + CL (Equity vs. Crude) — rho approximately 0.08 to 0.20

One of the genuinely low-correlation pairs. Crude oil's price is driven primarily by supply decisions and geopolitics — factors largely independent of equity direction in the short run. Sizing adjustment is minimal at rho=0.14. Near-full standalone size on both is appropriate.

@tigertrader, in his Floored But Back On My Feet thread, described the multi-instrument correlation monitoring approach in practice:

“I've gone from trading one instrument at a time to multiple instruments. Friday, gold was positively correlated in varying degrees to ZB, DX and... you learn to read the current theme and current drivers of price.”

Reading the current theme means checking the matrix before each session and adjusting sizing when relationships shift — not relying on last month's table.


Multi-Leg Portfolios: The Heat Factor Method #

The pairwise shrink factor works cleanly for two contracts. But holding five or six simultaneously requires running individual pairwise adjustments for up to 15 pairs — cumbersome. The heat factor method handles this more naturally.

Calculating Heat_i

For each contract i in your portfolio, compute the average absolute correlation with all other active positions:

Heat_i = SUM |rho_{i,j}| × w_j   (for all j ≠ i currently held)

Where w_j = 1 if contract j is currently active, 0 otherwise. Absolute value is used because negative correlation still creates a form of exposure concentration.

Scaling Factor with Lambda

SF_i = 1 / (1 + lambda × Heat_i)

The lambda parameter is your aggression tuner:

  • lambda = 0.5: More aggressive. Less size reduction per unit of correlation.
  • lambda = 1.0: Balanced default.
  • lambda = 1.5: Conservative. Use during high-volatility regimes.

Adjusted size = Raw_i × SF_i

Example: Five contracts (ES, NQ, GC, CL, NG)

Using 30-day rolling correlations with lambda=1.0:

ES correlation with NQ=0.85, GC=0.18, CL=0.14, NG=0.08 Heat_ES = 0.85 + 0.18 + 0.14 + 0.08 = 1.25 SF_ES = 1/(1+1.25) = 0.444 → 4 contracts × 0.444 = 1.78 → 2 contracts

NQ correlation with ES=0.85, GC=0.12, CL=0.11, NG=0.06 Heat_NQ = 0.85 + 0.12 + 0.11 + 0.06 = 1.14 SF_NQ = 1/(1+1.14) = 0.467 → 2 contracts × 0.467 = 1 contract

GC correlation with ES=0.18, NQ=0.12, CL=0.29, NG=0.08 Heat_GC = 0.18 + 0.12 + 0.29 + 0.08 = 0.67 SF_GC = 1/(1+0.67) = 0.599 → 3 contracts × 0.599 = 1.80 → 2 contracts

The heat method tends to be more conservative than pairwise shrink because it accumulates all cross-correlations, not just the dominant one. For portfolios with four or more contracts, this is appropriate — the compounding of modest correlations across many legs can be significant.

Heat Factor calculation for 5-contract portfolio showing ES heat=1.25, cutting to 2 contracts from 4
Heat Factor in Action. ES with 4 active correlates (NQ=0.85, GC=0.18, CL=0.14, NG=0.08) produces Heat=1.25 and SF=0.444 -- raw 4 contracts becomes 2. Five "independent" positions are one concentrated bet.
@Five contracts at 0.30 correlation each might sound diversified. But 0.30 × 5 = 1.5 units of heat, which cuts effective sizing nearly in half with lambda=1.0. Modest correlations add up.
“”
Lambda sensitivity curves showing how aggressive vs conservative settings change position sizing across heat levels
Lambda Sensitivity. At Heat=1.25: aggressive (lambda=0.5) keeps 61.5% of standalone, balanced (1.0) keeps 44.4%, conservative (1.5) keeps 34.8%. Choose lambda based on volatility regime, not preference.

Choice between methods:

  • 2--3 contracts: Pairwise shrink is clean and sufficient.
  • 4+ contracts: Heat factor handles multi-leg interactions better.
  • 6+ contracts: Consider the full covariance approach.
ES/NQ 30-day rolling correlation chart showing spikes during March 2020 COVID and August 2024 yen carry unwind
Correlation Is Not Static. ES/NQ spiked to 0.93 during COVID (March 2020) and 0.95 during the yen carry unwind (August 2024) -- exactly when static sizing underestimates risk most.

The Portfolio Heat Cap: Your Hard Ceiling #

Even after per-leg adjustments, you need a portfolio-level ceiling. This is the "global limit" @Fat Tails referenced — a hard stop that prevents gradual accumulation of correlated exposure even through individually sound decisions.

Calculate total portfolio heat

PortfolioHeat = SUM_i (Heat_i × AdjustedContracts_i)

This measures total correlated-contract-equivalent exposure across all open positions.

Set your cap

A commonly used cap is 3.0 correlated-contract-equivalents. This means your total portfolio exposure, after accounting for all correlations, should never exceed what three fully-correlated contracts would represent.

Other useful cap metrics:

  • Portfolio VaR at 95%: 2% of account equity
  • Expected Shortfall: 3% of account equity
  • Maximum daily drawdown trigger: 5% of equity before reducing all positions

These connect to the broader framework in drawdown management and daily loss limits.

Apply scaling if exceeded

Scale = Cap / PortfolioHeat   (only when PortfolioHeat > Cap)
Final_i = Adjusted_i × Scale

Scale every position down proportionally. This is not about which position to cut — it's about uniformly reducing all exposure until the aggregate returns to budget.

Why the cap matters even after per-leg adjustment

Imagine trading six contracts each with modest cross-correlations of 0.25--0.35. The pairwise shrink factors are all above 0.85 — barely any reduction per leg. But six contracts each carrying 0.30 average correlation produces PortfolioHeat of roughly 1.8 per contract × 6 = 10.8. Well above a cap of 3.0.

Per-leg adjustment was insufficient because it didn't account for aggregate concentration. The cap prevents "death by a thousand small correlations."

Portfolio heat cap enforcement: scaling all positions when total heat exceeds 3.0 threshold
Portfolio Heat Cap Enforcement. Six modest-correlation positions (rho=0.30 each) accumulate to Heat=10.8 -- well above the 3.0 cap. Per-leg shrink alone is insufficient. Cap scales everything proportionally.
Two-stage position sizing workflow: Stage 1 pairwise shrink, Stage 2 portfolio heat cap decision
The Two-Stage Filter. Stage 1 handles pairwise correlation per leg. Stage 2 caps total portfolio heat and prevents concentration across multiple modestly-correlated contracts.

When Correlations Break Down #

The formula is solid. The danger is assuming the inputs are static.

Correlations break down in predictable ways:

1. Macro shock events

During the March 2020 COVID crash, virtually every futures market correlated toward +1.0 in the initial selloff. ES, NQ, CL, NG, GC all sold simultaneously as institutional investors raised cash. The 30-day correlation between ES and GC (normally ~0.18) temporarily spiked to 0.70+ as both were sold into the same liquidity crunch.

During the August 2024 yen carry unwind, Japanese investors rapidly reduced global risk exposure, creating simultaneous selling pressure across correlated and previously uncorrelated markets.

Protocol for shock events: If correlation changes more than 0.15 in a single day for any pair, apply an additional 30% size reduction to all affected legs until stability returns for at least five trading sessions.

2. Regime shifts

The ZB/ES relationship is the canonical example. From 2010--2020: negative correlation. Bonds rally when stocks fall. From 2022 onward: positive correlation in rate-driven selloffs. Both fall together. A trader using a 90-day window in early 2022 was still seeing "negative correlation" data from 2021 — misleading and dangerous.

3. Factor rotation

ES/NQ correlation falls during tech-versus-value rotation periods when NQ dramatically underperforms or outperforms the more balanced ES. Short-term correlation can drop to 0.65--0.70 even while the long-term average stays near 0.80.

4. Seasonal commodity patterns

Natural gas demand spikes in winter (heating) and summer (power cooling), creating price action largely decoupled from crude oil, which follows global supply/demand cycles. During cold weather events, gas can spike 20--30% while crude barely moves.

Practical protocol for breakdown detection:

Trigger Response
Any pair rho changes > 0.15 in one day Apply 1.3× lambda for 5 days
30-day rho diverges > 0.20 from 90-day Use higher of two estimates
Correlation flips sign Treat as uncorrelated (rho=0) for 10 days
Contract within 5 days of expiry Exclude from calculation — basis distortion
VIX > 25 Assume all equity-adjacent pairs have rho >= 0.80

Understanding regime-adaptive risk management helps contextualize when to expect these breakdowns before they appear in the data.

Correlation breakdown detection table: 5 triggers and corresponding risk management responses
Regime Breakdown Protocol. Five observable triggers and pre-written responses. The regime break that blows accounts always looks normal the day before -- these are the signals to catch it early.

The Full Covariance Approach #

For traders holding four or more contracts simultaneously, or running systematic strategies where precision matters, the full covariance approach produces the most accurate sizing.

Building the covariance matrix

From your return series, compute the N×N covariance matrix:

Sigma_{ij} = rho_{ij} × sigma_i × sigma_j

Variance-covariance risk budget

Define a target portfolio daily risk in dollar terms and solve for weights:

w = (sigma_target / sqrt(1^T × Sigma^{-1} × 1)) × Sigma^{-1} × 1

This yields the risk-budget optimal weights. Convert to contracts:

Contracts_i = (w_i × Account_equity) / Dollar_risk_per_contract_i

Retail implementation in a spreadsheet

  1. Build the correlation matrix (CORREL() function, updated daily)
  2. Use Excel MINVERSE() to compute the inverse
  3. Multiply: =MMULT(MINVERSE(corr_matrix), ones_vector)
  4. Scale to your dollar risk target
  5. Divide by per-contract dollar risk

The setup takes about 20 minutes. After that it runs automatically as you update correlations.

Advantage over simpler methods

The covariance approach handles negative correlations correctly — as genuine risk reduction, not just "less positive exposure." It's also mathematically exact for portfolio variance rather than an approximation.

For a $100,000 account with ES (daily vol ~1.2%), NQ (daily vol ~1.5%), GC (daily vol ~0.9%), and a portfolio volatility target of $500/day, the covariance method would produce something like:

  • ES: ~38% of risk budget → ~$190/day → 1 MES
  • NQ: ~31% → ~$155/day → 1 MNQ
  • GC: ~31% → ~$155/day → 1 micro gold

This is the framework used by systematic portfolio managers and prop desks. For retail discretionary traders running two or three instruments, the pairwise shrink factor is sufficient. For more complex multi-strategy approaches, this is the cleaner solution.

For deeper background on the mathematics, Monte Carlo simulation and system quality number articles cover the related statistical frameworks.


Implementation Framework: Five Steps #

Here's the complete workflow, stripped to what you can actually execute:

Step 1: Build your correlation tracker

Set up a spreadsheet with:

  • Daily closing prices for all futures you trade (continuous back-adjusted series)
  • Log return column: =LN(today/yesterday) for each instrument
  • CORREL() formula over rolling 30-row window for each pair
  • Update each morning before the open

This takes 20 minutes to build once. After that it's a two-minute daily check.

Step 2: Calculate raw position size

Raw = (Account × 0.01) / (Stop_distance × Point_value)

Baseline before correlation adjustment.

Step 3: Apply shrink factor or heat factor

For 2--3 contracts: SF = 1/sqrt(1+rho). Multiply raw size by SF.

For 4+ contracts: Heat_i = SUM |rho_{i,j}| for all active j. SF_i = 1/(1+lambda×Heat_i).

Always round down to whole contracts.

Step 4: Check portfolio heat cap

Sum correlated exposures. If total heat > 3.0:

Scale = 3.0 / PortfolioHeat

Scale every position down by Scale.

Step 5: Reassess dynamically

  • Recalculate correlation matrix every market open
  • Watch for daily correlation changes > 0.15 in any pair
  • Increase lambda during high-vol environments (VIX > 20)
  • Use 15-day lookback for CL/NG; 30-day for everything else
Six-contract futures portfolio showing raw sizes, correlation adjustments, and final adjusted counts
Full Portfolio Example. Six contracts across three sectors. Raw sizing: $5,500+ at risk. After correlation adjustment: $1,020 -- within 2% of the 1% target.
Complete 5-step position sizing formula reference card with pairwise shrink, heat factor, portfolio cap, and final count
Complete Formula Reference. Five steps, two formula paths (pairwise for 2-3 contracts, heat factor for 4+), and the portfolio cap. The single-cell spreadsheet version at the bottom integrates all three.

The complete single-formula approach

If you want everything in a single spreadsheet cell:

=FLOOR((Equity*0.01)/(Stop*PtVal) * 1/SQRT(1+corr) * MIN(1, HeatCap/PortfolioHeat), 1)

Where corr references your current pair correlation, HeatCap is your cap value (3.0), and PortfolioHeat is your running sum. This integrates both stages — pairwise shrink and portfolio cap — into a single position sizer.

@The single most common position sizing mistake in multi-contract futures trading isn't using the wrong formula. It's using no formula at all for the correlation between positions.
“”

The underlying principle is simpler than the math suggests: when your positions share a common driver, you're effectively holding a larger position than the raw contract count implies. Correlation-adjusted sizing is how you make the intended risk match the actual risk. Everything else — the formulas, the heat cap, the regime triggers — serves that single idea.

For most retail traders, the pairwise shrink factor and a hard portfolio cap are enough. Build the spreadsheet, run the daily check, and let the math do the disciplining that emotion will not.

Related frameworks:

Citations

  1. @baruchsEffective risk (2007) 👍 3
    “In the situation of a correlation of 1 you don't lessen your risk at all. Like trading 3 contracts with the same stop and same profit target. Now the question is what is the correlation of your trades.”
  2. @Fat_TailsAccount size when trading multiple instruments (2010) 👍 12
    “So from a practical point of view you need two limits -- the 2% limit (I use 1%) per trade -- a second global limit (for example 5%) for the maximum risk that you are willing to accept.”
  3. @KillerJukeBoxKillerJukeBox's micro e-mini journal (2019) 👍 8
    “If these markets have a perfect correlation, this would give me 0 Risk units as I would be net flat. Of course the NQ and the ES aren't perfectly correlated, but there is a very high correlation, meaning some of my risk in ES is being canceled out by the NQ short hedge.”
  4. @myrrdinDiversified Option Selling Portfolio (2018) 👍 6
    “According to data from MRCI, correlations for Gold (previous 180 trading days) are: ES: 0.37, SI: 0.34, HG: 0.29, CL: 0.51”
  5. @SMCJBSeasonal Trades (2017) 👍 5
    “I assume there's similar correlations within the Ags and Metals (I think Gold & Silver correlate) but maybe to a lesser degree. And then everything correlates in stress.”
  6. @tigertraderFloored, But Back On My Feet! (2013) 👍 9
    “I've gone from trading one instrument at a time to multiple instruments. Friday, gold was positively correlated in varying degrees to ZB, DX and... you learn to read the current theme and current drivers of price.”
  7. CME Group: Managing Portfolio Risk with Futures
  8. Microsoft Excel CORREL Function Reference
  9. Investopedia: Correlation Definition and Application in Finance

Help Improve This Article

NexusFi Elite Members can help keep Academy articles accurate and comprehensive.

Unlock the Full NexusFi Academy

687 in-depth articles across 17 categories — written by traders, backed by community research. Includes knowledge maps, citations with community excerpts, and the ability to help improve articles.

We add approximately 285 new Academy articles every month and update approximately 606 with fresh content to keep them highly relevant.

Strategies (77)
  • Volume Profile Trading
  • Order Flow Analysis
  • plus 75 more
Market Structure (37)
  • Initial Balance: The First Hour That Defines Your Entire Trading Day
  • Opening Range: Why the First 15 Minutes Define Your Entire Trading Session
  • plus 35 more
Concepts (36)
  • Futures Order Types: Market, Limit, Stop, and Conditional Orders
  • Renko Charts and Range Bars for Futures Trading: The Complete Guide
  • plus 34 more
Exchanges (38)
  • Futures Exchanges: Understanding Where and How Futures Trade
  • plus 36 more
Indicators (47)
  • Delta Analysis & Cumulative Volume Delta (CVD)
  • Market Internals: Reading the Broad Market to Trade Index Futures
  • plus 45 more
Instruments (38)
  • Micro E-mini Futures (MES, MNQ, MYM, M2K): The Complete Guide to CME Fractional-Sized Contracts
  • E-mini Nasdaq-100 (NQ) Futures: The Complete Trading Guide
  • plus 36 more
+ 11 More Categories
687 articles total across 17 categories
Automation (37) • Risk Management (36) • Data (37) • Prop Firms (36) • Platforms (46) • Psychology (37) • Brokers (39) • Prediction Markets (36) • Regulation (36) • Cryptocurrency (38) • Infrastructure (36)
Become an Elite Member


© 2026 NexusFi®, s.a., All Rights Reserved.
Av Ricardo J. Alfaro, Century Tower, Panama City, Panama, Ph: +507 833-9432 (Panama and Intl), +1 888-312-3001 (USA and Canada)
All information is for educational use only and is not investment advice. There is a substantial risk of loss in trading commodity futures, stocks, options and foreign exchange products. Past performance is not indicative of future results.
About Us - Contact Us - Site Rules, Acceptable Use, and Terms and Conditions - Downloads - Top