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

qmt 平台获取历史 tick 数据和订单流指南

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

问题描述

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

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

解决方案

在 qmt 平台上获取历史 tick 数据和订单流数据,需要注意以下几点:

1. 历史 tick 数据的获取

  • 数据范围: qmt 平台通常提供一定时间范围内的历史 tick 数据,但能否获取到 1 年前的 tick 数据取决于您所连接的券商服务器或数据源的配置。一般来说,tick 数据量非常大,很多服务器只保留最近几个月的数据。建议您先尝试获取,如果获取不到,可能需要联系您的券商或数据提供商确认其数据保留策略。
  • 获取方法: 您可以使用 ContextInfo.get_history_data()ContextInfo.get_market_data_ex() 函数来获取历史 tick 数据。
    • 使用 get_history_data 时,将 period 参数设置为 'tick'
    • 使用 get_market_data_ex 时,将 period 参数设置为 'tick'
  • 获取时间: 只要您的 qmt 客户端处于登录状态,并且服务器正常运行,您通常可以在一天 24 小时内的任何时间尝试获取历史数据。但是,在交易时间段(如 9:30-11:30, 13:00-15:00),服务器可能会优先处理实时行情和交易请求,获取大量历史数据可能会比较慢或受到限制。建议在非交易时间段下载大量历史数据。

2. 订单流数据的获取

  • Level2 数据: 订单流数据通常属于 Level2 行情数据。qmt 平台支持 Level2 数据,但前提是您需要开通了 Level2 行情权限。
  • 获取方法: 如果您有 Level2 权限,可以使用 ContextInfo.get_market_data_ex() 函数,并将 period 参数设置为 'l2quoteaux' (Level2 行情快照指标) 或 'l2transactioncount' (Level2 大单统计) 来获取相关数据。
  • 7天订单流: 同样,能否获取到过去 7 天的订单流数据取决于服务器的配置。您可以尝试设置 start_timeend_time 来获取指定时间段的数据。

示例代码

def init(ContextInfo):
    # 设置股票池
    ContextInfo.set_universe(['000001.SZ'])

def handlebar(ContextInfo):
    if not ContextInfo.is_last_bar():
        return
    
    # 尝试获取历史 tick 数据 (注意:获取大量 tick 数据可能非常耗时)
    # 这里仅作为示例,实际使用时请谨慎设置 count 或时间范围
    tick_data = ContextInfo.get_market_data_ex(
        fields=[], 
        stock_code=['000001.SZ'], 
        period='tick',
        count=100 # 获取最近 100 个 tick
    )
    print("Tick Data:", tick_data)

    # 尝试获取 Level2 大单统计数据 (需要 Level2 权限)
    # l2_data = ContextInfo.get_market_data_ex(
    #     fields=[], 
    #     stock_code=['000001.SZ'], 
    #     period='l2transactioncount',
    #     count=10
    # )
    # print("Level2 Data:", l2_data)

总结:

您可以随时尝试获取数据,但能否获取到 1 年前的 tick 数据和 7 天的订单流数据,主要取决于您的数据源权限和服务器配置。建议在非交易时间进行大量数据的下载。