# 期权行情数据说明
# 支持的期权品种
国内期权全品种上市以来的日线,分钟线数据,18 年 10 月以来的 tick 数据;国内期权全品种实时 tick 数据和实时分钟数据。具体如下:
# 1、 上海证券交易所
品种 | 行权方式 | 上市日期 |
---|---|---|
华夏上证 50ETF 期权 | 欧式 | 2015-02-09 |
华泰沪深 300ETF 期权 | 欧式 | 2019-12-23 |
南方中证 500ETF 期权 | 欧式 | 2022-09-19 |
华夏上证科创板 50ETF 期权 | 欧式 | 2023-06-05 |
易方达上证科创板 50ETF 期权 | 欧式 | 2023-06-05 |
# 2、深圳证券交易所
品种 | 行权方式 | 上市日期 |
---|---|---|
嘉实沪深 300ETF 期权 | 欧式 | 2019-12-23 |
易方达创业板 ETF 期权 | 欧式 | 2022-09-19 |
嘉实中证 500ETF 期权 | 欧式 | 2022-09-19 |
易方达深证 100ETF 期权 | 欧式 | 2022-12-12 |
# 3、 上海期货交易所
品种 | 行权方式 | 上市日期 |
---|---|---|
铜期权 | 美式 | 2018-09-21 |
天然橡胶期权 | 美式 | 2019-01-28 |
黄金期权 | 美式 | 2019-12-20 |
铝期权 | 美式 | 2020-08-10 |
锌期权 | 美式 | 2020-08-10 |
原油期权 | 美式 | 2021-06-21 |
螺纹钢期权 | 美式 | 2022-12-26 |
白银期权 | 美式 | 2022-12-26 |
合成橡胶期权 | 美式 | 2023-07-31 |
镍期权 | 美式 | 2024-09-02 |
锡期权 | 美式 | 2024-09-02 |
氧化铝期权 | 美式 | 2024-09-02 |
铅期权 | 美式 | 2024-09-02 |
# 4、郑州商品交易所
品种 | 行权方式 | 上市日期 |
---|---|---|
白糖期权 | 美式 | 2017-04-19 |
棉花期权 | 美式 | 2019-01-28 |
甲醇期权 | 美式 | 2019-12-16 |
PTA 期权 | 美式 | 2019-12-16 |
动力煤期权 | 美式 | 2020-06-30 |
菜籽粕期权 | 美式 | 2021-01-16 |
菜籽油期权 | 美式 | 2022-08-26 |
花生期权 | 美式 | 2022-08-26 |
对二甲苯期权 | 美式 | 2023-09-18 |
烧碱期权 | 美式 | 2023-09-18 |
纯碱期权 | 美式 | 2023-10-20 |
短纤期权 | 美式 | 2023-10-20 |
锰硅期权 | 美式 | 2023-10-20 |
硅铁期权 | 美式 | 2023-10-20 |
尿素期权 | 美式 | 2023-10-20 |
苹果期权 | 美式 | 2023-10-20 |
红枣期权 | 美式 | 2024-06-21 |
玻璃期权 | 美式 | 2024-06-21 |
# 5、大连商品交易所
品种 | 行权方式 | 上市日期 |
---|---|---|
豆粕期权 | 美式 | 2017-03-31 |
玉米期权 | 美式 | 2019-01-28 |
铁矿石期权 | 美式 | 2019-12-09 |
液化石油气期权 | 美式 | 2020-03-31 |
聚乙烯期权 | 美式 | 2020-07-06 |
聚氯乙烯期权 | 美式 | 2020-07-06 |
聚丙烯期权 | 美式 | 2020-07-06 |
棕榈油期权 | 美式 | 2021-06-18 |
黄大豆 1 号期权 | 美式 | 2022-08-08 |
黄大豆 2 号期权 | 美式 | 2022-08-08 |
豆油期权 | 美式 | 2022-08-08 |
乙二醇期权 | 美式 | 2023-05-15 |
苯乙烯期权 | 美式 | 2023-05-15 |
鸡蛋期权 | 美式 | 2024-08-23 |
玉米淀粉期权 | 美式 | 2024-08-23 |
生猪期权 | 美式 | 2024-08-23 |
# 6、中国金融期货交易所
品种 | 行权方式 | 上市日期 |
---|---|---|
沪深 300 股指期权 | 欧式 | 2019-12-23 |
中证 1000 股指期权 | 欧式 | 2022-07-22 |
上证 50 股指期权 | 欧式 | 2022-12-19 |
# 7、上海国际能源交易中心
品种 | 行权方式 | 上市日期 |
---|---|---|
原油期权 | 美式 | 2021-06-21 |
# 8、广州期货交易所
品种 | 行权方式 | 上市日期 |
---|---|---|
工业硅期权 | 美式 | 2022-12-23 |
碳酸锂期权 | 美式 | 2023-07-24 |
# 支持的行情数据频率说明
频率 | 时间范围 | 更新频率 | 支持范围 |
---|---|---|---|
日行情 | 2015-至今 | 交易日盘后更新 | 国内期权全品种 |
分钟行情 | 2015-至今 | 交易日实时更新 | 国内期权全品种 |
tick 行情 | 2018.10-至今 | 交易日实时更新 | 国内期权全品种 |
# 范例
# 1、获取期权日行情
历史日线数据可通过 API-get_price获取,get_price 参数设置请参考该 API
- 查询 PTA 期权 TA2005C5200 和 300ETF 期权在 2019 年 12 月 30 日的日度行情数据
[In] get_price(['TA2005C5200','10002117'],'20191230','20191230',expect_df=True)
[Out]
strike_price limit_down total_turnover volume contract_multiplier low settlement limit_up open_interest close high open prev_settlement
order_book_id date
10002117 2019-12-30 3.6 0.037 8613235.0 1834.0 10000.0 0.4187 0.4929 0.8404 1598.0 0.4929 0.505 0.4282 0.4387
TA2005C5200 2019-12-30 NaN 0.500 939550.0 1634.0 NaN 107.5000 115.0000 349.0000 4926.0 113.5000 124.500 114.0000 97.0000
# 2、获取期权分钟行情
历史分钟数据可通过 API-get_price获取,get_price 参数设置请参考该 API
- 查询 50ETF 期权 10000001 在 2015 年 12 月 12 日分钟行情数据
[In] get_price(['10000001'],'20150212','20150212','1m')
[Out]
total_turnover volume trading_date low open_interest close high open
datetime
2015-02-12 09:31:00 34268.0 16.0 2015-02-12 0.2141 1639.0 0.2143 0.2143 0.2141
2015-02-12 09:32:00 4262.0 2.0 2015-02-12 0.2131 1640.0 0.2131 0.2131 0.2131
2015-02-12 09:33:00 0.0 0.0 2015-02-12 0.2131 1640.0 0.2131 0.2131 0.2131
...
# 3、获取期权 tick 行情
期权合约历史 tick 数据可通过 API-get_price获取,get_price 参数设置请参考该 API
- 查询 CU 期权 CU1906C49000 在 2018 年 11 月 30 日 tick 行情数据
[In] get_price('CU1906C49000','20181130','20181130','tick')
[Out]
trading_date open last high low prev_settlement prev_close volume open_interest total_turnover ... a2_v a3_v a4_v a5_v b1_v b2_v b3_v b4_v b5_v change_rate
datetime
2018-11-29 20:59:00.500 2018-11-30 0.0 2520.0 0.0 0.0 2520.0 2520.0 0.0 42.0 0.0 ... 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0
2018-11-29 21:00:48.000 2018-11-30 0.0 2520.0 0.0 0.0 2520.0 2520.0 0.0 42.0 0.0 ... 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0
2018-11-29 21:00:52.000 2018-11-30 0.0 2520.0 0.0 0.0 2520.0 2520.0 0.0 42.0 0.0 ... 0.0 0.0 0.0 0.0 2.0 0.0 0.0 0.0 0.0 0.0
...
# 4、获取期权实时分钟线
期权实时分钟线可通过API-get_price 与API-current_minute 获取,get_price 与 current_minute 参数设置请参考上述 API
- 查询 300ETF 期权 10002886 与 10002871 最近的实时分钟线
[In] current_minute(['10002886','10002871'])
[Out]
close high low open open_interest total_turnover trading_date volume
order_book_id datetime
10002886 2021-04-15 11:30:00 0.0255 0.0255 0.0255 0.0255 35599 0.00 20210415 0
10002871 2021-04-15 11:30:00 0.0661 0.0668 0.0661 0.0668 5616 1341.17 20210415 2
- 查询股指期权 IO2106C3600 实时分钟线
[In]
get_price('IO2106C3600','20210415','20210415','1m')
[Out]
total_turnover volume trading_date low open_interest close high open
datetime
2021-04-15 09:31:00 0.0 0.0 2021-04-15 1306.8 41.0 1306.8 1306.8 1306.8
2021-04-15 09:32:00 0.0 0.0 2021-04-15 1306.8 41.0 1306.8 1306.8 1306.8
2021-04-15 09:33:00 0.0 0.0 2021-04-15 1306.8 41.0 1306.8 1306.8 1306.8
2021-04-15 09:34:00 0.0 0.0 2021-04-15 1306.8 41.0 1306.8 1306.8 1306.8
2021-04-15 09:35:00 128720.0 1.0 2021-04-15 1287.2 40.0 1287.2 1287.2 1287.2
...
# 5、获取期权实时 tick 数据
期权实时 tick 数据可通过API-get_price、API-current_snapshot、API-get_live_ticks获取,具体参数设置请参考上述 API
- 查询 300ETF 期权 10002886 当前快照数据
[In]
current_snapshot(['10002886'])
[Out]
Tick(ask_vols: [70, 42, 3, 10, 10], asks: [0.0224, 0.0225, 0.0227, 0.0228, 0.023], bid_vols: [50, 10, 32, 10, 20], bids: [0.0221, 0.022, 0.0219, 0.0218, 0.0217], datetime: 2021-04-15 14:10:13.350000, high: 0.0265, iopv: nan, last: 0.0224, limit_down: 0.0001, limit_up: 0.3891, low: 0.0195, num_trades: 0, open: 0.0195, open_interest: 36830, order_book_id: 10002886, prev_close: 0.0182, prev_iopv: nan, prev_settlement: 0.018, total_turnover: 1196785.76, trading_phase_code: T 01, volume: 5109)
- 查询 300ETF 期权 10002875 当天实时 tick 数据
[In]
get_price('10002875','20210415','20210415','tick')
[Out]
trading_date open last high low prev_settlement prev_close volume open_interest total_turnover ... a2_v a3_v a4_v a5_v b1_v b2_v b3_v b4_v b5_v change_rate
datetime
2021-04-15 09:15:00.510 2021-04-15 0.0000 0.2465 0.000 0.0000 0.2465 0.2465 0.0 2418.0 0.00 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.000000
2021-04-15 09:15:01.520 2021-04-15 0.0000 0.2465 0.000 0.0000 0.2465 0.2465 0.0 2418.0 0.00 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.000000
2021-04-15 09:15:02.020 2021-04-15 0.0000 0.2465 0.000 0.0000 0.2465 0.2465 0.0 2418.0 0.00 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.000000
...
- 查询股指期权 IO2106C3600 在 20210415100101-20210415100102 之间的实时 tick 数据
[In]
get_live_ticks('IO2106C3600',start_dt='20210415100101',end_dt='20210415100103')
[Out]
trading_date update_time open last high low limit_up limit_down prev_settlement prev_close ... a1_v a2_v a3_v a4_v a5_v b1_v b2_v b3_v b4_v b5_v
order_book_id datetime
IO2106C3600 2021-04-15 10:01:01.503 2021-04-15 10:01:01.500000 1287.2 1287.2 1287.2 1287.2 1801.6 805.6 1303.6 1306.8 ... 7 0 0 0 0 6 0 0 0 0
2021-04-15 10:01:02.012 2021-04-15 10:01:02 1287.2 1287.2 1287.2 1287.2 1801.6 805.6 1303.6 1306.8 ... 7 0 0 0 0 3 0 0 0 0
2021-04-15 10:01:02.506 2021-04-15 10:01:02.500000 1287.2 1287.2 1287.2 1287.2 1801.6 805.6 1303.6 1306.8 ... 7 0 0 0 0 3 0 0 0 0
# options.get_contracts - 筛选期权合约
options.get_contracts(underlying, option_type=None, maturity=None, strike=None, trading_date=None)
# 参数
参数 | 类型 | 说明 |
---|---|---|
underlying | str | 期权标的。可以填写 'M' 代表期货品种的字母;也可填写'M1901' 这种具体合约代码。必须填写,只支持单一品种或合约代码输入 |
option_type | str | 'C' 代表认购期权;'P' 代表认沽期权合约。默认返回全部类型 |
maturity | str OR int | 到期月份。例如 1811 代表期权 18 年 11 月到期(而不是标的期货的到期时间)。默认返回全部到期月份 |
strike | float | 行权价。查询时向左靠档匹配(例如,当前最高行权价是 1000,则输入大于 1000 的行权价都会向左靠档至 1000)。默认返回全部行权价 |
trading_date | str OR int | 查询日期。默认返回全部数据 |
# 返回
返回符合条件的期权 order_book_id list;如果无符合条件期权则返回[] 空 list
# 范例
- 查询铜期权 2019 年 2 月到期行权价是 52000 的期权
[In] options.get_contracts(underlying='CU', maturity='1902', strike=52000)
[Out]
['CU1903P52000', 'CU1903C52000']
- 查询 50ETF 期权 2016-11-29 这一天行权价是 2.006 的期权合约
[In] options.get_contracts(underlying='510050.XSHG', strike=2.006, trading_date='20161129')
[Out]
['10000615', '10000620']
# options.get_greeks - 获取期权风险指标
options.get_greeks(order_book_ids, start_date, end_date,fields=None,model='implied_forward',price_type='close',frequency='1d')
# 参数
参数 | 类型 | 注释 |
---|---|---|
order_book_ids | str | 合约代码 |
start_date | str | datetime.date, datetime.datetime, pandasTimestamp 查询的开始日期,必须填写 |
end_date | str | datetime.date, datetime.datetime, pandasTimestamp 查询的结束日期 |
model | str | 计算方法,默认为 'implied_forward'。针对 BS 模型中的标的物远期利率,提供两种计算方法:(1)'last'-以国债同期限收益率作为无风险利率,标的物分红定为 0 计算远期利率;(2)'implied_forward'-基于期权的风险平价关系(put-call parity),推算市场数据隐含的标的物远期利率 |
fields | str OR str list | 查询字段,有效值见下方 |
price_type | str | 计算使用价格,默认为'close' ,使用期权收盘价计算衍生指标。可选'settlement', 使用期权结算价计算衍生指标 |
frequency | str | 数据的频率。 默认为'1d'。 1m - 分钟级别(仅支持股指期货,price_type必须为'close') 1d - 日级别 |
# 返回
pandas DataFrame
字段 | 说明 |
---|---|
iv | 从场内期权价格反推对应的标的物收益波动率(基于 BS 模型计算) |
Delta | 期权价格对于标的物价格变化的一阶敏感度(基于 BS 模型计算) |
Gamma | 期权价格对于标的物价格变化的二阶敏感度(基于 BS 模型计算) |
Vega | 期权价格对于隐含波动率的一阶敏感度(基于 BS 模型计算) |
Theta | 期权价格对于合约待偿期变化的一阶敏感度,为每日历年的 Theta(基于 BS 模型计算) |
Rho | 期权价格对于无风险利率变化的一阶敏感度(基于 BS 模型计算) |
补充说明 1
米筐希腊字母均为小数形式。例如,期权 vega=12,当波动率增加 1%时,期权价格会相应增加大约 0.01 * 12 = 0.12。补充说明 2
在使用 BS 模型计算隐含波动率和希腊字母时,需要给定 5 个参数:
行权价(K)、标的物价格(S)、待偿期( t)、期权价格( C),这 4 个参数可从场内期权的合约基础信息或行情数据中获得;
无风险利率和标的物预期分红率的差值(r-q),该参数无法从合约基础信息或行情数据获得
上述 r 和 q 的取值决定了隐含波动率和希腊字母的计算结果。目前米筐提供两种计算方案:
(1)r 取值为同期限国债收益率,q 取值为 0。该方案为业界常见方案,计算结果也和交易所计算结果相近。
(2) r-q 基于风险平价等式和远期价格定义算得。该方案保证参数取值符合期权风险平价等式,具有更好的理论意义和模型稳定性。具体计算如下:
认购-认沽期权平价公式如下:其中 C 和 P 分别为认购期权和认沽期权价格;F 和 K 分别为标的物远期价格和行权价。再考虑远期价格定义:
其中 S 为标的物价格。联立上述两式可得隐含远期利率:
# 范例
- 查询一个期权的风险指标
In [13]: rq.options.get_greeks('10001739','20190601','20190605',fields=None,model='implied_forward')
Out[13]:
iv delta gamma vega theta rho
order_book_id trading_date
10001739 2019-06-03 0.220510 -0.754164 2.076502 0.216619 -0.387216 -0.138543
2019-06-04 0.231736 -0.778680 1.918539 0.198550 -0.357089 -0.136513
2019-06-05 0.228281 -0.792963 1.920322 0.186324 -0.321590 -0.132373
- 查询一组期权的风险指标
In [12]: rq.options.get_greeks(['10001961','10001979'],'20191101','20191105',fields=None,model='implied_forward')
Out[12]:
iv delta gamma vega theta rho
order_book_id trading_date
10001961 2019-11-01 1.660567e-01 0.976153 0.415296 0.045758 -0.076153 0.194061
2019-11-04 1.190082e-01 0.998967 0.037848 0.002673 0.004237 0.176264
2019-11-05 4.612581e-08 1.000000 0.000000 0.000000 -0.014498 0.168714
10001979 2019-11-01 1.905027e-01 0.981533 0.291578 0.036856 -0.071821 0.191683
2019-11-04 1.716458e-01 0.994844 0.112385 0.011449 -0.008984 0.172303
2019-11-05 1.435756e-09 1.000000 0.000000 0.000000 -0.014239 0.165702
查询一个期权的分钟级别风险指标
In [12]: rqdatac.options.get_greeks('IO2412C2800',20240401,20240506,frequency='1m')
Out[12]:
iv delta gamma vega theta rho
order_book_id datetime
IO2412C2800 2024-04-01 09:31:00 1.304169e-01 0.980268 0.000121 144.678177 58.190402 -2002.412297
2024-04-01 09:32:00 1.248750e-01 0.984059 0.000106 120.727735 65.303168 -2014.764372
2024-04-01 09:33:00 1.206514e-01 0.986700 0.000093 103.369229 70.040171 -2023.243489
2024-04-01 09:34:00 1.197785e-01 0.987217 0.000091 99.896613 70.949117 -2024.893811
2024-04-01 09:35:00 7.200824e-08 1.000000 0.000000 0.000000 79.922641 -2058.613823
... ... ... ... ... ... ...
2024-05-06 14:56:00 2.859633e-08 1.000000 0.000000 0.000000 30.778390 -1761.009874
2024-05-06 14:57:00 1.491064e-08 1.000000 0.000000 0.000000 31.170894 -1761.161984
2024-05-06 14:58:00 6.724471e-08 1.000000 0.000000 0.000000 31.407937 -1761.253841
2024-05-06 14:59:00 6.724471e-08 1.000000 0.000000 0.000000 31.407937 -1761.253841
2024-05-06 15:00:00 2.208110e-08 1.000000 0.000000 0.000000 29.153061 -1760.379859
[5040 rows x 6 columns]
# options.get_contract_property - 获取期权合约属性(时间序列)
options.get_contract_property(order_book_ids, start_date=None, end_date=None, fields=None, market='cn')
获取期权每日合约属性数据,仅支持交易所 ETF 期权
注: 和商品期权不同,ETF 期权执行价、 合约乘数等数据存在因标的分进行调整的情况,详情请参考 ETF 期权合约条款,通过上述 API 可以追踪到它们的变动
# 参数
参数 | 类型 | 说明 |
---|---|---|
order_book_ids | str or str_list | 合约代码 |
start_date | str, datetime.date, datetime.datetime, pandasTimestamp | 开始日期 |
end_date | str, datetime.date, datetime.datetime, pandasTimestamp | 结束日期 |
fields | str OR str list | 字段名称 |
market | str | 默认是中国内地市场('cn') 。可选'cn' - 中国内地市场; |
# 返回
返回 DataFrame
字段 | 说明 |
---|---|
order_book_id | 合约代码 |
trading_date | 交易日 |
product_name | 期权字母简称 |
symbol | 合约简称 |
contract_multiplier | 合约乘数 |
strike_price | 期权行权价 |
# 范例
- 查询 ETF 期权 10002752 20210115 到 20210118 之间的合约属性数据
[In] options.get_contract_property(order_book_ids='10002752', start_date='20210115',end_date='20210118')
[Out]
contract_multiplier product_name strike_price symbol
order_book_id trading_date
10002752 2021-01-15 10000.0 510300P2103M04400 4.400 300ETF沽3月4400
2021-01-18 10132.0 510300P2103A04400 4.343 XD300ETF沽3月4343A
- 查询 ETF 期权 90000493 和 10002752 在 20210115 -20210118 之间的执行价格数据
[In] options.get_contract_property(order_book_ids=['90000493','10002752'], start_date='20210115',end_date='20210118',fields=['strike_price'])
[Out]
strike_price
order_book_id trading_date
10002752 2021-01-15 4.400
2021-01-18 4.343
90000493 2021-01-15 4.300
2021-01-18 4.300
# options.get_dominant_month - 获取期权主力月份
options.get_dominant_month(underlying_symbol, start_date=None, end_date=None, rule=0)
获取商品期权一段时间的主力月份列表。(目前仅支持商品期权)
当同品种其他月份的持仓量与成交量在收盘后超过当前主力月份时,从第二个交易日开始进行主力月份的切换。日内不会进行主力月份的切换。
# 参数
参数 | 类型 | 说明 |
---|---|---|
underlying_symbol | str or str_list | 期权标的代码,例’CU‘ |
start_date | str, datetime.date, datetime.datetime, pandasTimestamp | 开始日期 |
end_date | str, datetime.date, datetime.datetime, pandasTimestamp | 结束日期 |
rule | int | 默认 rule=0,每个月份只能做一次主力月份,不会重复出现。 当 rule=1 时,主力月份的选取只考虑持仓量与成交量条件。 |
# 返回
返回 Pandas.Series - 主力月份列表
# 范例
- 查询 CU 期权 2023-07-01 到 2023-07-26 之间的主力月份数据
[In] rqdatac.options.get_dominant_month('CU',20230701,20230726)
[Out]
date
20230703 CU2308
20230704 CU2308
20230705 CU2308
20230706 CU2308
20230707 CU2308
20230710 CU2308
20230711 CU2308
20230712 CU2308
20230713 CU2308
20230714 CU2308
20230717 CU2308
20230718 CU2308
20230719 CU2308
20230720 CU2308
20230721 CU2308
20230724 CU2308
20230725 CU2308
20230726 CU2308
Name: dominant, dtype: object