PSZ Position Sizing
The thing that actually determines whether you survive
Learning Objectives
- •Master fixed fractional sizing and Kelly criterion
- •Understand the relationship between position size and drawdown
- •See why ultra-conservative sizing is the smart play for funded accounts
- •Learn drawdown-triggered risk scaling and why adaptive sizing matters
- •Run Monte Carlo simulations to validate sizing choices
Explain Like I'm 5
Position sizing is deciding how much money to put on each trade. Too much and one bad trade kills you. Too little and winning doesn't matter. The goal is finding the spot where you grow steadily without risking blowup. It's the most important decision you make, and most people get it wrong.
Think of It This Way
Position sizing is a volume knob. Same song (strategy) plays at any volume. Too quiet (tiny size) — you can barely hear the gains. Too loud (oversized) — the distortion (drawdown) blows your speakers (account). You want it loud enough to feel but clean enough to last.
1Fixed Fractional — The Gold Standard
Account Growth: 0.30% vs 1% vs 3% Risk (1000 Trades, 58% WR)
2Kelly Criterion — Optimal But Dangerous
Full Kelly vs Fractional Kelly — Expected Max Drawdown
3Position Size and Drawdown — The Tradeoff
Risk Per Trade vs Expected Maximum Drawdown
4Drawdown-Triggered Risk Scaling
DD-Triggered Risk Scaling Protocol
5Monte Carlo Validation
Monte Carlo: Max Drawdown Distribution (5000 Simulations)
6Common Position Sizing Mistakes
Key Formulas
Position Size (Fixed Fractional)
The formula for every trade. Calculates lot size based on account, risk percentage, and stop distance. Plug in the numbers, get the size. No guessing.
Kelly Criterion
Optimal fraction of capital per trade. p = win rate, q = 1-p, b = avg win / avg loss. Never use full Kelly in practice — use 0.25x or less.
Hands-On Code
Position Size Calculator
import numpy as np
def calculate_position_size(account_balance, risk_pct,
stop_loss_pips, pip_value=10.0):
"""Calculate lot size for fixed fractional position sizing."""
risk_amount = account_balance * risk_pct
lot_size = risk_amount / (stop_loss_pips * pip_value)
return round(lot_size, 2)
# Example: FTMO $100K account
account = 100_000
risk = 0.003 # 0.30%
# Different stop loss sizes
for sl in [30, 45, 60, 80]:
lots = calculate_position_size(account, risk, sl)
dollar_risk = account * risk
print(f"SL: {sl} pips → {lots} lots (risking ${dollar_risk:.0f})")
# Kelly calculation for reference
win_rate = 0.592
avg_win = 1.65
avg_loss = 0.95
kelly = win_rate - (1 - win_rate) / (avg_win / avg_loss)
print(f"\nFull Kelly: {kelly:.1%}")
print(f"Quarter Kelly: {kelly/4:.1%}")
print(f"Production uses: 0.30% (≈ {0.003/kelly:.3f}x Kelly)")
print(f"→ Ultra conservative. Survival first.")Compute position size before every trade. Never eyeball it. The code shows how different stop distances change lot size while keeping dollar risk constant.
Knowledge Check
Q1.Why use 0.30% risk instead of full Kelly (~35%)?
Q2.An account has $50K and uses 0.30% risk. What's the dollar risk per trade?
Assignment
Build a position size calculator that takes account balance, risk %, stop loss pips, and pip value. Test with a $100K FTMO account. What's the max position you'd ever take? Run a Monte Carlo sim comparing 0.30%, 1%, and 3% risk. Plot equity curves and max drawdown distributions side by side.