QMT获取历史行情数据API说明,个人QMT量化软件如何获取 ?

获取行情数据

交易类数据提供股票的交易行情数据,通过API接口调用即可获取相应的数据。

具体可查看API, 数据获取部分行情相关接口 数据获取函数在新窗口打开

(列举部分函数说明,完整说明,迅投QMT量化软件获取方式,欢迎联系我交流↑)。

 

#获取历史行情与实时行情

提示

  1. 在gmd系列函数中,历史行情需要从本地读取,所以若想取历史行情,需要先将历史行情下载到本地,而实时行情是从服务器返回的

  2. 所以,若需要历史行情,请先使用界面端或者download_history函数进行下载;若需要最新行情,请向服务器进行订阅

  3. 特别的,对于xtdata.get_market_data_ex来说,由于没有subscribe参数,需要在参数外先进行订阅(subscribe_quote)才能获取最新行情

  4. 对于同时获取历史和实时行情的情况,gmd系列函数会自动进行拼接

#内置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"的整数倍周期
"5m"的整数倍周期
"1d"的整数倍周期
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字段可选:
字段名数据类型含义
timeint时间戳
stimestring时间戳字符串形式
lastPricefloat最新价
openfloat开盘价
highfloat最高价
lowfloat最低价
lastClosefloat前收盘价
amountfloat成交总额
volumeint成交总量(手)
pvolumeint原始成交总量(未经过股手转换的成交总量)【不推荐使用】
stockStatusint证券状态
openInterestint若是股票,则openInt含义为股票状态,非股票则是持仓量openInt字段说明
transactionNumfloat成交笔数(期货没有,单独计算)
lastSettlementPricefloat前结算(股票为0)
settlementPricefloat今结算(股票为0)
askPricelist[float]多档委卖价
askVollist[int]多档委卖量
bidPricelist[float]多档委买价
bidVollist[int]多档委买量

返回值

  • 返回dict { stock_code1 : value1, stock_code2 : value2, ... }
  • value1, value2, ... :pd.DataFrame 数据集,index为time_list,columns为fields,可参考Bar字段
  • 各标的对应的DataFrame维度相同、索引相同

示例

获取行情示例仅获取历史行情仅获取最新行情获取历史行情+最新行情

# coding:gbk

def init(C):
  start_date = '20231001'# 格式"YYYYMMDD",开始下载的日期,date = ""时全量下载
  end_date = "" 
  period = "1d" 

  need_download = 1  # 取数据是空值时,将need_download赋值为1,确保正确下载了历史数据
  
  code_list = ["000001.SZ", "600519.SH"] # 股票列表

  if need_download: # 判断要不要下载数据, gmd系列函数都是从本地读取历史数据,从服务器订阅获取最新数据
    my_download(code_list, period, start_date, end_date)
  
  ############ 仅获取历史行情 #####################
  subscribe = False # 设置订阅参数,使gmd_ex仅返回本地数据
  count = -1 # 设置count参数,使gmd_ex返回全部数据
  data1 = C.get_market_data_ex([],code_list,period = period, start_time = start_date, end_time = end_date,subscribe = subscribe)

  ############ 仅获取最新行情 #####################
  subscribe = True # 设置订阅参数,使gmd_ex仅返回最新行情
  count = 1 # 设置count参数,使gmd_ex仅返回最新行情数据
  data2 = C.get_market_data_ex([],code_list,period = period, start_time = start_date, end_time = end_date,subscribe = subscribe, count = 1) # count 设置为1,使返回值只包含最新行情

  ############ 获取历史行情+最新行情 #####################
  subscribe = True # 设置订阅参数,使gmd_ex仅返回最新行情
  count = -1 # 设置count参数,使gmd_ex返回全部数据
  data3 = C.get_market_data_ex([],code_list,period = period, start_time = start_date, end_time = end_date,subscribe = subscribe, count = -1) # count 设置为-1,使返回值包含最新行情和历史行情


  print(data1[code_list[0]].tail())# 行情数据查看
  print(data2[code_list[0]].tail())
  print(data3[code_list[0]].tail())

def handlebar(C):
  return


def my_download(stock_list,period,start_date = '', end_date = ''):
  '''
  用于显示下载进度
  '''
  if "d" in period:
    period = "1d"
  elif "m" in period:
    if int(period[0]) < 5:
      period = "1m"
    else:
      period = "5m"
  elif "tick" == period:
    pass
  else:
    raise KeyboardInterrupt("周期传入错误")


  n = 1
  num = len(stock_list)
  for i in stock_list:
    print(f"当前正在下载{n}/{num}")
    
    download_history_data(i,period,start_date, end_date)
    n += 1
  print("下载任务结束")
  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值