ContextInfo.get_market_data_ex - 获取行情数据
ContextInfo.get_market_data_ex 是 QMT 内置 Python 中用于获取行情数据的接口。
提示
level2local-data-download
原型
ContextInfo.get_market_data_ex( fields=[], stock_code=[], period='follow', start_time='', end_time='', count=-1, dividend_type='follow', fill_data=True, subscribe=True)
释义
ContextInfo.get_market_data_ex 是 QMT 内置 Python 中用于获取行情数据的接口。
研究:官方目录未明确;回测:官方目录未明确;模拟:官方目录未明确;实盘:官方目录未明确。
参数
| 参数 | 是否必填 | 官方原始定义 |
|---|---|---|
fields |
否 | fields=[] |
stock_code |
否 | stock_code=[] |
period |
否 | period='follow' |
start_time |
否 | start_time='' |
end_time |
否 | end_time='' |
count |
否 | count=-1 |
dividend_type |
否 | dividend_type='follow' |
fill_data |
否 | fill_data=True |
subscribe |
否 | subscribe=True |
返回值
返回dict { stock_code1 : value1, stock_code2 : value2, ... }
value1, value2, ... :pd.DataFrame 数据集,index为time_list,columns为fields,可参考Bar字段
各标的对应的DataFrame维度相同、索引相同
示例
示例data1返回值data2返回值data3返回值data4返回值历史tick期货五档盘口
# coding:gbk
import pandas as pd
import numpy as np
def init(C):
C.stock_list = ["000001.SZ","600519.SH", "510050.SH"]# 指定获取的标的
C.start_time = "20230901"# 指定获取数据的开始时间
C.end_time = "20231101"# 指定获取数据的结束时间
def handlebar(C):
# 获取多只股票,多个字段,一条数据
data1 = C.get_market_data_ex([],C.stock_list, period = "1d",count = 1)
# 获取多只股票,多个字段,指定时间数据
data2 = C.get_market_data_ex([],C.stock_list, period = "1d", start_time = C.start_time, end_time = C.end_time)
# 获取多只股票,多个字段,指定时间15m数据
data3 = C.get_market_data_ex([],C.stock_list, period = "15m", start_time = C.start_time, end_time = C.end_time)
# 获取多只股票,指定字段,指定时间15m数据
data4 = C.get_market_data_ex(["close","open"],C.stock_list, period = "15m", start_time = C.start_time, end_time = C.end_time)
# 获取多只股票,历史tick
tick = C.get_market_data_ex([],C.stock_list, period = "tick", start_time = C.start_time, end_time = C.end_time)
# 获取期货5档盘口tick
future_lv2_quote = C.get_market_data_ex([],["rb2405.SF","ec2404.INE"], period = "l2quote", count = 1)
print(data1)
print(data2["000001.SZ"].tail())
print(data3)
print(data4["000001.SZ"])
print(data4["000001.SZ"].to_csv("your_path")) # 导出文件为csv格式,路径填本机路径
print(tick["000001.SZ"])
print(future_lv2_quote)
详细说明
注意事项
该函数不建议在init中运行,在init中运行时仅能取到本地数据
关于获取行情函数之间的区别与注意事项可在 - 常见问题-行情相关 查看
除实时行情外,该函数还可用于获取特色数据,如资金流向数据,订单流数据等,获取方式见数据字典
功能说明
获取实时行情与历史行情数据
参数详细说明
| 名称 | 类型 | 描述 |
|---|---|---|
| field | list | 数据字段,详情见下方field字段表 |
| stock_list | list | 合约代码列表 |
| period | str | 数据周期,可选字段为: / "tick" / "1m":1分钟线 / "5m":5分钟线;"15m":15分钟线;"30m":30分钟线 / "1h"小时线 / "1d":日线 / "1w":周线 / "1mon":月线 / "1q":季线 / "1hy":半年线 / "1y":年线 / 'l2quote':Level2行情快照 / 'l2quoteaux':Level2行情快照补充 / 'l2order':Level2逐笔委托 / 'l2transaction':Level2逐笔成交 / 'l2transactioncount':Level2大单统计 / 'l2orderqueue':Level2委买委卖队列 |
| start_time | str | 数据起始时间,格式为 %Y%m%d 或 %Y%m%d%H%M%S,填""为获取历史最早一天 |
| end_time | str | 数据结束时间,格式为 %Y%m%d 或 %Y%m%d%H%M%S ,填""为截止到最新一天 |
| count | int | 数据个数 |
| dividend_type | str | 除权方式,可选值为 / 'none':不复权 / 'front':前复权 / 'back':后复权 / 'front_ratio': 等比前复权 / 'back_ratio': 等比后复权 |
| fill_data | bool | 是否填充数据 |
| subscribe | bool | 订阅数据开关,默认为True,设置为False时不做数据订阅,只读取本地已有数据。 |
field字段可选:
| field | 数据类型 | 含义 |
|---|---|---|
| time | int | 时间 |
| open | float | 开盘价 |
| high | float | 最高价 |
| low | float | 最低价 |
| close | float | 收盘价 |
| volume | float | 成交量 |
| amount | float | 成交额 |
| settle | float | 今结算 |
| openInterest | float | 持仓量 |
| preClose | float | 前收盘价 |
| suspendFlag | int | 停牌 1停牌,0 不停牌 |
period周期为tick时,field字段可选:
| field | 数据类型 | 含义 |
|---|---|---|
| time | int | 时间 |
| lastPrice | float | 最新价 |
| lastClose | float | 前收盘价 |
| open | float | 开盘价 |
| high | float | 最高价 |
| low | float | 最低价 |
| close | float | 收盘价 |
| volume | float | 成交量 |
| amount | float | 成交额 |
| settle | float | 今结算 |
| openInterest | float | 持仓量 |
| stockStatus | int | 停牌 1停牌,0 不停牌 |
period周期为Level2数据时,字段参考数据结构
返回值
返回dict { stock_code1 : value1, stock_code2 : value2, ... }
value1, value2, ... :pd.DataFrame 数据集,index为time_list,columns为fields,可参考Bar字段
各标的对应的DataFrame维度相同、索引相同