Agent skill

Futures Position Sizer

by tradermonty in tradermonty/claude-trading-skills

Calculate contract-based futures position sizes from a direction, entry, and stop-loss, using verified per-symbol contract specs (multiplier, tick size, tick value).

MITAuto-check passed

Install Futures Position Sizer

skills CLI
$ npx skills add tradermonty/claude-trading-skills --skill futures-position-sizer -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install tradermonty/claude-trading-skills futures-position-sizer --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/tradermonty/claude-trading-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/futures-position-sizer .claude/skills/futures-position-sizer && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
futures-position-sizer
GitHub stars
3k
Token cost
~2.5k tokens
SKILL.md length
1,027 words
Files
9 (incl. scripts, references)
Skills in repo
74
Repo updated
First seen
Licence
MIT

At a glance

Calculate contract-based futures position sizes from a direction, entry, and stop-loss, using verified per-symbol contract specs (multiplier, tick size, tick value).

  • Works in 4 steps: Size the Position → Read the Result → Check Warnings → …
  • The user asks how many futures contracts to trade
  • SKILL.md covers Overview, When to Use, Prerequisites and Workflow, plus 4 more sections
  • Runs Python scripts from its folder; calls python3

What it does

Futures Position Sizer is an agent skill from tradermonty/claude-trading-skills. Calculate contract-based futures position sizes from a direction, entry, and stop-loss, using verified per-symbol contract specs (multiplier, tick size, tick value). Use when the user asks how many futures contracts to trade, wants to size a futures position (ES, NQ, ZB, GC, CL, 6E/E6, VX, BT, ...), or is handing off a contrarian-setup-gate READYFORPLAN direction/invalidationlevel for sizing. Pure, offline calculation -- no API keys, no network.

Its SKILL.md is about 2.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 11 other files, including scripts and reference files (for example `references/futures-contract-specs.md`, `references/sizing-methodology.md` and `scripts/futures_position_sizer.py`).

The repository describes itself as: Claude Code skills for equity investors and traders — market analysis, technical charting, economic calendars, screeners, and trading strategy development. The licence is MIT.

When your agent uses it

  • The user asks how many futures contracts to trade
  • Wants to size a futures position (ES
  • Is handing off a contrarian-setup-gate READYFORPLAN direction/invalidationlevel for sizing

Example prompts

  • “/futures-position-sizer”

Requirements

  • Python 3

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Size the Position
  2. Read the Result
  3. Check Warnings
  4. Inspect the Verified Contract Spec Table

What it can do on your machine

Read from SKILL.md and the folder at commit eab8d5c. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 5 files in scripts/ (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • python3

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Futures Position Sizer loads about 2.5k tokens when it runs, and up to ~8.4k if it reads all its reference files. Until then it costs about 119 tokens; SKILL.md has 1,027 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~119
When it runs · the whole SKILL.md, loaded when a task matches
~2.5k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~8.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from tradermonty/claude-trading-skills at commit eab8d5c, republished under its MIT licence (© tradermonty). 1,027 words, ~2,494 tokens.

Download SKILL.mdSave it as .claude/skills/futures-position-sizer/SKILL.md (or your agent's skills folder). This skill also uses 8 other files; get the full folder from GitHub.
name
futures-position-sizer
description
Calculate contract-based futures position sizes from a direction, entry, and stop-loss, using verified per-symbol contract specs (multiplier, tick size, tick value). Use when the user asks how many futures contracts to trade, wants to size a futures position (ES, NQ, ZB, GC, CL, 6E/E6, VX, BT, ...), or is handing off a contrarian-setup-gate READY_FOR_PLAN direction/invalidation_level for sizing. Pure, offline calculation -- no API keys, no network.

Futures Position Sizer

Overview

Shapiro pipeline step 4: convert a direction, entry price, and stop-loss into a contract count, given an account risk budget and a verified contract spec (multiplier, tick size, tick value). This is a NEW, separate skill from position-sizer -- futures contracts are leveraged, multiplier-based instruments with wildly different dollar-per-point values (a $0.25 move is $12.50 on ES but $5.00 on NQ and $31.25 on ZB); reusing the equity share-count sizer for futures would silently produce wrong position sizes.

Two ways to size a trade:

  • Mode A (explicit): supply --symbol --direction --entry --stop directly.
  • Mode B (gate handoff): supply --gate-json <contrarian-setup-gate report> --entry. Direction and stop (the gate's invalidation_level) come from the gate's READY_FOR_PLAN report -- the sizer never sizes a setup the gate has not confirmed as READY, and never accepts an explicit --direction/--stop alongside --gate-json (the gate is authoritative when provided).

--entry is ALWAYS required, in both modes -- neither this skill nor the gate ever derives an entry price; the operator supplies it.

When to Use

  • After contrarian-setup-gate reaches READY_FOR_PLAN and you need a contract count for the confirmed direction and stop
  • User asks "how many ES/NQ/GC/CL/... contracts should I trade?"
  • User has a futures trade idea with a known entry and stop and wants risk-based sizing
  • User wants to check the verified contract spec (multiplier/tick size/tick value) for a symbol before sizing (--list-specs)

Prerequisites

  • Python 3.9+, standard library only -- no API keys, fully offline
  • A direction, entry, and stop (mode A), or a contrarian-setup-gate JSON report with setup_status: READY_FOR_PLAN (mode B)
  • For a symbol outside the verified 23-market core table: its multiplier, tick size, and quote currency (all three, together)

Workflow

Step 1: Size the Position

Mode A -- explicit:

bash
python3 skills/futures-position-sizer/scripts/futures_position_sizer.py \
  --symbol ES --direction LONG --entry 5000.25 --stop 4980.00 \
  --account-size 100000 --risk-pct 1.0 \
  --output-dir reports/ --format both

Mode B -- gate handoff:

bash
python3 skills/futures-position-sizer/scripts/futures_position_sizer.py \
  --gate-json reports/contrarian_setup_gate_B6_2026-07-15.json \
  --entry 1.3400 \
  --account-size 100000 --risk-pct 1.0 \
  --output-dir reports/ --format both

--symbol may be omitted in mode B -- it is taken from the gate report. If both are given, they must match (gate_symbol_mismatch otherwise). --direction/--stop are rejected alongside --gate-json (usage error, exit 2) -- pass one mode or the other, never both.

Step 2: Read the Result
sizing_statusMeaning
SIZEDcontracts >= 1; total_risk_usd/risk_pct_of_account are the actual risk taken
NO_TRADENever a crash -- always carries no_trade_reason. See the reason glossary below

A NO_TRADE result from risk_below_one_contract still reports the full risk math (risk per contract, risk budget, stop distance) -- the account simply cannot afford one contract at this risk percentage and stop distance; widen the stop, increase risk %, or skip the trade.

Step 3: Check Warnings

warnings (top-level list) never blocks sizing -- it flags audit-worthy conditions: risk_pct_above_2 (risk above the 2% guideline), off_tick_grid_entry/off_tick_grid_stop (a non-bond symbol's price is not exactly on the tick grid -- legitimate for a mid-quote, but worth a second look).

Step 4: Inspect the Verified Contract Spec Table
bash
python3 skills/futures-position-sizer/scripts/futures_position_sizer.py --list-specs

Prints the full 23-market core table (multiplier, tick size, tick value, currency, exchange) sourced from official exchange contract-spec pages -- see references/futures-contract-specs.md for the per-row source URLs and verification dates.

Worked Example: Bond Off-Grid Guard (32nds -> Decimal)

Bond/note futures (ZT, ZF, ZN, ZB) quote in fractions of a point (32nds, or 32nds-of-32nds), commonly written with an apostrophe: 110'16 means 110 + 16/32 = 110.50. Typing 110.16 instead -- reading the digits after the apostrophe as if they were decimal cents -- is a classic, silent, wrong-money-math mistake: 110.16 is not on the ZB tick grid (0.03125 = 1/32) at all.

bash
# WRONG -- 110.16 is not on the 1/32 grid; this is almost certainly a
# mistyped "110'16" (which means 110.50). Exits 2, no report written:
python3 skills/futures-position-sizer/scripts/futures_position_sizer.py \
  --symbol ZB --direction LONG --entry 110.16 --stop 108.00 \
  --account-size 100000 --risk-pct 1.0

# CORRECT -- decimal points, not the raw 32nds digits:
python3 skills/futures-position-sizer/scripts/futures_position_sizer.py \
  --symbol ZB --direction LONG --entry 110.50 --stop 108.00 \
  --account-size 100000 --risk-pct 1.0

Every other symbol in the table quotes in plain decimal points -- an off-grid price there (a mid-quote, for instance) is only a soft off_tick_grid_* warning, never a rejection.

Output Contract

Writes futures_position_size_<SYMBOL>_<as-of>.json to --output-dir when --format json|both; --format text|both prints a formatted summary to stdout. --as-of defaults to today (this is an operator-time sizing tool, not a backtest tool).

yaml
schema_version: "1.0"
symbol: ES
direction: LONG
sizing_status: SIZED | NO_TRADE
no_trade_reason: null | risk_below_one_contract | gate_not_ready | gate_symbol_mismatch | ...
entry: 5000.25
stop: 4980.00
stop_distance_points: 20.25
stop_distance_ticks: 81
contract_spec: {multiplier: 50, tick_size: 0.25, tick_value: 12.5, currency: USD, source: cme, verified: "2026-07-17"}
risk_per_contract_usd: 1012.50
risk_budget_usd: 2000.00
contracts: 1
total_risk_usd: 1012.50
risk_pct_of_account: 1.01
max_contracts_cap_applied: false
fx_rate_used: 1.0
margin_note: "Exchange margin requirements are broker/time-dependent and NOT computed here; verify initial/maintenance margin with your broker."
gate: {report_path, setup_status, gate_confidence, warnings}   # mode B only
warnings: []
run_context: {symbol, as_of, schema_version, skill}
Show full SKILL.md (429 more words)Show less

Guardrails

  1. Never sizes a position without an explicit stop. --stop is required in mode A; mode B refuses to size (gate_not_ready) until the gate itself reports READY_FOR_PLAN with a valid invalidation_level.
  2. Floor, never round up -- exact by construction, no epsilon. contracts = floor(risk_budget / risk_per_contract) is computed with exact rational arithmetic (Python's Fraction, not float division), so contracts * risk_per_contract <= risk_budget holds by construction -- no epsilon nudge, no float-representation edge case, and no risk of ever exceeding the budget. Also rejected outright if the resulting count is economically implausible (an absurd input like a denormal-scale multiplier override). Zero contracts is a legitimate, fail-closed NO_TRADE outcome, not an error.
  3. Two fail-closed classes, matched to who supplied the bad value. An operator-caused problem (an explicit --stop on the wrong side of --entry, a stop closer than one tick, a bond price typed off the tick grid) is a usage error: exit 2, no report written. The identical class of problem on a value that came from the untrusted gate-report file (mode B's stop) is instead a fail-closed NO_TRADE result: exit 0, a report IS written, naming the reason -- this never crashes on a bad or not-yet-ready gate file, matching every other skill in this pipeline.
  4. Bond-family off-grid prices are a hard rejection, not a warning. ZT/ZF/ZN/ZB quote in 32nds/64ths notation; a price that doesn't land on the tick grid is almost certainly a notation mistype and would silently produce wrong money math if sized. Every other symbol only warns.
  5. Margin is never computed. margin_note is a static, never-stale reminder -- margin requirements are broker- and time-dependent; this skill does not estimate them.
  6. Currency-aware. Every core-table symbol is USD-quoted (confirmed by a table-wide unit test), including the CME FX futures whose contract SIZE is denominated in a foreign currency (e.g. B6's GBP 62,500) but which trade and settle in USD. A symbol quoted in a non-USD currency (via --contract-currency override) requires an explicit --fx-rate -- there is no silent default.
  7. Not investment advice. This skill performs risk-based arithmetic on operator-supplied or gate-confirmed inputs; it does not recommend a trade, a direction, or an entry.

Resources

  • scripts/futures_position_sizer.py -- CLI: argument parsing, hardened gate-json loading (unreadable / parse_error incl. RecursionError / non_finite via an iterative whole-file scan), report generation
  • scripts/futures_sizing.py -- Pure sizing core: numeric validators, the verified 23-market contract-spec table, risk math, the floor algorithm, tick-grid guards, and gate-report shape normalization
  • references/futures-contract-specs.md -- The verified contract-spec table with per-row official source URLs and verification dates
  • references/sizing-methodology.md -- Formulas, the exact-rational floor algorithm's rationale, the fail-closed exit-code convention, and worked examples (ES long, B6 short via gate handoff)

© tradermonty, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 8 other files (scripts, references) in skills/futures-position-sizer of tradermonty/claude-trading-skills.

  • SKILL.md
  • references/futures-contract-specs.md
  • references/sizing-methodology.md
  • requirements.txt
  • scripts/futures_position_sizer.py
  • scripts/futures_sizing.py
  • scripts/tests/conftest.py
  • scripts/tests/test_futures_position_sizer.py
  • scripts/tests/test_futures_sizing.py

Open the folder on GitHubat commit eab8d5c

Compare with similar skills

Futures Position Sizer next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Futures Position Sizer compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Futures Position Sizer this skilltradermonty/claude-trading-skills3k—~2.5kAutomated safety check: PassMIT
Sample Size Power Calculatoraipoch/medical-research-skills2k—~2kAutomated safety check: PassMIT
Market Sizing Calculatorrevfactory/harness-1001.3k—~968Automated safety check: PassApache-2.0
Market Sizing Calculatorrevfactory/harness-1001.3k—~644Automated safety check: PassApache-2.0
Positioning Ideasphuryn/pm-skills27k—~751Automated safety check: PassMIT
Market Sizingphuryn/pm-skills27k—~1.1kAutomated safety check: PassMIT

Similar skills

  • Sample Size Power Calculator

    aipoch/medical-research-skills

    Advanced sample size and power calculations for complex study designs including survival analysis, clustered designs, and multiple comparisons.

    2k GitHub stars~2k tokensUpdated 22 days ago
    Research & ScienceAuto-check passed
  • Market Sizing Calculator

    revfactory/harness-100

    companyproject market scale estimationand revenue model verify market scale totalbasis.

    1.3k GitHub stars~968 tokensUpdated 6 mo ago
    Product & Project ManagementAuto-check passed
  • Market Sizing Calculator

    revfactory/harness-100

    사이드프로젝트의 시장 규모를 추정하고 수익 모델을 검증하는 시장 규모 계산기. An agent skill from revfactory/harness-100.

    1.3k GitHub stars~644 tokensUpdated 6 mo ago
    Product & Project ManagementAuto-check passed
  • Positioning Ideas

    phuryn/pm-skills

    Brainstorm product positioning ideas differentiated from competitors.

    27k GitHub stars~751 tokensUpdated 25 days ago
    Marketing & SEOAuto-check passed
  • Market Sizing

    phuryn/pm-skills

    Estimate market size using TAM, SAM, and SOM with top-down and bottom-up approaches.

    27k GitHub stars~1.1k tokensUpdated 25 days ago
    Product & Project ManagementAuto-check passed
  • Position Sizing

    agentii-ai/agentii-investment-intelligence

    position sizing, Kelly criterion, risk budgeting, volatility targeting, portfolio allocation, bet sizing, capital allocation, drawdown management, position management, risk parity sizing

    207 GitHub stars~871 tokensUpdated 10 days ago
    Business, Finance & HRAuto-check passed

More from tradermonty/claude-trading-skills

All 74 skills in this repo
  • Technical Analyst

    tradermonty/claude-trading-skills

    This skill should be used when analyzing weekly price charts for stocks, stock indices, cryptocurrencies, or forex pairs.

    3k GitHub starsUsed in 4 repos~4.6k tokens
    Auto-check passed
  • Theme Detector

    tradermonty/claude-trading-skills

    Detect and analyze trending market themes across sectors. An agent skill from tradermonty/claude-trading-skills.

    3k GitHub starsUsed in 2 repos~4.9k tokens
    Auto-check passed
  • Trader Memory Core

    tradermonty/claude-trading-skills

    Track investment theses across their lifecycle — from screening idea to closed position with postmortem.

    3k GitHub starsUsed in 2 repos~4.3k tokens
    Auto-check passed
  • Edge Strategy Reviewer

    tradermonty/claude-trading-skills

    Critically review strategy drafts from edge-strategy-designer for edge plausibility, overfitting risk, sample size adequacy, and execution realism.

    3k GitHub starsUsed in 1 repo~988 tokens
    Auto-check passed
  • Sector Analyst

    tradermonty/claude-trading-skills

    This skill should be used when analyzing sector rotation patterns and market cycle positioning.

    3k GitHub starsUsed in 1 repo~2.3k tokens
    Auto-check passed
  • Stanley Druckenmiller Investment

    tradermonty/claude-trading-skills

    Druckenmiller Strategy Synthesizer - Integrates 8 upstream skill outputs (Market Breadth, Uptrend Analysis, Market Top, Macro Regime, FTD Detector, VCP Screener, Theme Detector, CANSLIM Screener)…

    3k GitHub starsUsed in 1 repo~2k tokens
    Auto-check passed

Questions about Futures Position Sizer

What does Futures Position Sizer do?

Calculate contract-based futures position sizes from a direction, entry, and stop-loss, using verified per-symbol contract specs (multiplier, tick size, tick value). Futures Position Sizer is an agent skill from tradermonty/claude-trading-skills. Calculate contract-based futures position sizes from a direction, entry, and stop-loss, using verified per-symbol contract specs (multiplier, tick size, tick value).

When should I use Futures Position Sizer?

Futures Position Sizer fits situations like: the user asks how many futures contracts to trade; wants to size a futures position (ES; is handing off a contrarian-setup-gate READYFORPLAN direction/invalidationlevel for sizing.

How do I install Futures Position Sizer in Claude Code?

Run `npx skills add tradermonty/claude-trading-skills --skill futures-position-sizer -a claude-code`. Or copy the skill folder (skills/futures-position-sizer in tradermonty/claude-trading-skills) into .claude/skills/futures-position-sizer in your project. Claude Code loads it when a task matches its description.

How do I install Futures Position Sizer in Codex?

Run `npx skills add tradermonty/claude-trading-skills --skill futures-position-sizer -a codex`. Or copy the skill folder (skills/futures-position-sizer in tradermonty/claude-trading-skills) into .agents/skills/futures-position-sizer in your project. Codex loads it when a task matches its description.

Can I use Futures Position Sizer in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add tradermonty/claude-trading-skills --skill futures-position-sizer -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/futures-position-sizer, .gemini/skills/futures-position-sizer, .github/skills/futures-position-sizer and .opencode/skills/futures-position-sizer in your project.

What does Futures Position Sizer need to run?

Going by SKILL.md and its folder, Futures Position Sizer needs Python for the scripts in its folder and the command-line tools its instructions call (python3). Our summary lists: Python 3.

Does Futures Position Sizer access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Futures Position Sizer safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Futures Position Sizer use?

Futures Position Sizer is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Futures Position Sizer use?

About 2.5k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 5.9k tokens, read only when the agent opens those files.

What are the alternatives to Futures Position Sizer?

Skills that share tags, products or a category with Futures Position Sizer: Sample Size Power Calculator (aipoch/medical-research-skills, 2k stars), Market Sizing Calculator (revfactory/harness-100, 1.3k stars), Market Sizing Calculator (revfactory/harness-100, 1.3k stars) and Positioning Ideas (phuryn/pm-skills, 27k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Futures Position Sizer?

tradermonty (a GitHub user) maintains it in tradermonty/claude-trading-skills, which has 2,973 GitHub stars. The repository holds 74 skills in this directory. The repository was last updated on October 5, 2026.

Source: tradermonty/claude-trading-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.