massive-options-data について
massive-options-dataは、米国オプション市場データを扱う開発者向けのスキルです。Massive(Polygon)のRESTエンドポイントをPythonで利用でき、戦略や売買助言ではなくデータのみを提供します。
主な機能
- 01オプションチェーンと個別契約のスナップショット取得
- 02有効・期限切れ契約の一覧取得
- 03過去の取引と集計データの照会
- 04ページネーション結果の取得
活用シーン
- 01満期範囲でオプション契約を絞り込む
- 02Greeks、インプライド・ボラティリティ、建玉の確認
- 03過去の取引やOHLCVデータの取得
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ starchild-ai-agent/ official-skills --skill massive-options-dataインストール後、Claude Code で/massive-options-dataを入力して読み込まれたか確認します。
同梱ファイルexports.py
詳細
Massive Options Data
米国オプション市場データのためのデータ供給レイヤーです。Massive (Polygon) のオプション REST エンドポイントを、薄く予測可能な Python インターフェースでラップします。
このスキルは戦略、シグナル、ランキング、取引アドバイスを生成しません — オプションデータを公開するだけです。
プラン: Developer — 実際のフィールド可用性
現在は Massive Options Developer ($79/月) を利用しています。API レスポンスに実際に含まれるものに基づいて呼び出し側を実装してください。
| フィールド | Developer で返される? | 備考 |
|---|---|---|
details.* (ticker, strike, expiration, type) | ✅ | 常に存在します。 |
implied_volatility | ✅ | 契約ごと、15 分遅延。 |
greeks (delta, gamma, theta, vega) | ✅ | 契約ごと、15 分遅延。 |
open_interest | ✅ | 契約ごと、前営業日。 |
day.{open,high,low,close,volume,vwap} | ✅ | オプション価格 (前営業日の OHLC)、15 分遅延。 |
underlying_asset.ticker | ✅ | 常に存在します。 |
underlying_asset.price | ✅ | 現在の原資産価格、15 分遅延。 |
last_trade (price, size, timestamp) | ✅ | 最終取引、15 分遅延。 |
last_quote (bid/ask) | ❌ | Developer では依然として返されません。リアルタイムのスプレッドを計算できません。 |
| 履歴 IV / IV Rank / IV Percentile | ❌ | どのプランでも公開されていません。独自に履歴シリーズを構築してください。 |
ATM フィルタリングは実際の原資産価格を使用するようになりました:
chain = massive_option_chain_snapshot("AAPL")
# No need for twelvedata — underlying price is now included!
spot_price = chain["results"][0]["underlying_asset"]["price"]
atm_low, atm_high = spot_price * 0.95, spot_price * 1.05
for contract in chain["results"]:
strike = contract["details"]["strike_price"]
if atm_low <= strike <= atm_high:
# This is an ATM contract
リアルタイムの bid/ask クォートが必要な場合は、Advanced ($199/月) にアップグレードしてください。
ページネーション — DTE 範囲スキャンには必須
チェーンスナップショットは ticker のソート順でページネーションされます。250 行の最初のページは多くの場合、1 つの満期しかカバーしません。DTE ウィンドウ内のすべての契約を取得するには、next_url をたどる必要があります (exports.py の massive_paginate を参照)。これを省略することが「0 件の結果」スキャンが壊れているように見える最大の原因です。
単一の原資産と 1 つの満期ウィンドウに対する典型的なチェーンサイズは 450 契約を超えることがあります。少なくとも 4 ページを許容してください。
スクリプトの使用法
python3 - <<'EOF'
import sys, json
sys.path.insert(0, "/data/workspace/skills/massive-options-data")
from exports import (
massive_option_chain_snapshot,
massive_option_contract_snapshot,
massive_option_trades,
massive_option_quotes,
massive_option_aggregates,
massive_list_contracts,
massive_paginate,
)
snap = massive_option_chain_snapshot(underlying="SPY", limit=10)
print(json.dumps(snap.get("results", [])[:2], indent=2))
EOF
関数 (exports.py)
| 関数 | エンドポイント | 目的 |
|---|---|---|
massive_option_chain_snapshot(underlying, **filters) | GET /v3/snapshot/options/{underlying} | チェーン全体のスナップショット (price/greeks/IV/OI; Starter では quote+trade は欠落)。 |
massive_option_contract_snapshot(underlying, option_ticker) | GET /v3/snapshot/options/{underlying}/{contract} | 単一契約のスナップショット。 |
massive_list_contracts(underlying_ticker=None, **filters) | GET /v3/reference/options/contracts | オプション契約の参照リスト (アクティブまたは期限切れ)。 |
massive_option_trades(option_ticker, **range) | GET /v3/trades/{option_ticker} | 履歴の取引ティック。Developer 以上で利用可能です。 |
massive_option_quotes(option_ticker, **range) | GET /v3/quotes/{option_ticker} | 履歴の NBBO クォート。Developer では依然として 403 を返します。 Advanced が必要です。 |
massive_option_aggregates(option_ticker, multiplier, timespan, from_, to, **opts) | GET /v2/aggs/ticker/{ticker}/range/... | OHLCV バー。Developer では分足 + 秒足、Advanced ではすべてのバー。 |
massive_paginate(url, params=None, max_pages=20) | — | next_url カーソルページネーションをたどります。 |
すべての関数は上流から生の JSON を返します。HTTP エラーは Response.raise_for_status() によって発生します。
堅牢化の注意点
- まずプローブ、次にコード。 新しいエンドポイントに対してフィルタパイプラインを書く前に、1 件の完全なレコードをダンプして実際のフィールドを確認してください。「なぜすべてフィルタで除外されるのか?」というデバッグの時間を何時間も節約できます。
- Null の処理。
greeks、last_quote、last_tradeは存在しない場合があります。Noneのままにし、決して捏造しないでください。 - Caller-id。 すべての呼び出しに
caller_idを含めて、transparent-proxy が使用量を帰属できるようにする必要があります。
認証情報
エージェントのセキュア入力フローを通じて MASSIVE_API_KEY を設定してください。キーは存在する場合に sc-proxy によって注入されます。ローカルスクリプトも環境変数から読み取るため、BYOK 構成でも動作します。
信頼できる情報源
- Massive のオプションに関するドキュメント: https://massive.com/docs/rest/options/overview
- 公式のフィールド名に従ってください。上流がコントラクトを変更した場合は、 呼び出し側で取り繕うのではなく、このスキルを更新してください。