Skip to content

期货行情数据说明

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

郑商所相关数据约定

由于郑商所本身的一些问题,我们在数据上做了一定的处理,规则如下:

  • 合约代码:郑商所的合约代码我们统一做了补齐,例如 CF701 补齐为 CF1701 以避免 2007 年的合约与 2017 年的合约无法分辨的问题。

  • 成交额及成交量:由于郑商所的历史数据中 tick 成交额存在错误(该累积量存在随时间递减的情况),导致整个数据不可信。所以合成过程中若分钟成交额TotalTurnover出现负数,则将该分钟字段设置为 0,但分钟成交量TotalVolumeTrade正常。

  • 日线合成:日线数据由当日 tick 数据合成,未包含盘后交易的成交数据(该数据交易所未披露完全)。

  • 品种代码切换:一些商品期货交易品种存在合约代码修改的问题。因为变动前后它们的合约乘数产生了变化,所以目前我们将修改前后的期货合约当做两种合约来处理。而实际上,它们交易的又是同一品种,价格水平具备连续性。所以在主力连续与指数连续合约的处理上,我们做了区分处理。举例来说,强麦的主力连续合约我们有“强麦主力连续(旧)”和“强麦主力连续”,分别对应'WS88'和'WH88'的合约代码。一些变动的期货代码列举如下:

品种品种代码(变动前)品种代码(变动后)
强麦WS(1305 及以前)WH
普麦WT (1211 及以前)PM
菜籽油RO(1305 及以前)OI
早籼稻ER(1305 及以前)RI
甲醇ME(1505 及以前)MA
动力煤TC(1604 及以前)ZC

连续合约

需要注意,由于期货合约存续的特殊性,针对每一品种的期货合约,系统中都增加了主力、次主力连续合约以及指数连续合约两个人工合成的合约来满足使用需求。

  • 主力连续合约:合约首次上市时,以当日收盘同品种持仓量最大者作为从第二个交易日开始的主力合约。当同品种其他合约持仓量在收盘后超过当前主力合约 1.1 倍时,从第二个交易日开始进行主力合约的切换。 日内不会进行主力合约的切换。主力连续合约是由该品种期货不同时期主力合约接续而成,代码以 88、888、889 结尾。

    • 例如 IF88、IF888、IF889:
      • IF88 为合约量价数据的简单拼接,未做平滑处理
      • IF888 为对价格进行了"前复权平滑"处理,处理规则如下:以主力合约切换前一天(T-1 日)新、旧两个主力合约收盘价做差,之后将 T-1 日及以前的主力连续合约的所有价格水平整体加上或减去该价差,以"整体抬升"或"整体下降"主力合约的价格水平,成交量、持仓量均不作调整,成交额统一设置为 0.
      • IF889 为对价格进行“后复权平滑”处理,处理规则如下:以主力合约切换当天(T 日)旧、新两个主力合约开盘价做差, 之后将 T 日及以后的主力连续合约的所有价格水平整体加上或减去该价差,成交量、持仓量均不作调整,成交额统一设置为 0
  • 次主力连续合约:比当前主力合约远月,未做过主力合约,也未做过次主力的合约中以累计持仓量第二大者作为次主力连续合约,代码以 88A2 结尾,例如 AU88A2。

  • 指数连续合约:由当前品种全部可交易合约以累计持仓量为权重加权平均得到,代码以 99 结尾,例如 IF99。

futures.get_dominant - 获取主力合约列表

python
futures.get_dominant(underlying_symbol, start_date=None, end_date=None,rule=0,rank=1)

获取某一期货品种一段时间的主力合约列表。合约首次上市时,以当日收盘同品种持仓量最大者作为从第二个交易日开始的主力合约。当同品种其他合约持仓量在收盘后超过当前主力合约 1.1 倍时,从第二个交易日开始进行主力合约的切换。日内不会进行主力合约的切换。

参数

参数类型说明
underlying_symbolstr必填参数,期货合约品种,例如沪深 300 股指期货为'IF'
start_datestr, datetime.date, datetime.datetime, pandasTimestamp开始日期,默认为期货品种最早上市日期后一交易日
end_datestr, datetime.date, datetime.datetime, pandasTimestamp结束日期,默认为当前日期
ruleint主力合约选取规则。
默认 rule=0,当同品种其他合约持仓量在收盘后超过当前主力合约 1.1 倍时,从第二个交易日开始进行主力合约的切换。每个合约只能做一次主力/次主力合约,不会重复出现。针对股指期货,只在当月和次月选择主力合约。
当 rule=1 时,主力/次主力合约的选取只考虑最大/第二大昨仓这个条件。
当 rule=2 时,采用昨日成交量与持仓量同为最大/第二大的合约为当日主力/次主力。
当 rule=3 时,在 rule=0 选取规则上,考虑在最后一个交易日不能成为主力/次主力合约。
rankint默认 rank=1。
1-主力合约(支持所有期货)
2-次主力合约(支持所有期货;针对股指期货,需满足 rule=1rule=2
3-次次主力合约(仅支持股指期货,且需满足 rule=1rule=2

返回

Pandas.Series - 主力合约代码列表

范例

  • 获取某一天的主力合约代码
python
[In]
futures.get_dominant('IF', '20160801')
[Out]
date
20160801    IF1608
  • 获取从上市到某天之间的主力合约代码
python
[In]
futures.get_dominant('IC', end_date='20150501')
[Out]
date
20150417    IC1505
20150420    IC1505
20150421    IC1505
20150422    IC1505
20150423    IC1505
20150424    IC1505
20150427    IC1505
20150428    IC1505
20150429    IC1505
20150430    IC1505
20150501    IC1505

futures.get_contracts - 获取期货可交易合约列表

python
futures.get_contracts(underlying_symbol, date=None)

获取某一期货品种在策略当前日期的可交易合约 order_book_id 列表。按照到期月份,下标从小到大排列,返回列表中第一个合约对应的就是该品种的近月合约。

参数

参数类型说明
underlying_symbolstr必填参数,期货合约品种,例如沪深 300 股指期货为'IF'
datestr, datetime.date, datetime.datetime, pandasTimestamp查询日期,默认为当日

返回

str list - 可交易的 order_book_id list

范例

python
[In]
futures.get_contracts('IF', '20160801')
[Out]
['IF1608', 'IF1609', 'IF1612', 'IF1703']

futures.get_dominant_price - 获取期货主力连续合约行情数据

python
futures.get_dominant_price(underlying_symbols,start_date=None,end_date=None,frequency='1d',fields=None,adjust_type='pre', adjust_method='prev_close_spread',rule=0,rank=1)

主力连续合约是由不同时期的主力合约拼接而成,在主力合约发生切换时,前后两个合约会存在价差,因而未经平滑处理的主力连续合约有着明显的价格跳空现象。为避免策略出现虚假信号,造成信号失真。米筐提供了价差和比例复权两种方法平滑处理后的主力连续合约的行情数据,避免虚假信号造成影响。

获取期货主力连续合约行情数据参数如下:

参数

参数类型说明
underlying_symbolsstr or str list必填参数,期货合约品种,可传入  underlying_symbol, underlying_symbol list
start_datestr, datetime.date, datetime.datetime, pandasTimestamp开始日期
end_datestr, datetime.date, datetime.datetime, pandasTimestamp结束日期,start_date ,end_date 不传参数时默认返回最近三个月的数据
frequencystr历史数据的频率。 支持/日/分钟/tick 级别的历史数据,默认为'1d'。1m- 分钟线,1d-日线,分钟可选取不同频率,例如'5m'代表 5 分钟线
fieldsstr or str list查询字段,可选字段见下方返回,默认返回所有字段
adjust_typestr复权方式,默认为'pre',
none - 不复权 ,pre -  前复权, post -  后复权,
adjust_methodstr复权方法
'prev_close_spread':基于主力合约切换前一个交易日收盘价价差进行复权
'open_spread':基于主力合约切换当日开盘价价差进行复权
'prev_close_ratio':基于主力合约切换前一个交易日收盘价比例进行复权
'open_ratio':基于主力合约切换当日开盘价比例进行复权'
默认为'prev_close_spread';
adjust_type 为 None 时,adjust_method 复权方法设置无效
ruleint主力合约选取规则。
默认 rule=0,当同品种其他合约持仓量在收盘后超过当前主力合约 1.1 倍时,从第二个交易日开始进行主力合约的切换。每个合约只能做一次主力/次主力合约,不会重复出现。针对股指期货,只在当月和次月选择主力合约。
当 rule=1 时,主力/次主力合约的选取只考虑最大/第二大昨仓这个条件。
当 rule=2 时,采用昨日成交量与持仓量同为最大/第二大的合约为当日主力/次主力。
当 rule=3 时,在 rule=0 选取规则上,考虑在最后一个交易日不能成为主力/次主力合约。
rankint默认 rank=1
1-主力合约(支持所有期货)
2-次主力合约(支持所有期货;针对股指期货,需满足 rule=1rule=2

返回

  • bar 数据
字段类型说明
openfloat开盘价
closefloat收盘价
highfloat最高价
lowfloat最低价
limit_upfloat涨停价(仅限日线数据)
limit_downfloat跌停价(仅限日线数据)
total_turnoverfloat成交额
volumefloat成交量
settlementfloat结算价 (仅限日线数据)
prev_settlementfloat昨日结算价(仅限日线数据)
open_interestfloat累计持仓量
trading_datepandasTimeStamp交易日期(仅限分钟线数据),对应期货夜盘的情况
dominant_idstr主力合约
  • tick 数据
字段类型说明
openfloat当日开盘价
highfloat当日最高价
lowfloat当日最低价
lastfloat最新价
prev_closefloat昨日收盘价
total_turnoverfloat成交额
volumefloat成交量
limit_upfloat涨停价
limit_downfloat跌停价
open_interestfloat累计持仓量
datetimedatetime.datetime交易所时间戳
a1~a5float卖一至五档报盘价格
a1_v~a5_vfloat卖一至五档报盘量
b1~b5float买一至五档报盘价
b1_v~b5_vfloat买一至五档报盘量
change_ratefloat涨跌幅
trading_datepandasTimeStamp交易日期,对应期货夜盘的情况
prev_settlementfloat昨日结算价
dominant_idstr主力合约

范例

  • 获取期货主力连续合约前复权日线行情
python
[In]
futures.get_dominant_price(underlying_symbols='IF',start_date=20210901,end_date=20210902,frequency='1d',fields=None,adjust_type='pre', adjust_method='prev_close_spread')
[Out]
 		                        settlement      volume          limit_down	open	open_interest	total_turnover	limit_up	close	low	prev_settlement	high
underlying_symbol	date
IF	                2021-09-01	4855.0	        130017.0        4290.2	        4767.2	        143730.0	0	5243.4	        4856.4	4737.2	4766.8	        4898.6
                        2021-09-02	4854.0	        73853.0	        4369.6	        4855.0	        128436.0	0	5340.4	        4854.2	4830.2	4855.0	        4879.0
  • 获取期货主力连续合约不复权分钟线行情
python
[In]
futures.get_dominant_price(underlying_symbols='IF',start_date=20210901,end_date=20210901,frequency='1m',fields=None,adjust_type='none', adjust_method='prev_close_spread')
[Out]
                                                trading_date	volume	open	open_interest	total_turnover	close	low	high
underlying_symbol       datetime
IF	                2021-09-01 09:31:00	2021-09-01	2087.0	4767.2	140180.0	2.990109e+09	4779.0	4767.0	4781.8
                        2021-09-01 09:32:00	2021-09-01	1044.0	4779.6	139408.0	1.496143e+09	4773.2	4772.0	4780.6
                        2021-09-01 09:33:00	2021-09-01	964.0	4773.2	138709.0	1.379020e+09	4763.4	4763.0	4773.2
                        2021-09-01 09:34:00	2021-09-01	1239.0	4763.4	137894.0	1.768014e+09	4751.4	4750.8	4763.4
                        2021-09-01 09:35:00	2021-09-01	1126.0	4750.8	137099.0	1.605260e+09	4755.2	4748.0	4755.6
                        ···
                        2021-09-01 14:58:00	2021-09-01	589.0	4854.4	143113.0	8.574656e+08	4855.2	4851.0	4855.4
                        2021-09-01 14:59:00	2021-09-01	445.0	4855.0	143410.0	6.483443e+08	4856.8	4853.8	4858.2
                        2021-09-01 15:00:00	2021-09-01	611.0	4857.4	143730.0	8.907135e+08	4856.4	4855.8	4861.0

futures.get_ex_factor - 获取期货主力连续合约复权因子

python
futures.get_ex_factor(underlying_symbols, start_date=None, end_date=None, adjust_method=None, rule=0, rank=1, market='cn')

获取期货主力连续合约复权因子数据的参数如下:

参数

参数类型说明
underlying_symbolsstr or list必填参数,品种代码
start_datestr, datetime.date, datetime.datetime, pandasTimestamp开始日期 ,不传入时返回全部
end_datestr, datetime.date, datetime.datetime, pandasTimestamp结束日期 ,不传入时返回全部
adjust_methodstr复权方法
'prev_close_spread':基于主力合约切换前一个交易日收盘价价差进行复权
'open_spread':基于主力合约切换当日开盘价价差进行复权
'prev_close_ratio':基于主力合约切换前一个交易日收盘价比例进行复权
'open_ratio':基于主力合约切换当日开盘价比例进行复权'
默认为'prev_close_spread'
ruleint主力合约选取规则。
默认 rule=0,当同品种其他合约持仓量在收盘后超过当前主力合约 1.1 倍时,从第二个交易日开始进行主力合约的切换。每个合约只能做一次主力/次主力合约,不会重复出现。针对股指期货,只在当月和次月选择主力合约。
当 rule=1 时,主力/次主力合约的选取只考虑最大/第二大昨仓这个条件。
当 rule=2 时,采用昨日成交量与持仓量同为最大/第二大的合约为当日主力/次主力。
当 rule=3 时,在 rule=0 选取规则上,考虑在最后一个交易日不能成为主力/次主力合约。
rankint默认 rank=1
1-主力合约(支持所有期货)
2-次主力合约(支持所有期货;针对股指期货,需满足 rule=1rule=2
marketstr默认是中国内地市场('cn') 。可选'cn' - 中国内地市场

返回

  • 返回 pandas dataframe  包含了复权因子的日期和对应的各项数值
参数类型说明
ex_datepandasTimestamp除权除息日( 主力合约切换日)
underlying_symbolstr品种代码
ex_factorfloat复权因子
ex_cum_factorfloat累计复权因子
ex_end_datepandasTimestamp复权因子所在期的截止日期

范例

python
[In]
futures.get_ex_factor(underlying_symbols='IF', start_date=20210601, end_date=20210902,adjust_method='prev_close_spread', market='cn')
[Out]
	underlying_symbol	ex_factor	ex_end_date	ex_cum_factor
ex_date
2021-06-18	IF	        32.8	        2021-07-15	1165.8
2021-07-16	IF	        16.8	        2021-08-12	1182.6
2021-08-13	IF	        29.0	        NaT	        1211.6

futures.get_contract_multiplier - 获取期货品种合约乘数

python
futures.get_contract_multiplier(underlying_symbols, start_date=None, end_date=None, market='cn')

获取期货品种的合约乘数

参数

参数类型说明
underlying_symbolsstr or str list必填参数,期货合约品种
start_datestr开始日期,不传入时返回所有数据
end_datestr结束日期,不传入时返回所有数据
marketstr目前只支持中国市场 ('cn')

返回

  • pandas DataFrame
字段类型说明
exchangestr期货品种对应交易所
contract_multiplierstr合约乘数

范例

python
In[]:
futures.get_contract_multiplier(['FB','I'], start_date='20191128', end_date='20191203', market='cn')
Out[]:
		                          exchange	contract_multiplier
underlying_symbol	date
FB	              2019-11-28	DCE	      500.0
                  2019-11-29	DCE	      500.0
                  2019-12-02	DCE	      10.0
                  2019-12-03	DCE	      10.0
I	              2019-11-28	DCE	      100.0
                  2019-11-29	DCE	      100.0
                  2019-12-02	DCE	      100.0
                  2019-12-03	DCE	      100.0

futures.get_exchange_daily - 获取期货交易所日线数据

python
futures.get_exchange_daily(order_book_ids, start_date=None, end_date=None, fields=None,  market='cn')

获取期货交易所日线数据

参数

参数类型说明
order_book_idsstr or str list必填参数,可输入 order_book_id, order_book_id 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' - 中国内地市场

返回

pandas DataFrame

字段类型说明
openfloat开盘价
closefloat收盘价
highfloat最高价
lowfloat最低价
total_turnoverfloat成交额
volumefloat成交量
settlementfloat结算价
prev_settlementfloat昨日结算价
open_interestfloat累计持仓量

范例

python
In[]:
futures.get_exchange_daily('A2409', start_date='20240801', end_date='20240816', market='cn')
Out[]:
		                          open   close    high     low  total_turnover    volume  settlement  prev_settlement  open_interest
order_book_id date
A2409         2024-08-01  4549.0  4576.0  4581.0  4530.0    5.480035e+09  120316.0      4554.0           4543.0       102030.0
              2024-08-02  4580.0  4614.0  4634.0  4573.0    6.643340e+09  144204.0      4606.0           4554.0       104363.0
              2024-08-05  4617.0  4590.0  4628.0  4582.0    4.818868e+09  104612.0      4606.0           4606.0       100831.0
              2024-08-06  4584.0  4586.0  4602.0  4560.0    4.223373e+09   92163.0      4582.0           4606.0        90101.0
              2024-08-07  4586.0  4582.0  4601.0  4569.0    3.611244e+09   78789.0      4583.0           4582.0        85198.0
              2024-08-08  4572.0  4585.0  4593.0  4569.0    2.368785e+09   51666.0      4584.0           4583.0        79301.0
              2024-08-09  4584.0  4575.0  4598.0  4553.0    4.023708e+09   87879.0      4578.0           4584.0        73742.0
              2024-08-12  4575.0  4559.0  4578.0  4553.0    2.552710e+09   55909.0      4565.0           4578.0        67254.0
              2024-08-13  4559.0  4540.0  4565.0  4536.0    2.781623e+09   61125.0      4550.0           4565.0        62705.0
              2024-08-14  4538.0  4513.0  4551.0  4500.0    3.146009e+09   69587.0      4520.0           4550.0        54827.0
              2024-08-15  4520.0  4487.0  4536.0  4482.0    2.088194e+05   46333.0      4506.0           4520.0        49281.0
              2024-08-16  4488.0  4464.0  4507.0  4449.0    1.966178e+05   43952.0      4473.0           4506.0        38939.0

futures.get_continuous_contracts - 获取股指期货当月等连续合约

python
futures.get_continuous_contracts(underlying_symbol, start_date=None, end_date=None,type='front_month')

获取股指期货当月等连续合约

参数

参数类型说明
underlying_symbolstr必填参数,期货合约品种,目前仅支持股指品种
start_datestr, datetime.date, datetime.datetime, pandasTimestamp开始日期
end_datestr, datetime.date, datetime.datetime, pandasTimestamp结束日期
typestr类型,默认为 front_month
front_month - 近月,next_month - 次月,current_quarter - 季月,next_quarter - 远季

返回

Pandas Series - 连续合约 order_book_id

范例

python
In[]:
futures.get_continuous_contracts('IF', 20250616, 20250701,'front_month')
Out[]:
20250616    IF2506
20250617    IF2506
20250618    IF2506
20250619    IF2506
20250620    IF2506
20250623    IF2507
20250624    IF2507
20250625    IF2507
20250626    IF2507
20250627    IF2507
20250630    IF2507
20250701    IF2507

期货其他数据

futures.get_member_rank - 获取期货会员持仓等排名情况

python
futures.get_member_rank(obj, trading_date=None, rank_by='volume')

获取期货某合约或品种的会员排名数据。
上期所、中金所的品种排名是米筐通过交易所的合约层级数据加总计算得到的。 由于交易所的合约数据并不涵盖交易不活跃合约,因而品种层级的排名数据仅供参考。

参数

参数类型说明
objstr必填参数,可以是期货的具体合约或者品种
trading_datestr查询日期,默认为当日
start_datestr开始日期。需要传入该参数时,必须打上'start_date='字样
end_datestr结束日期。需要传入该参数时,必须打上'end_date='字样
rank_bystr排名依据,默认为 volume
volume - 交易量统计排名,long - 持买仓量统计排名,short - 持卖仓量统计排名

返回

-pandas DataFrame

字段类型说明
commodity_idstr期货品种代码或期货合约代码
member_namestr期货商名称
rankint排名
volumeint交易量或持仓量视乎参数 rank_by 的设定
volume_changeint交易量或持仓量较之前的变动

范例

  • 获取期货合约为标的的会员排名:
python
[In]
futures.get_member_rank('A1901',trading_date=20180910,rank_by='short')
[Out]
 	      commodity_id 	member_name 	rank 	volume 	volume_change
trading_date
2018-09-10 	A1901 	     国投安信 	     1 	     20143 	5065
2018-09-10 	A1901 	     五矿经易 	     2 	     14909 	4465
2018-09-10 	A1901 	     华安期货 	     3 	     9360 	3464
2018-09-10 	A1901 	     国泰君安 	     4 	     7915 	-26
2018-09-10 	A1901 	     永安期货 	     5 	     6683 	998
2018-09-10 	A1901 	     中信期货 	     6 	     6587 	-583
2018-09-10 	A1901 	     华泰期货 	     7 	     5918 	-430
2018-09-10 	A1901 	     东证期货 	     8 	     5075 	1837
2018-09-10 	A1901 	     中国国际 	     9 	     4792 	2169
2018-09-10 	A1901 	     国富期货 	     10 	   4632 	-213
2018-09-10 	A1901 	     浙商期货 	     11 	   4160 	-513
2018-09-10 	A1901 	     新湖期货 	     12 	   3960 	119
2018-09-10 	A1901 	     中金期货 	     13 	   3868 	-25
2018-09-10 	A1901 	     光大期货 	     14 	   3694 	2566
2018-09-10 	A1901 	     摩根大通 	     15 	   3644 	0
2018-09-10 	A1901 	     银河期货 	     16 	   3173 	559
2018-09-10 	A1901 	     兴证期货 	     17 	   3151 	-251
2018-09-10 	A1901 	     方正中期 	     18 	   2206 	146
2018-09-10 	A1901 	     一德期货 	     19 	   2017 	838
2018-09-10 	A1901 	     南华期货 	     20 	   1949 	-190
  • 获取期货品种为标的的会员排名:
python
[In]
futures.get_member_rank('CU',trading_date=20180910,rank_by='short')
[Out]
        commodity_id 	member_name 	rank 	volume 	volume_change
trading_date
2018-09-10 	CU 	        五矿经易 	       1 	29160 	 302
2018-09-10 	CU 	        中信期货 	       2 	27136 	 -535
2018-09-10 	CU 	        永安期货 	       3 	16521 	 753
2018-09-10 	CU 	        海通期货 	       4 	15994 	 -161
2018-09-10 	CU 	        中粮期货 	       5 	14572 	 -614
2018-09-10 	CU 	        国泰君安 	       6 	8852 	   245
2018-09-10 	CU 	        金瑞期货 	       7 	8668 	   -703
2018-09-10 	CU 	        迈科期货 	       8 	8320 	   94
2018-09-10 	CU 	        建信期货 	       9 	6688 	   -57
2018-09-10 	CU 	        广发期货 	      10 	5847 	   -34
2018-09-10 	CU 	        华安期货 	      11 	5451 	   -289
2018-09-10 	CU 	        格林大华 	      12 	5330 	   -217
2018-09-10 	CU 	        中银国际 	      13 	5190 	   487
2018-09-10 	CU 	        铜冠金源 	      14 	4896 	   139
2018-09-10 	CU 	        兴证期货 	      15 	4636 	   -459
2018-09-10 	CU 	        方正中期 	      16 	4587 	   -92
2018-09-10 	CU 	        国投安信 	      17 	4567 	   79
2018-09-10 	CU 	        东方财富 	      18 	4551 	   127
2018-09-10 	CU 	        新湖期货 	      19 	4269 	   -60
2018-09-10 	CU 	        国贸期货 	      20 	3396 	   -522
  • 获取期货品种为标的的指定时间段会员排名 单个合约的指定时间段会员排名获取方式雷同
python
[In] :
futures.get_member_rank('RB',start_date='20180910',end_date='20180915').tail(5)
[Out]:
             commodity_id member_name  rank  volume  volume_change
trading_date
2018-09-14             RB        中辉期货    16   53761          -5682
2018-09-14             RB        宏源期货    17   51777          -9398
2018-09-14             RB        广发期货    18   51279          -2157
2018-09-14             RB        国贸期货    19   51145         -23497
2018-09-14             RB        上海中期    20   47731          -4862

futures.get_warehouse_stocks - 获取期货仓单数据

python
futures.get_warehouse_stocks(underlying_symbols, start_date=None, end_date=None, market='cn')

获取期货某品种的注册仓单数据

参数

参数类型说明
underlying_symbolsstr必填参数,期货合约品种
start_datestr开始日期
end_datestr结束日期,start_date ,end_date 不传参数时默认返回最近一年的数据
marketstr目前只支持中国市场 ('cn')

返回

  • pandas DataFrame
字段类型说明
on_warrantint注册仓单量
exchangestr期货品种对应交易所
effective_forecaststr有效预报。仅支持郑商所(CZCE)合约
warrant_unitsstr仓单单位。仅支持郑商所(CZCE)合约
deliverablestr符合交割品质的货物数量。仅支持上期所(SHFE)合约

范例

python
In [4]: futures.get_warehouse_stocks('CF',start_date=20191201,end_date=20191205)
Out[4]:
                            on_warrant exchange  effective_forecast  warrant_units   deliverable
date     underlying_symbol
20191202 CF                      19425     CZCE                4753              8          NaN
20191203 CF                      19921     CZCE                4696              8          NaN
20191204 CF                      19997     CZCE                5005              8          NaN
20191205 CF                      20603     CZCE                4752              8          NaN

futures.get_basis - 获取股指期货每日升贴水数据

python
futures.get_basis(order_book_ids, start_date=None, end_date=None,fields=None,frequency='1d')

股指期货贴水指的是股指期货比股指现货低的情况,而当股指期货高于现货时,则称之升水。在股票中性策略中,股指期货一直以来都是最重要的对冲伙伴,而对冲存在对冲成本,因此在开发股票市场中性策略过程中,研究对冲成本——股指期货贴水 ,就显得尤为必要了。
注意: 接近到期日的年化升贴水率仅供参考,原因是在离到期日只有几天,分母特别小的情况下,计算出的年化升贴水率数值会失真,这时候看绝对升贴水更好。

获取股指期货每日升贴水数据的参数如下:

参数

参数类型说明
order_book_idsstr_or_str_list合约代码,可传入 order_book_id, order_book_id list
start_datestr, datetime.date, datetime.datetime, pandasTimestamp开始日期
end_datestr, datetime.date, datetime.datetime, pandasTimestamp结束日期,start_date ,end_date 不传参数时默认返回最近三个月的数据
fieldsstr_or_str_list查询字段,可选字段见下方返回,默认返回所有字段
frequencystr频率,支持/日/分钟/tick 级别的历史数据,默认为'1d'。
1d - 日线
1m - 分钟线
tick

返回

pandas multi-index DataFrame

字段类型说明
openfloat开盘价
highfloat最高价
lowfloat最低价
closefloat收盘价
indexstr指数合约
close_indexfloat指数收盘价
basisfloat升贴水,等于期货合约收盘价- 对应指数收盘价
basis_ratefloat升贴水率(%),(期货合约收盘价- 对应指数收盘价)*100/对应指数收盘价
basis_annual_ratefloat年化升贴水率(%), basis_rate *(250/合约到期剩余交易日)
settlementfloat结算价
settle_basisfloat升贴水,等于期货合约结算价- 对应指数收盘价
settle_basis_ratefloat升贴水率(%),(期货合约结算价- 对应指数收盘价)*100/对应指数收盘价
settle_basis_annual_ratefloat年化升贴水率(%), settle_basis_rate*(250/合约到期剩余交易日)

范例

  • 获取 IF2106 和 IH2106 的升贴水数据
python
[In]
futures.get_basis(['IF2106','IH2106'],'20210412','20210413')
[Out]
		                low	open	high	basis	basis_rate	index	close	basis_annual_rate	close_index
order_book_id	date
IH2106	2021-04-12	3395.0	3438.0	3446.4	-64.2654	-1.848265	000016.XSHG	3412.8	-10.268142	3477.0654
        2021-04-13	3384.2	3430.2	3432.6	-61.4592	-1.775529	000016.XSHG	3400.0	-10.088231	3461.4592
IF2106	2021-04-12	4854.0	4938.2	4956.0	-81.7459	-1.652185	000300.XSHG	4866.0	-9.178804	4947.7459
        2021-04-13	4844.0	4891.2	4905.2	-74.2438	-1.503019	000300.XSHG	4865.4	-8.539882	4939.6438

futures.get_current_basis - 获取股指期货实时升贴水数据

python
rqdatac.futures.get_current_basis(order_book_ids,market='cn')

实时升贴水基于 current_snapshot 计算,计算逻辑同 get_basis。 注:每日 15 点 30 分股指期货结算价更新后,实时升贴水用结算价计算

获取股指期货每日升贴水数据的参数如下:

参数

参数类型说明
order_book_idsstr_or_str_list必填参数,合约代码,可传入 order_book_id, order_book_id list
marketstr默认是中国内地市场('cn') 。可选'cn' - 中国内地市场;

返回

pandas multi-index DataFrame

字段类型说明
order_book_idstr合约代码
datetimedatetime最新一行 tick 的时间戳
indexstr指数合约
index_pxfloat指数最新价格
future_pxfloat期货最新价格
basisfloat升贴水,等于期货合约收盘价- 对应指数收盘价
basis_ratefloat升贴水率(%),(期货合约收盘价- 对应指数收盘价)*100/对应指数收盘价
basis_annual_ratefloat年化升贴水率(%), basis_rate *(250/合约到期剩余交易日)

范例

  • 获取 IF2403 的实时升贴水数据
python
[In]
futures.get_current_basis('IF2403')
[Out]
                     index                datetime   index_px  future_px   basis  basis_rate  basis_annual_rate
order_book_id
IF2403         000300.XSHG 2024-02-26 15:23:08.200  3453.3585     3445.4 -7.9585   -0.230457            -4.1153

futures.get_trading_parameters - 获取期货交易参数信息

python
futures.get_trading_parameters(order_book_ids, start_date=None, end_date=None, fields=None, market='cn')

获取期货保证金、手续费等交易参数信息

注意事项

  • start_date 和 end_date 需同时传入或同时不传入。当不传入 start_date , end_date 参数时,查询时间在交易日 T 日 6.30 pm 之前,返回 T 日的数据;查询时点在 6.30pm 之后,返回交易日 T+1 日的数据。
  • 保证金、手续费数据提供范围为 2010.04 月至今;限仓数据各交易所提供范围见下方表格
交易所时间范围
中金所2010-04-16 至今
上期所2013-10-08 至今
大商所2018-12-21 至今
郑商所2021-04-12 至今
上能源2021-06-11 至今
广期所2022-12-23 至今

参数

参数类型说明
order_book_idsstr or list必填参数,合约代码
start_datestr, datetime.date, datetime.datetime, pandasTimestamp开始日期,若不指定日期,则默认为当前交易日期
end_datestr, datetime.date, datetime.datetime, pandasTimestamp结束日期 ,若不指定日期,则默认为当前交易日期
fieldsstr OR str list查询字段,可选字段见下方返回,默认返回所有字段
marketstr默认是中国内地市场('cn') 。可选'cn' - 中国内地市场

返回

  • 返回   multi-index DataFrame
字段类型说明
order_book_idsstr合约代码
trading_datepandasTimeStamp交易日期
long_margin_ratiofloat多头保证金率
short_margin_ratiofloat空头保证金率
commission_typestr手续费类型(按成交量/按成交额)
open_commissionfloat开仓手续费
close_commissionfloat平仓手续费
discount_ratefloat平今折扣率
close_commission_todayfloat平今仓手续费/率
non_member_limit_ratefloat非期货会员持仓限额比例
client_limit_ratefloat客户持仓限额比例
non_member_limitfloat非期货会员持仓限额(手)
client_limitfloat客户持仓限额(手)
min_order_quantityfloat最小开仓下单量(手)
max_order_quantityfloat最大开仓下单量(手)
min_margin_ratiofloat最低交易保证金

范例

  • 获取 IF2312 当天的交易参数信息
python
[In]
futures.get_trading_parameters('IF2312')
[Out]
                            long_margin_ratio	short_margin_ratio	commission_type	open_commission	...	client_limit	min_order_quantity	max_order_quantity	min_margin_ratio
order_book_id	trading_date
IF2312	2023-12-05	0.12	0.12	by_money	0.000023	...	5000.0	1.0	NaN	0.08
  • 获取 CU2312 指定日期的交易参数信息
python
[In]
futures.get_trading_parameters('CU2312',start_date=20231201,end_date=20231205)
[Out]
                            long_margin_ratio	short_margin_ratio	commission_type	open_commission	...	client_limit	min_order_quantity	max_order_quantity	min_margin_ratio
order_book_id	trading_date
CU2312	2023-12-01	0.15	0.15	by_money	0.00005	...	1000.0	1.0	NaN	0.05
2023-12-04	0.15	0.15	by_money	0.00005	...	1000.0	1.0	NaN	0.05
2023-12-05	0.15	0.15	by_money	0.00005	...	1000.0	1.0	NaN	0.05