From massive
Build and analyze options strategies using Massive's options data. Supports covered calls, iron condors, spreads, and custom strategies. Use when building options screeners, analyzing Greeks, or constructing multi-leg strategies.
How this skill is triggered — by the user, by Claude, or both
Slash command
/massive:optionsThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Strategy: $0
Strategy: $0 Underlying: $1 (default: SPY if not specified) Language: infer from context, default to Python if not specified.
Keep the generated code minimal. Write what the strategy needs; do not add env-var configuration tables, helper utility modules, or abstractions (require_env, choose_option, type-dispatch helpers) the user didn't ask for. A working 40-line script is better than a 150-line scaffold with framework-like hooks.
Options strategies rely on Greeks (delta, gamma, theta, vega) and implied volatility. These fields are only populated on Options Starter ($49/mo) or above. On the Basic Options plan, the options chain returns without Greeks/IV, and any strategy that filters or ranks on those fields will return empty results.
Before scaffolding:
Create a project directory with the strategy name (e.g., spy-bull-call-spread/). The project must include:
pyproject.toml, package.json, go.mod, build.gradle.kts). The Python package is massive on PyPI (NOT massive-sdk or massive-api). Pin massive>=2.4.0..env.example with MASSIVE_API_KEY=your_api_key_here.gitignore with .env and language-specific entriesEnd with:
cd <project-name>
cp .env.example .env
# Add your Massive API key to .env
Then the language-specific install and run commands.
OCC symbology: O:AAPL250117C00150000
O: prefixAAPL underlying (padded to 6 chars in OCC, but SDK handles this)250117 expiration (YYMMDD)C or P for call/put00150000 strike price * 1000 (8 digits)The snapshot options chain only returns live, unexpired contracts. When generating code, derive expiration dates from the current date, not from the template literal dates below. A reasonable default window is today + 7d to today + 60d:
from datetime import date, timedelta
today = date.today()
expiry_lo = (today + timedelta(days=7)).isoformat()
expiry_hi = (today + timedelta(days=60)).isoformat()
If the user specifies an expiration window, honor it, but warn if the window is already in the past.
After resolving the language, read the matching reference for a working options-chain fetch pattern (last trade + chain params + field access):
Only read the reference for the chosen language.
For exploring data before writing code, the MCP tools can help:
call_api with /v3/snapshot/options/{underlying} and store_as: "chain"
query_data with SQL to filter and rank:
SELECT * FROM chain
WHERE greeks_delta BETWEEN 0.15 AND 0.40
AND implied_volatility > 0.3
ORDER BY day_volume DESC
LIMIT 20
Built-in financial functions available via apply parameter: Black-Scholes (bs_price, bs_delta, bs_gamma, bs_theta, bs_vega, bs_rho), returns (simple_return, log_return, cumulative_return, sharpe_ratio, sortino_ratio).
$0..env.example, .gitignore..env.
b. Gets current underlying price.
c. Fetches the relevant options chain(s).
d. Applies strategy-specific filtering and ranking.
e. Prints results with risk/reward metrics.cd <project>, cp .env.example .env, install, run./massive:debug if the user hits errors.Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Searches MemPalace before answering questions about past work, people, projects, or prior decisions. Returns verbatim stored content instead of guessing from model memory.
npx claudepluginhub massive-com/claude-code-plugin --plugin massive