🚀 AI 一键生成 qmt 策略代码
立即体验
👉 AI 生成代码 👈

QMT量化平台获取历史Tick数据与订单流指南

qmt | 发布时间: 2026/5/29
以下内容由 EasyQuant 生成。

问题描述

请问1年前的历史tick数据如何获取,还有7天订单流

我是一天 24 小时随便什么时间都可以获取,吗还是在特定的时间范围内

解决方案

在 QMT 量化平台中,获取历史 Tick 数据和订单流(Level2 数据)需要结合客户端的数据下载功能和 Python API 来实现。以下是详细的解答:

1. 如何获取 1 年前的历史 Tick 数据?

要获取 1 年前的历史 Tick 数据,您需要分为两步操作:

第一步:在客户端补充数据(关键)
QMT 的历史数据主要依赖本地存储。您必须先在 QMT 客户端的**【数据管理】 -> 【补充数据】**中,选择您需要的市场、品种,勾选“分笔(Tick)”周期,并将时间范围设置为 1 年前,点击下载补充到本地。

第二步:使用 Python API 读取数据
数据下载到本地后,您可以在策略中使用 ContextInfo.get_market_data_exContextInfo.get_history_data 函数来获取。

def handlebar(ContextInfo):
    if not ContextInfo.is_last_bar():
        return
    
    # 使用 get_market_data_ex 获取历史 tick 数据
    # 注意:start_time 和 end_time 设置为您需要的1年前的时间范围
    tick_data = ContextInfo.get_market_data_ex(
        fields=[], 
        stock_code=['000001.SZ'], 
        period='tick',
        start_time='20221001', 
        end_time='20221031',
        count=-1
    )
    print(tick_data)

2. 如何获取 7 天订单流数据?

在 QMT 中,“订单流”通常对应的是 Level2 逐笔成交统计行情快照指标(注意:获取 Level2 数据需要您的账号开通了 Level2 增强版权限)。

同样,您需要先在【数据管理】中下载对应的 Level2 历史数据。然后在代码中使用 get_market_data_ex,将 period 参数设置为 l2transactioncount(Level2 大单统计)或 l2quoteaux(Level2 行情快照指标)。

def handlebar(ContextInfo):
    if not ContextInfo.is_last_bar():
        return
        
    # 获取过去7天的 Level2 大单统计数据(订单流替代)
    l2_data = ContextInfo.get_market_data_ex(
        fields=[], 
        stock_code=['000001.SZ'], 
        period='l2transactioncount', # 或 'l2quoteaux'
        start_time='20231018', # 7天前的日期
        end_time='20231025',   # 当前日期
        count=-1
    )
    print(l2_data)

3. 获取数据的时间限制(24小时随时获取吗?)

关于获取数据的时间限制,主要取决于您是读取本地数据还是向服务器请求下载数据

  • 读取本地数据(24小时随时可用):只要您已经通过客户端的【数据管理】将历史 Tick 或 Level2 数据下载到了本地硬盘,您的 Python 策略在一天 24 小时任何时间运行,都可以通过 API 瞬间读取到这些数据,没有任何时间限制。
  • 向服务器请求下载数据(建议非交易时段):如果您发现本地没有数据,需要打开【数据管理】向国信/券商服务器请求下载 1 年前的 Tick 数据。虽然理论上服务器全天开放下载,但在盘中交易时间(9:30-15:00),为了保证交易通道的稳定,服务器可能会限制大批量历史数据的下载速度或拒绝大范围请求。因此,强烈建议在盘后(如 16:00 之后)或周末进行大批量历史数据的补充下载。
  • 实时行情订阅:如果您是订阅当天的实时 Tick 或订单流(使用 subscribe_quote),则只能在交易时间段内随着交易所的行情推送而获取。

总结:提前在盘后或周末把 1 年前的 Tick 和 7 天的 Level2 数据下载到本地,之后您就可以 24 小时随时在代码中调用分析了。