3.1
Level 2 行情数据的存储
- 分区方案
为了实现行情数据的灵活分区存储,可以采用”时间+标的“的方式进行数据分区。DolphinDB 支持对不同分区数据进行多线程并行操作。
分区内分组排序
DolphinDB 的 TSDB引擎提供了排序键设置,可以为每个数据分区设置一个排序键,以便在数据随机读取时更准确地定位数据。例如,通过设置 SortColumn=[“SecurityID”, “TradeTime”],数据可以按照 SecurityID 字段分组,并在每个组内按照时间字段 TradeTime 排序。
存储方案
在上交所股票 Level 2 行情数据中,市价单信息只存储于逐笔成交表中,而逐笔委托表中没有市价单的记录,因此计算委托量和委托金额等指标时需要对两个表进行关联。在深交所 Level 2 行情数据中,逐笔委托表中的市价单价格标记为0;而撤单记录在逐笔成交表中,撤单记录中价格也标记为0;因此在计算委托金额、撤单金额等指标时都需要对两个表进行关联再计算。此外,在计算其他因子指标时,也需要对逐笔成交表和行情快照数据表进行关联。
根据业务需求,这里对沪深股票 Level 2 高频数据采用一库三表的建库建表方案,即把两个交易所相同的行情数据存入同一张表,使用 market 字段标识不同的交易所,且将 market 设置在索引列(SortColumn)中。
3.2
基于历史数据的高频因子计算
- 时间加权订单斜率
- 加权平均订单失衡率因子
- 成交价加权净委买比例
- 十档净委买增额
- 十档买卖委托均价线性回归斜率
……
- 单笔订单主动买入卖出均价
- 股票延时成交订单因子
……
- 委买委卖金额
- 买卖撤单金额
……
行情快照中的大部分高频因子基于限价订单簿的静态指标,例如价差、深度、宽度、斜率、订单不平衡等,研究市场的交易行为,进而预测股票的短期价格走势。
本节介绍基于 Level 2 行情快照中十档买卖价格和买卖数量数据计算的时间加权订单斜率、十档平均委卖订单斜率、成交价加权净委买比例、十档委买增额和十档买卖委托均价线性回归斜率等高频因子。
以下是 Level 2 行情快照数据十档部分字段的样例:
- 时间加权订单斜率