返回介绍

开始入门

操作指引

SDK

数据文档

常见问题

量化工具

其他

其他

通用数据函数(免费)

发布于 2024-06-22 12:53:28 字数 41579 浏览 0 评论 0 收藏 0

python 通用数据 API 包含在 gm3.0.148 版本及以上版本,不需要引入新库

get_symbol_infos - 查询标的基本信息

获取指定(范围)交易标的基本信息,与时间无关.

此函数为掘金公版(体验版/专业版/机构版)函数,券商版以升级提示为准

函数原型:

get_symbol_infos(sec_type1, sec_type2=None, exchanges=None, symbols=None, df=False)

参数:

参数名类型中文名称必填默认值参数用法说明
sec_type1int证券品种大类Y指定一种证券大类,只能输入一个. 证券大类 sec_type1 清单 1010: 股票, 1020: 基金, 1030: 债券 , 1040: 期货, 1050: 期权, 1060: 指数,1070:板块.
sec_type2int证券品种细类NNone指定一种证券细类,只能输入一个. 默认None表示不区分细类,即证券大类下所有细类. 证券细类见 sec_type2 清单 - 股票 101001:A 股,101002:B 股,101003:存托凭证 - 基金 102001:ETF,102002:LOF,102005:FOF - 债券 103001:可转债,103008:回购 - 期货 104001:股指期货,104003:商品期货,104006:国债期货 - 期权 105001:股票期权,105002:指数期权,105003:商品期权 - 指数 106001:股票指数,106002:基金指数,106003:债券指数,106004:期货指数 - 板块:107001:概念板块
exchangesstr or list交易所代码NNone输入交易所代码,可输入多个. 采用 str 格式时,多个交易所代码必须用英文逗号分割,如:'SHSE,SZSE' 采用 list 格式时,多个交易所代码示例:['SHSE', 'SZSE'] 默认None表示所有交易所. 交易所代码清单 SHSE:上海证券交易所,SZSE:深圳证券交易所 , CFFEX:中金所,SHFE:上期所,DCE:大商所, CZCE:郑商所, INE:上海国际能源交易中心 ,GFEX:广期所
symbolsstr or list标的代码NNone输入标的代码,可输入多个. 采用 str 格式时,多个标的代码必须用英文逗号分割,如:'SHSE.600008,SZSE.000002' 采用 list 格式时,多个标的代码示例:['SHSE.600008', 'SZSE.000002'] 默认None表示所有标的.
dfbool返回格式NFalse是否返回 dataframe 格式,默认False返回字典格式,返回 list[dict], 列表每项的 dict 的 key 值为 fields 字段.

返回值:

字段名类型中文名称说明股票字段基金字段债券字段期货字段期权字段指数字段
symbolstr标的代码exchange.sec_id
sec_type1int证券品种大类1010: 股票,1020: 基金, 1030: 债券,1040: 期货, 1050: 期权,1060: 指数,1070:板块
sec_type2int证券品种细类- 股票 101001:A 股,101002:B 股,101003:存托凭证 - 基金 102001:ETF,102002:LOF,102005:FOF - 债券 103001:可转债,103003:国债,103006:企业债,103008:回购 - 期货 104001:股指期货,104003:商品期货,104006:国债期货 - 期权 105001:股票期权,105002:指数期权,105003:商品期权 - 指数 106001:股票指数,106002:基金指数,106003:债券指数,106004:期货指数 - 板块:107001:概念板块
boardint板块A 股 10100101:主板 A 股 10100102:创业板 10100103:科创版 10100104:北交所股票 ETF 10200101:股票 ETF 10200102:债券 ETF 10200103:商品 ETF 10200104:跨境 ETF 10200105:货币 ETF 可转债 10300101:普通可转债 10300102:可交换债券 10300103:可分离式债券 10300104:定向可转债
exchangestr交易所代码SHSE:上海证券交易所, SZSE:深圳证券交易所, CFFEX:中金所, SHFE:上期所, DCE:大商所, CZCE:郑商所, INE:上海国际能源交易中心 ,GFEX:广期所
sec_idstr交易所标的代码股票,基金,债券,指数的证券代码; 期货,期权的合约代码
sec_namestr交易所标的名称股票,基金,债券,指数的证券名称; 期货,期权的合约名称
sec_abbrstr交易所标的简称拼音或英文简称
price_tickfloat最小变动单位交易标的价格最小变动单位
trade_nint交易制度0 表示 T+0,1 表示 T+1,2 表示 T+2
listed_datedatetime.datetime上市日期证券/指数的上市日、衍生品合约的挂牌日
delisted_datedatetime.datetime退市日期股票/基金的退市日, 期货/期权的到期日(最后交易日), 可转债的赎回登记日
underlying_symbolstr标的资产期货/期权的合约标的物 symbol,可转债的正股标的 symbol
option_typestr行权方式期权行权方式,仅期权适用,E:欧式,A:美式
option_margin_ratio1float期权保证金计算系数 1计算期权单位保证金的第 1 个系数,仅期权适用
option_margin_ratio2float期权保证金计算系数 2计算期权单位保证金的第 2 个系数,仅期权适用
call_or_putstr合约类型期权合约类型,仅期权适用,C:Call(认购或看涨), P:Put(认沽或看跌)
conversion_start_datedatetime.datetime可转债开始转股日期可转债初始转股价的执行日期,仅可转债适用

示例:

get_symbol_infos(sec_type1=1010, symbols='SHSE.600008,SZSE.000002')

输出:

[{'symbol': 'SHSE.600008', 'sec_type1': 1010, 'sec_type2': 101001, 'board': 10100101, 'exchange': 'SHSE', 'sec_id': '600008', 'sec_name': '首创环保', 'sec_abbr': 'SCHB', 'price_tick': 0.01, 'trade_n': 1, 'listed_date': datetime.datetime(2000, 4, 27, 0, 0, tzinfo=tzfile('PRC')), 'delisted_date': datetime.datetime(2038, 1, 1, 0, 0, tzinfo=tzfile('PRC')), 'underlying_symbol': '', 'option_type': '', 'option_margin_ratio1': 0.0, 'option_margin_ratio2': 0.0, 'call_or_put': '', 'conversion_start_date': None},
 {'symbol': 'SZSE.000002', 'sec_type1': 1010, 'sec_type2': 101001, 'board': 10100101, 'exchange': 'SZSE', 'sec_id': '000002', 'sec_name': '万科A', 'sec_abbr': 'WKA', 'price_tick': 0.01, 'trade_n': 1, 'listed_date': datetime.datetime(1991, 1, 29, 0, 0, tzinfo=tzfile('PRC')), 'delisted_date': datetime.datetime(2038, 1, 1, 0, 0, tzinfo=tzfile('PRC')), 'underlying_symbol': '', 'option_type': '', 'option_margin_ratio1': 0.0, 'option_margin_ratio2': 0.0, 'call_or_put': '', 'conversion_start_date': None}]

注意:

1. sec_type1为必填参数,即一次只能查询一个品种的标的基本信息。

2. 查询的标的信息根据参数组合sec_type1, sec_type2, exchanges, symbols取交集,若输入参数之间出现任何矛盾(换句话说,所有的参数限制出满足要求的交集为空),则返回空list/空DataFrame ,例如get_symbol_infos(sec_type1=1040,exchanges='SZSE')返回的是空值。

3. 若输入包含无效标的代码symbols,则返回的list/DataFrame只包含有效标的代码对应的数据。

4. 参数组合示例:

查询以下范围 symbol 的基本信息sec_type1sec_type2exchangessymbols
查询指定股票1010NoneNone'SHSE.600008,SZSE.000002'
查询 A 股股票1010101001NoneNone
查询深交所股票1010None'SZSE'None
查询 ETF1020102001NoneNone
查询上交所 LOF1020102002'SHSE'None
查询可转债1030103001NoneNone
查询深交所可转债1030103001'SZSE'None
查询股指期货1040104001NoneNone
查询商品期货1040104003NoneNone
查询郑商所和大商所期货1040None'CZCE,DCE'None
查询股票期权1050105001NoneNone
查询上交所股票期权1050105001'SHSE'None
查询指数期权1050105002NoneNone
查询商品期权1050105003NoneNone
查询上期所商品期权105003None'SHFE'None
查询股票指数1060106001NoneNone

get_symbols - 查询指定交易日多标的交易信息

获取指定交易日多个标的交易信息,包括基本信息及日度数据.

此函数为掘金公版(体验版/专业版/机构版)函数,券商版以升级提示为准

函数原型:

get_symbols(sec_type1, sec_type2=None, exchanges=None, symbols=None, skip_suspended=True, skip_st=True, trade_date=None, df=False)

参数:

参数名类型中文名称必填默认值参数用法说明
sec_type1int证券品种大类Y指定一种证券大类,只能输入一个. 证券大类 sec_type1 清单 1010: 股票, 1020: 基金, 1030: 债券 , 1040: 期货, 1050: 期权, 1060: 指数,1070:板块.
sec_type2int证券品种细类NNone指定一种证券细类,只能输入一个. 默认None表示不区分细类,即证券大类下所有细类. 证券细类见 sec_type2 清单 - 股票 101001:A 股,101002:B 股,101003:存托凭证 - 基金 102001:ETF,102002:LOF,102005:FOF - 债券 103001:可转债,103008:回购 - 期货 104001:股指期货,104003:商品期货,104006:国债期货 - 期权 105001:股票期权,105002:指数期权,105003:商品期权 - 指数 106001:股票指数,106002:基金指数,106003:债券指数,106004:期货指数 - 板块:107001:概念板块
exchangesstr or list交易所代码NNone输入交易所代码,可输入多个. 采用 str 格式时,多个交易所代码必须用英文逗号分割,如:'SHSE,SZSE' 采用 list 格式时,多个交易所代码示例:['SHSE', 'SZSE'] 默认None表示所有交易所. 交易所代码清单 SHSE:上海证券交易所,SZSE:深圳证券交易所 , CFFEX:中金所,SHFE:上期所,DCE:大商所, CZCE:郑商所, INE:上海国际能源交易中心 ,GFEX:广期所
symbolsstr or list标的代码NNone输入标的代码,可输入多个. 采用 str 格式时,多个标的代码必须用英文逗号分割,如:'SHSE.600008,SZSE.000002' 采用 list 格式时,多个标的代码示例:['SHSE.600008', 'SZSE.000002'] 默认None表示所有标的.
skip_suspendedbool跳过停牌NTrue是否跳过全天停牌,默认True跳过
skip_stbool跳过 STNTrue是否跳过包含 ST 的股票:ST, *ST, SST, S*ST, 默认True跳过
trade_datestr交易日期NNone交易日期,%Y-%m-%d 格式,默认None取最新截面(包含退市标的)
dfbool返回格式NFalse是否返回 dataframe 格式,默认False返回字典格式,返回 list[dict], 列表每项的 dict 的 key 值为 fields 字段.

返回值:

字段名类型中文名称说明股票字段基金字段债券字段期货字段期权字段指数字段
trade_datedatetime.datetime交易日期最新交易日的日期
symbolstr标的代码exchange.sec_id
sec_type1int证券品种大类1010: 股票,1020: 基金, 1030: 债券,1040: 期货, 1050: 期权,1060: 指数,1070:板块
sec_type2int证券品种细类- 股票 101001:A 股,101002:B 股,101003:存托凭证 - 基金 102001:ETF,102002:LOF,102005:FOF - 债券 103001:可转债,103008:回购 - 期货 104001:股指期货,104003:商品期货,104006:国债期货 - 期权 105001:股票期权,105002:指数期权,105003:商品期权 - 指数 106001:股票指数,106002:基金指数,106003:债券指数,106004:期货指数 - 板块:107001:概念板块
boardint板块A 股 10100101:主板 A 股 10100102:创业板 10100103:科创版 10100104:北交所股票 ETF 10200101:股票 ETF 10200102:债券 ETF 10200103:商品 ETF 10200104:跨境 ETF 10200105:货币 ETF 可转债 10300101:普通可转债 10300102:可交换债券 10300103:可分离式债券 10300104:定向可转债
exchangestr交易所代码SHSE:上海证券交易所, SZSE:深圳证券交易所, CFFEX:中金所, SHFE:上期所, DCE:大商所, CZCE:郑商所, INE:上海国际能源交易中心 ,GFEX:广期所
sec_idstr交易所标的代码股票,基金,债券,指数的证券代码; 期货,期权的合约代码
sec_namestr交易所标的名称股票,基金,债券,指数的证券名称; 期货,期权的合约名称
sec_abbrstr交易所标的简称拼音或英文简称
price_tickfloat最小变动单位交易标的价格最小变动单位
trade_nint交易制度0 表示 T+0,1 表示 T+1,2 表示 T+2
listed_datedatetime.datetime上市日期证券/指数的上市日、衍生品合约的挂牌日
delisted_datedatetime.datetime退市日期股票/基金的退市日, 期货/期权的到期日(最后交易日), 可转债的赎回登记日
underlying_symbolstr标的资产期货/期权的合约标的物 symbol,可转债的正股标的 symbol
option_typestr行权方式期权行权方式,仅期权适用,E:欧式,A:美式
option_margin_ratio1float期权保证金计算系数 1计算期权单位保证金的第 1 个系数,仅期权适用
option_margin_ratio2float期权保证金计算系数 2计算期权单位保证金的第 2 个系数,仅期权适用
call_or_putstr合约类型期权合约类型,仅期权适用,C:Call(认购或看涨), P:Put(认沽或看跌)
conversion_start_datedatetime.datetime可转债开始转股日期可转债初始转股价的执行日期,仅可转债适用
is_adjustedbool合约调整是否调整合约,True:是,False:否(调整后会产生新的新的合约名称、新的行权价格、新的合约乘数)
is_suspendedbool是否停牌是否停牌,True:是,False:否
is_stbool是否 ST是否 ST,True: 是 ST 类(含ST, *ST, SST, S*ST), False: 否
positionint持仓量当日累计持仓量(当日盘后更新)
settle_pricefloat结算价当日结算价(当日盘后更新)
pre_settlefloat昨结价昨日结算价
pre_closefloat昨收价昨日收盘价
upper_limitfloat涨停价当日涨停价(首次公开发行上市的股票上市前 5 日无涨跌停价,返回0)
lower_limitfloat跌停价当日跌停价(首次公开发行上市的股票上市前 5 日无涨跌停价,返回0)
turn_ratefloat换手率当日换手率(%)(当日盘后更新)
adj_factorfloat复权因子当日累计后复权因子
margin_ratiofloat保证金比例期货最新保证金比例(交易所标准的最新期货保证金)
conversion_pricefloat转股价可转债最新转股价(转股价变动后的最新转股价)
exercise_pricefloat行权价期权最新行权价(期权合约调整后的最新行权价)
multiplierint合约乘数期货和期权合约最新合约乘数(期权合约调整后的最新合约乘数)

示例:

get_symbols(sec_type1=1010, symbols='SHSE.600008,SZSE.000002', trade_date='2022-01-13')

输出:

[{'trade_date': datetime.datetime(2022, 1, 13, 0, 0, tzinfo=tzfile('PRC')), 'pre_close': 3.47, 'upper_limit': 3.82, 'lower_limit': 3.12, 'turn_rate': 1.1215, 'adj_factor': 6.5564, 'margin_ratio': 1.0, 'multiplier': 1, 'is_adjusted': False, 'is_suspended': False, 'position': 0, 'settle_price': 0.0, 'pre_settle': 0.0, 'conversion_price': 0.0, 'exercise_price': 0.0, 'is_st': False, 'symbol': 'SHSE.600008', 'sec_type1': 1010, 'sec_type2': 101001, 'board': 10100101, 'exchange': 'SHSE', 'sec_id': '600008', 'sec_name': '首创环保', 'sec_abbr': 'SCHB', 'price_tick': 0.01, 'trade_n': 1, 'listed_date': datetime.datetime(2000, 4, 27, 0, 0, tzinfo=tzfile('PRC')), 'delisted_date': datetime.datetime(2038, 1, 1, 0, 0, tzinfo=tzfile('PRC')), 'underlying_symbol': '', 'option_type': '', 'option_margin_ratio1': 0.0, 'option_margin_ratio2': 0.0, 'call_or_put': '', 'conversion_start_date': None},
 {'trade_date': datetime.datetime(2022, 1, 13, 0, 0, tzinfo=tzfile('PRC')), 'pre_close': 22.05, 'upper_limit': 24.26, 'lower_limit': 19.85, 'turn_rate': 0.9394, 'adj_factor': 173.0897, 'margin_ratio': 1.0, 'multiplier': 1, 'is_adjusted': False, 'is_suspended': False, 'position': 0, 'settle_price': 0.0, 'pre_settle': 0.0, 'conversion_price': 0.0, 'exercise_price': 0.0, 'is_st': False, 'symbol': 'SZSE.000002', 'sec_type1': 1010, 'sec_type2': 101001, 'board': 10100101, 'exchange': 'SZSE', 'sec_id': '000002', 'sec_name': '万科A', 'sec_abbr': 'WKA', 'price_tick': 0.01, 'trade_n': 1, 'listed_date': datetime.datetime(1991, 1, 29, 0, 0, tzinfo=tzfile('PRC')), 'delisted_date': datetime.datetime(2038, 1, 1, 0, 0, tzinfo=tzfile('PRC')), 'underlying_symbol': '', 'option_type': '', 'option_margin_ratio1': 0.0, 'option_margin_ratio2': 0.0, 'call_or_put': '', 'conversion_start_date': None}]

注意:

1. sec_type1为必填参数,即一次只能查询一个品种的标的最新交易日信息。

2. 查询的标的信息根据参数组合sec_type1, sec_type2, exchanges, symbols取交集,若输入参数之间出现任何矛盾(换句话说,所有的参数限制出满足要求的交集为空),则返回空list/空DataFrame ,例如get_symbols(sec_type1=1040, exchanges='SZSE')返回的是空值。

3. 若输入包含无效标的代码symbols,则返回的list/DataFrame只包含有效标的代码对应的数据。

4. 获取全 A 股票代码示例get_symbols(sec_type1=1010, sec_type2=101001, df=True)['symbol'].tolist()

5. 可转债的到期日(退市日期)为delisted_date,转股价值为转股价值 = 转股数*股价 = (100/可转债转股价) * 股价

get_history_symbol - 查询指定标的多日交易信息

获取指定标的多个历史交易日的交易信息,包括基本信息及日度数据.

此函数为掘金公版(体验版/专业版/机构版)函数,券商版以升级提示为准

函数原型:

get_history_symbol(symbol=None, start_date=None, end_date=None, df=False)

参数:

参数名类型中文名称必填默认值参数用法说明
symbolstr标的代码Y输入标的代码,只能输入一个.
start_datestr开始时间NNone开始时间日期,%Y-%m-%d 格式,默认None表示当前时间
end_datestr结束时间NNone结束时间日期,%Y-%m-%d 格式,默认None表示当前时间
dfbool返回格式NFalse是否返回 dataframe 格式,默认False返回字典格式,返回 list[dict], 列表每项的 dict 的 key 值为 fields 字段.

返回值:

字段名类型中文名称说明股票字段基金字段债券字段期货字段期权字段指数字段
trade_datedatetime.datetime交易日期最新交易日的日期
symbolstr标的代码exchange.sec_id
sec_type1int证券品种大类1010: 股票,1020: 基金, 1030: 债券,1040: 期货, 1050: 期权,1060: 指数,1070:板块
sec_type2int证券品种细类- 股票 101001:A 股,101002:B 股,101003:存托凭证 - 基金 102001:ETF,102002:LOF,102005:FOF - 债券 103001:可转债,103008:回购 - 期货 104001:股指期货,104003:商品期货,104006:国债期货 - 期权 105001:股票期权,105002:指数期权,105003:商品期权 - 指数 106001:股票指数,106002:基金指数,106003:债券指数,106004:期货指数 - 板块:107001:概念板块
boardint板块A 股 10100101:主板 A 股 10100102:创业板 10100103:科创版 10100104:北交所股票 ETF 10200101:股票 ETF 10200102:债券 ETF 10200103:商品 ETF 10200104:跨境 ETF 10200105:货币 ETF 可转债 10300101:普通可转债 10300102:可交换债券 10300103:可分离式债券 10300104:定向可转债
exchangestr交易所代码SHSE:上海证券交易所, SZSE:深圳证券交易所, CFFEX:中金所, SHFE:上期所, DCE:大商所, CZCE:郑商所, INE:上海国际能源交易中心 ,GFEX:广期所
sec_idstr交易所标的代码股票,基金,债券,指数的证券代码; 期货,期权的合约代码
sec_namestr交易所标的名称股票,基金,债券,指数的证券名称; 期货,期权的合约名称
sec_abbrstr交易所标的简称拼音或英文简称
price_tickfloat最小变动单位交易标的价格最小变动单位
trade_nint交易制度0 表示 T+0,1 表示 T+1,2 表示 T+2
listed_datedatetime.datetime上市日期证券/指数的上市日、衍生品合约的挂牌日
delisted_datedatetime.datetime退市日期股票/基金的退市日, 期货/期权的到期日(最后交易日), 可转债的赎回登记日
underlying_symbolstr标的资产期货/期权的合约标的物 symbol,可转债的正股标的 symbol
option_typestr行权方式期权行权方式,仅期权适用,E:欧式,A:美式
option_margin_ratio1float期权保证金计算系数 1计算期权单位保证金的第 1 个系数,仅期权适用
option_margin_ratio2float期权保证金计算系数 2计算期权单位保证金的第 2 个系数,仅期权适用
call_or_putstr合约类型期权合约类型,仅期权适用,C:Call(认购或看涨), P:Put(认沽或看跌)
conversion_start_datedatetime.datetime可转债开始转股日期可转债初始转股价的执行日期,仅可转债适用
is_adjustedbool合约调整是否调整合约,True:是,False:否(调整后会产生新的新的合约名称、新的行权价格、新的合约乘数)
is_suspendedbool是否停牌是否停牌,True:是,False:否
is_stbool是否 ST是否 ST,True: 是 ST 类(含ST, *ST, SST, S*ST), False: 否
positionint持仓量当日累计持仓量(当日盘后更新)
settle_pricefloat结算价当日结算价(当日盘后更新)
pre_settlefloat昨结价昨日结算价
pre_closefloat昨收价昨日收盘价
upper_limitfloat涨停价当日涨停价(首次公开发行上市的股票上市前 5 日无涨跌停价,返回0)
lower_limitfloat跌停价当日跌停价(首次公开发行上市的股票上市前 5 日无涨跌停价,返回0)
turn_ratefloat换手率当日换手率(%)(当日盘后更新)
adj_factorfloat复权因子当日累计后复权因子
margin_ratiofloat保证金比例期货在指定交易日的交易所保证金比例
conversion_pricefloat转股价可转债在指定交易日的转股价
exercise_pricefloat行权价期权在指定交易日的行权价
multiplierint合约乘数期货/期权合约在指定交易日的合约乘数

示例:

get_history_symbol(symbol='SZSE.000002', start_date='2022-09-01', end_date='2022-09-30', df=True)

输出:

                  trade_date  pre_close  ...  conversion_start_date
0  2022-09-01 00:00:00+08:00      16.63  ...                   None
1  2022-09-02 00:00:00+08:00      16.84  ...                   None
2  2022-09-05 00:00:00+08:00      16.80  ...                   None
3  2022-09-06 00:00:00+08:00      17.17  ...                   None
4  2022-09-07 00:00:00+08:00      17.85  ...                   None
5  2022-09-08 00:00:00+08:00      17.52  ...                   None
6  2022-09-09 00:00:00+08:00      17.58  ...                   None
7  2022-09-13 00:00:00+08:00      18.15  ...                   None
8  2022-09-14 00:00:00+08:00      18.18  ...                   None
9  2022-09-15 00:00:00+08:00      17.91  ...                   None
10 2022-09-16 00:00:00+08:00      18.50  ...                   None
11 2022-09-19 00:00:00+08:00      18.00  ...                   None
12 2022-09-20 00:00:00+08:00      18.18  ...                   None
13 2022-09-21 00:00:00+08:00      17.56  ...                   None
14 2022-09-22 00:00:00+08:00      17.56  ...                   None
15 2022-09-23 00:00:00+08:00      17.49  ...                   None
16 2022-09-26 00:00:00+08:00      17.51  ...                   None
17 2022-09-27 00:00:00+08:00      17.44  ...                   None
18 2022-09-28 00:00:00+08:00      17.60  ...                   None
19 2022-09-29 00:00:00+08:00      17.46  ...                   None
20 2022-09-30 00:00:00+08:00      17.15  ...                   None

[21 rows x 34 columns]

注意:

1. 若输入包含无效标的代码symbol,则返回的list/DataFrame只包含有效标的代码对应的数据。

2. 停牌时且股票发生除权除息,涨停价和跌停价可能有误差。

3. 对每个标的,数据根据trade_date的升序进行排序。

4. start_dateend_date中月份和日期都可以只输入个位数,例:'2010-7-8'或'2017-7-30'

5.start_date大于或者等于 end_date 时, 取指定时间段的数据,当 start_date > end_date时, 返回报错

6. 可转债的到期日(退市日期)delisted_date,转股价值为转股价值 = 转股数*股价 = (100/可转债转股价) * 股价

get_trading_dates_by_year - 查询年度交易日历

查询一个交易所的指定年份的交易日历.

此函数为掘金公版(体验版/专业版/机构版)函数,券商版以升级提示为准

函数原型:

get_trading_dates_by_year(exchange, start_year, end_year)

参数:

参数名类型中文名称必填默认值参数用法说明
exchangestr交易所代码Y只能填写一个交易所代码 交易所代码清单: SHSE:上海证券交易所,SZSE:深圳证券交易所,CFFEX:中金所,SHFE:上期所,DCE:大商所,CZCE:郑商所,INE:上海国际能源交易中心,GFEX:广期所
start_yearint开始年份Y查询交易日历开始年份(含),yyyy 格式
end_yearint结束年份Y查询交易日历结束年份(含),yyyy 格式

返回值:dataframe

字段名类型中文名称说明
datestr自然日期查询年份的自然日日期
trade_datestr交易日期查询年份的交易日日期,如果所在自然日不是交易日,交易日期为空字符串''
next_trade_datestr下一交易日交易日对应的下一交易日
pre_trade_datestr上一交易日交易日对应的上一交易日

示例:

# coding=utf-8
from __future__ import print_function, absolute_import
from gm.api import *


def init(context):

    # 实时模式
    if context.mode == 1:
        context.trade_date = get_trading_dates_by_year(exchange='SHSE', start_year=int(context.now.strftime('%Y')),
                                                       end_year=int(context.now.strftime('%Y')))
        context.trade_date.index = context.trade_date['date']
    # 回测模式
    else:
        context.trade_date = get_trading_dates_by_year(exchange='SHSE', start_year=int(context.backtest_start_time[:4]),
                                                       end_year=int(context.backtest_start_time[:4]))
        context.trade_date.index = context.trade_date['date']
    today = context.now.strftime('%Y-%m-%d')
    next_trade_date = context.trade_date.loc[today, 'next_trade_date']
    pre_trade_date = context.trade_date.loc[today, 'pre_trade_date']
    print('今天:{}, 上个交易日:{}, 下个交易日:{}'.format(today, pre_trade_date, next_trade_date))

    # 判断当天是否为交易日
    trade_date = context.trade_date['trade_date'].tolist()
    if context.now.strftime('%Y-%m-%d') not in  trade_date:
        print(context.now,"当前为非交易日")
    else:
        print(context.now, "当前为交易日")

输出:

今天:2023-08-21, 上个交易日:2023-08-18, 下个交易日:2023-08-22

示例:

get_trading_dates_by_year(exchange='SHSE', start_year=2020, end_year=2023)

输出:

            date next_trade_date pre_trade_date  trade_date
0     2020-01-01      2020-01-02     2019-12-31
1     2020-01-02      2020-01-03     2019-12-31  2020-01-02
2     2020-01-03      2020-01-06     2020-01-02  2020-01-03
3     2020-01-04      2020-01-06     2020-01-03
4     2020-01-05      2020-01-06     2020-01-03
         ...             ...            ...         ...
1456  2023-12-27      2023-12-28     2023-12-26  2023-12-27
1457  2023-12-28      2023-12-29     2023-12-27  2023-12-28
1458  2023-12-29      2024-01-02     2023-12-28  2023-12-29
1459  2023-12-30      2024-01-02     2023-12-29
1460  2023-12-31      2024-01-02     2023-12-29

[1461 rows x 4 columns]

注意:

1. exchange参数仅支持输入单个交易所代码,若代码错误,会报错

2. 开始年份必须不晚于结束年份,否则返回空dataframe

get_previous_n_trading_dates - 查询指定日期的前n个交易日

查询一个交易所指定日期的前n个交易日

此函数为掘金公版(体验版/专业版/机构版)函数,券商版以升级提示为准, gm SDK 3.0.163 版本新增

函数原型:

get_previous_n_trading_dates(exchange, date, n=1)

参数:

参数名类型中文名称必填默认值参数用法说明
exchangestr交易所代码Y只能填写一个交易所代码,交易所代码清单: SHSE:上海证券交易所,SZSE:深圳证券交易所,CFFEX:中金所,SHFE:上期所,DCE:大商所,CZCE:郑商所,INE:能源中心,GFEX:广期所
datestr指定日期Y指定的基准日期T,%Y-%m-%d 格式
nint交易日个数N前n个交易日,默认为1,即前一天,取值范围[1,支持的最早交易日至当前交易日个数-1]

返回值:

交易日期字符串(%Y-%m-%d 格式)列表

get_previous_n_trading_dates(exchange='SHSE', date='2023-10-10', n=10)

输出:

['2023-09-18', '2023-09-19', '2023-09-20', '2023-09-21', '2023-09-22', '2023-09-25', '2023-09-26', '2023-09-27', '2023-09-28', '2023-10-09']

注意:

1. exchange参数仅支持输入单个交易所代码。

2. n必须为非零正整数,n=0时会报错,n超出最早支持的交易日时只会返回至最早交易日。

3. 获取date前N个交易日,不包括date日期。

get_next_n_trading_dates - 查询指定日期的后n个交易日

查询一个交易所指定日期的后n个交易日

此函数为掘金公版(体验版/专业版/机构版)函数,券商版以升级提示为准, gm SDK 3.0.163 版本新增

函数原型:

get_next_n_trading_dates(exchange, date, n=1)

参数:

参数名类型中文名称必填默认值参数用法说明
exchangestr交易所代码Y只能填写一个交易所代码,交易所代码清单: SHSE:上海证券交易所,SZSE:深圳证券交易所,CFFEX:中金所,SHFE:上期所,DCE:大商所,CZCE:郑商所,INE:能源中心,GFEX:广期所
datestr指定日期Y指定的基准日期T,%Y-%m-%d 格式
nint交易日个数N前n个交易日,默认为1,即前一天,取值范围[1,支持的最早交易日至当前交易日个数-1]

返回值:

交易日期字符串(%Y-%m-%d 格式)列表

get_next_n_trading_dates(exchange='SHSE', date='2023-09-27', n=10)

输出:

['2023-09-28', '2023-10-09', '2023-10-10', '2023-10-11', '2023-10-12', '2023-10-13', '2023-10-16', '2023-10-17', '2023-10-18', '2023-10-19']

注意:

1. exchange参数仅支持输入单个交易所代码。

2. n必须为非零正整数,n=0时会报错,n超出最早支持的交易日时只会返回至最早交易日。

3. 获取date前N个交易日,不包括date日期。

get_trading_session - 查询交易时段

查询一个标的所属品种交易时间段.

此函数为掘金公版(体验版/专业版/机构版)函数,券商版以升级提示为准

函数原型:

get_trading_session(symbols, df=False)

参数:

参数名类型中文名称必填默认值参数用法说明
symbolsstr or list标的代码Y输入标的代码,可输入多个. 采用 str 格式时,多个标的代码必须用英文逗号分割,如:'SHSE.600008,SZSE.000002' 采用 list 格式时,多个标的代码示例:['SHSE.600008', 'SZSE.000002'].
dfbool返回格式NFalse是否返回 dataframe 格式, 默认False返回字典格式,返回list[dict],列表每项的 dict 的 key 值见返回字段名

返回值:

字段名类型中文名称说明
symbolstr标的代码exchange.sec_id
exchangestr交易所代码SHSE:上海证券交易所,SZSE:深圳证券交易所,CFFEX:中金所, SHFE:上期所,DCE:大商所,CZCE:郑商所,INE:上海国际能源交易中心,GFEX:广期所
time_tradinglist[dict]连续竞价时段HH:MM 格式,按时间顺序排列,如品种存在夜盘,夜盘时段排最前。 如[{'start': '09:30','end': '11:30'}, {'start': '13:00', 'end': '14:57'}]
time_callautionlist[dict]集合竞价时段HH:MM 格式,按时间顺序排列,如品种存在夜盘,夜盘时段排最前。 如[{’start': '09:15', 'end': '09:25'},{'start': '14:57', 'end': '15:00'}]

示例:

get_trading_session(symbols='SHFE.au2306', df=False)

输出:

[{'symbol': 'SHFE.AU2306', 'exchange': 'SHFE', 'time_trading': [{'start': '21:00', 'end': '2:30'}, {'start': '9:00', 'end': '10:15'}, {'start': '10:30', 'end': '11:30'}, {'start': '13:30', 'end': '15:00'}], 'time_auction': [{'start': '20:55', 'end': '20:59'}]}]

注意:

1. 如果输入不存在的合约代码 symbol,会报错提示"该合约[symbol]不存在"。

get_contract_expire_rest_days - 查询合约到期剩余天数

查询期货合约、期权合约、可转债的到期剩余天数。

此函数为掘金公版(体验版/专业版/机构版)函数,券商版以升级提示为准

函数原型:

get_contract_expire_rest_days(symbols, start_date=None, end_date=None, trade_flag = False, df=False)

参数:

参数名类型中文名称必填默认值参数用法说明
symbolsstr or list标的代码Y输入标的代码,可输入多个. 采用 str 格式时,多个标的代码必须用英文逗号分割,如:'CFFEX.IF2212,CFFEX.IC2212' 采用 list 格式时,多个标的代码示例:['CFFEX.IF2212', CFFEX.IC2212'].
start_datestr or datetime开始日期NNone%Y-%m-%d 格式,不早于合约上市日 默认None表示最新时间.
end_datestr or datetime结束日期NNone%Y-%m-%d 格式,不早于指定的开始日期,否则返回报错 默认None表示最新时间.
trade_flagbool交易日NFalse是否需要按交易日计算,默认False按自然日计算,则返回到期剩余自然日天数; 设置为True按交易日计算,则返回到期剩余交易日天数
dfbool返回格式NFalse是否返回 dataframe 格式, 默认False返回字典格式,返回list[dict],列表每项的 dict 的 key 值见返回字段名

返回值:

字段名类型中文名称说明
datestr日期[开始日期,结束日期]内的自然日期
symbolstr合约代码exchange.sec_id
days_to_expireint到期剩余天数合约在指定交易时间至合约到期日的剩余天数. trade_flag=False,计算方法按自然日 trade_flag=True,计算方法按交易日

示例:

get_contract_expire_rest_days(symbols='CFFEX.IM2212', start_date='2022-12-12', end_date='2022-12-16', trade_flag = True, df=True)

输出:

         date        symbol  days_to_expire
0  2022-12-12  CFFEX.IM2212               4
1  2022-12-13  CFFEX.IM2212               3
2  2022-12-14  CFFEX.IM2212               2
3  2022-12-15  CFFEX.IM2212               1
4  2022-12-16  CFFEX.IM2212               0

注意:

1. 参数start_dateend_date必须是 pd.to_dateime()可识别的字符串 str 格式,例'yyyy-mm-dd', 'yyyy-mm-dd %H:%M:%S',或者是 datetime 对象

2. 在到期日当天,到期剩余天数为 0。正数表示距离到期日的剩余天数,0 表示到期日当天,负数表示距离到期日已经过去的天数。

3. 如果输入不存在的合约代码symbol,会报错提示"该合约[symbol]不存在"。

4. 如果输入的合约代码symbol在时间段内的某个日期未上市,在该日期的到期剩余天数返回 NaN。

5. 用于剩余天数计算的到期日是最后交易日。


如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文