Skill detail
position-sizer
Calculates risk-based trade position sizes.
Inspect before use
Automated review checks relevance, not safety or endorsement. Read the source instructions before using this skill.
SKILL.md
The saved excerpt is a snapshot from review. The external source remains the complete and most current version.
--- name: position-sizer description: Calculate risk-based position sizes for long stock trades. Use when user asks about position sizing, how many shares to buy, risk per trade, Kelly criterion, ATR-based sizing, fractional-share sizing, or portfolio risk allocation. Supports stop-loss distance calculation, volatility scaling, and sector concentration checks. --- # Position Sizer ## Overview Calculate the optimal number of shares to buy for a long stock trade based on risk management principles. Supports three sizing methods: - **Fixed Fractional**: Risk a fixed percentage of account equity per trade (default: 1%) - **ATR-Based**: Use Average True Range to set volatility-adjusted stop distances - **Kelly Criterion**: Calculate mathematically optimal risk allocation from historical win/loss statistics All methods apply portfolio constraints (max position %, max sector %) and output a final recommended share count with full risk breakdown. The default output is whole shares. Use `--fractional` only when the user's broker supports fractional shares for the security and order type. ## When to Use - User asks "how many shares should I buy?" - User wants to calculate position size for a specific trade setup - User mentions risk per trade, stop-loss sizing, or portfolio allocation - User asks about Kelly Criterion or ATR-based position sizing - User has a small account where whole-share rounding would under-deploy a defined risk budget - User wants to check if a position fits within portfolio concentration limits ## Prerequisites - No API keys required - Python 3.9+ with standard library only ## Workflow ### Step 1: Gather Trade Parameters Collect from the user: - **Required**: Account size (total equity) - **Mode A (Fixed Fractional)**: Entry price, stop price, risk percentage (default 1%) - **Mode B (ATR-Based)**: Entry price, ATR value, ATR multiplier (default 2.0x), risk percentage - **Mode C (Kelly Criterion)**: Win rate, average win, average loss; optionally entry and stop for share calculation - **Optional constraints**: Max position % of account, max sector %, current sector exposure - **Optional share mode**: Whole shares by default, or fractional shares with `--fractional --share-precision N` when supported by the broker If the user provides a stock ticker but not specific prices, use available tools to look up the current price and suggest entry/stop levels based on technical analysis. ### Step 2: Execute Position Sizer Script Run the position sizing calculation: ```bash # Fixed Fractional (most common) python3 skills/position-sizer/scripts/position_sizer.py \ --account-size 100000 \ --entry 155 \ --stop 148.50 \ --risk-pct 1.0 \ --output-dir reports/ # Fractional shares for small accounts or high-priced stocks python3 skills/position-sizer/scripts/position_sizer.py \ --account-size 1000 \ --entry 155 \ --stop 148.50 \ --risk-pct 1.0 \ --fractional \ --share-precision 4 \ --output-dir reports/ # ATR-Based python3 skills/position-sizer/scripts/position_sizer.py \ --account-size 100000 \ --entry 155 \ --atr 3.20 \ --atr-multiplier 2.0 \ --risk-pct 1.0 \ --output-dir reports/ # Kelly Criterion (budget mode - no entry) python3 skills/position-sizer/scripts/position_sizer.py \ --account-size 100000 \ --win-rate 0.55 \ --avg-win 2.5 \ --avg-loss 1.0 \ --output-dir reports/ # Kelly Criterion (shares mode - with entry/stop) python3 skills/position-sizer/scripts/position_sizer.py \ --account-size 100000 \ --entry 155 \ --stop 148.50 \ --win-rate 0.55 \ --avg-win 2.5 \ --avg-loss 1.0 \ --output-dir reports/ ``` ### Step 3: Load Methodology Reference Read `references/sizing_methodologies.md` to provide context on the chosen method, risk guidelines, and portfolio constraint best practices. ### Step 4: Calculate Multiple Scenarios If the user has not specified a single method, run multiple scenarios for comparison: - Fixed Fractional at 0.5%, 1.0%, andRead the full source on GitHub (opens external page)