495 lines
12 KiB
Markdown
495 lines
12 KiB
Markdown
# Kelly Criterion Deep Dive
|
||
|
||
Mathematical foundation for optimal bet sizing under uncertainty.
|
||
|
||
## Table of Contents
|
||
|
||
1. [Mathematical Derivation](#1-mathematical-derivation)
|
||
2. [Formula Variations](#2-formula-variations)
|
||
3. [Fractional Kelly](#3-fractional-kelly)
|
||
4. [Extensions](#4-extensions)
|
||
5. [Common Mistakes](#5-common-mistakes)
|
||
6. [Practical Implementation](#6-practical-implementation)
|
||
7. [Historical Examples](#7-historical-examples)
|
||
8. [Comparison to Other Methods](#8-comparison-to-other-methods)
|
||
|
||
---
|
||
|
||
## 1. Mathematical Derivation
|
||
|
||
### The Core Question
|
||
|
||
**Problem**: What fraction of your bankroll maximizes long-term growth?
|
||
|
||
**Why it matters**: Bet too little → Leave money on the table. Bet too much → Risk ruin, high variance.
|
||
|
||
### Logarithmic Utility Framework
|
||
|
||
**Key insight**: Maximize expected logarithm of wealth, not expected wealth.
|
||
|
||
**Why log utility?**
|
||
- Captures diminishing marginal utility ($1 matters more when you have $100 vs $1M)
|
||
- Makes repeated multiplicative bets additive: log(AB) = log(A) + log(B)
|
||
- Geometric mean emerges naturally (what matters for repeated bets)
|
||
- Prevents betting 100% (avoids ruin)
|
||
|
||
### Derivation for Binary Bet
|
||
|
||
**Setup**:
|
||
- Current bankroll: W
|
||
- Bet fraction: f
|
||
- Win probability: p, Loss probability: q = 1 - p
|
||
- Net odds: b (bet $1, win $b net)
|
||
|
||
**Outcomes**:
|
||
- Win (probability p): New wealth = W(1 + fb)
|
||
- Lose (probability q): New wealth = W(1 - f)
|
||
|
||
**Expected log utility**:
|
||
```
|
||
E[log(W_new)] = p × log(1 + fb) + q × log(1 - f) + log(W)
|
||
```
|
||
|
||
**Objective**: Maximize g(f) = p × log(1 + fb) + q × log(1 - f)
|
||
|
||
### Finding the Optimum
|
||
|
||
**Take derivative**:
|
||
```
|
||
dg/df = pb/(1 + fb) - q/(1 - f)
|
||
```
|
||
|
||
**Set equal to zero and solve**:
|
||
```
|
||
pb/(1 + fb) = q/(1 - f)
|
||
pb(1 - f) = q(1 + fb)
|
||
pb - pbf = q + qfb
|
||
pb - q = f(pb + qb) = fb(p + q) = fb
|
||
|
||
f* = (pb - q) / b = (bp - q) / b
|
||
```
|
||
|
||
**The Kelly Criterion**:
|
||
```
|
||
f* = (bp - q) / b
|
||
|
||
Where:
|
||
f* = Optimal fraction to bet
|
||
b = Net odds received
|
||
p = Win probability
|
||
q = 1 - p
|
||
```
|
||
|
||
### Alternative Form
|
||
|
||
**Edge** = Expected return per dollar bet = bp - q
|
||
|
||
**Kelly formula**: f* = Edge / Odds = (bp - q) / b
|
||
|
||
**Example**: p = 60%, b = 1.0 (even money)
|
||
- Edge = 0.6 × 1 - 0.4 = 0.2
|
||
- f* = 0.2 / 1 = 20%
|
||
|
||
### Optimality
|
||
|
||
**Second derivative**: d²g/df² < 0 at f = f* → Maximum confirmed
|
||
|
||
**Growth rate**: G(f*) maximizes long-run geometric growth
|
||
|
||
**Comparison**:
|
||
- f < f*: Lower growth (too conservative)
|
||
- f > f*: Lower growth (too aggressive, variance dominates)
|
||
- f > 2f*: Negative growth (eventual ruin)
|
||
|
||
---
|
||
|
||
## 2. Formula Variations
|
||
|
||
### Converting Market Odds
|
||
|
||
**Decimal odds** (e.g., 2.50): b = Decimal - 1 = 1.50
|
||
|
||
**American odds**:
|
||
- Positive (+150): b = 150/100 = 1.50
|
||
- Negative (-150): b = 100/150 = 0.667
|
||
|
||
**Fractional odds** (3/1): b = 3.0
|
||
|
||
**Implied probability**: Market p = 1/(b + 1)
|
||
|
||
### Multi-Outcome Bet
|
||
|
||
**Horse race**: Multiple options, bet on any with positive Kelly
|
||
|
||
**Formula for outcome i**:
|
||
```
|
||
f_i* = (p_i(b_i + 1) - 1) / b_i
|
||
|
||
If f_i* > 0: Bet f_i* on outcome i
|
||
If f_i* ≤ 0: Don't bet
|
||
```
|
||
|
||
### Continuous Outcomes (Merton's Formula)
|
||
|
||
**Stock market application**:
|
||
```
|
||
f* = μ / σ²
|
||
|
||
Where:
|
||
μ = Expected return (drift)
|
||
σ² = Variance of returns
|
||
```
|
||
|
||
**Example**: μ = 8%, σ = 20% → f* = 0.08/0.04 = 2.0 (200%, use leverage)
|
||
|
||
**Reality**: Too aggressive, use fractional Kelly → 50-100% more reasonable
|
||
|
||
---
|
||
|
||
## 3. Fractional Kelly
|
||
|
||
### Why Fractional Kelly?
|
||
|
||
**Problems with full Kelly**:
|
||
1. **Extreme volatility**: Wild swings, can lose 50%+ in bad runs
|
||
2. **Model error**: If probability estimate wrong, full Kelly overbets dramatically
|
||
3. **Practical ruin**: 20% chance of 50% drawdown before doubling
|
||
4. **Non-ergodic**: Most can't bet infinitely many times
|
||
|
||
### Formula
|
||
|
||
```
|
||
Fractional Kelly = f* × Fraction
|
||
|
||
Common choices:
|
||
- Half Kelly: f*/2
|
||
- Quarter Kelly: f*/4 (recommended)
|
||
- Third Kelly: f*/3
|
||
```
|
||
|
||
### Growth vs. Variance Trade-off
|
||
|
||
| Strategy | Growth Rate | Volatility | Max Drawdown |
|
||
|----------|-------------|------------|--------------|
|
||
| Full Kelly | 100% | 100% | -50% |
|
||
| Half Kelly | ~75% | 50% | -25% |
|
||
| Quarter Kelly | ~50% | 25% | -12% |
|
||
|
||
**Key**: Half Kelly gives 75% of growth with 25% of variance → Better risk-adjusted return
|
||
|
||
### Robustness to Error
|
||
|
||
**Example**: You think p = 0.60, true p = 0.55, even money bet
|
||
|
||
**Full Kelly** (f = 20%):
|
||
- Growth rate = 0.55×log(1.20) + 0.45×log(0.80) ≈ 0 (breakeven!)
|
||
|
||
**Half Kelly** (f = 10%):
|
||
- Growth rate = 0.55×log(1.10) + 0.45×log(0.90) ≈ 0.005 (still positive)
|
||
|
||
**Lesson**: Overbetting much worse than underbetting. Fractional Kelly provides buffer.
|
||
|
||
### Recommended Fractions
|
||
|
||
| Situation | Fraction | Reasoning |
|
||
|-----------|----------|-----------|
|
||
| Professional gambler | 1/4 to 1/3 | Reduces career risk |
|
||
| High model uncertainty | 1/4 or less | Error buffer crucial |
|
||
| High confidence | 1/2 to 2/3 | Can use more aggression |
|
||
| Institutional | 1/4 to 1/3 | Drawdown = career risk |
|
||
|
||
**Default**: Quarter Kelly (1/4) for most real-world situations
|
||
|
||
---
|
||
|
||
## 4. Extensions
|
||
|
||
### Multiple Simultaneous Bets
|
||
|
||
**Matrix form** (N assets):
|
||
```
|
||
f* = Σ⁻¹ × μ
|
||
|
||
Where:
|
||
Σ = Covariance matrix
|
||
μ = Expected returns vector
|
||
```
|
||
|
||
**Key insight**: Correlated bets reduce optimal sizing
|
||
|
||
**Heuristic**: Adjusted Kelly = Individual Kelly × (1 - ρ/2), where ρ = correlation
|
||
|
||
**Example**: ρ = 0.6, Individual Kelly = 15%
|
||
- Adjusted: 15% × (1 - 0.3) = 10.5%
|
||
|
||
### Correlated Outcomes
|
||
|
||
**Common correlations**:
|
||
- Political: Presidential + Senate races
|
||
- Sports: Team championship + Player MVP
|
||
- Markets: Tech stock A + Tech stock B
|
||
|
||
**Extreme cases**:
|
||
- ρ = 1 (perfect correlation): Only bet on one
|
||
- ρ = -1 (negative correlation): Bets hedge, can bet more
|
||
- ρ = 0 (independent): No adjustment
|
||
|
||
### Dynamic Kelly
|
||
|
||
**Problem**: Probability changes over time (new information)
|
||
|
||
**Process**:
|
||
1. Start with p₀, bet f₀*
|
||
2. New information → Update to p₁ (Bayesian)
|
||
3. Recalculate f₁*
|
||
4. Rebalance (adjust bet size)
|
||
|
||
**Consideration**: Transaction costs limit rebalancing frequency
|
||
|
||
---
|
||
|
||
## 5. Common Mistakes
|
||
|
||
### Mistake 1: Full Kelly Overbet
|
||
|
||
**The error**: Using full Kelly in practice
|
||
|
||
**Why wrong**: Assumes perfect probability estimate (never true)
|
||
|
||
**Impact**: Bet 2×f* → Negative growth rate
|
||
|
||
**Fix**: Always use fractional Kelly (1/4 to 1/2)
|
||
|
||
### Mistake 2: Ignoring Model Error
|
||
|
||
**The error**: Treating probability as certain
|
||
|
||
**Adjustment**:
|
||
```
|
||
Uncertain Kelly = f* × Confidence
|
||
|
||
Example: f* = 20%, 80% confident → Bet 16%
|
||
```
|
||
|
||
**Better**: Use fractional Kelly (implicitly adjusts)
|
||
|
||
### Mistake 3: Neglecting Bankruptcy
|
||
|
||
**Reality**: Finite games + estimation error → real ruin risk
|
||
|
||
**Drawdown stats** (full Kelly, p=0.55):
|
||
- 25% chance of -40% before recovery
|
||
- 10% chance of -50% before recovery
|
||
|
||
**Practical bankruptcy**: Client fires you, forced liquidation, can't maintain discipline
|
||
|
||
**Fix**: Use fractional Kelly, set stop-loss (if down 25%, pause)
|
||
|
||
### Mistake 4: Ignoring Correlation
|
||
|
||
**Example disaster**:
|
||
- 10 bets, each Kelly 10%
|
||
- All highly correlated (same theme)
|
||
- Bet 100% total → Single adverse event → Large loss
|
||
|
||
**Fix**: Measure correlations, use portfolio Kelly, diversify themes
|
||
|
||
### Mistake 5: Misestimating Odds
|
||
|
||
**Common confusion**:
|
||
- Decimal 2.0: b = 1.0 (not 2.0)
|
||
- "3-to-1": b = 3.0 ✓
|
||
- American +200: b = 2.0 (not 200)
|
||
|
||
**Fix**: Always convert to NET payout (b = total return - 1)
|
||
|
||
### Mistake 6: Static Bankroll
|
||
|
||
**Problem**: Calculate once, never update
|
||
|
||
**Fix**: Recalculate before each bet using current bankroll
|
||
|
||
---
|
||
|
||
## 6. Practical Implementation
|
||
|
||
### Step-by-Step Process
|
||
|
||
**1. Convert odds to decimal**:
|
||
```python
|
||
# Decimal odds: b = decimal - 1
|
||
# American +150: b = 150/100 = 1.50
|
||
# American -150: b = 100/150 = 0.667
|
||
# Fractional 3/1: b = 3.0
|
||
```
|
||
|
||
**2. Determine probability**: Use forecasting process (base rates, Bayesian updating, etc.)
|
||
|
||
**3. Calculate edge**:
|
||
```python
|
||
edge = net_odds * probability - (1 - probability)
|
||
```
|
||
|
||
**4. Calculate Kelly**:
|
||
```python
|
||
kelly_fraction = edge / net_odds
|
||
```
|
||
|
||
**5. Apply fractional Kelly**:
|
||
```python
|
||
fraction = 0.25 # Quarter Kelly recommended
|
||
adjusted_kelly = kelly_fraction * fraction
|
||
```
|
||
|
||
**6. Calculate bet size**:
|
||
```python
|
||
bet_size = current_bankroll * adjusted_kelly
|
||
```
|
||
|
||
**7. Execute and track**:
|
||
- Record: Date, event, probability, odds, edge, Kelly%, bet
|
||
- Set reminder for resolution
|
||
- Note new information
|
||
|
||
### Position Tracking Template
|
||
|
||
```
|
||
Date: 2024-01-15
|
||
Event: Candidate A wins
|
||
Your probability: 65%
|
||
Market odds: 2.20 (implied 45%)
|
||
Net odds (b): 1.20
|
||
Edge: 0.43 (43%)
|
||
Full Kelly: 35.8%
|
||
Fractional (1/4): 8.9%
|
||
Bankroll: $10,000
|
||
Bet size: $890
|
||
Resolution: 2024-11-05
|
||
```
|
||
|
||
---
|
||
|
||
## 7. Historical Examples
|
||
|
||
### Ed Thorp - Blackjack (1960s)
|
||
|
||
**Application**: Card counting edge varies with count → Dynamic Kelly
|
||
|
||
**Implementation**:
|
||
- True count +1: Edge ~0.5%, bet ~0.5% of bankroll
|
||
- True count +5: Edge ~2.5%, bet ~2.5% of bankroll
|
||
|
||
**Results**: Turned $10k into $100k+, proved Kelly works in practice
|
||
|
||
**Lessons**: Used fractional Kelly (~1/2), dynamic sizing, managed "heat" (detection risk)
|
||
|
||
### Princeton-Newport Partners (1970s-1980s)
|
||
|
||
**Strategy**: Statistical arbitrage, convertible bonds
|
||
|
||
**Kelly application**: 1-3% per position, 50-100 positions (diversification)
|
||
|
||
**Results**: 19.1% annual (1969-1988), only 4 down months in 19 years, <5% max drawdown
|
||
|
||
**Lessons**: Fractional Kelly + diversification = low volatility, dominant strategy
|
||
|
||
### Renaissance Technologies / Medallion Fund
|
||
|
||
**Strategy**: Thousands of small edges, high frequency
|
||
|
||
**Kelly application**:
|
||
- Each signal: 0.1-0.5% (tiny fractional Kelly)
|
||
- Portfolio: 10,000+ positions
|
||
- Leverage: 2-4× (portfolio Kelly supports with diversification)
|
||
|
||
**Results**: 66% annual (gross) over 30+ years, never down year
|
||
|
||
**Lessons**: Kelly optimal for repeated bets with edge. Diversification enables leverage. Discipline crucial.
|
||
|
||
### Warren Buffett (Implicit Kelly)
|
||
|
||
**Concentrated bets**: American Express (40%), Coca-Cola (25%), Apple (40%)
|
||
|
||
**Why Kelly-like**: High conviction → High p → Large Kelly → Large position
|
||
|
||
**Quote**: "Diversification is protection against ignorance."
|
||
|
||
**Lessons**: Kelly justifies concentration with edge. Still uses fractional (~40% max, not 100%).
|
||
|
||
---
|
||
|
||
## 8. Comparison to Other Methods
|
||
|
||
### Fixed Fraction
|
||
|
||
**Method**: Always bet same percentage
|
||
|
||
**Pros**: Simple, prevents ruin
|
||
|
||
**Cons**: Ignores edge, suboptimal growth
|
||
|
||
**When to use**: Don't trust probability estimates, want simplicity
|
||
|
||
### Martingale (Double After Loss)
|
||
|
||
**Method**: Double bet after each loss
|
||
|
||
**Fatal flaws**:
|
||
- Requires infinite bankroll
|
||
- Exponential growth (10 losses → need $10,240)
|
||
- Negative edge → lose faster
|
||
- Betting limits prevent recovery
|
||
|
||
**Conclusion**: **NEVER use**. Mathematically certain to fail.
|
||
|
||
### Fixed Amount
|
||
|
||
**Method**: Always bet same dollar amount
|
||
|
||
**Cons**: As bankroll changes, fraction changes inappropriately
|
||
|
||
**When to use**: Very small recreational betting
|
||
|
||
### Constant Proportion
|
||
|
||
**Method**: Fixed percentage, not optimized for edge
|
||
|
||
**Difference from Kelly**: Doesn't adjust for edge/odds
|
||
|
||
**Conclusion**: Better than fixed dollar, worse than Kelly
|
||
|
||
### Risk Parity
|
||
|
||
**Method**: Allocate to equalize risk contribution
|
||
|
||
**Difference from Kelly**: Doesn't use expected returns (ignores edge)
|
||
|
||
**When better**: Don't have reliable return estimates, defensive portfolio
|
||
|
||
**When Kelly better**: Have edge estimates, goal is growth
|
||
|
||
### Summary Comparison
|
||
|
||
| Method | Growth | Ruin Risk | When to Use |
|
||
|--------|--------|-----------|-------------|
|
||
| **Kelly** | Highest | None* | Active betting with edge |
|
||
| **Fractional Kelly** | High | Very low | **Real-world (recommended)** |
|
||
| **Fixed Fraction** | Medium | Low | Simple discipline |
|
||
| **Fixed Amount** | Low | Medium | Recreational only |
|
||
| **Martingale** | Negative | Certain | **NEVER** |
|
||
| **Risk Parity** | Low-Med | Low | Defensive portfolios |
|
||
|
||
*Kelly theoretically no ruin risk, but model error creates practical risk → use fractional Kelly
|
||
|
||
**Final Recommendation**: **Quarter Kelly (f*/4)** for nearly all real-world scenarios.
|
||
|
||
---
|
||
|
||
## Return to Main Skill
|
||
|
||
[← Back to Market Mechanics & Betting](../skill.md)
|
||
|
||
**Related resources**:
|
||
- [Betting Theory Fundamentals](betting-theory.md)
|
||
- [Scoring Rules and Calibration](scoring-rules.md)
|