技能详情(站内镜像,无评论)
作者:RunByDaVinci @clawdiri-ai
许可证:MIT-0
MIT-0 ·免费使用、修改和重新分发。无需归因。
版本:v0.1.0
统计:⭐ 0 · 23 · 0 current installs · 0 all-time installs
⭐ 0
安装量(当前) 0
🛡 VirusTotal :良性 · OpenClaw :可疑
Package:clawdiri-ai/medici-investments-position-sizer-dv
安全扫描(ClawHub)
- VirusTotal :良性
- OpenClaw :可疑
OpenClaw 评估
The skill's code implements a local position-sizer and appears harmless, but the documentation/instructions diverge from the shipped code (mismatched CLI flags/paths and an unimplemented ticker/sector fetch behavior), so the package is internally inconsistent and needs clarification before use.
目的
The skill's name/description (position sizing for long stock trades) matches the included Python implementation and tests: fixed-fractional, ATR, and Kelly models are implemented and unit-tested. However, some doc examples use different parameter names (SKILL.md uses --portfolio-value, README/tests use --account-size / --entry / --stop), indicating documentation drift that will confuse users and automated invocation.
说明范围
SKILL.md claims the script will 'fetch the sector for the ticker' and 'check the current portfolio's allocation' if --ticker is provided. The visible code and tests show no network calls, no external API integration, and no mechanism for reading a portfolio file or account holdings; there are no required env vars or config paths. That sector-fetch/portfolio-check behavior is therefore not implemented (or not visible in the provided files) — an…
安装机制
This is instruction-only / source-included: there is no install specification, no external downloads, and the Python code uses only the standard library. That is low-risk from an install perspective.
证书
The skill declares no required environment variables or credentials and the code does not reference secrets or external tokens in the visible files. The requested permissions are proportionate to the stated purpose.
持久
Skill is not forced-always, does not request persistence or elevated privileges, and there is no evidence it modifies other skills or system-wide settings.
安装(复制给龙虾 AI)
将下方整段复制到龙虾中文库对话中,由龙虾按 SKILL.md 完成安装。
请把本段交给龙虾中文库(龙虾 AI)执行:为本机安装 OpenClaw 技能「Medici Investments — Position Sizer」。简介:Calculate risk-based position sizes for long stock trades. Use when user asks a…。
请 fetch 以下地址读取 SKILL.md 并按文档完成安装:https://raw.githubusercontent.com/openclaw/skills/refs/heads/main/skills/clawdiri-ai/medici-investments-position-sizer-dv/SKILL.md
(来源:yingzhi8.cn 技能库)
SKILL.md
---
id: 'medici-investments-position-sizer'
name: 'medici-investments-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, or portfolio risk allocation. Supports stop-loss distance calculation,
volatility scaling, and sector concentration checks.'
version: '1.0.0'
author: 'DaVinci'
last_amended_at: null
trigger_patterns: []
pre_conditions:
git_repo_required: false
tools_available: []
expected_output_format: 'natural_language'
---
# Position Sizing Calculator
## Overview
This 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:**
- **Risk-Based Sizing**: Position size is determined by risk per trade, not a fixed dollar amount.
- **Multiple Sizing Models**: Supports Percent Risk, ATR (Average True Range) Volatility, and Kelly Criterion models.
- **Stop-Loss Integration**: Calculates the number of shares to buy based on the distance to the stop-loss.
- **Portfolio Context**: Checks for sector concentration and total portfolio risk.
---
## When to Use This Skill
**Explicit Triggers:**
- "How many shares of AAPL should I buy?"
- "Calculate the position size for a trade in TSLA."
- "My stop-loss for GOOG is at $170, how much should I buy?"
- User asks about "position sizing," "risk per trade," "Kelly criterion," or "ATR sizing."
**Implicit Triggers:**
- User is planning a new stock purchase and mentions an entry and stop-loss price.
- User is asking about how to manage risk on a new trade.
---
## Workflow
### Step 1: Gather Inputs
The user must provide the following information:
```bash
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.
### Step 2: Execute Calculation Script
Run the position sizing script with the provided inputs:
```bash
python3 skills/position-sizer/scripts/position_sizer.py --portfolio-value 100000 ...
```
The script performs the calculations based on the selected model.
### Calculation Models
**1. Percent Risk (Default)**
- **Risk per Trade ($)** = Portfolio Value * (Risk per Trade % / 100)
- **Risk per Share ($)** = Entry Price - Stop-Loss Price
- **Number of Shares** = Risk per Trade ($) / Risk per Share ($)
**2. ATR Volatility Sizing**
- **Risk per Share ($)** = ATR * Multiplier (default 2x)
- **Stop-Loss Price** = Entry Price - Risk per Share ($)
- **Number of Shares** = Risk per Trade ($) / Risk per Share ($)
- *This model is useful when a stop-loss price is not predetermined.*
**3. Kelly Criterion (Advanced)**
- **Kelly %** = Win Probability - [(1 - Win Probability) / Win-Loss Ratio]
- **Position Size ($)** = Portfolio Value * Kelly %
- **Number of Shares** = Position Size ($) / Entry Price
- *This model optimizes for long-term geometric growth but can be aggressive. Often used at half-Kelly.*
### Step 3: Sector Concentration Check
If a `--ticker` is provided, the script will:
1. Fetch the sector for the ticker.
2. Check the current portfolio's allocation to that sector.
3. Issue a warning if the new position would push the sector's weight above a defined threshold (e.g., 25%).
### Step 4: Present the Results
The script outputs a JSON object and a human-readable summary.
**JSON Output:**
```json
{
"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:**
- **Model Used**: Percent Risk
- **Max Risk on this Trade**: $1,000.00 (1.0% of $100,000 portfolio)
- **Entry / Stop**: $175.00 / $170.00 (Risk per share: $5.00)
- **Calculated Position Size**:
- **Shares to Buy**: 200
- **Total Position Value**: $35,000.00
- **Portfolio Impact**: This position will be 35.0% of your total portfolio.
- **Warnings**:
- ⚠️ This is a highly concentrated position.
---
## Important Considerations
- **Integer Shares**: Remind the user that they can only buy whole shares, so rounding down is the safest approach.
- **Liquidity**: For large position sizes, warn about potential slippage on entry.
- **Not Financial Advice**: Include a disclaimer that this is a risk management tool, not a recommendation to buy or sell.