Most investing conversations are about what to buy. Far fewer are about how much. Yet two people can hold exactly the same stocks, with the same entry and exit dates, and end up in completely different places: one with a steady, compounding account, the other wiped out after a bad quarter. The only difference is position size.
Position sizing is the part of investing you fully control. You cannot control whether a trade works or what the market does next month. You can control how much a wrong call costs you, how deep your drawdowns get, and whether you will still be in the game after a run of bad luck.
This cheatsheet covers the three families of sizing methods that matter in practice: fixed fractional (risk per trade), volatility targeting, and the Kelly criterion. It explains the math, the trade-offs and the common mistakes, with small Python helpers you can adapt.
Educational content, not financial advice.
1. Why size matters: the asymmetry of losses
Losses and gains are not symmetric. A 50% loss needs a 100% gain to recover.
| Drawdown | Gain needed to recover |
|---|---|
| -10% | +11.1% |
| -20% | +25.0% |
| -30% | +42.9% |
| -40% | +66.7% |
| -50% | +100.0% |
| -75% | +300.0% |
Now combine that with losing streaks, which happen to every strategy. Ten losses in a row is unlikely for a single trade, but over hundreds of trades it is close to certain to happen at some point.
| Risk per trade | Account after 10 consecutive losses | Drawdown |
|---|---|---|
| 0.5% | 95.1% | -4.9% |
| 1% | 90.4% | -9.6% |
| 2% | 81.7% | -18.3% |
| 5% | 59.9% | -40.1% |
| 10% | 34.9% | -65.1% |
The same strategy, the same streak: a 1% risk budget leaves you annoyed; a 10% budget leaves you needing to almost triple the remaining account. Position size turns a normal losing streak into either a non-event or a disaster.
2. Vocabulary
| Term | Meaning |
|---|---|
| Position size | How much capital (or how many units) you put into one position |
| Exposure / notional | The market value of the position, as a percentage of the account |
| Risk per trade | How much you lose, as a percentage of the account, if the position hits its exit (stop) level |
| Stop distance | Distance between entry price and planned exit price, in price or in percent |
| Volatility | Standard deviation of returns, usually annualized. A measure of typical movement, not of maximum loss. |
| ATR (Average True Range) | Average daily price range, a common volatility proxy for single instruments |
| Leverage | Exposure above 100% of the account |
| Drawdown | Decline from a previous peak in account value |
| Risk of ruin | Probability that losses reach a level you cannot or will not recover from |
| Geometric growth rate | The compounded growth rate of the account, the number that actually matters over time |
3. Fixed fractional sizing: risk a fixed share per trade
The most common method among active traders. You decide in advance the maximum fraction of the account you are willing to lose on one position, usually between 0.25% and 2%, and size the position so that hitting the stop costs exactly that.
Formula
units = (account equity x risk per trade) / (entry price - stop price)
Example: account 50,000, risk 1% per trade (500), entry 100, stop 92 (8 per share). Units = 500 / 8 = 62 shares. Position value = 6,200, or 12.4% of the account.
Notice what happened: you did not choose "12.4% of the account". The stop distance did. A tighter stop gives a larger position, a wider stop a smaller one, and the loss at the stop stays the same.
| Pros | Cons |
|---|---|
| Directly caps the loss per position | Only as good as the stop. Gaps through the stop (earnings, news, overnight moves) cause larger losses. |
| Simple, transparent, easy to stick to | Tight stops can create very large positions; add a cap on exposure |
| Scales with the account: smaller positions after losses, larger after gains | Does not account for correlation: five 1% positions in the same sector are one 5% bet |
Practical guard rails
- Cap the position value too (for example, no single position above 20% of the account), so a tight stop cannot create an oversized position.
- Cap total open risk (for example, the sum of all risk-to-stop at most 6-8%).
- Treat highly correlated positions as one position for risk purposes.
4. Volatility targeting: size by how much it moves
Instead of a stop, volatility-based sizing uses the asset's typical movement. The idea: hold less of what moves a lot and more of what moves little, so that each position contributes similar risk.
Per-position: inverse volatility
weight_i = (target risk per position) / (volatility_i)
Example: target 2% annualized volatility contribution per position. An asset with 40% volatility gets a 5% weight; one with 10% volatility gets a 20% weight. Each contributes about the same expected movement.
A common trading variant uses ATR: units = (equity x risk fraction) / (k x ATR), where k is a multiple such as 2. This is fixed fractional sizing with a volatility-based stop.
Portfolio-level: volatility targeting
Choose a target volatility for the whole portfolio (say 10% a year). Scale total exposure by target / forecast volatility. When markets are calm, exposure rises; when volatility spikes, exposure falls.
Example: a 60/40 portfolio with forecast volatility of 12%, and a 10% target: scale to 10/12 = 83% exposure, hold the rest in cash. If forecast volatility jumps to 20%, scale to 50%.
What the evidence says
- Moreira and Muir (2017), in the Journal of Finance, found that "volatility-managed portfolios" (taking less risk when recent volatility is high) produced higher Sharpe ratios for the equity market and several factor portfolios in their historical sample.
- Harvey et al. (2018), studying 60 assets with data back to 1926, found that volatility targeting improves Sharpe ratios for risk assets such as equities and credit, but has a negligible effect for bonds, currencies and commodities. It also made left-tail events less severe, because large losses tend to happen when volatility is already elevated and the strategy is holding less.
- Cederburg et al. (2020) tested 103 equity strategies from the perspective of a real-time investor and found that volatility-managed versions did not systematically outperform: they won in 53 cases and lost in 50.
The honest summary: volatility targeting is a reliable risk-control tool (steadier volatility, milder tail events in equity-like assets). It is not a reliable return-enhancement tool.
| Pros | Cons |
|---|---|
| Equalizes risk across very different assets | Volatility is a forecast; it changes fast and underestimates crash risk |
| Reduces exposure automatically in turbulent markets | Increases exposure in calm periods, sometimes just before a shock |
| Works without stops; suitable for longer-term portfolios | Requires leverage to hit targets with low-volatility assets; adds turnover and costs |
5. The Kelly criterion: the growth-optimal bet
In 1956 John L. Kelly Jr., a researcher at Bell Labs, published a paper on information theory that turned into the most famous formula in position sizing. The Kelly criterion gives the fraction of capital to bet that maximizes the long-run geometric growth rate of wealth. Edward Thorp later applied it to blackjack and then to investing.
Two forms
Binary bet (win b times the stake with probability p, lose the stake with probability q = 1 - p):
f* = p - q / b
Example: a 55% chance to win, even money (b = 1): f* = 0.55 - 0.45 = 10% of capital.
Continuous returns (expected excess return mu over cash, volatility sigma), as an approximation:
f* = mu / sigma^2
Example: expected excess return 5% a year, volatility 18%: f* = 0.05 / 0.0324 = 1.54, or 154% exposure. Kelly says use leverage.
Why almost nobody uses full Kelly
With continuous returns, the expected growth rate for a fraction f is approximately:
g(f) = f x mu - (f^2 x sigma^2) / 2
This parabola has three properties every investor should know:
| Fraction of Kelly | Growth rate (vs. full Kelly) | Volatility (vs. full Kelly) |
|---|---|---|
| 0.25x | 44% | 25% |
| 0.5x | 75% | 50% |
| 1.0x | 100% | 100% |
| 1.5x | 75% | 150% |
| 2.0x | 0% | 200% |
| above 2.0x | negative | above 200% |
- Half Kelly keeps 75% of the growth with half the volatility. That trade-off is why practitioners, Thorp included, favored fractional Kelly.
- Betting twice the Kelly fraction gives zero growth, and more than that loses money in the long run, even with a real edge.
- Your inputs are estimates. If you think the edge is 5% but it is really 2.5%, your "full Kelly" is in fact 2x Kelly, with zero expected growth. Errors in
muare large and common; errors in your favor are rare.
Full Kelly also has brutal drawdowns. Under its own assumptions, the probability of the account falling to half its value at some point is 50%. Few people can stick with a strategy through that, and sticking with it is the whole point.
Practical use of Kelly
- Use it as an upper bound, not a target. If your sizing is above Kelly on any reasonable estimate, you are over-betting.
- Use a quarter to a half of the estimated Kelly fraction.
- Shrink your edge estimate toward zero before plugging it in. Backtested edges are almost always optimistic.
- For a portfolio of correlated positions, the single-asset formula overstates safe sizes; multi-asset Kelly requires the covariance matrix and the same humility about inputs.
6. Choosing a method
| Situation | Method that fits | Why |
|---|---|---|
| Discretionary or systematic trades with defined exits | Fixed fractional (0.25-1% per trade) | Directly limits loss per idea |
| Multi-asset long-term portfolio | Inverse-volatility weights and/or portfolio vol target | Balances risk across assets with very different behavior |
| Strategy with a measured, stable edge and many independent bets | Fractional Kelly as a ceiling | Growth-optimal logic, with a safety margin for estimation error |
| Buy-and-hold index investor | Strategic allocation plus rebalancing | Sizing is set by asset allocation and risk tolerance, not per trade |
| Options or other non-linear payoffs | Size by maximum loss, not by notional | Volatility and stop-based sizing understate tail risk |
The methods combine well: many systematic traders size each position by volatility, cap risk per trade with a stop, and keep total exposure below a fraction of the Kelly estimate.
7. Python helpers
Standard library only. These are illustrations, not trading tools.
import math
import random
import statistics
def fixed_fractional_units(equity: float, risk_pct: float, entry: float, stop: float,
max_position_pct: float = 0.20) -> int:
"""Units so that hitting the stop loses risk_pct of equity, capped by position size."""
per_unit_risk = abs(entry - stop)
if per_unit_risk == 0:
raise ValueError("entry and stop must differ")
units = equity * risk_pct / per_unit_risk
cap = equity * max_position_pct / entry
return math.floor(min(units, cap))
def inverse_vol_weights(vols: dict[str, float], target_vol: float) -> dict[str, float]:
"""Each asset contributes target_vol of volatility (ignores correlations)."""
return {name: target_vol / v for name, v in vols.items()}
def kelly_continuous(mu: float, sigma: float) -> float:
return mu / sigma**2
def growth_rate(f: float, mu: float, sigma: float) -> float:
return f * mu - 0.5 * f**2 * sigma**2
def simulate(f: float, mu: float, sigma: float, years: int = 20,
paths: int = 2000, seed: int = 7) -> tuple[float, float]:
"""Median final wealth and median max drawdown with monthly normal returns."""
rng = random.Random(seed)
m_mu, m_sigma = mu / 12, sigma / math.sqrt(12)
finals, mdds = [], []
for _ in range(paths):
w, peak, mdd = 1.0, 1.0, 0.0
for _ in range(years * 12):
w *= max(1 + f * rng.gauss(m_mu, m_sigma), 0.0)
peak = max(peak, w)
mdd = max(mdd, 1 - w / peak if peak > 0 else 1.0)
finals.append(w)
mdds.append(mdd)
return statistics.median(finals), statistics.median(mdds)
print(fixed_fractional_units(50_000, 0.01, entry=100, stop=92)) # 62
print(inverse_vol_weights({"stocks": 0.18, "bonds": 0.06}, target_vol=0.03))
mu, sigma = 0.05, 0.18
k = kelly_continuous(mu, sigma)
for frac in (0.25, 0.5, 1.0, 2.0):
wealth, mdd = simulate(frac * k, mu, sigma)
print(f"{frac:>4} Kelly: f={frac * k:.2f}, growth={growth_rate(frac * k, mu, sigma):.2%}, "
f"median wealth x{wealth:.2f}, median max drawdown {mdd:.0%}")
Running the simulation with the illustrative numbers above (5% excess return, 18% volatility, 20 years) shows the pattern from section 5. Full Kelly reaches a median of about 2.3x the starting wealth, with a median maximum drawdown of about 66%. Half Kelly reaches about 1.8x with a median maximum drawdown of about 38%. Double Kelly ends roughly where it started, after a median maximum drawdown above 90%. The exact values depend on the seed and on the simplifying assumption of normal returns, which understates real crash risk.
8. Common mistakes
| Mistake | Why it hurts | Better |
|---|---|---|
| Sizing by conviction ("I am sure about this one") | Conviction does not correlate with outcomes nearly as much as it feels like it does | Size by risk rules; let conviction affect which trades you take, not how big |
| Same notional size for every position | A volatile small cap and a utility stock get the same weight but very different risk | Size by stop distance or volatility |
| Ignoring correlation | Five tech stocks at 2% risk each is one 10% bet on tech | Group correlated positions and cap the group |
| Increasing size after losses to "win it back" | Turns drawdowns into ruin | Fixed fractional naturally shrinks size after losses; let it |
| Plugging backtest returns into Kelly | Backtests overstate edge; Kelly turns overstatement into over-betting | Shrink the estimate and use a fraction of Kelly |
| Trusting stops completely | Gaps and illiquid markets skip stops | Size so that a gap of 2-3x the stop distance is survivable |
| Using leverage to hit a volatility target without thinking about tails | Volatility forecasts fail exactly when it matters | Cap leverage; stress test against historical crashes |
Why this matters
- Sizing decides survival. The same strategy can compound or blow up depending on position size alone.
- Fixed fractional sizing caps losses per idea; volatility sizing balances risk across assets; Kelly sets the ceiling.
- Half Kelly keeps about 75% of the growth with half the volatility. Over-betting past 2x Kelly loses money even with an edge.
- Volatility targeting is a risk tool, not an alpha source. The evidence for smoother risk is stronger than the evidence for higher returns.
- Your edge is an estimate. Size for the edge you might really have, not the one in your backtest.
Final Thoughts
Position sizing is not glamorous. Nobody brags about risking 0.75% per trade. But it is the closest thing in investing to a free lunch: it costs nothing to apply, it protects you from your own overconfidence, and it keeps you in the game long enough for whatever edge you have to show up.
Pick a method that fits how you invest, write the rules down before you need them, and follow them most on the days when you feel most certain. That is usually when they matter most.
Sources
- Kelly, J. L., A New Interpretation of Information Rate, Bell System Technical Journal (1956): the original growth-optimal betting result.
- Thorp, E. O., The Kelly Criterion in Blackjack, Sports Betting, and the Stock Market, in Handbook of Asset and Liability Management (2006): continuous approximation, fractional Kelly, drawdown properties.
- MacLean, L. C., Thorp, E. O., and Ziemba, W. T. (eds.), The Kelly Capital Growth Investment Criterion: Theory and Practice, World Scientific (2011): collected papers on Kelly and fractional Kelly.
- Moreira, A., and Muir, T., Volatility-Managed Portfolios, Journal of Finance (2017).
- Harvey, C. R., et al., The Impact of Volatility Targeting, Journal of Portfolio Management (2018): Sharpe ratio improvement for equities and credit, negligible for bonds, currencies and commodities, milder left-tail events.
- Cederburg, S., O'Doherty, M. S., Wang, F., and Yan, X. S., On the performance of volatility-managed portfolios, Journal of Financial Economics (2020): 103 strategies, no systematic out-of-sample outperformance.