4.3 — Portfolio Management — Position Sizing & Risk Limits
Portfolio Management — Position Sizing & Risk Limits
A single brilliant trade means nothing if poor portfolio management turns a winning system into a losing one. Professional prediction market traders focus as much on position sizing and risk controls as on signal generation. This lesson covers the portfolio management layer that sits above your trading strategies and governs how your Oracle allocates capital.
The Three Pillars of Prediction Market Portfolio Management
Pillar 1 — Position sizing: How much capital to allocate per trade. Too much and a single bad trade wipes you out. Too little and your returns are meaningless.
Pillar 2 — Exposure limits: Maximum capital in any single market, market category, or strategy at any time.
Pillar 3 — Drawdown controls: What to do when your bankroll decreases below certain thresholds. Automatic stop mechanisms that prevent a losing streak from cascading into a catastrophic loss.
Position Sizing: The Half-Kelly Approach
The Kelly Criterion provides the mathematically optimal fraction of bankroll to bet for maximum long-run growth rate. For prediction markets with known probabilities:
Kelly fraction = (p × b - q) / b
Where:
- p = probability of winning (your ensemble estimate)
- q = 1 - p
- b = net odds (payout per $1 risked = (1 - current_price) / current_price)
Full Kelly is mathematically optimal but psychologically difficult — it can recommend 30%+ of bankroll per trade, leading to extreme volatility. Half-Kelly is the professional standard: use half the mathematically optimal fraction.
Practical implementation with hard limits:
- Maximum per trade: 5% of bankroll (Theta Sniper), 3% (Geo Scout), 2% (new unproven strategies)
- Minimum trade size: $10 / PKR 2,800 (below this, transaction costs are proportionally too large)
- Total exposure cap: 40% of bankroll deployed at any time (keeping 60% dry powder)
Exposure Diversification
Don't concentrate all positions in one category. Example exposure limits:
| Category | Max Portfolio Allocation |
|---|---|
| SBP/Pakistan macro | 15% |
| Cricket markets | 10% |
| Global geopolitics | 20% |
| US politics/policy | 15% |
| Other markets | 20% |
| Cash (undeployed) | 20% minimum |
These limits force diversification. Even if your Pakistan macro edge is very high, concentrating 50% of capital in SBP trades means you're making a macro bet on Pakistan rather than running a diversified prediction market portfolio.
The Drawdown Control System
class PortfolioManager:
def __init__(self, initial_bankroll: float):
self.peak_bankroll = initial_bankroll
self.current_bankroll = initial_bankroll
self.SOFT_STOP_PCT = 0.85 # 15% drawdown: reduce position sizes
self.HARD_STOP_PCT = 0.75 # 25% drawdown: stop all new trades
def update_bankroll(self, new_value: float):
self.current_bankroll = new_value
if new_value > self.peak_bankroll:
self.peak_bankroll = new_value
@property
def drawdown_pct(self) -> float:
return self.current_bankroll / self.peak_bankroll
@property
def trading_status(self) -> str:
dd = self.drawdown_pct
if dd >= 1.0:
return "FULL" # Normal operations
elif dd >= self.SOFT_STOP_PCT:
return "REDUCED" # Cut position sizes by 50%
else:
return "HALTED" # No new positions until recovery
def get_position_size(self, base_size: float) -> float:
status = self.trading_status
if status == "FULL":
return base_size
elif status == "REDUCED":
return base_size * 0.5
else:
return 0.0 # No new trades
Expected Monthly Performance Model
Based on realistic assumptions for a Pakistani Oracle bot:
- Active markets monitored: 100-200 daily
- Trades passing all filters: 3-7 per week
- Average edge per trade: 12-18 cents
- Average position size: $50-100 / PKR 14,000–28,000 (on $1,000 / PKR 280,000 bankroll at 5-10%)
- Win rate with ensemble: 58-65%
Expected monthly P&L calculation:
- 20 trades/month × $75 average position × 15% average edge = $225 expected gross profit
- Minus spread costs: $10-15
- Minus API costs: $20-40
- Net monthly expected profit: $170-200 on $1,000 bankroll = 17-20% monthly
At PKR exchange rates (approximately PKR 280/USD), that's PKR 47,600-56,000/month on a PKR 280,000 starting bankroll. These are expectations, not guarantees — actual results will vary significantly in the early months as you calibrate.
The Compounding Growth Plan
The most powerful portfolio management decision is reinvestment:
- Month 1: Start with $500 (PKR 140,000). Target: $85-100 profit
- Month 3: Reinvest all profits. Bankroll now $600-650. Target: $102-130/month
- Month 6: Bankroll $750-900 if compounding. Monthly target: $127-180
- Month 12: Bankroll $1,200-1,500 if consistently profitable
The key discipline: don't withdraw profits in the first 6 months. Compound everything back into the bankroll. A $500 starting position that compounds at 17%/month becomes $3,000 in 12 months — but only if you resist the temptation to cash out early.
Pakistan Case Study: The Drawdown That Would Have Wiped the Bankroll
Farhan from Gulberg Lahore had a good first 6 weeks. He started with $400 (PKR 112,000) and grew to $520. Confident in his system, he removed the 40% deployment cap from his bot — "my win rate is 68%, I can afford more exposure," he thought.
In week 7, three positions went against him simultaneously:
- SBP rate market: unexpected political statement → loss of $28
- Cricket market: rain interruption changed outcomes → loss of $19
- Pakistan elections market: result closer than expected → loss of $31
Three consecutive losses totaling $78 — a 15% drawdown in one week.
Without the drawdown control system, his bot was still placing new trades throughout the losing week. By Friday, his bankroll was $412 — nearly back to his starting point after 6 profitable weeks.
With the PortfolioManager in place, what would have happened:
After loss #1 (-$28): Bankroll $492. Drawdown: 5.4%. Status: FULL — normal operations. After loss #2 (-$19): Bankroll $473. Drawdown: 9%. Status: FULL. After loss #3 (-$31): Bankroll $442. Drawdown: 15.0%. Status: SOFT STOP (REDUCED mode, position sizes halved).
All subsequent trades that week would have been at 50% normal size. If those also lost, the losses would be half as large.
Actual result vs. protected result:
| Scenario | End of Week 7 Bankroll | Weeks to Recover |
|---|---|---|
| No drawdown controls | $412 | 3-4 weeks |
| With PortfolioManager | $435 (estimated) | 1-2 weeks |
| With hard stop at 25%: | Trading halted at $390 | Until manual review |
The difference seems small — but it's the compounding effect that matters. Starting week 8 with $412 vs. $435 means his compound growth projections are permanently set back.
Farhan's lesson: "I thought drawdown controls were for beginners. They're for everyone. My 68% win rate meant nothing during a losing streak — the only thing that mattered was position sizing."
12-Month Bankroll Projection (PKR, starting PKR 112,000 / ~$400)
CONSERVATIVE SCENARIO (10%/month net return):
Month 1: PKR 123,200
Month 3: PKR 149,000
Month 6: PKR 198,000
Month 12: PKR 350,000
BASE CASE (17%/month net return):
Month 1: PKR 131,000
Month 3: PKR 179,000
Month 6: PKR 281,000
Month 12: PKR 784,000
UNDERPERFORMANCE (5%/month):
Month 1: PKR 117,600
Month 3: PKR 129,600
Month 6: PKR 142,800
Month 12: PKR 201,600
WARNING: These are projections, not guarantees.
Prediction markets involve real financial risk.
Start with PKR 30,000-60,000 ($100-200) and prove
your system over 3 months before scaling.
The real value is the SYSTEM — bot code, ensemble tuning,
database analytics, and discipline. Not the bankroll size.
Portfolio State Machine
PORTFOLIO TRADING STATUS TRANSITIONS
┌──────────────────────────────────────────┐
│ FULL │
│ Normal operations │
│ All strategies active at full size │
└──────────────────┬───────────────────────┘
│ 15% drawdown from peak
▼
┌──────────────────────────────────────────┐
│ REDUCED │
│ All new positions at 50% normal size │
│ Existing positions maintained │
└──────────────────┬───────────────────────┘
│ Additional 10% loss
▼ restore
┌──────────────────────────────────────────┐
│ HALTED │
│ NO new positions placed │
│ Existing positions run to resolution │
│ Manual review required to resume │
└──────────────────┬───────────────────────┘
│ bankroll recovers to 85%+ of peak
▼
Back to FULL
Note: Never override HALTED status without manual review.
A bot that ignores drawdown stops will blow up accounts.
Practice Lab
-
Portfolio exposure audit: Using the markets you've identified throughout the course, categorize each by the exposure table above. If you traded all of them simultaneously, would you exceed any category limit? How would you prioritize if you had to choose 5 trades this week while staying within the limits?
-
Drawdown simulation: Build the PortfolioManager class and simulate a 10-trade sequence with 4 consecutive losses at the start (realistic bad luck scenario). What does trading_status become? How does the position size scaling protect your bankroll? Print the bankroll after each trade.
-
12-month projection: Using the expected monthly performance model, build a 12-month compounding projection for your target starting bankroll (choose PKR 56,000, PKR 140,000, or PKR 280,000). What is the bankroll at month 12 under three scenarios: 10% monthly return, 17% monthly return, and 5% monthly return (underperformance)?
Key Takeaways
- Position sizing (Half-Kelly with hard 5%/3%/2% maximums) is more important than finding good signals — bad sizing destroys winning strategies
- The 60% dry powder rule (maximum 40% deployed at any time) keeps you ready for high-conviction opportunities and prevents forced selling during drawdowns
- The 25% hard stop (HALTED trading mode) is your circuit breaker — use it without exception to prevent catastrophic loss from a losing streak
- Compounding profits back into the bankroll for the first 6 months dramatically accelerates growth — a PKR 140,000 bankroll at 17%/month reaches PKR 840,000 in 12 months with full compounding
- Category diversification limits (15% SBP, 10% cricket, 20% geopolitics) prevent a single news story from wiping out your entire portfolio
- Farhan's story is a warning: removing risk controls during a winning streak is exactly when the market teaches the most expensive lesson — drawdown protection is for professional traders, not beginners
Lesson Summary
Quiz: Portfolio Management — Position Sizing & Risk Limits
4 questions to test your understanding. Score 60% or higher to pass.