期权链 API 现在会在开盘期间持续刷新当前交易日。自 2026 年 10 月 1 日起,美股交易时段内不传 date 的请求,返回的期权链约每 90 秒刷新一次:有成交的合约会更新报价、Greeks、IV、成交量、持仓量与最新成交价。请求与响应格式均未变化,现有集成无需改代码即可拿到更新鲜的数据。
盘中期权链速览
-
刷新频率: 约每 90 秒 - 当前交易日,美股交易时段
-
刷新范围: 自上次更新以来有成交的合约
-
新鲜度标记: meta.as_of(UTC)
-
建议轮询: 窄查询 1–2 分钟 · 完整链 2–5 分钟
哪些会刷新,哪些不会
每次更新会重建有成交的合约。没有新成交的合约保留原来的期权链数值,因此一次更新不会刷新整张表上的每个 Greek。响应仍包含所有符合筛选条件的挂牌合约,包括尚未成交的合约。
meta.as_of 是响应中所含数据的最新更新时间,表示整条链的新鲜程度,并不代表每个合约都在那一刻刷新过。meta.trading_date 标明返回的是哪个交易日。
新交易日只有在完整期权链就绪后才会成为默认值。在此之前,不传 date 的请求会返回上一个交易日,并在 meta.trading_date 中注明。传入过去 date 的请求仍返回该交易日的固定快照。
按固定节奏轮询,按 as_of 处理
更新约每 90 秒一次,轮询更快大多只会拿到相同的数据。建议同一客户的所有 API 密钥合计将持续速率控制在每秒 1 个请求以内,短时并发请求控制在 10 个以内。当前限流属于尽力保护,完整政策见 API 限流说明;收到 429 时应等待 Retry-After 指定的时间。窄查询(单一到期日或行权价区间)建议每 1–2 分钟轮询一次,完整链每 2–5 分钟一次,并且只在 meta.as_of 变化时才执行新的处理:
import time
import requests
URL = "https://www.optiondata.io/api/option-chain"
HEADERS = {"Authorization": "Bearer YOUR_API_KEY"}
QUERY = {"symbol": "AAPL", "put_call": "CALL"} # 可再用 expiration_date 或 strike_min/strike_max 缩小范围
last_as_of = None
while True:
response = requests.post(URL, headers=HEADERS, json=QUERY, timeout=30)
if response.status_code == 429:
time.sleep(int(response.headers.get("Retry-After", "60")))
continue
response.raise_for_status()
body = response.json()
as_of = body["meta"]["as_of"]
if as_of != last_as_of:
last_as_of = as_of
print(body["meta"]["trading_date"], as_of, len(body["data"]), "contracts")
time.sleep(90)
适用场景
- 盘中 IV 与偏斜监控:在交易时段内跟踪各行权价隐含波动率的变化,无需等到收盘。
- 结合报价的提醒:对实时成交流触发提醒的合约,同时查看买卖价与持仓量。
- 更新鲜的定价输入:无需维持长连接,就能把当前的 Greeks 与报价接入风控或定价模型。
选对工具
需要每一笔实时成交,请用实时 WebSocket。需要预计算的 GEX、墙位、Gamma Flip 与 Max Pain,请用市场结构,其盘中 GEX 摘要约每五分钟刷新一次。期权链则是介于两者之间的合约级行情表。
完整的接口说明(全部字段与筛选参数)见期权链 API 参考。如需了解接口概况,请阅读期权链 API:一次 POST 获取完整期权链。
用 OptionData API 运行。 注册,通过支持页面的二维码联系方式申请完成资格审核所需的邀请码,然后在准备好时主动激活 14 天免卡试用。符合条件的试用用户可从销售处获取优惠码,首年享受 50% 优惠;请联系销售获取优惠码,然后在试用结束前于账单页面输入。一个密钥覆盖实时 WebSocket、历史 SQL、期权链 REST 与市场结构。
Run this with the OptionData API — one Pro key covers Realtime WebSocket, Historical SQL, Option Chain, and Market Structure.
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/x-www-form-urlencoded" \
--data-urlencode "sql=SELECT * FROM RawOptionTrades WHERE date = (SELECT max(date) FROM RawOptionTrades WHERE symbol = 'AAPL' AND date >= today() - 7) AND symbol IN ('SPY', 'AAPL') ORDER BY time DESC LIMIT 10"