3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
get_ticks 函数频率解答关于 get_ticks 函数的数据频率,并不全都是3秒钟一个tick,具体取决于你查询的标的类型:
get_ticks 的使用频率取决于你的交易策略类型:
get_price 或 get_bars 获取分钟或日线数据就足够了,很少会用到 get_ticks。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 数据包含的盘口信息(买卖报价和挂单量),可以衍生出很多高级玩法:
通过分析买一到买五、卖一到卖五的挂单量,可以判断短期内多空力量的对比,用于预测未来几秒到几分钟的价格微观走势。
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)
通过对比相邻两个 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倍为大单
在执行大额订单时,为了减少市场冲击,通常会将大单拆分成小单。利用 get_ticks 实时监控盘口流动性:
get_ticks 有一个 skip 参数(默认为 True)。在实盘中,有些 Tick 只有盘口挂单变化,但没有实际成交。如果你的策略只关心真实成交,保持 skip=True;如果你的策略是基于订单簿变化的(比如做市策略),建议设置 skip=False 以获取所有盘口变动快照。
get_ticks 是一个强大的微观数据获取工具。如果你致力于挖掘日内 Alpha、研究高频特征或优化交易执行,深入研究 Tick 数据中的 a1_v ~ a5_v 和 b1_v ~ b5_v 字段,将会为你打开量化交易的新大门。