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

JoinQuant 聚宽 get_ticks 函数用法详解:是3秒一个Tick吗?如何高效使用?

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

问题描述

get_ticks的用法

get_ticks函数是3秒钟一个tick吗?这个函数用的多吗?有什么好的用法?

解决方案

get_ticks 函数频率解答

关于 get_ticks 函数的数据频率,并不全都是3秒钟一个tick,具体取决于你查询的标的类型:

  1. 股票、场内基金、指数:是的,这些标的提供的是每3秒一次的快照数据(包含买五卖五盘口)。
  2. 期货:期货的 tick 数据频率更高,提供的是每0.5秒一次的快照数据(包含买一卖一盘口)。

这个函数用的多吗?

get_ticks 的使用频率取决于你的交易策略类型

  • 日频/分钟频策略(不常用):如果你做的是趋势跟踪、基本面多因子等中低频策略,通常使用 get_priceget_bars 获取分钟或日线数据就足够了,很少会用到 get_ticks
  • 高频/日内策略(非常常用):如果你做的是日内 T+0、高频做市、盘口微观结构分析、或者需要极精细的滑点测算,get_ticks 是必不可少的核心函数。它可以让你看到订单簿(Order Book)的细节。

get_ticks 的基础用法

from jqdata import *

# 获取平安银行最近10条tick数据,返回DataFrame格式
df = get_ticks('000001.XSHE', end_dt='2023-10-10 10:30:00', count=10, df=True)
print(df)

get_ticks 的高级/优秀用法场景

利用 Tick 数据包含的盘口信息(买卖报价和挂单量),可以衍生出很多高级玩法:

1. 计算盘口买卖力量失衡(Order Book Imbalance, OBI)

通过分析买一到买五、卖一到卖五的挂单量,可以判断短期内多空力量的对比,用于预测未来几秒到几分钟的价格微观走势。

def calculate_obi(tick_df):
    # 计算买方总挂单量 (买一到买五)
    bid_vol = tick_df['b1_v'] + tick_df['b2_v'] + tick_df['b3_v'] + tick_df['b4_v'] + tick_df['b5_v']
    # 计算卖方总挂单量 (卖一到卖五)
    ask_vol = tick_df['a1_v'] + tick_df['a2_v'] + tick_df['a3_v'] + tick_df['a4_v'] + tick_df['a5_v']
    
    # 计算失衡比例:(买单量 - 卖单量) / (买单量 + 卖单量)
    # 值越接近1,说明买盘越强;越接近-1,说明卖盘越强
    obi = (bid_vol - ask_vol) / (bid_vol + ask_vol)
    return obi

# 获取数据并计算
ticks = get_ticks('000001.XSHE', end_dt='2023-10-10 10:30:00', count=100, df=True)
ticks['OBI'] = calculate_obi(ticks)

2. 识别大单砸盘或托盘

通过对比相邻两个 Tick 的成交量(volume 字段的差值)和盘口挂单的变化,可以推测是否有大资金在主动扫单或被动挂单。

# 计算相邻Tick的成交量差值(即这3秒内的真实成交量)
ticks['tick_volume'] = ticks['volume'].diff()

# 找出3秒内成交量异常放大的时刻
mean_vol = ticks['tick_volume'].mean()
large_orders = ticks[ticks['tick_volume'] > mean_vol * 5] # 假设大于平均值5倍为大单

3. 优化算法交易的执行(VWAP/TWAP)

在执行大额订单时,为了减少市场冲击,通常会将大单拆分成小单。利用 get_ticks 实时监控盘口流动性:

  • 当买一挂单量充足时,主动卖出;
  • 当买卖价差(Spread = a1_p - b1_p)变大时,选择被动挂单等待成交。

4. 过滤无效的 Tick 数据

get_ticks 有一个 skip 参数(默认为 True)。在实盘中,有些 Tick 只有盘口挂单变化,但没有实际成交。如果你的策略只关心真实成交,保持 skip=True;如果你的策略是基于订单簿变化的(比如做市策略),建议设置 skip=False 以获取所有盘口变动快照。

总结

get_ticks 是一个强大的微观数据获取工具。如果你致力于挖掘日内 Alpha、研究高频特征或优化交易执行,深入研究 Tick 数据中的 a1_v ~ a5_vb1_v ~ b5_v 字段,将会为你打开量化交易的新大门。