期权链
期权不能只靠正股 symbol 下单。程序需要先找到正股 conid,再查询到期日、行权价、看涨看跌方向,最后得到具体期权合约。
官方参考:Client Portal API
| 接口 | 方法 | 用途 |
|---|---|---|
/iserver/secdef/search | POST | 先找到正股或底层合约。 |
/iserver/secdef/strikes | GET | 查询期权行权价。 |
/iserver/secdef/info | GET | 查询具体期权合约信息。 |
查询期权行权价
Section titled “查询期权行权价”查询行权价前,先用合约搜索拿到底层合约的 conid:
curl -k -X POST "https://localhost:5000/v1/api/iserver/secdef/search" ^ -H "Content-Type: application/json" ^ -d "{\"symbol\":\"AAPL\",\"name\":false}"示例结构:
curl -k "https://localhost:5000/v1/api/iserver/secdef/strikes?conid=265598&secType=OPT&month=JUN26&exchange=SMART"参数解释:
| 参数 | 中文说明 |
|---|---|
conid | 底层合约编号,例如 AAPL 正股 conid。 |
secType | 合约类型,期权通常为 OPT。 |
month | 到期月份,格式以接口返回和官方规则为准。 |
exchange | 交易所或路由,常见为 SMART。 |
查询具体期权合约
Section titled “查询具体期权合约”curl -k "https://localhost:5000/v1/api/iserver/secdef/info?conid=265598&secType=OPT&month=JUN26&strike=300&right=C&exchange=SMART"字段解释:
| 字段 | 中文说明 |
|---|---|
strike | 行权价。 |
right | C 表示看涨期权,P 表示看跌期权。 |
maturityDate | 到期日。 |
multiplier | 合约乘数,美股期权常见为 100。 |
localSymbol | IBKR 本地合约代码。 |
conid | 具体期权合约的合约 ID,不能继续使用正股 conid。 |
Python 示例
Section titled “Python 示例”import requests
BASE_URL = "https://localhost:5000/v1/api"
params = { "conid": "265598", "secType": "OPT", "month": "JUN26", "exchange": "SMART",}
response = requests.get( f"{BASE_URL}/iserver/secdef/strikes", params=params, verify=False, # 仅限开发调试;正式环境请配置受信任证书 timeout=10,)response.raise_for_status()print(response.json())| 问题 | 说明 |
|---|---|
| 月份格式不确定 | 先从官方返回和可用合约里确认,不要手写猜测。 |
| 正股 conid 不能直接当期权 conid | 期权有自己的合约编号。 |
| 行权价很多 | 前端应提供筛选和分页,不要一次性堆满页面。 |
| 权限不足 | 期权行情和期权交易权限可能与股票不同。 |