DEV Community

Propfirmkey
Propfirmkey

Posted on

The Math Behind Compounding in Trading Accounts

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
Enter fullscreen mode Exit fullscreen mode

(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")
Enter fullscreen mode Exit fullscreen mode

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)
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

That 0.02% daily difference over 252 days:

(1.005)^252 = 3.51x
(1.0048)^252 = 3.34x
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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

  1. Consistency matters more than size — lower variance compounds better
  2. Volatility drag is real — high variance eats geometric returns
  3. Compound during growth phases — withdraw during established profitability
  4. 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)