From wealth-management
Determines optimal capital allocation to portfolio positions using Kelly criterion, fractional Kelly, risk budgeting, liquidity sizing, and conviction weighting. For position sizing and bet size queries.
npx claudepluginhub joellewis/finance_skills --plugin wealth-managementThis skill uses the workspace's default tool permissions.
Provides frameworks for determining how much capital to allocate to individual positions within a portfolio. Covers the Kelly criterion, fractional Kelly, risk budgeting, liquidity-based sizing, and conviction weighting. Proper bet sizing is critical — even a portfolio of good ideas can fail with poor sizing.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Generates original PNG/PDF visual art via design philosophy manifestos for posters, graphics, and static designs on user request.
Provides frameworks for determining how much capital to allocate to individual positions within a portfolio. Covers the Kelly criterion, fractional Kelly, risk budgeting, liquidity-based sizing, and conviction weighting. Proper bet sizing is critical — even a portfolio of good ideas can fail with poor sizing.
4 — Portfolio Construction
prospective
For a binary bet with payoff odds b, win probability p, and loss probability q = 1-p:
f* = (b*p - q) / b
where f* is the optimal fraction of wealth to wager. The Kelly criterion maximizes the expected logarithm of wealth (geometric growth rate) over repeated bets.
Properties:
For a normally distributed investment return with expected excess return mu-r_f and variance sigma^2:
f* = (mu - r_f) / sigma^2
This gives the fraction of total wealth to allocate. For example, an asset with 8% expected excess return and 20% volatility: f* = 0.08 / 0.04 = 2.0 (200% of wealth — implying leverage).
Full Kelly sizing is theoretically optimal but practically too aggressive because:
Practical approach: use a fraction of Kelly, commonly:
The key insight: the growth rate curve is flat near the peak. Reducing from full Kelly to half Kelly only sacrifices 25% of growth but reduces risk dramatically.
Allocate risk (not capital) across positions. The total risk budget is the maximum acceptable portfolio risk (e.g., 10% VaR or 5% tracking error).
VaR-based budgeting:
Tracking error budgeting (for active managers):
Hard limits on individual positions to prevent concentration risk:
Liquidity-based limits:
Risk-based limits:
Regulatory/mandate limits:
Size positions proportional to the strength of the investment thesis:
Framework: Score each position on edge strength (1-5) and certainty (1-5). Size proportional to the product: edge * certainty.
Trade-off between diversification and conviction:
Adjust position sizes inversely with volatility to maintain consistent risk per position:
Adjusted size = Target risk / Current volatility
When volatility doubles, position size halves, keeping the dollar risk constant. This is a core principle in managed futures and risk-targeting strategies.
Increase position sizes after gains (wealth grows, so Kelly fraction applied to larger base) and decrease after losses. This contrasts with martingale strategies (doubling down after losses) which can lead to ruin.
Kelly naturally implements anti-martingale sizing: bet a constant fraction of current wealth, so absolute bet size grows with wealth and shrinks with losses.
| Formula | Expression | Use Case |
|---|---|---|
| Kelly (Discrete) | f* = (b*p - q) / b | Binary bet sizing |
| Kelly (Continuous) | f* = (mu - r_f) / sigma^2 | Investment position sizing |
| Half Kelly | f = f* / 2 | Practical conservative sizing |
| Growth Rate at Kelly | g* = (mu - r_f)^2 / (2*sigma^2) | Maximum geometric growth |
| Growth Rate at f | g(f) = f*(mu - r_f) - f^2*sigma^2/2 | Growth rate for any fraction |
| Volatility-Scaled Size | w = target_risk / sigma_i | Constant risk per position |
| Position VaR | VaR_i = w_i * sigma_i * z_alpha * V | Position-level risk |
Given:
Calculate: Optimal bet size
Solution:
f* = (b*p - q) / b = (1 * 0.55 - 0.45) / 1 = 0.10 / 1 = 10%
Interpretation: Wager 10% of current wealth on each bet. This maximizes long-run geometric growth.
Practical adjustment (half Kelly): f = 10% / 2 = 5% — achieves 75% of the maximum growth rate with much lower drawdown risk.
Full Kelly expected drawdown: the probability of losing 50% of wealth at some point is substantial. Half Kelly dramatically reduces this tail risk.
Given:
Calculate: Kelly-optimal allocation
Solution:
f* = (mu - r_f) / sigma^2 = 0.08 / (0.20)^2 = 0.08 / 0.04 = 2.00 (200%)
This implies 200% allocation (2x leverage), which is extremely aggressive.
Practical adjustments:
Given that the 8% expected return and 20% volatility are estimates with significant uncertainty, half Kelly (100%) or less is prudent. The growth rate curve is:
See scripts/bet_sizing.py for computational helpers.