第一个是对数据进行 down sample,原始的高频数据虽然是非等间距的,你可以自己定义一个时间间隔重新抽样。这个时候需要注意的是在抽样的时候需要仔细设计方法来计算抽样点的各项数值(价格,成交量等)。简单的做法是用原始数据 fit 出一条曲线,然后按照新的时间点取曲线上对应的值,或者算抽样时间间隔内数据点的加权平均,权值可以是数据点之间的时间差,或者成交量之类。这种方法做完之后就可以用常用的时序模型的技术了。
第二个就是所谓的 Point Process,直接对时间点进行建模(而非像时间序列模型是对抽样点的数据进行建模)。最简单的 Point Process 是一般概率统计课上都会教的 Poisson Process,它的特点是每次事件发生都是独立的,时间差复合指数分布。其它答案中提到的 ACD 是一种升级版,对事件间的时间差进行建模,刻画了事件之间会彼此影响的情况。这个模型技术上跟 ARMA 是一套,只不过把时间序列换成了事件序列的时间差而已。
另外有一种 Point Process 族是对单位时间内事件发生的概率密度进行建模的,学术界研究比较多的一种叫 Hawkes Process,以前主要用来对地震的余震进行建模,后来大家觉得地震这玩意跟金融交易里的震荡也挺像,有一批人就尝试往过套。
Hawkes Process 的思路是说历史上发生的事情对未来的概率密度函数有影响,只是随着时间流逝这种影响会逐渐减弱(Decay)。技术上就是做一个 Kernel,所有的历史事件都输入这个Kernel 来计算对未来的影响,Kernel本身做成 Decay 的形式就可以模拟衰减了。
Point Process 还有一个高级点的变种叫做 Masked Point Process,思路是把每个事件的相关数据作为标记(Mask)附加到时间点上,这样模型在对时间点建模的同时也兼顾了数据。而且这种标记可以是多个,对交易数据来说,价格,成交量,波动性等都可以作为标记。这样可以极大地大扩充模型的描述能力。
总的来说这两种模型的路子都算做是 Q 宗。这种模型最大的问题在于,它的底层技术设计可以非常漂亮,各种数学性质都很完备,但是你把它往数据上一套,就会发现问题很多,很多时候连基本的统计检验都通不过。有一个原因是,这些模型本身的思路出发点非常好,但问题是数据质量很难保证,要是你拿到的是不知经过了几层处理的 N 手数据,就更是很难说清问题究竟出在哪(具体例子见 http://arxiv.org/abs/1308.6756)。要知道高精度的 timestamped 交易数据是相当难求的,但如果时间都不准的话又怎么上模型呢?
时间序列根本不适合用到ultra high frequence 上,理由如下:
1、一般而言时间序列要求stationarity and ergodic,(当然有non-stationarity time series的技术)而ultra high frequence是highly dependent and highly heterogeneous。
2、考虑这样一个情景,t=0的时候交易量为0,t=1s的时候交易量为10000,之后知道t=5s的时候交易量为0。这样的一个情境下,如果用时间序列,势必要将t在0~5s这段时间的交易量aggregate or smooth,这彻底地抹掉了高volatility的特点。
处理高频数据目前而言,比较适合的是用point process (counting process) 来处理,更具体的是用self-exciting point process, Hawkes Process 是最为著名的self-exciting counting process。
最近刚好关注了一篇写ultra high frequency在jump variation方面的paper, 觉得写得非常详细,放在这里希望可以作为参考
ftp://ftp.econ.au.dk/creates/rp/11/rp11_19.pdf
里面关于如何处理ultra high frequency data讲到了一点用一个pre-averaging的方法来smooth out microstructure noise, pre-averaging公式如下: