Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

Medici Investments — Position Sizer

v0.1.0

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,...

0· 92·0 current·0 all-time
byRunByDaVinci@clawdiri-ai

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for clawdiri-ai/medici-investments-position-sizer-dv.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "Medici Investments — Position Sizer" (clawdiri-ai/medici-investments-position-sizer-dv) from ClawHub.
Skill page: https://clawhub.ai/clawdiri-ai/medici-investments-position-sizer-dv
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install medici-investments-position-sizer-dv

ClawHub CLI

Package manager switcher

npx clawhub@latest install medici-investments-position-sizer-dv
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Suspicious
medium confidence
Purpose & Capability
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.
!
Instruction Scope
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 important mismatch between instructions and actual runtime behavior.
Install Mechanism
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.
Credentials
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.
Persistence & Privilege
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.
What to consider before installing
This package mostly looks like a local, standard-library Python position-sizer (benign in intent), but the documentation and SKILL.md examples are inconsistent with the shipped code. Before installing or running automatically: 1) Verify which CLI flags the script actually accepts (the README/tests use --account-size/--entry/--stop while SKILL.md shows different names and a different path). 2) If you expect automatic sector lookups or portfolio checks, inspect the full script to confirm a safe, documented data source (there is no visible network or API code). 3) Run the included unit tests locally (pytest) to confirm behavior. 4) If you plan to give the skill access to your portfolio data or expect it to call external APIs, require explicit documentation of which endpoints and credentials it will use — currently none are declared. The inconsistencies suggest sloppy packaging rather than overt malice, but clarify/repair the docs and confirm there are no hidden network calls before enabling autonomous use.

Like a lobster shell, security has layers — review code before you run it.

latestvk978wqzb0htb1ef0g499g1bry183d7tg
92downloads
0stars
1versions
Updated 1mo ago
v0.1.0
MIT-0

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:

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:

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:

{
  "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.

Comments

Loading comments...