卡尔曼滤波及其在配对交易中的应用-Python落地

感谢周航郭增岳的投稿,人工智能与量化交易公众号的运营者,他们热衷于人工智能和量化投资方面的研究。

前言

听过卡尔曼滤波的差不多有两年的时间了,虽然大致上明白其原理,但是也是直到现在才能够彻底掌握下来。主要是卡尔曼滤波算法涉及到比较复杂的数学公式推导。在很多博客上都有写卡尔曼滤波的相关文章,但都是花非常大的篇幅来通过一些例子来通俗地讲解卡尔曼滤波,对于不知道其数学原理的读者来说,看完之后依然是一知半解。

本文会先讲解最简单的单变量卡尔曼滤波,让大家知道卡尔曼滤波大致是什么样的,然后再详细地给出公式的推导过程,最后展示卡尔曼滤波在配对交易中的应用。

卡尔曼滤波

卡尔曼滤波(Kalman filtering)一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法。由于观测数据中包括系统中的噪声和干扰的影响,所以最优估计也可看作是滤波过程。

最简单的单变量卡尔曼滤波,可以认为,我们观测的时间序列是存在噪声的,而我们可以通过卡尔曼滤波,过滤掉噪声,而得到了去除噪声之后的状态序列

卡尔曼滤波在配对交易中的应用

关于什么配对交易,什么是统计套利中的协整,知乎上有非常好的回答,在这里我们只讨论卡尔曼滤波在配对交易中的应用。

在配对交易中,我们构造了如下回归方程

然后利用该方程在样本外进行套利。那么,假如我们这里的a和B是会改变的,那么我们如何动态地去调整回归方程的系数?我们可以使用如下滤波的方式

建立观测方程

建立状态方程

我们需要估计的状态为

下面以焦炭和螺纹为例,采用焦炭和螺纹主力连续合约的收盘价数据

得到alpha和beta的值如下:

There is always someone to learn from

在学习的路上

你永远不会独行

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181013B0O20S00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励