/position-sizing
Trade sizing methods including fixed fractional, volatility-adjusted, Kelly criterion, and liquidity-constrained sizing
$ npx -y skills add agiprolabs/claude-trading-skills --skill position-sizing --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/position-sizing
Context preview
The summary Claude sees to decide when to auto-load this skill.
Trade sizing methods including fixed fractional, volatility-adjusted, Kelly criterion, and liquidity-constrained sizing
SKILL.md
position-sizing.SKILL.mdname: position-sizing
description: Trade sizing methods including fixed fractional, volatility-adjusted, Kelly criterion, and liquidity-constrained sizing
Position Sizing
Position sizing is the single most important risk management decision in trading. Your entry signal determines direction; your position size determines survival. A mediocre strategy with proper sizing will outperform a great strategy with reckless sizing over any meaningful time horizon.
**Core principle**: Size determines survival, not entries. Two traders with the same signals but different sizing will have wildly different outcomes. The one who sizes conservatively survives drawdowns and compounds capital; the one who oversizes blows up.
Methods Covered
| Method | Best For | Key Input | |--------|----------|-----------| | Fixed Fractional | General trading, most recommended | Account risk % | | Volatility-Adjusted | Volatile markets, multi-asset | ATR or realized vol | | Kelly Criterion | Quantified edge with track record | Win rate + payoff ratio | | Liquidity-Constrained | Low-liquidity Solana tokens | Pool depth | | Anti-Martingale | Trend-following strategies | Recent P&L streak |
---
1. Fixed Fractional Sizing
The most recommended method for most traders. Risk a fixed percentage of your account on each trade.
Formula
risk_amount = account_value * risk_percentage
price_risk_per_unit = entry_price - stop_loss_price
position_size_units = risk_amount / price_risk_per_unit
position_value = position_size_units * entry_price
Risk Tiers
| Tier | Risk Per Trade | Use Case | |------|---------------|----------| | Conservative | 0.5–1% | New strategies, drawdown recovery | | Standard | 1–2% | Most traders, proven strategies | | Aggressive | 3–5% | High-conviction setups with strong, measured edge |
Example
account = 10_000 # $10,000 or 100 SOL
risk_pct = 0.02 # 2%
entry = 1.50
stop_loss = 1.30
risk_amount = account * risk_pct # $200
price_risk = entry - stop_loss # $0.20
position_units = risk_amount / price_risk # 1,000 tokens
position_value = position_units * entry # $1,500
With this sizing, if the stop loss is hit, you lose exactly 2% of your account regardless of the token's price or volatility.
---
2. Volatility-Adjusted Sizing
Scale position size inversely with volatility. When volatility is high, take smaller positions; when low, take larger positions. This normalizes the dollar risk across different market conditions.
Formula
adjusted_size = base_size * (target_vol / current_vol)
Where:
- `target_vol`: your desired daily portfolio volatility (e.g., 2%)
- `current_vol`: the token's current daily volatility (from ATR or realized vol)
Using ATR
atr_14 = 0.12 # 14-period ATR
close_price = 1.50
daily_vol_pct = atr_14 / close_price # 8%
target_daily_vol = account * 0.02 # $200 target daily move
position_size = target_daily_vol / atr_14 # 1,667 units
This automatically reduces exposure in volatile markets and increases it in calm ones.
---
3. Kelly Criterion
The mathematically optimal fraction of capital to risk, maximizing long-term growth rate. Derived from maximizing expected logarithmic utility.
Formula
f* = (p * b - q) / b
Where:
- `p` = win rate (probability of winning trade)
- `q` = 1 - p (probability of losing trade)
- `b` = average win / average loss (payoff ratio)
- `f*` = optimal fraction of capital to risk
Equivalent form: `f* = (p * (b + 1) - 1) / b`
Critical Rule: NEVER Use Full Kelly
Full Kelly assumes perfect knowledge of your edge. In practice, edge estimates are noisy. Always use fractional Kelly:
| Fraction | Use Case | Notes | |----------|----------|-------| | 0.25x Kelly | Conservative, recommended default | Robust to edge estimation error | | 0.50x Kelly | Moderate, for well-measured edges | Still significant drawdown risk | | 1.0x Kelly | Never in practice | Theoretical maximum, catastrophic if edge is overestimated |
Example
win_rate = 0.55 # 55% win rate
avg_win = 2.0 # Average win is 2x the average loss
avg_loss = 1.0
payoff_ratio = avg_win / avg_loss # b = 2.0
kelly = (win_rate * payoff_ratio - (1 - win_rate)) / payoff_ratio
# kelly = (0.55 * 2.0 - 0.45) / 2.0 = 0.325 = 32.5%
quarter_kelly = kelly * 0.25 # 8.1% — use this
half_kelly = kelly * 0.50 # 16.25%
**If Kelly is negative, you have no edge. Do not trade.**
See `references/sizing_formulas.md` for the full mathematical derivation.
---
4. Liquidity-Constrained Sizing
Critical for Solana tokens. Even if your risk model says you can take a large position, the pool may not support it without unacceptable slippage.
Formula (Constant-Product AMM)
slippage ≈ trade_size / pool_liquidity
max_trade = pool_liquidity * max_slippage_pct
Rules of Thumb
| Constraint | Guideline | |-----------|-----------| | Max single trade | 2% of pool liquidity | | Max position | 5% of pool liquidity | | Minimum pool depth | 10x your desired position size |
Example
pool_sol = 500 # 500 SOL in pool
max_slippage = 0.02 # 2% max slippage
max_trade_sol = pool_sol * max_slippage # 10 SOL
# For a $150 SOL price, that's $1,500 max per trade
**Always check all pools**, not just the largest. Aggregate liquidity across Raydium, Orca, and Meteora for the full picture. See the `liquidity-analysis` skill for pool depth assessment.
---
5. Anti-Martingale Sizing
Increase size after wins, decrease after losses. This is the opposite of the gambler's fallacy (Martingale). The logic: winning streaks may indicate your strategy is in sync with the market; losing streaks may indicate regime change.
Implementation
def anti_martingale_size(
base_size: float,
consecutive_wins: int,
consecutive_losses: int,
scale_factor: float = 0.25,
max_multiplier: float = 2.0,
min_multiRead more
name: position-sizing description: Trade sizing methods including fixed fractional, volatility-adjusted, Kelly criterion, and liquidity-constrained sizing
Position Sizing
Position sizing is the single most important risk management decision in trading. Your entry signal determines direction; your position size determines survival. A mediocre strategy with proper sizing will outperform a great strategy with reckless sizing over any meaningful time horizon.
**Core principle**: Size determines survival, not entries. Two traders with the same signals but different sizing will have wildly different outcomes. The one who sizes conservatively survives drawdowns and compounds capital; the one who oversizes blows up.
Methods Covered
| Method | Best For | Key Input | |--------|----------|-----------| | Fixed Fractional | General trading, most recommended | Account risk % | | Volatility-Adjusted | Volatile markets, multi-asset | ATR or realized vol | | Kelly Criterion | Quantified edge with track record | Win rate + payoff ratio | | Liquidity-Constrained | Low-liquidity Solana tokens | Pool depth | | Anti-Martingale | Trend-following strategies | Recent P&L streak |
---
1. Fixed Fractional Sizing
The most recommended method for most traders. Risk a fixed percentage of your account on each trade.
Formula
risk_amount = account_value * risk_percentage price_risk_per_unit = entry_price - stop_loss_price position_size_units = risk_amount / price_risk_per_unit position_value = position_size_units * entry_price
Risk Tiers
| Tier | Risk Per Trade | Use Case | |------|---------------|----------| | Conservative | 0.5–1% | New strategies, drawdown recovery | | Standard | 1–2% | Most traders, proven strategies | | Aggressive | 3–5% | High-conviction setups with strong, measured edge |
Example
account = 10_000 # $10,000 or 100 SOL risk_pct = 0.02 # 2% entry = 1.50 stop_loss = 1.30 risk_amount = account * risk_pct # $200 price_risk = entry - stop_loss # $0.20 position_units = risk_amount / price_risk # 1,000 tokens position_value = position_units * entry # $1,500
With this sizing, if the stop loss is hit, you lose exactly 2% of your account regardless of the token's price or volatility.
---
2. Volatility-Adjusted Sizing
Scale position size inversely with volatility. When volatility is high, take smaller positions; when low, take larger positions. This normalizes the dollar risk across different market conditions.
Formula
adjusted_size = base_size * (target_vol / current_vol)
Where:
- `target_vol`: your desired daily portfolio volatility (e.g., 2%)
- `current_vol`: the token's current daily volatility (from ATR or realized vol)
Using ATR
atr_14 = 0.12 # 14-period ATR close_price = 1.50 daily_vol_pct = atr_14 / close_price # 8% target_daily_vol = account * 0.02 # $200 target daily move position_size = target_daily_vol / atr_14 # 1,667 units
This automatically reduces exposure in volatile markets and increases it in calm ones.
---
3. Kelly Criterion
The mathematically optimal fraction of capital to risk, maximizing long-term growth rate. Derived from maximizing expected logarithmic utility.
Formula
f* = (p * b - q) / b
Where:
- `p` = win rate (probability of winning trade)
- `q` = 1 - p (probability of losing trade)
- `b` = average win / average loss (payoff ratio)
- `f*` = optimal fraction of capital to risk
Equivalent form: `f* = (p * (b + 1) - 1) / b`
Critical Rule: NEVER Use Full Kelly
Full Kelly assumes perfect knowledge of your edge. In practice, edge estimates are noisy. Always use fractional Kelly:
| Fraction | Use Case | Notes | |----------|----------|-------| | 0.25x Kelly | Conservative, recommended default | Robust to edge estimation error | | 0.50x Kelly | Moderate, for well-measured edges | Still significant drawdown risk | | 1.0x Kelly | Never in practice | Theoretical maximum, catastrophic if edge is overestimated |
Example
win_rate = 0.55 # 55% win rate avg_win = 2.0 # Average win is 2x the average loss avg_loss = 1.0 payoff_ratio = avg_win / avg_loss # b = 2.0 kelly = (win_rate * payoff_ratio - (1 - win_rate)) / payoff_ratio # kelly = (0.55 * 2.0 - 0.45) / 2.0 = 0.325 = 32.5% quarter_kelly = kelly * 0.25 # 8.1% — use this half_kelly = kelly * 0.50 # 16.25%
**If Kelly is negative, you have no edge. Do not trade.**
See `references/sizing_formulas.md` for the full mathematical derivation.
---
4. Liquidity-Constrained Sizing
Critical for Solana tokens. Even if your risk model says you can take a large position, the pool may not support it without unacceptable slippage.
Formula (Constant-Product AMM)
slippage ≈ trade_size / pool_liquidity max_trade = pool_liquidity * max_slippage_pct
Rules of Thumb
| Constraint | Guideline | |-----------|-----------| | Max single trade | 2% of pool liquidity | | Max position | 5% of pool liquidity | | Minimum pool depth | 10x your desired position size |
Example
pool_sol = 500 # 500 SOL in pool max_slippage = 0.02 # 2% max slippage max_trade_sol = pool_sol * max_slippage # 10 SOL # For a $150 SOL price, that's $1,500 max per trade
**Always check all pools**, not just the largest. Aggregate liquidity across Raydium, Orca, and Meteora for the full picture. See the `liquidity-analysis` skill for pool depth assessment.
---
5. Anti-Martingale Sizing
Increase size after wins, decrease after losses. This is the opposite of the gambler's fallacy (Martingale). The logic: winning streaks may indicate your strategy is in sync with the market; losing streaks may indicate regime change.
Implementation
def anti_martingale_size(
base_size: float,
consecutive_wins: int,
consecutive_losses: int,
scale_factor: float = 0.25,
max_multiplier: float = 2.0,
min_multiA comprehensive collection of 67 ready-to-use trading, DeFi, and quantitative finance Agent Skills. Works with Claude Code, Cursor, Codex, Gemini CLI, and 30+ other tools.
Repo: agiprolabs/claude-trading-skills
Other skills on trading-skills.
- /backtrader
Event-driven backtesting with bar-by-bar execution, complex order types, multiple analyzers, and custom indicators
Open skill - /birdeye-api
Solana token market data via Birdeye — prices, OHLCV, trades, token metadata, security checks, and trader activity
Open skill - /coingecko-api
Broad crypto market data from CoinGecko covering 13,000+ tokens. Global market stats, historical price data going back years, exchange volumes, trending tokens, and category filters. Best for macro analysis and long-term historical data.
Open skill - /cointegration-analysis
Cointegration testing for pairs trading using Engle-Granger, Johansen, and rolling stability analysis
Open skill - /copy-trading
Wallet evaluation, monitoring, and copy-trade strategy design for Solana DEX trading
Open skill - /correlation-analysis
Cross-asset correlation analysis including rolling correlation, hierarchical clustering, tail dependence, and regime-dependent correlation
Open skill

