🚀 AI 一键生成 joinquant 策略代码
立即体验

joinquant API 进阶:如何使用 get_current_tick 的 dt 参数获取历史特定时刻 Tick 盘口快照?

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

问题描述

请根据以下 SEO 主题生成完整页面内容:

Title: joinquant API 进阶:get_current_tick 的 dt 参数获取历史时刻快照

Question: 如何使用 get_current_tick 获取历史特定时刻(如10:00:00)的 Tick 盘口快照?

解决方案

joinquant API 进阶:使用 get_current_tick 获取历史特定时刻 Tick 盘口快照

在聚宽(JoinQuant)量化交易平台中,get_current_tick 是用于获取最新 Tick 数据的核心 API。通过合理使用其 dt 参数,开发者可以轻松精准地获取历史指定时刻(如 10:00:00)最接近的一条 Tick 盘口快照数据。


一、get_current_tick 函数说明

get_current_tick(security, dt=None, df=False)

参数解析:

  1. security:标的代码,支持股票、场内基金、商品期货及股指期货,或包含上述标的的列表(期货需使用具体合约代码)。
  2. dtdatetime.datetime 格式的时间对象。指定时表示返回离该指定时刻最近的一条 Tick 数据;默认为 None,即获取当前最新时刻的 Tick。
  3. df:布尔值,默认为 False(返回 Tick 对象或字典),设置为 True 时返回 DataFrame 格式。

注意:该 API 仅支持在回测及模拟交易环境(run_dailyhandle_datahandle_tick)中使用,不支持在投资研究环境中独立运行。


二、核心代码示例

以下示例展示了如何在每日策略运行过程中,指定获取 2018-11-01 10:00:00 或策略当日 10:00:00 的历史 Tick 快照:

import datetime

def initialize(context):
    # 设置基准与动态复权
    set_benchmark('000300.XSHG')
    set_option('use_real_price', True)
    
    # 注册定时运行函数
    run_daily(market_open, time='10:05')

def market_open(context):
    # 1. 获取指定历史具体日期时刻的 Tick 快照
    historical_dt = datetime.datetime(2018, 11, 1, 10, 0, 0)
    tick_hist = get_current_tick('000001.XSHE', dt=historical_dt)
    if tick_hist:
        log.info("2018-11-01 10:00:00 临近价格: %s", tick_hist.current)
    
    # 2. 获取回测/模拟当日 10:00:00 的 Tick 快照
    current_date = context.current_dt.date()
    today_10am = datetime.datetime.combine(current_date, datetime.time(10, 0, 0))
    tick_today_10am = get_current_tick('000001.XSHE', dt=today_10am)
    
    if tick_today_10am:
        log.info("当日 10:00:00 临近 Tick 价格: %s, 成交量: %s", tick_today_10am.current, tick_today_10am.volume)

三、返回值属性说明

df=False 且传入单个标的时,返回一个 Tick 对象,包含以下主要盘口属性:

  • current:当前价 / 最新价
  • datetime:该 Tick 发生的实际时间
  • open / high / low:截至当前时刻的开盘价、最高价、最低价
  • volume / money:截至当前时刻的累计成交量和成交额
  • a1_p ~ a5_p / a1_v ~ a5_v:卖一至卖五的挂单价格与挂单量
  • b1_p ~ b5_p / b1_v ~ b5_v:买一至买五的挂单价格与挂单量

四、注意事项与最佳实践

  1. 依赖交易时段:如果截至指定时刻未产生任何 Tick(例如停牌或未开盘),函数将返回 None,建议在代码中加入非空判断。
  2. 期货标限制:期货获取 Tick 必须使用具体合约代码(如 'RB1909.XSGE'),不可使用主力合约(如 'RB9999.XSGE')或指数合约。