Skip to content

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)

注意

  1. 该函数不建议在init中运行,在init中运行时仅能取到本地数据
  2. 关于获取行情函数之间的区别与注意事项可在 - 常见问题-行情相关 查看
  3. 除实时行情外,该函数还可用于获取特色数据,如资金流向数据,订单流数据等,获取方式见数据字典

原型

内置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)

释义

获取实时行情与历史行情数据

参数

名称类型描述
fieldlist数据字段,详情见下方field字段表
stock_listlist合约代码列表
periodstr数据周期,可选字段为: / "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_timestr数据起始时间,格式为 %Y%m%d 或 %Y%m%d%H%M%S,填""为获取历史最早一天
end_timestr数据结束时间,格式为 %Y%m%d 或 %Y%m%d%H%M%S ,填""为截止到最新一天
countint数据个数
dividend_typestr除权方式,可选值为 / 'none':不复权 / 'front':前复权 / 'back':后复权 / 'front_ratio': 等比前复权 / 'back_ratio': 等比后复权
fill_databool是否填充数据
subscribebool订阅数据开关,默认为True,设置为False时不做数据订阅,只读取本地已有数据。
  • field字段可选:
field数据类型含义
timeint时间
openfloat开盘价
highfloat最高价
lowfloat最低价
closefloat收盘价
volumefloat成交量
amountfloat成交额
settlefloat今结算
openInterestfloat持仓量
preClosefloat前收盘价
suspendFlagint停牌 1停牌,0 不停牌
  • period周期为tick时,field字段可选:
field数据类型含义
timeint时间
lastPricefloat最新价
lastClosefloat前收盘价
openfloat开盘价
highfloat最高价
lowfloat最低价
closefloat收盘价
volumefloat成交量
amountfloat成交额
settlefloat今结算
openInterestfloat持仓量
stockStatusint停牌 1停牌,0 不停牌

返回值

  • 返回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量化