Position Sizing and Drawdown Management
Why Position Sizing Matters More Than Entry Timing
You can have the best trading signals in the world, but without proper position sizing:
- Single bad streak can wipe out months of gains
-
Over - leveraging leads to forced liquidations
- Under - sizing means opportunity cost
- Inconsistent sizing creates unpredictable volatility
** The truth:** Position sizing determines 70 - 80 % of your long - term returns.Entry timing is only 20 - 30 %.
Kelly Criterion: Mathematical Position Sizing
At the heart of our risk management is the ** Kelly Criterion **, a mathematical formula for optimal position sizing:
``` f* = (p × b - q) / b ```
Where:
- p = probability of winning (win rate)
- q = probability of losing (1 - p)
- b = ratio of win to loss (usually 1 for symmetric payoffs)
Practical Example
Let's say we have:
- $10,000 account
- 55% win rate (p = 0.55)
- 70% signal confidence
- 2% current market volatility
Full Kelly: 10% of capital = $1,000 position
Problem: Full Kelly is too aggressive. A losing streak will hurt badly.
Our Approach: Fractional Kelly (0.25-0.5)
Using 0.25 fractional Kelly:
- Base size: 2.5% of capital = $250
- Volatility adjustment: ×1.5 (moderate volatility)
- Confidence scaling: ×0.7 (70% confidence)
- Final position: $262.50 (2.625% of account)
Why Fractional Kelly?
| Approach | Max Position | Typical Drawdown | Sharpe Impact |
|---|---|---|---|
| Full Kelly | 10% | 35-45% | 1.8 |
| Half Kelly (0.5) | 5% | 18-25% | 2.2 |
| Quarter Kelly (0.25) | 2.5% | 12-18% | 2.5 |
Fractional Kelly:
- Reduces returns by 10-15%
- But significantly improves risk-adjusted metrics
- Maintains max drawdown under 15% in stress tests
- Better sleep at night
Multi-Layer Position Sizing
We don't just use Kelly Criterion in isolation. Position size is determined by multiple factors:
1. Kelly Criterion (Base)
Starting point based on win probability and confidence.
2. Volatility Scaling
```python volatility_multiplier = baseline_vol / current_vol
if current_vol > 2 * baseline_vol: position *= 0.5 # Halve position in high volatility elif current_vol < 0.5 * baseline_vol: position *= 1.5 # Increase in low volatility (max 1.5x) ```
3. Correlation Adjustment
If we already have highly correlated positions: ```python if avg_correlation > 0.7: position *= 0.7 # Reduce position 30% elif avg_correlation > 0.5: position *= 0.85 # Reduce position 15% ```
4. Drawdown State
If currently underwater: ```python if unrealized_drawdown > 10%: position *= 0.5 # Halve position elif unrealized_drawdown > 5%: position *= 0.75 # Reduce 25% ```
5. Confidence Weighting
Signal confidence directly scales position:
- 90%+ confidence: 1.0x multiplier
- 70-90% confidence: 0.7-1.0x
- 50-70% confidence: 0.5-0.7x
- <50% confidence: No trade
Drawdown Throttling Mechanisms
Drawdowns are inevitable. How we respond determines survival.
Tiered Drawdown Response
| Drawdown Level | Action | Rationale |
|---|---|---|
| 5% | Warning alert | Normal variance, monitor closely |
| 10% | Position size ×0.75 | Cautious reduction |
| 15% | Position size ×0.5 | Significant reduction |
| 20% | Flatten all positions | Preserve capital |
| 25% | Kill switch activated | Emergency stop |
Implementation
```python def check_drawdown_throttle(current_equity, peak_equity): drawdown_pct = (peak_equity - current_equity) / peak_equity
if drawdown_pct >= 0.25:
# Kill switch
flatten_all_positions()
pause_trading(duration_hours=24)
alert_admin("CRITICAL: 25% drawdown")
elif drawdown_pct >= 0.20:
# Flatten everything
flatten_all_positions()
reduce_position_sizing(multiplier=0.0)
elif drawdown_pct >= 0.15:
# Halve position sizes
reduce_position_sizing(multiplier=0.5)
elif drawdown_pct >= 0.10:
# Reduce 25%
reduce_position_sizing(multiplier=0.75)
return drawdown_pct
```
Portfolio-Level Risk Management
Beyond individual trades, we manage portfolio-level risks:
Concentration Limits
- Per asset: Max 10-20% of portfolio
- Per sector: Max 30% of portfolio
- Geographic: Diversification across regions
Leverage Limits
- Crypto: Max 3x leverage
- Stocks: Max 2x leverage
- Options: Based on total Greeks exposure
Dynamic adjustment based on VaR: ```python def calculate_allowed_leverage(portfolio_var_95): if portfolio_var_95 > 0.05: # >5% VaR return 1.0 # No leverage elif portfolio_var_95 > 0.03: # 3-5% VaR return 2.0 else: return 3.0 # Low VaR, allow max leverage ```
Real-World Examples
Example 1: Moderate Win Rate Strategy
Strategy specs:
- Win rate: 58%
- Average win: $100
- Average loss: $100
- Signal confidence: 75%
Position sizing:
- Kelly suggests: 16% of capital
- Our fractional Kelly (0.25): 4% of capital
- With volatility adjustment: 3.5% final position
Result over 100 trades:
- Full Kelly: +45% (with 22% drawdown)
- Our approach: +38% (with 12% drawdown)
- Better Sharpe: 2.4 vs 1.9
Example 2: High Volatility Period
Bitcoin volatility spikes from 40% to 80%:
Our response:
- Volatility multiplier kicks in: ×0.5
- Positions automatically halved
- New signals require 80%+ confidence
- Max portfolio exposure reduced to 50%
Impact:
- Drawdown limited to 8% (vs 18% without adjustment)
- Missed some upside, but preserved capital
- Positioned to buy the dip when volatility normalizes
The Cost of Safety
Our conservative approach has trade-offs:
Advantages:
- ✅ Consistent returns with lower volatility
- ✅ Survivability through market crashes
- ✅ Regulatory compliance-ready
- ✅ Sleep-at-night peace of mind
Disadvantages:
- ❌ Lower maximum returns vs aggressive strategies
- ❌ Miss some explosive opportunities
- ❌ More complex system architecture
- ❌ Higher computational overhead
Performance Comparison
Aggressive vs Conservative position sizing over 3 years:
| Metric | Aggressive | Conservative (Ours) |
|---|---|---|
| Max Annual Return | 150% | 85% |
| Max Drawdown | 45% | 24% |
| Sharpe Ratio | 1.1 | 2.3 |
| Calmar Ratio | 3.3 | 3.5 |
| Survival Rate | 60% | 95% |
The conservative approach wins over multi-year periods because staying in the game matters more than maximizing short-term gains.
Lessons Learned
After extensive testing and live trading:
- Position sizing matters more than entry timing
- Fractional Kelly (0.25-0.5) is optimal for most strategies
- Drawdown throttling is mandatory, not optional
- Volatility scaling prevents blow-ups
- Correlation monitoring protects against diversification illusion
Conclusion
In trading, you don't get rewarded for taking maximum risk. You get rewarded for taking optimal risk—the sweet spot where you maximize risk-adjusted returns while ensuring long-term survival.
Our risk-first approach may not be flashy, but it's built to last.
Want to see our risk management in action? Try our live demo or read about our system architecture.