QMT get_market_data_ex 行情
手册全文:QMT API
ContextInfo.get_market_data_ex - 获取行情数据
实战:当日日线不是收盘
盘中 get_market_data_ex(..., period='1d') 的 close 会变。已定稿日线把 end_time 截到上一交易日;今开今价用 get_full_tick。
python
def load_daily(ContextInfo, codes, last_trade_yyyymmdd, count=60):
end = last_trade_yyyymmdd + '150000'
return ContextInfo.get_market_data_ex(
['open', 'high', 'low', 'close', 'volume'],
codes, period='1d', end_time=end, count=count,
dividend_type='front', subscribe=False)注意
- 该函数不建议在
init中运行,在init中运行时仅能取到本地数据 - 关于获取行情函数之间的区别与注意事项可在 - 常见问题-行情相关 查看
- 除实时行情外,该函数还可用于获取特色数据,如
资金流向数据,订单流数据等,获取方式见数据字典
原型
内置python
python
ContextInfo.get_market_data_ex(
fields=[],
stock_code=[],
period='follow',
start_time='',
end_time='',
count=-1,
dividend_type='follow',
fill_data=True,
subscribe=True)释义
获取实时行情与历史行情数据
参数
| 名称 | 类型 | 描述 |
|---|---|---|
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维度相同、索引相同
示例
示例data1返回值data2返回值data3返回值data4返回值历史tick期货五档盘口
python
# 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)开通 / 代写:关注公众号 Kimi量化
