All skills
tradermonty avatar

/futures-position-sizer

@b3447e1

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.

Use this Skill: https://skilld.dev/gh/tradermonty/claude-trading-skills/futures-position-sizer

This session only. Nothing lands on disk.

referencesfutures-contract-specs.md

≈2.8k tokens on demand. Your agent reads this file only when SKILL.md points to it.

Futures Contract Specifications (Verified)

The 23-market core table CONTRACT_SPECS in scripts/futures_sizing.py, sourced from the official exchange contract-spec pages and rulebook chapters (CME Group, Cboe, ICE) -- never blogs, aggregator sites, or secondary sources. Every row is verified independently against its own source_url. A table-wide unit test asserts tick_value == multiplier x tick_size (within 1e-9 relative) for every row -- this catches a transcription error mechanically -- and three literal spot-checks (ES, GC, ZB) are pinned independently of the table itself, so a bad edit to CONTRACT_SPECS would still fail even though it might satisfy the internal-consistency invariant.

Currency column = QUOTE currency, not underlying. All 23 rows are USD-quoted (a table-wide unit test asserts this). The CME FX futures (E6/J6/B6/A6/D6/S6) and ICE's DX have non-USD contract SIZES -- e.g. B6's contract size is GBP 62,500 -- but they trade and settle in USD. Mislabeling the currency column as the underlying would trigger a spurious missing_fx_rate error or a double currency conversion.

Outright tick, not spread tick. SI, NG, and VX each have a finer minimum price increment that applies only to spread/straddle trades, TAS Block/ECRP order types, or inter-commodity spreads -- never to a single-leg position. Since this skill sizes a single-leg stop-loss, every row below uses the OUTRIGHT tick (documented per-row where a spread tick also exists).

Table

Symbol Product Multiplier Tick Size Tick Value Currency Exchange Source Verified
ES E-mini S&P 500 Index futures 50 0.25 $12.50 USD CME Rulebook Ch.358 2026-07-17
NQ E-mini Nasdaq-100 Index futures 20 0.25 $5.00 USD CME Rulebook Ch.359 2026-07-17
YM E-mini Dow Jones Industrial Average ($5) Index futures 5 1.00 $5.00 USD CBOT Rulebook Ch.27 2026-07-17
QR E-mini Russell 2000 Index futures (Globex ticker RTY) 50 0.10 $5.00 USD CME Rulebook Ch.393 2026-07-17
VX Cboe Volatility Index (VIX) futures 1000 0.05 (outright) $50.00 USD CFE Cboe VIX Futures Specs 2026-07-17
ZT 2-Year U.S. Treasury Note futures 2000 0.00390625 (1/8-of-1/32) $7.8125 USD CBOT Rulebook Ch.21 2026-07-17
ZF 5-Year U.S. Treasury Note futures 1000 0.0078125 (1/4-of-1/32) $7.8125 USD CBOT Rulebook Ch.20 2026-07-17
ZN 10-Year U.S. Treasury Note futures 1000 0.015625 (1/2-of-1/32, i.e. 1/64) $15.625 USD CBOT Rulebook Ch.19 2026-07-17
ZB 30-Year U.S. Treasury Bond futures 1000 0.03125 (1/32) $31.25 USD CBOT Rulebook Ch.18 2026-07-17
DX ICE U.S. Dollar Index futures 1000 0.005 $5.00 USD ICE ICE Product Specs 2026-07-17
E6 Euro FX futures (CME ticker 6E) 125,000 0.00005 $6.25 USD CME CME Euro FX Specs 2026-07-17
J6 Japanese Yen futures (CME ticker 6J) 12,500,000 0.0000005 $6.25 USD CME CME Japanese Yen Specs 2026-07-17
B6 British Pound futures (CME ticker 6B) 62,500 0.0001 $6.25 USD CME CME British Pound Specs 2026-07-17
A6 Australian Dollar futures (CME ticker 6A) 100,000 0.00005 $5.00 USD CME CME Australian Dollar Specs 2026-07-17
D6 Canadian Dollar futures (CME ticker 6C) 100,000 0.00005 $5.00 USD CME CME Canadian Dollar Specs 2026-07-17
S6 Swiss Franc futures (CME ticker 6S) 125,000 0.00005 $6.25 USD CME CME Swiss Franc Specs 2026-07-17
GC Gold futures 100 0.10 $10.00 USD COMEX CME Gold Specs 2026-07-17
SI Silver futures 5,000 0.005 (outright) $25.00 USD COMEX CME Silver Specs 2026-07-17
HG Copper futures 25,000 0.0005 $12.50 USD COMEX CME Copper Specs 2026-07-17
PL Platinum futures 50 0.10 $5.00 USD NYMEX CME Platinum Specs 2026-07-17
CL WTI Crude Oil futures 1,000 0.01 $10.00 USD NYMEX CME WTI Crude Specs 2026-07-17
NG Henry Hub Natural Gas futures 10,000 0.001 (outright) $10.00 USD NYMEX CME Natural Gas Specs 2026-07-17
BT Bitcoin futures (CME ticker BTC) 5 5.00 $25.00 USD CME Rulebook Ch.350 2026-07-17

Notable Rows

QR = E-mini Russell 2000 (Globex ticker RTY), not the discontinued ICE product

"QR" is not a commonly known ticker. Resolved by pulling live 2026 FMP COT data for symbol QR directly (the raw CFTC fields, not FMP's own label): every recent weekly report shows marketAndExchangeNames="RUSSELL E-MINI - CHICAGO MERCANTILE EXCHANGE", cftcContractMarketCode="239742", cftcMarketCode="CME", contractUnits="(RUSSELL 2000 INDEX X $50)", with roughly 400K open interest -- i.e. an actively-traded contract. Cross-confirmed against CME Rulebook Chapter 393: "$50.00 times the Russell 2000 Index... minimum price increment of 0.10 Index points, equal to $5.00 per contract." This is CME's current E-mini Russell 2000 (Globex ticker RTY today), NOT the discontinued ICE "Russell 2000 Mini" (legacy ticker TF, a $100 multiplier, delisted around 2017 when the Russell index license moved back to CME) -- using the ICE product's multiplier would double the correct risk-per-contract figure.

ZT's tick: resolved as 1/8-of-1/32, not 1/4-of-1/32

ZT's minimum price increment is disputed among third-party aggregator sites. Resolved here ONLY against CME Group's own Rulebook Chapter 21, which states verbatim: "The minimum price fluctuation shall be one-eighth of one thirty-second of one point (equal to $7.8125 per contract), including intermonth spreads." That is 1/8 x 1/32 = 1/256 = 0.00390625 points on a $200,000 face-value contract (2-year and 3-year Treasury futures are the only CBOT products with $200,000 par instead of $100,000) -> $2,000/point x 0.00390625 = $7.8125. This is a DIFFERENT fraction from ZF's 1/4-of-1/32 -- the two land on the same $7.8125 dollar tick only because ZT's par value is 2x ZF's while its fraction is half as fine, which is likely the source of the aggregator confusion.

A6/D6/S6: CME halved the minimum price increment between 2016 and 2022

CME reduced the outright minimum price increment (MPI) on these three FX futures from 0.0001 to 0.00005 in three separate, dated changes:

  • A6 (6A): 0.0001 ($10.00/tick) -> 0.00005 ($5.00/tick), effective November 23, 2020 (CME Product Modification Summary Chadv20-353).
  • S6 (6S): 0.0001 ($12.50/tick) -> 0.00005 ($6.25/tick), effective May 2022 (CME notice SER-8936).
  • D6 (6C): 0.0001 ($10.00/tick) -> 0.00005 ($5.00/tick), effective July 11, 2016 (cmegroup.com/trading/fx/mpi.html).

Confirmed by the per-symbol footnotes in CME's own "2023 FX Product Guide" (22nd edition) and cross-checked against cmegroup.com/trading/fx/mpi.html (the MPI change-history page). Many generic aggregator sites and default web-search snippets still quote the stale, pre-reduction values -- an earlier provisional draft of this table made exactly that mistake for all three rows.

D6 = CME 6C (Canadian Dollar), not TBD

Confirmed via CME's 2023 FX Product Guide (CAD/USD futures page): Product Code 6C, contract size 100,000 CAD, quoted USD per CAD -- matching the "D6" vendor-symbol convention (D for "Dollar"/CAD, since a leading digit isn't a valid symbol character for some data vendors) used by this project's COT-report symbol list.

VX: outright tick vs. spread tick

Cboe's own specifications page states 0.05 index points ($50.00/contract) as the standard/outright minimum price interval; a finer 0.01-point ($10.00) tick applies only to the individual legs and net prices of SPREAD trades, and a still-finer 0.005-point tick applies only to TAS Block Trades and Exchange-for-Related-Position (ECRP) order types. This table uses 0.05/$50.00 -- the correct tick for sizing a single-leg outright stop-loss; using the spread tick would understate risk by 5x.

BT: CME's own ticker is "BTC", not "BT"; distinct from the Micro contract "MBT"

CME has no product literally ticked "BT". The standard-size, 5-BTC-per-contract, USD cash-settled Bitcoin future is officially ticker BTC (Rulebook Chapter 350: "Each futures contract shall be valued at 5 bitcoin... minimum price increment shall be $5.00, equal to $25.00 per contract"). This is entirely distinct from CME's Micro Bitcoin futures, ticker MBT (Rulebook Chapter 348), which is 0.1 BTC/contract -- 50x smaller notional per contract. "BT" is this project's own COT/vendor-feed symbol (matching cot-contrarian-detector's CORE_SYMBOLS convention) and is mapped to CME's BTC contract here, not MBT.

Verification Method

Every row above was verified against the official exchange's own contract-spec or rulebook page (cmegroup.com, ice.com, cboe.com) -- never a blog, aggregator site (Barchart, TradingView, Investing.com, Wikipedia), or other secondary source. Where CME's live contractSpecs.html marketing pages were unreachable via automated fetch (client-side JS rendering / bot-detection blocking direct scraping), verification fell back to CME's own official static PDF rulebook chapters (the legally authoritative contract text, arguably more authoritative than the marketing page) or a Wayback-Machine-mirrored snapshot of CME's own official PDF/HTML bytes -- both are still the exchange's own primary-source content, not a third party's restatement of it. Every tick_value was independently arithmetic-checked (multiplier x tick_size) against what the source states as the per-contract dollar figure, with zero discrepancies across all 23 rows.

Source: SKILL.md on GitHub

1 warning26d3 checks · Risk SAFE
  • Gen Agent Trust Hub26d

    This skill is a secure, offline futures position sizing calculator that relies entirely on the Python standard library. It features robust input validation, uses exact rational arithmetic to prevent financial calculation errors, and contains no network access or suspicious execution capabilities.

  • Socket26d

    No alerts

  • Snyk26d

    Risk: MEDIUM · 1 issue

Signed by skilld at b3447e1. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 19 hours ago.

Activeupdated 3 months ago

README badge

README badge for tradermonty/claude-trading-skills/futures-position-sizer