Financial Modeling
Ralph Vince Optimal f Position Sizing: Terminal Wealth Relative & Geometric HPR
Convert empirical trade P&Ls with unequal win/loss magnitudes into Holding Period Returns HPR_i = 1 + f * (-Trade_i / Worst_Loss), Terminal Wealth Relative (TWR), and Geometric Mean HPR G(f).
Why fixed-fractional sizing scales by the worst historical loss rather than symmetrical coin-flip odds
Classic binary Kelly assumes uniform +b/-1 payoff sizes, whereas real trading and venture logs exhibit irregular dollar wins and losses. Ralph Vince (*Portfolio Management Formulas*, 1990) generalized fixed-fractional sizing across any empirical P&L series by normalizing every trade against the magnitude of the worst historical loss W = ABS(MIN(trades)): for risk fraction f in [0, 1), trade i produces Holding Period Return HPR_i(f) = 1 + f * (Trade_i / W).
Compounding across N trades yields Terminal Wealth Relative TWR(f) = PRODUCT(HPR_1:HPR_N) and Geometric Mean HPR G(f) = TWR(f)^(1 / N). Test the over-betting trap directly: even on a profitable trade log (+200, -100, +150, -50; average +50/trade), setting f = 1.00 drives HPR on the -100 worst-loss trade to 1 + 1.00 * (-100 / 100) = 0, collapsing TWR and G(1) permanently to 0!
| Risk Fraction f | Trade HPRs (+200, -100, +150, -50) | Terminal Wealth Relative TWR | Geometric Mean G(f) |
|---|---|---|---|
| f = 0.00 (All Cash) | 1.000, 1.000, 1.000, 1.000 | 1.0000 | 1.0000 (0.00% / trade) |
| f = 0.25 (Conservative) | 1.500, 0.750, 1.375, 0.875 | 1.3535 | 1.0786 (+7.86% / trade) |
| f = 1.00 (Ruin Boundary) | 3.000, 0.000, 2.500, 0.500 | 0.0000 (Wipeout!) | 0.0000 (-100% ruin) |
Per-Trade Holding Period Return HPR_i Helper Formula
Divide each trade P&L B2 by worst-loss magnitude ABS(MIN($B$2:$B$5)), scale by fraction $F$2, and clamp at 0 to prevent negative equity.
=MAX(0, 1 + $F$2 * (B2 / ABS(MIN($B$2:$B$5))))Terminal Wealth Relative (TWR) & Geometric Mean HPR G(f) Formula
Multiply all per-trade HPR cells with PRODUCT(C2:C5) for TWR and raise to 1 / COUNT(B2:B5) for per-trade geometric growth.
=ROUND(PRODUCT(C2:C5) ^ (1 / COUNT(B2:B5)), 4)Try the example
Use the original values or change them to test your understanding.