接口说明
# 接口说明
# 行情接口
# 订阅单股行情
subscribe_quote(stock_code, period='1d', start_time='', end_time='', count=0, callback=None)
释义
- 订阅单股的行情数据,返回订阅号
- 订阅成功后,可以用get_market_data或get_l2_xxx获取行情,同时当指定callback回调函数后,动态行情会推送到callback里。传入不同period,其callback里收到的字段有所不同,详见行情数据字段列表
- 当仅需要动态行情时,适合
count=0,此时不管start_time和end_time传入何值,均不会像服务器订阅历史行情 - 当同时需要获取历史数据和动态行情时,
end_time传空字符串或当前时间且count传大于0或-1,且用get_market_data获取历史和实时行情,但是建议历史行情提前用download_history_data提前下载到本地 - 当仅需要历史行情时,不宜使用该接口,建议用download_history_data配合get_market_data使用
参数
- stock_code - string 合约代码
- period - string 周期 详见附录
周期 含义 tick分笔1m1分钟5m5分钟1d日线l2quotelevel2十档盘口l2orderlevel2逐笔委托l2transactionlevel2逐笔成交l2quoteauxlevel2实时行情补充(总买总卖)l2orderqueuelevel2委买委卖一档委托队列start_time - string 起始时间 %Y%m%d或%Y%m%d%H%M%S
end_time - string 结束时间 %Y%m%d或%Y%m%d%H%M%S
count - int 数据个数
callback - 数据推送回调
- 回调定义形式为
on_data(datas),回调参数datas格式为 { stock_code : [data1, data2, ...] }
def on_data(datas): for stock_code in datas: print(stock_code, datas[stock_code])1
2
3- 回调定义形式为
返回
- 订阅号,订阅成功返回
大于0,失败返回-1
- 订阅号,订阅成功返回
备注
- 单股订阅数量不宜过多,详见 接口概述-请求限制
# 订阅全推行情
subscribe_whole_quote(code_list, callback=None)
释义
- 订阅全推行情数据,返回订阅号
- 数据推送从callback返回,数据类型为分笔数据
参数
code_list - 代码列表,支持传入市场代码或合约代码两种方式
- 传入市场代码代表订阅全市场,示例:
['SH', 'SZ'] - 传入合约代码代表订阅指定的合约,示例:
['600000.SH', '000001.SZ']
- 传入市场代码代表订阅全市场,示例:
callback - 数据推送回调
- 回调定义形式为
on_data(datas),回调参数datas格式为 { stock1 : data1, stock2 : data2, ... }
def on_data(datas): for stock_code in datas: print(stock_code, datas[stock_code])1
2
3- 回调定义形式为
返回
- 订阅号,订阅成功返回
大于0,失败返回-1
- 订阅号,订阅成功返回
备注
- 订阅后会首先返回当前最新的全推数据
# 反订阅行情数据
unsubscribe_quote(seq)
- 释义
- 反订阅行情数据
- 参数
- seq - 订阅时返回的订阅号
- 返回
- 无
- 备注
- 无
# 阻塞线程接收行情回调
run()
- 释义
- 阻塞当前线程来维持运行状态,一般用于订阅数据后维持运行状态持续处理回调
- 参数
- seq - 订阅时返回的订阅号
- 返回
- 无
- 备注
- 实现方式为持续循环sleep,并在唤醒时检查连接状态,若连接断开则抛出异常结束循环
# 获取行情数据
get_market_data(field_list=[], stock_list=[], period='1d', start_time='', end_time='', count=-1, dividend_type='none', fill_data=True)
释义
- 从缓存获取行情数据,是主动获取行情的主要接口
- 获取实时行情需要先调用单股订阅接口subscribe_quote订阅实时行情
- 当已经提前用download_history_data下载数据或subscribe_quote订阅历史数据时,该接口可以获取到历史行情
参数
- field_list - list 数据字段列表,传空则为全部字段
周期为1m、5m、1d 时,字段可选 含义说明
field 含义 time时间open开盘价high最高价low最低价close收盘价volume成交量amount成交额settle今结算openInterest持仓量preClose前收盘价suspendFlag停牌1停牌,0 不停牌周期为tick 时,字段可选 含义说明
field 含义 time时间lastPrice最新价lastClose前日收盘价open开盘价high最高价low最低价close收盘价volume成交量amount成交额settle今结算pvolume成交总量openInterest持仓量stockStatus证券状态openInt持仓量lastSettlementPrice前结算askPrice卖一价~卖五价bidPrice买一价~买五价askVol卖一量~卖五量bidVol买一量~买五量- stock_list - list 合约代码列表
- period - string 周期 1m、5m、1d、tick
- start_time - string 起始时间 %Y%m%d或%Y%m%d%H%M%S
- end_time - string 结束时间 %Y%m%d或%Y%m%d%H%M%S
- count - int 数据个数
- dividend_type - string 除权方式
- fill_data - bool 是否向后填充空缺数据
- field_list - list 数据字段列表,传空则为全部字段
返回
- period为
1m5m1dK线周期时- 返回dict { field1 : value1, field2 : value2, ... }
- field1, field2, ... :数据字段
- value1, value2, ... :pd.DataFrame 数据集,index为stock_list,columns为time_list
- 各字段对应的DataFrame维度相同、索引相同
- period为
tick分笔周期时- 返回dict { stock1 : value1, stock2 : value2, ... }
- stock1, stock2, ... :合约代码
- value1, value2, ... :np.ndarray 数据集,按数据时间戳
time增序排列
- period为
备注
- 仅用于获取level1数据
# 获取全推数据
get_full_tick(code_list)
- 释义
- 获取全推数据
- 参数
- code_list - 代码列表,支持传入市场代码或合约代码两种方式
- 传入市场代码代表订阅全市场,示例:['SH', 'SZ']
- 传入合约代码代表订阅指定的合约,示例:['600000.SH', '000001.SZ']
- code_list - 代码列表,支持传入市场代码或合约代码两种方式
- 返回
- dict 数据集 { stock1 : tick1, stock2 : tick2, ... }
- tick字段说明
- 备注
- 无
# 获取除权数据
get_divid_factors(stock_code, start_time='', end_time='')
- 释义
- 获取除权数据
- 参数
- stock_code - 合约代码
- start_time - string 起始时间
- end_time - string 结束时间
- 返回
- pd.DataFrame 数据集
- 备注
- 无
# 获取level2行情快照数据
get_l2_quote(field_list=[], stock_code='', start_time='', end_time='', count=-1)
- 释义
- 获取level2行情快照数据
- 参数
- field_list - list 数据字段列表,传空则为全部字段
- stock_code - string 合约代码
- start_time - string 起始时间
- end_time - string 结束时间
- count - int 数据个数
- 返回
- np.ndarray 数据集,按数据时间戳
time增序排列
- np.ndarray 数据集,按数据时间戳
- 备注
- 需要缓存中有接收过的数据才能获取到subscribe_quote('000001.SZ', 'l2quote')
# 获取level2逐笔委托数据
get_l2_order(field_list=[], stock_code='', start_time='', end_time='', count=-1)
- 释义
- 获取level2逐笔委托数据
- 参数
- field_list - list 数据字段列表,传空则为全部字段
- stock_code - string 合约代码
- start_time - string 起始时间
- end_time - string 结束时间
- count - int 数据个数
- 返回
- np.ndarray 数据集,按数据时间戳
time增序排列
- np.ndarray 数据集,按数据时间戳
- 备注
- 需要缓存中有接收过的数据才能获取到subscribe_quote('000001.SZ', 'l2order')
# 获取level2逐笔成交数据
get_l2_transaction(field_list=[], stock_code='', start_time='', end_time='', count=-1)
- 释义
- 获取level2逐笔成交数据
- 参数
- field_list - list 数据字段列表,传空则为全部字段
- stock_code - string 合约代码
- start_time - string 起始时间
- end_time - string 结束时间
- count - int 数据个数
- 返回
- np.ndarray 数据集,按数据时间戳
time增序排列
- np.ndarray 数据集,按数据时间戳
- 备注
- 需要缓存中有接收过的数据才能获取到subscribe_quote('000001.SZ', 'l2transaction')
# 下载历史行情数据
download_history_data(stock_code, period, start_time='', end_time='')
- 释义
- 补充历史行情数据
- 补充完成后可以用get_market_data获取
- 参数
- stock_code - string 合约代码
- period - string 周期 支持
tick,1m,5m,1d - start_time - string 起始时间
- end_time - string 结束时间
- 返回
- 无
- 备注
- 同步执行,补充数据完成后返回
download_history_data2(stock_list, period, start_time='', end_time='', callback=None)
释义
- 补充历史行情数据,批量版本
参数
stock_list - list 合约列表
period - string 周期 支持
tick,1m,5m,1dstart_time - string 起始时间
end_time - string 结束时间
callback - func 回调函数
参数为进度信息dict
- total - 总下载个数
- finished - 已完成个数
- stockcode - 本地下载完成的合约代码
- message - 本次信息
def on_progress(data): print(data) # {'finished': 1, 'total': 50, 'stockcode': '000001.SZ', 'message': ''}1
2
3
返回
- 无
备注
- 同步执行,补充数据完成后返回
- 有任务完成时通过回调函数返回进度信息
# 财务数据接口
# 获取财务数据
提示
需要先使用download_financial_data下载财务数据
get_financial_data(stock_list, table_list=[], start_time='', end_time='', report_type='report_time')
释义
- 获取财务数据
参数
stock_list - list 合约代码列表
table_list - list 财务数据表名称列表
'Balance' #资产负债表 'Income' #利润表 'CashFlow' #现金流量表1
2
3
start_time - string 起始时间
end_time - string 结束时间
report_type - string 报表筛选方式
'report_time' #截止日期 'announce_time' #披露日期1
2
返回
- dict 数据集 { stock1 : datas1, stock2 : data2, ... }
- stock1, stock2, ... :合约代码
- datas1, datas2, ... :dict 数据集 { table1 : table_data1, table2 : table_data2, ... }
- table1, table2, ... :财务数据表名
- table_data1, table_data2, ... :pd.DataFrame 数据集,数据字段详见附录 - 财务数据字段列表
备注
- 无
# 下载财务数据
download_financial_data(stock_list, table_list=[])
- 释义
- 下载财务数据
- 参数
- stock_list - list 合约代码列表
- table_list - list 财务数据表名列表
- 返回
- 无
- 备注
- 同步执行,补充数据完成后返回
download_financial_data2(stock_list, table_list=[], start_time='', end_time='', callback=None)
释义
- 下载财务数据
参数
stock_list - list 合约代码列表
table_list - list 财务数据表名列表
start_time - string 起始时间
end_time - string 结束时间
- 以
m_anntime披露日期字段,按[start_time, end_time]范围筛选
- 以
callback - func 回调函数
参数为进度信息dict
- total - 总下载个数
- finished - 已完成个数
- stockcode - 本地下载完成的合约代码
- message - 本次信息
def on_progress(data): print(data) # {'finished': 1, 'total': 50, 'stockcode': '000001.SZ', 'message': ''}1
2
3
返回
- 无
备注
- 同步执行,补充数据完成后返回
# 基础行情信息
# 获取合约基础信息
get_instrument_detail(stock_code)
释义
- 获取合约基础信息
参数
- stock_code - string 合约代码
返回 dict 数据字典,{ field1 : value1, field2 : value2, ... },找不到指定合约时返回
NoneExchangeID - string 合约市场代码
InstrumentID - string 合约代码
InstrumentName - string 合约名称
ProductID - string 合约的品种ID(期货)
ProductName - string 合约的品种名称(期货)
CreateDate - str 上市日期(期货)
OpenDate - str IPO日期(股票)
ExpireDate - int 退市日或者到期日
PreClose - float 前收盘价格
SettlementPrice - float 前结算价格
UpStopPrice - float 当日涨停价
DownStopPrice - float 当日跌停价
FloatVolume - float 流通股本
TotalVolume - float 总股本
LongMarginRatio - float 多头保证金率
ShortMarginRatio - float 空头保证金率
PriceTick - float 最小价格变动单位
VolumeMultiple - int 合约乘数(对期货以外的品种,默认是1)
MainContract - int 主力合约标记,1、2、3分别表示第一主力合约,第二主力合约,第三主力合约
LastVolume - int 昨日持仓量
InstrumentStatus - int 合约已停牌日期(停牌第一天值为0,第二天为1,以此类推。注意,正常交易的股票该值也是0) 获取股票停牌状态参考get_full_tick openInt字段
IsTrading - bool 合约是否可交易
IsRecent - bool 是否是近月合约备注
- 可用于检查合约代码是否正确
- v1.0.4:
- 合约基础信息
CreateDateOpenDate字段类型由int调整为str
- 合约基础信息
# 获取合约类型
get_instrument_type(stock_code)
释义
- 获取合约类型
参数
- stock_code - string 合约代码
返回
dict 数据字典,{ type1 : value1, type2 : value2, ... },找不到指定合约时返回
None- type1, type2, ... :string 合约类型
- value1, value2, ... :bool 是否为该类合约
'index' #指数 'stock' #股票 'fund' #基金 'etf' #ETF1
2
3
4
备注
- 无
# 获取交易日列表
get_trading_dates(market, start_time='', end_time='', count=-1)
- 释义
- 获取交易日列表
- 参数
- market - string 市场代码
- start_time - string 起始时间
- end_time - string 结束时间
- count - int 数据个数
- 返回
- list 时间戳列表,[ date1, date2, ... ]
- 备注
- 无
# 获取板块列表
get_sector_list()
- 释义
- 获取板块列表
- 参数
- 无
- 返回
- list 板块列表,[ sector1, sector2, ... ]
- 备注
- 需要下载板块分类信息
# 获取板块成分股列表
get_stock_list_in_sector(sector_name)
- 释义
- 获取板块成分股列表
- 参数
- sector_name - string 版块名称
- 返回
- list 成分股列表,[ stock1, stock2, ... ]
- 备注
- 需要板块分类信息
# 下载板块分类信息
download_sector_data()
- 释义
- 下载板块分类信息
- 参数
- 无
- 返回
- 无
- 备注
- 同步执行,下载完成后返回
# 添加自定义板块
add_sector(sector_name, stock_list)
- 释义
- 添加自定义板块
- 参数
- sector_name - string 板块名称
- stock_list - list 成分股列表
- 返回
- 无
- 备注
- 无
# 移除自定义板块
remove_sector(sector_name)
- 释义
- 移除自定义板块
- 参数
- sector_name - string 板块名称
- 返回
- 无
- 备注
- 无
# 获取指数成分权重信息
get_index_weight(index_code)
- 释义
- 获取指数成分权重信息
- 参数
- index_code - string 指数代码
- 返回
- dict 数据字典,{ stock1 : weight1, stock2 : weight2, ... }
- 备注
- 需要下载指数成分权重信息
# 下载指数成分权重信息
download_index_weight()
- 释义
- 下载指数成分权重信息
- 参数
- 无
- 返回
- 无
- 备注
- 同步执行,下载完成后返回