Compounding is the most powerful force in trading, but most traders don't understand its mechanics — or its dangers.
Basic Compounding
If you make 1% per day, you don't make 365% per year. You make:
(1.01)^252 = 12.24x = 1,124% return
(252 trading days per year)
Sounds incredible. But here's the catch: consistency.
The Reality Check
Nobody makes 1% every single day. Real trading has variance:
import numpy as np
def simulate_compounding(daily_mean, daily_std, trading_days=252, sims=10000):
results = []
for _ in range(sims):
daily_returns = np.random.normal(daily_mean, daily_std, trading_days)
final = np.prod(1 + daily_returns)
results.append(final)
return np.array(results)
# Scenario 1: Low variance (consistent)
consistent = simulate_compounding(0.003, 0.01) # 0.3% avg, 1% std
# Scenario 2: Same average, higher variance
volatile = simulate_compounding(0.003, 0.03) # 0.3% avg, 3% std
print(f"Consistent: median = {np.median(consistent):.2f}x")
print(f"Volatile: median = {np.median(volatile):.2f}x")
The volatile strategy, despite having the same average return, compounds worse. This is called volatility drag.
Volatility Drag Formula
Geometric mean ≈ Arithmetic mean - (Variance / 2)
A strategy with 0.5% daily mean return and 2% daily standard deviation:
Geometric ≈ 0.005 - (0.0004 / 2) = 0.005 - 0.0002 = 0.0048
That 0.02% daily difference over 252 days:
(1.005)^252 = 3.51x
(1.0048)^252 = 3.34x
5% less return just from variance, with the same average.
Fixed Fractional vs Fixed Lot
def compare_sizing(trades, initial=100000):
# Fixed lot: always trade 1 lot
fixed_balance = initial
for pnl in trades:
fixed_balance += pnl
# Fixed fractional: risk 1% per trade
frac_balance = initial
for pnl in trades:
scaled_pnl = pnl * (frac_balance / initial)
frac_balance += scaled_pnl
return fixed_balance, frac_balance
Fixed fractional compounds your gains but also compounds your losses. During drawdowns, it reduces size automatically — which is both a feature and a limitation.
The Rule of 72
Quick mental math: divide 72 by your monthly return to estimate doubling time.
3% monthly → 72/3 = 24 months to double
5% monthly → 72/5 = 14.4 months to double
10% monthly → 72/10 = 7.2 months to double
Compounding with Withdrawals
Most traders need to withdraw profits. This dramatically impacts compounding:
def compound_with_withdrawal(monthly_return, withdrawal_pct, months, initial=100000):
balance = initial
total_withdrawn = 0
for m in range(months):
profit = balance * monthly_return
balance += profit
withdrawal = balance * withdrawal_pct
balance -= withdrawal
total_withdrawn += withdrawal
return balance, total_withdrawn
Withdrawing 50% of profits each month from a 5% monthly strategy:
- Without withdrawal: $100K → $1.86M in 5 years
- With 50% withdrawal: $100K → $340K + $480K withdrawn
Key Takeaways
- Consistency matters more than size — lower variance compounds better
- Volatility drag is real — high variance eats geometric returns
- Compound during growth phases — withdraw during established profitability
- Time is the multiplier — even small edges compound massively
Understanding compounding helps you set realistic expectations whether you're trading your own capital or going through a firm's evaluation. For a breakdown of profit split structures and how they affect your compounding potential, check propfirmkey.com.
What's your target monthly return, and do you reinvest or withdraw?
Top comments (0)