问题描述
解决方案
在聚宽(JoinQuant)API中,Tick 对象代表了盘面的一个快照,主要包含以下实时行情字段。这些字段可以在 handle_tick 回调函数或 get_current_tick 返回的对象中获取。
Tick 对象包含的字段列表
1. 基础信息
- code: 标的代码(例如
'000001.XSHE')。 - datetime: Tick 发生的时间(
datetime对象)。
2. 价格与成交信息
- current: 最新价。
- open: 当日开盘价。
- high: 截至到当前时刻的日内最高价。
- low: 截至到当前时刻的日内最低价。
- volume: 截至到当前时刻的累计成交量(单位:股/手)。
- money: 截至到当前时刻的累计成交额(单位:元)。
- position: 截至到当前时刻的持仓量(仅适用于期货)。
3. 盘口信息(买卖五档)
- 卖方盘口:
- a1_p ~ a5_p: 卖一价 到 卖五价。
- a1_v ~ a5_v: 卖一量 到 卖五量。
- 买方盘口:
- b1_p ~ b5_p: 买一价 到 买五价。
- b1_v ~ b5_v: 买一量 到 买五量。
特别说明
- 股票与场内基金:提供买五卖五(1-5档)的盘口数据。
- 期货:通常只提供买一卖一(1档)的盘口数据(即只有
a1和b1有效),且包含特有的position(持仓量)字段。
Q&A
Q: 如何在策略中获取当前的 Tick 数据?
A: 在分钟或 Tick 回测模式下,可以使用 get_current_tick(security) 获取指定标的的最新 Tick 对象;或者在 handle_tick(context, tick) 回调函数中直接使用传入的 tick 参数。
Q: Tick 数据中的 volume 是当前这一笔的成交量还是累计成交量?
A: volume 字段表示的是截至到当前时刻的累计成交量。如果需要计算两个 Tick 之间的单笔成交量,需要用当前 Tick 的 volume 减去上一个 Tick 的 volume。
Q: 为什么获取期货的 a2_p (卖二价) 是空的或者无效值?
A: 因为聚宽提供的期货 Tick 数据通常只包含一档盘口(买一和卖一),所以 a2_p 到 a5_p 以及对应的量在期货数据中通常不可用。