# 通用数据函数(免费)

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

# get_symbol_infos - 查询标的基本信息

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

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

函数原型:

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

参数:

参数名 类型 中文名称 必填 默认值 参数用法说明
sec_type1 int 证券品种大类 Y 指定一种证券大类,只能输入一个. 证券大类 sec_type1 清单 1010: 股票, 1020: 基金, 1030: 债券 , 1040: 期货, 1050: 期权, 1060: 指数,1070:板块.
sec_type2 int 证券品种细类 N None 指定一种证券细类,只能输入一个. 默认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:概念板块
exchanges str or list 交易所代码 N None 输入交易所代码,可输入多个. 采用 str 格式时,多个交易所代码必须用英文逗号分割,如:'SHSE,SZSE' 采用 list 格式时,多个交易所代码示例:['SHSE', 'SZSE'] 默认None表示所有交易所. 交易所代码清单 SHSE:上海证券交易所,SZSE:深圳证券交易所 , CFFEX:中金所,SHFE:上期所,DCE:大商所, CZCE:郑商所, INE:上海国际能源交易中心 ,GFEX:广期所
symbols str or list 标的代码 N None 输入标的代码,可输入多个. 采用 str 格式时,多个标的代码必须用英文逗号分割,如:'SHSE.600008,SZSE.000002' 采用 list 格式时,多个标的代码示例:['SHSE.600008', 'SZSE.000002'] 默认None表示所有标的.
df bool 返回格式 N False 是否返回 dataframe 格式,默认False返回字典格式,返回 list[dict], 列表每项的 dict 的 key 值为 fields 字段.

返回值:

字段名 类型 中文名称 说明 股票字段 基金字段 债券字段 期货字段 期权字段 指数字段
symbol str 标的代码 exchange.sec_id
sec_type1 int 证券品种大类 1010: 股票,1020: 基金, 1030: 债券,1040: 期货, 1050: 期权,1060: 指数,1070:板块
sec_type2 int 证券品种细类 - 股票 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:概念板块
board int 板块 A 股 10100101:主板 A 股 10100102:创业板 10100103:科创版 10100104:北交所股票 ETF 10200101:股票 ETF 10200102:债券 ETF 10200103:商品 ETF 10200104:跨境 ETF 10200105:货币 ETF 可转债 10300101:普通可转债 10300102:可交换债券 10300103:可分离式债券 10300104:定向可转债
exchange str 交易所代码 SHSE:上海证券交易所, SZSE:深圳证券交易所, CFFEX:中金所, SHFE:上期所, DCE:大商所, CZCE:郑商所, INE:上海国际能源交易中心 ,GFEX:广期所
sec_id str 交易所标的代码 股票,基金,债券,指数的证券代码; 期货,期权的合约代码
sec_name str 交易所标的名称 股票,基金,债券,指数的证券名称; 期货,期权的合约名称
sec_abbr str 交易所标的简称 拼音或英文简称
price_tick float 最小变动单位 交易标的价格最小变动单位
trade_n int 交易制度 0 表示 T+0,1 表示 T+1,2 表示 T+2
listed_date datetime.datetime 上市日期 证券/指数的上市日、衍生品合约的挂牌日
delisted_date datetime.datetime 退市日期 股票/基金的退市日, 期货/期权的到期日(最后交易日), 可转债的赎回登记日
underlying_symbol str 标的资产 期货/期权的合约标的物 symbol,可转债的正股标的 symbol
option_type str 行权方式 期权行权方式,仅期权适用,E:欧式,A:美式
option_margin_ratio1 float 期权保证金计算系数 1 计算期权单位保证金的第 1 个系数,仅期权适用
option_margin_ratio2 float 期权保证金计算系数 2 计算期权单位保证金的第 2 个系数,仅期权适用
call_or_put str 合约类型 期权合约类型,仅期权适用,C:Call(认购或看涨), P:Put(认沽或看跌)
conversion_start_date datetime.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_type1 sec_type2 exchanges symbols
查询指定股票 1010 None None 'SHSE.600008,SZSE.000002'
查询 A 股股票 1010 101001 None None
查询深交所股票 1010 None 'SZSE' None
查询 ETF 1020 102001 None None
查询上交所 LOF 1020 102002 'SHSE' None
查询可转债 1030 103001 None None
查询深交所可转债 1030 103001 'SZSE' None
查询股指期货 1040 104001 None None
查询商品期货 1040 104003 None None
查询郑商所和大商所期货 1040 None 'CZCE,DCE' None
查询股票期权 1050 105001 None None
查询上交所股票期权 1050 105001 'SHSE' None
查询指数期权 1050 105002 None None
查询商品期权 1050 105003 None None
查询上期所商品期权 105003 None 'SHFE' None
查询股票指数 1060 106001 None None

# 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_type1 int 证券品种大类 Y 指定一种证券大类,只能输入一个. 证券大类 sec_type1 清单 1010: 股票, 1020: 基金, 1030: 债券 , 1040: 期货, 1050: 期权, 1060: 指数,1070:板块.
sec_type2 int 证券品种细类 N None 指定一种证券细类,只能输入一个. 默认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:概念板块
exchanges str or list 交易所代码 N None 输入交易所代码,可输入多个. 采用 str 格式时,多个交易所代码必须用英文逗号分割,如:'SHSE,SZSE' 采用 list 格式时,多个交易所代码示例:['SHSE', 'SZSE'] 默认None表示所有交易所. 交易所代码清单 SHSE:上海证券交易所,SZSE:深圳证券交易所 , CFFEX:中金所,SHFE:上期所,DCE:大商所, CZCE:郑商所, INE:上海国际能源交易中心 ,GFEX:广期所
symbols str or list 标的代码 N None 输入标的代码,可输入多个. 采用 str 格式时,多个标的代码必须用英文逗号分割,如:'SHSE.600008,SZSE.000002' 采用 list 格式时,多个标的代码示例:['SHSE.600008', 'SZSE.000002'] 默认None表示所有标的.
skip_suspended bool 跳过停牌 N True 是否跳过全天停牌,默认True跳过
skip_st bool 跳过 ST N True 是否跳过包含 ST 的股票:ST, *ST, SST, S*ST, 默认True跳过
trade_date str 交易日期 N None 交易日期,%Y-%m-%d 格式,默认None取最新截面(包含退市标的)
df bool 返回格式 N False 是否返回 dataframe 格式,默认False返回字典格式,返回 list[dict], 列表每项的 dict 的 key 值为 fields 字段.

返回值:

字段名 类型 中文名称 说明 股票字段 基金字段 债券字段 期货字段 期权字段 指数字段
trade_date datetime.datetime 交易日期 最新交易日的日期
symbol str 标的代码 exchange.sec_id
sec_type1 int 证券品种大类 1010: 股票,1020: 基金, 1030: 债券,1040: 期货, 1050: 期权,1060: 指数,1070:板块
sec_type2 int 证券品种细类 - 股票 101001:A 股,101002:B 股,101003:存托凭证 - 基金 102001:ETF,102002:LOF,102005:FOF - 债券 103001:可转债,103008:回购 - 期货 104001:股指期货,104003:商品期货,104006:国债期货 - 期权 105001:股票期权,105002:指数期权,105003:商品期权 - 指数 106001:股票指数,106002:基金指数,106003:债券指数,106004:期货指数 - 板块:107001:概念板块
board int 板块 A 股 10100101:主板 A 股 10100102:创业板 10100103:科创版 10100104:北交所股票 ETF 10200101:股票 ETF 10200102:债券 ETF 10200103:商品 ETF 10200104:跨境 ETF 10200105:货币 ETF 可转债 10300101:普通可转债 10300102:可交换债券 10300103:可分离式债券 10300104:定向可转债
exchange str 交易所代码 SHSE:上海证券交易所, SZSE:深圳证券交易所, CFFEX:中金所, SHFE:上期所, DCE:大商所, CZCE:郑商所, INE:上海国际能源交易中心 ,GFEX:广期所
sec_id str 交易所标的代码 股票,基金,债券,指数的证券代码; 期货,期权的合约代码
sec_name str 交易所标的名称 股票,基金,债券,指数的证券名称; 期货,期权的合约名称
sec_abbr str 交易所标的简称 拼音或英文简称
price_tick float 最小变动单位 交易标的价格最小变动单位
trade_n int 交易制度 0 表示 T+0,1 表示 T+1,2 表示 T+2
listed_date datetime.datetime 上市日期 证券/指数的上市日、衍生品合约的挂牌日
delisted_date datetime.datetime 退市日期 股票/基金的退市日, 期货/期权的到期日(最后交易日), 可转债的赎回登记日
underlying_symbol str 标的资产 期货/期权的合约标的物 symbol,可转债的正股标的 symbol
option_type str 行权方式 期权行权方式,仅期权适用,E:欧式,A:美式
option_margin_ratio1 float 期权保证金计算系数 1 计算期权单位保证金的第 1 个系数,仅期权适用
option_margin_ratio2 float 期权保证金计算系数 2 计算期权单位保证金的第 2 个系数,仅期权适用
call_or_put str 合约类型 期权合约类型,仅期权适用,C:Call(认购或看涨), P:Put(认沽或看跌)
conversion_start_date datetime.datetime 可转债开始转股日期 可转债初始转股价的执行日期,仅可转债适用
is_adjusted bool 合约调整 是否调整合约,True:是,False:否(调整后会产生新的新的合约名称、新的行权价格、新的合约乘数)
is_suspended bool 是否停牌 是否停牌,True:是,False:否
is_st bool 是否 ST 是否 ST,True: 是 ST 类(含ST, *ST, SST, S*ST), False: 否
position int 持仓量 当日累计持仓量(当日盘后更新)
settle_price float 结算价 当日结算价(当日盘后更新)
pre_settle float 昨结价 昨日结算价
pre_close float 昨收价 昨日收盘价
upper_limit float 涨停价 当日涨停价(首次公开发行上市的股票上市前 5 日无涨跌停价,返回0)
lower_limit float 跌停价 当日跌停价(首次公开发行上市的股票上市前 5 日无涨跌停价,返回0)
turn_rate float 换手率 当日换手率(%)(当日盘后更新)
adj_factor float 复权因子 当日累计后复权因子
margin_ratio float 保证金比例 期货最新保证金比例(交易所标准的最新期货保证金)
conversion_price float 转股价 可转债最新转股价(转股价变动后的最新转股价)
exercise_price float 行权价 期权最新行权价(期权合约调整后的最新行权价)
multiplier int 合约乘数 期货和期权合约最新合约乘数(期权合约调整后的最新合约乘数)

示例:

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)

参数:

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

返回值:

字段名 类型 中文名称 说明 股票字段 基金字段 债券字段 期货字段 期权字段 指数字段
trade_date datetime.datetime 交易日期 最新交易日的日期
symbol str 标的代码 exchange.sec_id
sec_type1 int 证券品种大类 1010: 股票,1020: 基金, 1030: 债券,1040: 期货, 1050: 期权,1060: 指数,1070:板块
sec_type2 int 证券品种细类 - 股票 101001:A 股,101002:B 股,101003:存托凭证 - 基金 102001:ETF,102002:LOF,102005:FOF - 债券 103001:可转债,103008:回购 - 期货 104001:股指期货,104003:商品期货,104006:国债期货 - 期权 105001:股票期权,105002:指数期权,105003:商品期权 - 指数 106001:股票指数,106002:基金指数,106003:债券指数,106004:期货指数 - 板块:107001:概念板块
board int 板块 A 股 10100101:主板 A 股 10100102:创业板 10100103:科创版 10100104:北交所股票 ETF 10200101:股票 ETF 10200102:债券 ETF 10200103:商品 ETF 10200104:跨境 ETF 10200105:货币 ETF 可转债 10300101:普通可转债 10300102:可交换债券 10300103:可分离式债券 10300104:定向可转债
exchange str 交易所代码 SHSE:上海证券交易所, SZSE:深圳证券交易所, CFFEX:中金所, SHFE:上期所, DCE:大商所, CZCE:郑商所, INE:上海国际能源交易中心 ,GFEX:广期所
sec_id str 交易所标的代码 股票,基金,债券,指数的证券代码; 期货,期权的合约代码
sec_name str 交易所标的名称 股票,基金,债券,指数的证券名称; 期货,期权的合约名称
sec_abbr str 交易所标的简称 拼音或英文简称
price_tick float 最小变动单位 交易标的价格最小变动单位
trade_n int 交易制度 0 表示 T+0,1 表示 T+1,2 表示 T+2
listed_date datetime.datetime 上市日期 证券/指数的上市日、衍生品合约的挂牌日
delisted_date datetime.datetime 退市日期 股票/基金的退市日, 期货/期权的到期日(最后交易日), 可转债的赎回登记日
underlying_symbol str 标的资产 期货/期权的合约标的物 symbol,可转债的正股标的 symbol
option_type str 行权方式 期权行权方式,仅期权适用,E:欧式,A:美式
option_margin_ratio1 float 期权保证金计算系数 1 计算期权单位保证金的第 1 个系数,仅期权适用
option_margin_ratio2 float 期权保证金计算系数 2 计算期权单位保证金的第 2 个系数,仅期权适用
call_or_put str 合约类型 期权合约类型,仅期权适用,C:Call(认购或看涨), P:Put(认沽或看跌)
conversion_start_date datetime.datetime 可转债开始转股日期 可转债初始转股价的执行日期,仅可转债适用
is_adjusted bool 合约调整 是否调整合约,True:是,False:否(调整后会产生新的新的合约名称、新的行权价格、新的合约乘数)
is_suspended bool 是否停牌 是否停牌,True:是,False:否
is_st bool 是否 ST 是否 ST,True: 是 ST 类(含ST, *ST, SST, S*ST), False: 否
position int 持仓量 当日累计持仓量(当日盘后更新)
settle_price float 结算价 当日结算价(当日盘后更新)
pre_settle float 昨结价 昨日结算价
pre_close float 昨收价 昨日收盘价
upper_limit float 涨停价 当日涨停价(首次公开发行上市的股票上市前 5 日无涨跌停价,返回0)
lower_limit float 跌停价 当日跌停价(首次公开发行上市的股票上市前 5 日无涨跌停价,返回0)
turn_rate float 换手率 当日换手率(%)(当日盘后更新)
adj_factor float 复权因子 当日累计后复权因子
margin_ratio float 保证金比例 期货在指定交易日的交易所保证金比例
conversion_price float 转股价 可转债在指定交易日的转股价
exercise_price float 行权价 期权在指定交易日的行权价
multiplier int 合约乘数 期货/期权合约在指定交易日的合约乘数

示例:

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)

参数:

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

返回值:dataframe

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

示例:

# 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)

参数:

参数名 类型 中文名称 必填 默认值 参数用法说明
exchange str 交易所代码 Y 只能填写一个交易所代码,交易所代码清单: SHSE:上海证券交易所,SZSE:深圳证券交易所,CFFEX:中金所,SHFE:上期所,DCE:大商所,CZCE:郑商所,INE:能源中心,GFEX:广期所
date str 指定日期 Y 指定的基准日期T,%Y-%m-%d 格式
n int 交易日个数 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)

参数:

参数名 类型 中文名称 必填 默认值 参数用法说明
exchange str 交易所代码 Y 只能填写一个交易所代码,交易所代码清单: SHSE:上海证券交易所,SZSE:深圳证券交易所,CFFEX:中金所,SHFE:上期所,DCE:大商所,CZCE:郑商所,INE:能源中心,GFEX:广期所
date str 指定日期 Y 指定的基准日期T,%Y-%m-%d 格式
n int 交易日个数 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)

参数:

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

返回值:

字段名 类型 中文名称 说明
symbol str 标的代码 exchange.sec_id
exchange str 交易所代码 SHSE:上海证券交易所,SZSE:深圳证券交易所,CFFEX:中金所, SHFE:上期所,DCE:大商所,CZCE:郑商所,INE:上海国际能源交易中心,GFEX:广期所
time_trading list[dict] 连续竞价时段 HH:MM 格式,按时间顺序排列,如品种存在夜盘,夜盘时段排最前。 如[{'start': '09:30','end': '11:30'}, {'start': '13:00', 'end': '14:57'}]
time_callaution list[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)

参数:

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

返回值:

字段名 类型 中文名称 说明
date str 日期 [开始日期,结束日期]内的自然日期
symbol str 合约代码 exchange.sec_id
days_to_expire int 到期剩余天数 合约在指定交易时间至合约到期日的剩余天数. 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. 用于剩余天数计算的到期日是最后交易日。


上次更新: 5/11/2024, 1:28:53 PM