Skip to content

期权行情数据说明

可获取国内期权合约的日行情、分钟行情、tick 行情数据,具体调用方式请参考 API-get_price

期权相关数据约定

合约代码规则

合约代码用以唯一标识当前合约,针对商品期权,不同交易所的命名规则有所不同。简便起见,米筐提供的期权数据统一合约规则为【标的合约代码(大写)】+【四位到期年月】+【认购认沽类型(大写)】+【行权价格水平】的方式进行:

交易所原始合约代码米筐合约代码变动规则
上期所cu1901C46000CU1901C46000标的合约代码大写
郑商所SR901C4400SR1901C4400到期月份改为 4 位
大商所m1901-C-2500M1901C2500标的合约代码大写,去掉连字符

上证 50ETF 期权标的分红问题

与商品期权不同,上证 50ETF 期权存在行权价以及合约乘数变动的情况(因标的 50ETF 分红而进行的调整,详情请参考上证有关合约条款)故 50ETF 期权全部以数字作为合约代码,例如:合约代码10000615对应的合约简称为510050C1612M02050,代表 2016 年 12 月到期的行权价是 2.05 元的认购期权。但由于 50ETF 于当年 11 月 29 日分红,交易所对合约进行了调整 —— 合约行权价由 2.05 变为了 2.006,合约乘数由 10000 变为了 10220,合约简称变为了510050C1612A02050,但合约代码并没有变。由于存在上述情况,您就需要通过10000615这一合约代码来获取这一期权合约的历史数据了。并且我们在日线中加入了行权价与合约乘数信息,让您能够追踪它们的变动。

支持的期权品种

国内期权全品种上市以来的日线,分钟线数据,2018 年 10 月以来的 tick 数据;国内期权全品种实时 tick 数据和实时分钟数据。具体如下:

交易所品种行权方式上市日期交易时间
上交所50ETF 期权欧式2015-02-0909:31 至 11:30, 13:01 至 15:00
上交所300ETF 期权欧式2019-12-2309:31 至 11:30, 13:01 至 15:00
上交所500ETF 期权欧式2022-09-1909:31 至 11:30, 13:01 至 15:00
上交所科创 50 期权欧式2023-06-0509:31 至 11:30, 13:01 至 15:00
上交所科创板 50 期权欧式2023-06-0509:31 至 11:30, 13:01 至 15:00
上期所CU 铜期权欧式2018-09-2121:01 至 01:00, 09:01 至 10:15, 10:31 至 11:30, 13:31 至 15:00
上期所RU 天然橡胶期权美式2019-01-2821:01 至 23:00, 09:01 至 10:15, 10:31 至 11:30, 13:31 至 15:00
上期所AU 黄金期权欧式2019-12-2021:01 至 02:30, 09:01 至 10:15, 10:31 至 11:30, 13:31 至 15:00
上期所ZN 锌期权欧式2020-08-1021:01 至 01:00, 09:01 至 10:15, 10:31 至 11:30, 13:31 至 15:00
上期所AL 铝期权欧式2020-08-1021:01 至 01:00, 09:01 至 10:15, 10:31 至 11:30, 13:31 至 15:00
上期所AG 白银期权美式2022-12-2621:01 至 02:30, 09:01 至 10:15, 10:31 至 11:30, 13:31 至 15:00
上期所RB 螺纹钢期权美式2022-12-2621:01 至 23:00, 09:01 至 10:15, 10:31 至 11:30, 13:31 至 15:00
上期所BR 丁二烯橡胶期权美式2023-07-3121:01 至 23:00, 09:01 至 10:15, 10:31 至 11:30, 13:31 至 15:00
上海能源SC 原油期权美式2021-06-2121:01 至 02:30, 09:01 至 10:15, 10:31 至 11:30, 13:31 至 15:00
中金所IO 沪深 300 股指期权欧式2019-12-2309:31 至 11:30, 13:01 至 15:00
中金所MO 中证 1000 股指期权欧式2022-07-2209:31 至 11:30, 13:01 至 15:00
中金所HO 上证 50 股指期权欧式2022-12-1909:31 至 11:30, 13:01 至 15:00
大商所M 豆粕期权美式2017-03-3121:01 至 23:30, 09:01 至 10:15, 10:31 至 11:30, 13:31 至 15:00
大商所C 玉米期权美式2019-01-2821:01 至 23:00, 09:01 至 10:15, 10:31 至 11:30, 13:31 至 15:00
大商所I 铁矿石期权美式2019-12-0921:01 至 23:30, 09:01 至 10:15, 10:31 至 11:30, 13:31 至 15:00
大商所PG 液化石油气期权美式2020-03-3121:01 至 23:00, 09:01 至 10:15, 10:31 至 11:30, 13:31 至 15:00
大商所V 聚氯乙烯期权美式2020-07-0621:01 至 23:00, 09:01 至 10:15, 10:31 至 11:30, 13:31 至 15:00
大商所L 线型低密度聚乙烯期权美式2020-07-0621:01 至 23:00, 09:01 至 10:15, 10:31 至 11:30, 13:31 至 15:00
大商所PP 聚丙烯期权美式2020-07-0621:01 至 23:00, 09:01 至 10:15, 10:31 至 11:30, 13:31 至 15:00
大商所P 棕榈油期权美式2021-06-1821:01 至 23:00, 09:01 至 10:15, 10:31 至 11:30, 13:31 至 15:00
大商所B 黄大豆期权美式2022-08-0821:01 至 23:00, 09:01 至 10:15, 10:31 至 11:30, 13:31 至 15:00
大商所Y 豆油期权美式2022-08-0821:01 至 23:00, 09:01 至 10:15, 10:31 至 11:30, 13:31 至 15:00
大商所A 黄大豆期权美式2022-08-0821:01 至 23:00, 09:01 至 10:15, 10:31 至 11:30, 13:31 至 15:00
大商所EB 苯乙烯期权美式2023-05-1521:01 至 23:00, 09:01 至 10:15, 10:31 至 11:30, 13:31 至 15:00
大商所EG 乙二醇期权美式2023-05-1521:01 至 23:00, 09:01 至 10:15, 10:31 至 11:30, 13:31 至 15:00
广期所SI 工业硅期权美式2022-12-2309:01 至 10:15, 10:31 至 11:30, 13:31 至 15:00
广期所LC 碳酸锂期权美式2023-07-2409:01 至 10:15, 10:31 至 11:30, 13:31 至 15:00
深交所300ETF 期权欧式2019-12-2309:31 至 11:30, 13:01 至 15:00
深交所创业板 ETF 期权欧式2022-09-1909:31 至 11:30, 13:01 至 15:00
深交所中证 500ETF 期权欧式2022-09-1909:31 至 11:30, 13:01 至 15:00
深交所深证 1000ETF 期权欧式2022-12-1209:31 至 11:30, 13:01 至 15:00
郑商所SR 白糖期权美式2017-04-1921:01 至 23:30, 09:01 至 10:15, 10:31 至 11:30, 13:31 至 15:00
郑商所CF 棉花期权美式2019-01-2821:01 至 23:30, 09:01 至 10:15, 10:31 至 11:30, 13:31 至 15:00
郑商所MA 甲醇期权美式2019-12-1621:01 至 23:30, 09:01 至 10:15, 10:31 至 11:30, 13:31 至 15:00
郑商所TA 精对苯二甲酸期权美式2019-12-1621:01 至 23:30, 09:01 至 10:15, 10:31 至 11:30, 13:31 至 15:00
郑商所RM 菜粕期权美式2020-01-1621:01 至 23:30, 09:01 至 10:15, 10:31 至 11:30, 13:31 至 15:00
郑商所ZC 煤期权美式2020-06-3021:01 至 23:30, 09:01 至 10:15, 10:31 至 11:30, 13:31 至 15:00
郑商所OI 菜籽油期权美式2022-08-2621:01 至 23:00, 09:01 至 10:15, 10:31 至 11:30, 13:31 至 15:00
郑商所PK 花生仁期权美式2022-08-2609:01 至 10:15, 10:31 至 11:30, 13:31 至 15:00
郑商所PX 对二甲苯期权美式2023-09-1821:01 至 23:00, 09:01 至 10:15, 10:31 至 11:30, 13:31 至 15:00
郑商所SH 烧碱期权美式2023-09-1821:01 至 23:00, 09:01 至 10:15, 10:31 至 11:30, 13:31 至 15:00
郑商所SA 纯碱期权美式2023-10-2021:01 至 23:00, 09:01 至 10:15, 10:31 至 11:30, 13:31 至 15:00
郑商所PF 短纤期权美式2023-10-2021:01 至 23:00, 09:01 至 10:15, 10:31 至 11:30, 13:31 至 15:00
郑商所AP 苹果期权美式2023-10-2009:01 至 10:15, 10:31 至 11:30, 13:31 至 15:00
郑商所SM 锰硅期权美式2023-10-2009:01 至 10:15, 10:31 至 11:30, 13:31 至 15:00
郑商所SF 硅铁期权美式2023-10-2009:01 至 10:15, 10:31 至 11:30, 13:31 至 15:00
郑商所UR 尿素期权美式2023-10-2009:01 至 10:15, 10:31 至 11:30, 13:31 至 15:00

options.get_contracts - 筛选期权合约

python
options.get_contracts(underlying, option_type=None, maturity=None, strike=None, trading_date=None)

参数

参数类型说明
underlyingstr必填参数,期权标的。可以填写 'M' 代表期货品种的字母;也可填写'M1901' 这种具体合约代码。只支持单一品种或合约代码输入
option_typestr'C' 代表认购期权;'P' 代表认沽期权合约。默认返回全部类型
maturitystr OR int到期月份。例如 1811 代表期权 18 年 11 月到期(而不是标的期货的到期时间)。默认返回全部到期月份
strikefloat行权价。查询时向左靠档匹配(例如,当前最高行权价是 1000,则输入大于 1000 的行权价都会向左靠档至 1000)。默认返回全部行权价
trading_datestr OR int查询日期。默认返回全部数据

返回

返回符合条件的期权 order_book_id list;如果无符合条件期权则返回[] 空 list

范例

  • 查询铜期权 2019 年 2 月到期行权价是 52000 的期权
python
[In] options.get_contracts(underlying='CU', maturity='1902', strike=52000)
[Out]
['CU1903P52000', 'CU1903C52000']
  • 查询 50ETF 期权 2016-11-29 这一天行权价是 2.006 的期权合约
python
[In] options.get_contracts(underlying='510050.XSHG', strike=2.006, trading_date='20161129')
[Out]
['10000615', '10000620']

options.get_greeks - 获取期权风险指标

python
options.get_greeks(order_book_ids, start_date, end_date=None,fields=None,model='implied_forward',price_type='close',frequency='1d')

参数

参数类型注释
order_book_idsstr必填参数,合约代码
start_datestr, datetime.date, datetime.datetime, pandasTimestamp必填参数,查询的开始日期
end_datestr, datetime.date, datetime.datetime, pandasTimestamp查询的结束日期,默认为当天
modelstr计算方法,默认为 'implied_forward'。
针对 BS 模型中的标的物远期利率,提供两种计算方法:
last - 以国债同期限收益率作为无风险利率,标的物分红定为 0 计算远期利率;
implied_forward - 基于期权的风险平价关系(put-call parity),推算市场数据隐含的标的物远期利率
fieldsstr OR str list查询字段,可选字段见下方返回,默认返回所有字段
price_typestr计算使用价格,默认为'close' 。
close - 使用期权收盘价计算衍生指标。
settlement - 使用期权结算价计算衍生指标
frequencystr数据的频率。 默认为'1d'。
1m - 分钟级别(仅支持股指期货,且 price_type 需为'close'
1d - 日级别

返回

pandas DataFrame

字段类型说明
ivfloat从场内期权价格反推对应的标的物收益波动率(基于 BS 模型计算)
Deltafloat期权价格对于标的物价格变化的一阶敏感度(基于 BS 模型计算)
Gammafloat期权价格对于标的物价格变化的二阶敏感度(基于 BS 模型计算)
Vegafloat期权价格对于隐含波动率的一阶敏感度(基于 BS 模型计算)
Thetafloat期权价格对于合约待偿期变化的一阶敏感度,为每日历年的 Theta(基于 BS 模型计算)
Rhofloat期权价格对于无风险利率变化的一阶敏感度(基于 BS 模型计算)

计算逻辑说明

  • 米筐希腊字母均为小数形式。例如,期权 vega=12,当波动率增加 1%时,期权价格会相应增加大约 0.01 * 12 = 0.12。

  • 在使用 BS 模型计算隐含波动率和希腊字母时,需要给定 5 个参数:
    行权价(K)、标的物价格(S)、待偿期( t)、期权价格( C),这 4 个参数可从场内期权的合约基础信息或行情数据中获得;
    无风险利率和标的物预期分红率的差值(r-q),该参数无法从合约基础信息或行情数据获得。上述 r 和 q 的取值决定了隐含波动率和希腊字母的计算结果。
    目前米筐提供两种计算方案:
    (1)r 取值为同期限国债收益率,q 取值为 0。该方案为业界常见方案,计算结果也和交易所计算结果相近。
    (2) r-q 基于风险平价等式和远期价格定义算得。该方案保证参数取值符合期权风险平价等式,具有更好的理论意义和模型稳定性。具体计算如下:


    认购-认沽期权平价公式如下:

    (CP)/(FK)=e(rq)t

    其中 C 和 P 分别为认购期权和认沽期权价格;F 和 K 分别为标的物远期价格和行权价。再考虑远期价格定义:

    S/F=e(rq)t

    其中 S 为标的物价格。联立上述两式可得隐含远期利率:

    rq=ln(K/(S(CP)))/t

范例

  • 查询一个期权的风险指标
In []: options.get_greeks('10001739','20190601','20190605',fields=None,model='implied_forward')
Out[]:
                                  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 []: options.get_greeks(['10001961','10001979'],'20191101','20191105',fields=None,model='last')
Out[]:
                                      iv	        delta	  gamma	      vega	      theta	      rho
order_book_id	trading_date
10001961	    2019-11-01	       1.910980e-01	  0.956014	0.585148	0.074194	-0.100978	0.189683
                2019-11-04	       3.765004e-08	  0.998995	0.000000	0.000000	-0.000415	0.176242
                2019-11-05	       1.811132e-01	  0.985548	0.251959	0.026194	-0.038324	0.166043
10001979	    2019-11-01	       2.210841e-01	  0.962800	0.439580	0.064483	-0.100664	0.187611
                2019-11-04	       2.321494e-09	  0.998995	0.000000	0.000000	0.000466	0.173095
                2019-11-05	       2.196304e-01	  0.983912	0.229277	0.028905	-0.050766	0.162713
  • 查询 IO 期权的分钟级别风险指标
In [12]: 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 - 获取 ETF 期权合约属性(时间序列)

python
options.get_contract_property(order_book_ids, start_date=None, end_date=None, fields=None, market='cn')

获取期权每日合约属性数据,仅支持交易所 ETF 期权。和商品期权不同,ETF 期权执行价、 合约乘数等数据存在因标的分进行调整的情况,详情请参考 ETF 期权合约条款,通过该 API 可以追踪到它们的变动

参数

参数类型说明
order_book_idsstr or str_list必填参数,合约代码
start_datestr, datetime.date, datetime.datetime, pandasTimestamp开始日期
end_datestr, datetime.date, datetime.datetime, pandasTimestamp结束日期,start_date ,end_date 不传参数时默认返回所有数据
fieldsstr OR str list查询字段,可选字段见下方返回,默认返回所有字段
marketstr默认是中国内地市场('cn') 。可选'cn' - 中国内地市场;

返回

返回 DataFrame

字段说明说明
order_book_idstr合约代码
trading_datepandasTimestamp交易日
product_namestr期权字母简称
symbolstr合约简称
contract_multiplierfloat合约乘数
strike_pricefloat期权行权价

范例

  • 查询 ETF 期权 10002752 20210115 到 20210118 之间的合约属性数据
python
[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 之间的执行价格数据
python
[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 - 获取期权主力月份

python
options.get_dominant_month(underlying_symbol, start_date=None, end_date=None, rule=0, rank=1)

获取商品期权一段时间的主力月份列表。(目前仅支持商品期权)
当同品种其他月份的持仓量与成交量在收盘后超过当前主力月份时,从第二个交易日开始进行主力月份的切换。日内不会进行主力月份的切换。

参数

参数类型说明
underlying_symbolstr or str_list必填参数,期权标的代码,例'CU'
start_datestr, datetime.date, datetime.datetime, pandasTimestamp开始日期
end_datestr, datetime.date, datetime.datetime, pandasTimestamp结束日期,start_date ,end_date 不传参数时默认返回所有数据
ruleint默认 rule=0,每个月份只能做一次主力月份,不会重复出现。
当 rule=1 时,主力月份的选取只考虑持仓量与成交量条件。
rankint默认 rank=1。
1-主力月份,2-次主力月份

返回

返回 Pandas.Series - 主力月份列表

范例

  • 查询 CU 期权 2023-07-01 到 2023-07-26 之间的主力月份数据
python
[In] 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

options.get_indicators - 获取期权衍生指标

python
options.get_indicators(underlying_symbol,maturity,start_date=None,end_date=None,fileds=None)

参数

参数类型说明
underlying_symbolstr or str list必填参数,期权标的代码,例 'CU'
maturitystr or int必填参数,到期月份,例 2503 代表期权 25 年 3 月到期
start_datestr, datetime.date, datetime.datetime, pandasTimestamp开始日期
end_datestr, datetime.date, datetime.datetime, pandasTimestamp结束日期,start_date ,end_date 不传参数时默认返回最近三个月的数据
fieldsstr or str list查询字段,可选字段见下方返回,默认返回所有字段

返回

Pandas.DataFrame

字段类型说明
underlying_symbolstr期权标的代码
datepandasTimestamp日期
AM_PCRfloat成交额 PCR
OI_PCRfloat持仓量 PCR
VL_PCRfloat成交量 PCR
skewfloat期权偏度

计算逻辑说明

  • PCR 计算公式
    成交额 PCR(AM_PCR) = 每日看跌期权成交额 ÷ 每日看涨期权成交额
    持仓量 PCR(OI_PCR) = 每日看跌期权持仓量 ÷ 每日看涨期权持仓量
    成交量 PCR(VL_PCR) = 每日看跌期权成交量 ÷ 每日看涨期权成交量

  • 期权偏度计算公式

    skew=(Vol(0.25delta)Vol(0.25delta))/Vol(0.25delta)

    释:(( delta 为 0.25 的认购合约 IV ) - ( delta 为 -0.25 的认沽合约 IV )) / ( delta 为 -0.25 的认沽合约 IV )
    此处 IV 的计算可参考 API-get_greeks

范例

  • 查询 2502 到期的 50ETF 期权在 20250101-20250103 之间的衍生指标
python
[In] options.get_indicators('510050.XSHG','2502','20250101', '20250103')
[Out]
                        AM_PCR   OI_PCR  VL_PCR  skew
underlying_symbol   date
510050.XSHG 2025-01-02 1.132778 0.919209 1.036258 0.061745
              2025-01-03   1.171061 0.961585   0.920874   0.01549
  • 查询 2502 到期的 CU 期权在 20250101-20250103 之间的成交量 PCR 和 skew
python
[In] options.get_indicators('CU','2502','20250101', '20250103',fields=['VL_PCR','skew'])
[Out]
                VL_PCR skew
underlying_symbol date
CU 2025-01-02 1.231409 -0.066800
      2025-01-03 1.224983 -0.056944