Install
openclaw skills install @clawdiri-ai/medici-investments-position-sizer-dvCalculate 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, or portfolio risk allocation. Supports stop-loss distance calculation, volatility scaling, and sector concentration checks.
openclaw skills install @clawdiri-ai/medici-investments-position-sizer-dvThis skill calculates the optimal position size for a long stock trade based on a defined risk management framework. It ensures that no single trade can disproportionately impact the portfolio.
Core Features:
Explicit Triggers:
Implicit Triggers:
The user must provide the following information:
position-sizer calculate \
--portfolio-value 100000 \
--risk-per-trade-pct 1 \
--entry-price 175.00 \
--stop-loss-price 170.00 \
--ticker AAPL \
# Optional sizing model:
--model percent-risk # (default) or 'atr' or 'kelly'
# Required for ATR model:
--atr 2.5
# Required for Kelly model:
--win-probability 0.60 \
--win-loss-ratio 2.0
Required Parameters:
--portfolio-value: Total value of the trading portfolio.--risk-per-trade-pct: The maximum percentage of the portfolio to risk on this single trade (e.g., 1 for 1%).--entry-price: The intended purchase price of the stock.--stop-loss-price: The price at which the position will be sold for a loss.Optional Parameters:
--ticker: The stock ticker (used for sector concentration checks).--model: The sizing model to use. Defaults to percent-risk.--atr: The Average True Range of the stock (required for atr model).--win-probability and --win-loss-ratio: Required for kelly model.Run the position sizing script with the provided inputs:
python3 skills/position-sizer/scripts/position_sizer.py --portfolio-value 100000 ...
The script performs the calculations based on the selected model.
1. Percent Risk (Default)
2. ATR Volatility Sizing
3. Kelly Criterion (Advanced)
If a --ticker is provided, the script will:
The script outputs a JSON object and a human-readable summary.
JSON Output:
{
"model": "Percent Risk",
"inputs": { ... },
"results": {
"risk_per_trade_usd": 1000,
"risk_per_share_usd": 5,
"num_shares_to_buy": 200,
"position_size_usd": 35000,
"position_size_pct_of_portfolio": 35.0
},
"warnings": [
"This position will represent 35.0% of your portfolio. This is a highly concentrated position."
]
}
Human-Readable Summary: