乐趣区

关于数据挖掘:R语言和Python用泊松过程扩展霍克斯过程Hawkes-Processes分析比特币交易数据订单到达自激过程时间序列

原文链接:http://tecdat.cn/?p=25880 

介绍

本文形容了一个模型,该模型解释了交易的汇集达到,并展现了如何将其利用于比特币交易数据。这是很乏味的,起因很多。例如,对于交易来说,可能预测在短期内是否有更多的买入或卖出是十分有用的。另一方面,这样的模型可能有助于了解根本新闻驱动价格与机器人交易员对价格变动的反馈之间的区别。

订单达到的自激性和集群性

交易不会以平均的距离达到,但通常会在工夫上汇集在一起。相似地,雷同的交易标记往往会汇集在一起并产生一系列买入或卖出订单。例如,将订单分成小块的算法交易者或对某些交易所事件做出反馈的交易系统。

出于演示目标,我应用的数据是 2013 年 4 月 20 日 13:10 到 19:57 之间的 5000 笔交易。这是 1 分钟窗口内聚合的交易计数图。

plot(x, b, type = "l")

每分钟的均匀交易数是 13,然而咱们能够找出几个超过 50 的实例。通常较高的交易强度会继续几分钟,而后再次降落到平均值。特地是在 16:00 之后的 15 分钟左右,咱们能够看到十分高的交易强度,其中一个实例每分钟超过 200 个订单,而后在接下来的约 10 分钟内强度迟缓降落。

形容事件计数达到的最根本办法,例如下面的工夫序列,是泊松过程,有一个参数 λ。在泊松过程中,每单位工夫的预期事件数由一个参数定义。这种办法被宽泛应用,因为它非常适合大量数据,例如呼叫核心的电话达到。然而,就咱们的目标而言,这太简略了,因为咱们须要一种办法来解释聚类和均值回归。

霍克斯过程(Hawkes Processes),是根本泊松过程的扩大,旨在解释这种聚类。像这样的自激模型宽泛用于各种迷信;一些例子是地震学(地震和火山喷发的建模)、生态学(野火评估)、神经科学,当然还有金融和贸易。

让咱们持续了解和拟合霍克斯过程 (Hawkes Processes) 到下面的数据。

霍克斯过程(Hawkes Processes)

霍克斯过程对随工夫变动的强度或过程的事件发生率进行建模,这部分取决于过程的历史。另一方面,简略的泊松过程没有思考事件的历史。

下图中绘制了霍克斯过程的示例实现。

它由 8 个事件组成,通常采纳工夫戳的模式,以及由三个参数定义的样本强度门路

这里,μ 是过程复原到的根本速率,α 是事件产生后的强度跳跃,β 是指数强度衰减。基准率也能够解释为外生事件的强度,例如新闻。其余参数 α 和 β 定义了过程的聚类属性。通常状况下 α<β 确保强度升高的速度快于新事件减少的速度。

自我激发性在工夫标记 2 之前的前四个事件中是可见的。它们在彼此相距很短的工夫内产生,这导致第四个事件的强度峰值很大。每一次事件的产生都会减少另一次产生的机会,从而导致事件的汇集。第五个数据点仅在工夫标记 4 处达到,与此同时,导致整体强度呈指数降落。

条件强度最简略的模式是

指数函数定义了过程的记忆,即过来的事件如何影响以后的事件。求和将此函数利用于从事件 titi 到以后事件 t 的历史。λ(t)示意工夫 t 的刹时强度。

给定条件强度,两个派生量也很乏味:冀望强度(在某些条件下)能够显示为 [4] 具备以下模式

并形容给定时间段的交易强度。另一个量是所谓的分支比

它形容了内生产生的交易比例(即作为另一笔交易的后果)。这能够用来评估交易流动中有多少是由反馈引起的。

能够应用传统的最大似然预计和凸求解器来拟合模型的参数。

将比特币交易的到来与霍克斯过程相匹配

在给定一组有序交易工夫 t1<t2<⋯<tn 的状况下,强度门路是齐全定义的,在咱们的例子中,这只是交易记录时的 unix 工夫戳。鉴于此,咱们能够应用 R 软件和 Python 轻松利用 MLE。给定参数的初始猜想和对参数的束缚为正,以下函数拟合模型。

fhawks <- function(data) {
  # 初始猜想,a 是 α,C 是 β
  pstt <- c
  # 应用条件强度函数创立一个对象
  proc
  # 假如强度必须是正的
  conditi <- penaltany(parms < 0)

  # 应用规范优化法进行拟合
  fit(m, optrol = list(trace = 2))

我通过将存储在数据帧中的 5000 个交易工夫戳传递给它来运行下面的拟合过程。与原始数据集的惟一区别是我为与另一笔交易共享工夫戳的所有交易增加了一个随机毫秒工夫戳。这是必须的,因为模型须要辨别每笔交易(即每笔交易必须有惟一的工夫戳)。文献形容了解决这个问题的不同办法 [4, 10],但将工夫戳扩大到毫秒是一种常见的办法。

summary(f)

咱们最终失去的参数估计为 μ=0.07,α=1.18,β=1.79。α 的参数估计表明,在单笔交易产生后,条件强度每秒减少 1.18 笔交易。此外,整个期间的均匀强度为每秒 E[λ]=0.20 次交易,一分钟内总共有 12 次交易,这与咱们的教训计数相符。n=65% 的分支率表明超过一半的交易是在模型内作为其余交易的后果产生的。鉴于所钻研的工夫绝对安稳,价格呈上涨趋势,这一数字很高。将其利用于更动荡的制度(例如一些解体)会很乏味,我认为该比率会高得多。

当初的目标是计算拟合模型的理论条件强度,并将其与教训计数进行比拟。R 执行此评估,咱们只需提供一系列工夫戳即可对其进行评估。该范畴介于原始数据集的最小和最大工夫戳之间,对于该范畴内的每个点,都会计算刹时强度。

下图比拟教训计数(来自本文的第一个图)和拟合的综合强度。

从图上看,这仿佛是一个相当好的拟合。请留神,历史强度往往高于拟合的强度,这在 [12] 中曾经被察看到了(在附录中)。作者通过引入有影响和无影响的交易来解决这个问题,这无效地缩小了作为拟合程序一部分的交易数量。教训数据和拟合数据之间跳跃大小稍微不匹配的另一个起因可能是同一秒内工夫戳的随机化;在 5000 个原始交易中,超过 2700 个交易与另一个交易共享一个工夫戳。这导致大量的交易(在同一秒内)失去订单,这可能会影响跳跃的大小。
 

工夫戳随机化的影响已在 [10] 中进行了钻研。

拟合优度

评估拟合优度的办法有很多种。一种是通过比拟 AIC 同质泊松模型的值,如下面的 R 总结中所示,咱们的霍克斯模型更适宜数据。

测验模型与数据拟合水平的另一种办法是评估残差。实践上说 [4],如果模型拟合得好,那么残差过程应该是同质的,应该有事件间工夫(两个残差事件工夫戳之间的差值),这些工夫是指数分布。事件间工夫的对数图(如[9] 所倡议的),或者同样在咱们的案例中,对指数分布的 QQ 图,证实了这点。上面的图显示了一个很好的 R2 拟合。
 

当初咱们晓得该模型很好地解释了达到的聚类,那么如何将其利用于交易呢?下一步将是至多独自思考买入和卖出的达到,并找到一种办法来预测给定的霍克斯模型。而后,这些强度预测能够形成做方向性策略的一部分。让咱们看一下文献以取得一些想法。

申请交易

[4]中的论文十分分明地形容了如何在金融环境中拟合和评估霍克斯过程。Florenzen 还解决了同一时间戳中的多个交易的不同解读形式,并对 TAQ 数据的后果进行了评估。

Hewlett[2]应用买入和卖出达到之间的双变量自激和穿插激振过程,预测了将来买入和卖出交易的不平衡性。作者设计了一个最佳的清理策略,由一个基于这种不均衡的价格影响公式得出。

在文献 [3] 中,作者应用双变量霍克斯过程的买入和卖出强度比作为进行方向性交易的进入信号。

在 [12] 中,作者开发了一种高频做市策略,该策略辨别了有影响力的交易和无影响力的交易,以此来取得他们的霍克斯模型与数据的更好拟合(我假如)。该模型的另一个成分是短期的两头价格漂移,它容许进行定向投注并防止一些逆向抉择。他们的买入和卖出报价取决于短期漂移、订单不均衡(买入和卖出的不对称达到)和库存均匀回归的组合。

改良

Hawkes 过程的对数似然函数具备 O(N2) 的计算复杂度,因为它在交易历史中执行嵌套循环。这依然是低效的,特地是对于高频交易目标。

论断

在本文中,我展现了霍克斯过程是解释 交易的汇集达到的一个很好的模型。我展现了如何在给定交易工夫戳的状况下预计和评估模型,并强调了一些与预计无关的问题。

比特币交易数据及其价格发现尚未失去很好的钻研。自激模型可能会答复诸如比特币价格变动有多少是由根本事件引起的等问题。该模型自身天然也能够成为交易策略的一部分。

参考

[1] J. Fonseca 和 R. Zaatour:霍克斯过程:疾速校准、贸易聚类和扩散限制的利用 ssrn.

[2] P. Hewlett:订单达到聚类、价格影响和交易门路优化 pdf.

[3] J. Carlsson、M. Foo、H. Lee、H. Shek:应用双变量霍克斯过程进行高频交易预测。


最受欢迎的见解

1.R 语言泊松 Poisson 回归模型剖析案例

2.R 语言进行数值模仿:模仿泊松回归模型

3.r 语言泊松回归剖析

4.R 语言对布丰投针(蒲丰投针)试验进行模仿和动静可视化

5. 用 R 语言模仿混合制排队随机服务排队零碎

6.GARCH(1,1),MA 以及历史模拟法的 VaR 比拟

7.R 语言做简单金融产品的几何布朗运动的模仿

8.R 语言进行数值模仿:模仿泊松回归模型

9.R 语言对巨灾危险下的再保险合同定价钻研案例:狭义线性模型和帕累托散布 Pareto distributions

它由 8 个事件组成,通常采纳工夫戳的模式,以及由三个参数定义的样本强度门路

这里,μ 是过程复原到的根本速率,α 是事件产生后的强度跳跃,β 是指数强度衰减。基准率也能够解释为外生事件的强度,例如新闻。其余参数 α 和 β 定义了过程的聚类属性。通常状况下 α<β 确保强度升高的速度快于新事件减少的速度。


R 语言间断工夫马尔可夫链模仿案例 Markov Chains

阅读文章 ➜


自我激发性在工夫标记 2 之前的前四个事件中是可见的。它们在彼此相距很短的工夫内产生,这导致第四个事件的强度峰值很大。每一次事件的产生都会减少另一次产生的机会,从而导致事件的汇集。第五个数据点仅在工夫标记 4 处达到,与此同时,导致整体强度呈指数降落。

条件强度最简略的模式是


随时关注您喜爱的主题

订阅公众号


指数函数定义了过程的记忆,即过来的事件如何影响以后的事件。求和将此函数利用于从事件 titi 到以后事件 t 的历史。λ(t)示意工夫 t 的刹时强度。

给定条件强度,两个派生量也很乏味:冀望强度(在某些条件下)能够显示为 [4] 具备以下模式

并形容给定时间段的交易强度。另一个量是所谓的分支比

它形容了内生产生的交易比例(即作为另一笔交易的后果)。这能够用来评估交易流动中有多少是由反馈引起的。

能够应用传统的最大似然预计和凸求解器来拟合模型的参数。

将比特币交易的到来与霍克斯过程相匹配

在给定一组有序交易工夫 t1<t2<⋯<tn 的状况下,强度门路是齐全定义的,在咱们的例子中,这只是交易记录时的 unix 工夫戳。鉴于此,咱们能够应用 R 软件和 Python 轻松利用 MLE。给定参数的初始猜想和对参数的束缚为正,以下函数拟合模型。

R

fhawks <- function(data) {

  # 初始猜想,a 是 α,C 是 β

  pstt <- c

  # 应用条件强度函数创立一个对象

  proc

  # 假如强度必须是正的

  conditi <- penaltany(parms < 0)

  # 应用规范优化法进行拟合

  fit(m, optrol = list(trace = 2))

我通过将存储在数据帧中的 5000 个交易工夫戳传递给它来运行下面的拟合过程。

与原始数据集的惟一区别是我为与另一笔交易共享工夫戳的所有交易增加了一个随机毫秒工夫戳。这是必须的,因为模型须要辨别每笔交易(即每笔交易必须有惟一的工夫戳)。文献形容了解决这个问题的不同办法 [4, 10],但将工夫戳扩大到毫秒是一种常见的办法。

R

summary(f)

咱们最终失去的参数估计为 μ=0.07,α=1.18,β=1.79。α 的参数估计表明,在单笔交易产生后,条件强度每秒减少 1.18 笔交易。此外,整个期间的均匀强度为每秒 E[λ]=0.20 次交易,一分钟内总共有 12 次交易,这与咱们的教训计数相符。n=65% 的分支率表明超过一半的交易是在模型内作为其余交易的后果产生的。鉴于所钻研的工夫绝对安稳,价格呈上涨趋势,这一数字很高。将其利用于更动荡的制度(例如一些解体)会很乏味,我认为该比率会高得多。

当初的目标是计算拟合模型的理论条件强度,并将其与教训计数进行比拟。R 执行此评估,咱们只需提供一系列工夫戳即可对其进行评估。该范畴介于原始数据集的最小和最大工夫戳之间,对于该范畴内的每个点,都会计算刹时强度。

下图比拟教训计数(来自本文的第一个图)和拟合的综合强度。

从图上看,这仿佛是一个相当好的拟合。请留神,历史强度往往高于拟合的强度,这在 [12] 中曾经被察看到了(在附录中)。作者通过引入有影响和无影响的交易来解决这个问题,这无效地缩小了作为拟合程序一部分的交易数量。教训数据和拟合数据之间跳跃大小稍微不匹配的另一个起因可能是同一秒内工夫戳的随机化;在 5000 个原始交易中,超过 2700 个交易与另一个交易共享一个工夫戳。这导致大量的交易(在同一秒内)失去订单,这可能会影响跳跃的大小。

工夫戳随机化的影响已在 [10] 中进行了钻研。

拟合优度

评估拟合优度的办法有很多种。一种是通过比拟 AIC 同质泊松模型的值,如下面的 R 总结中所示,咱们的霍克斯模型更适宜数据。

测验模型与数据拟合水平的另一种办法是评估残差。实践上说 [4],如果模型拟合得好,那么残差过程应该是同质的,应该有事件间工夫(两个残差事件工夫戳之间的差值),这些工夫是指数分布。事件间工夫的对数图(如[9] 所倡议的),或者同样在咱们的案例中,对指数分布的 QQ 图,证实了这点。上面的图显示了一个很好的 R2 拟合。

当初咱们晓得该模型很好地解释了达到的聚类,那么如何将其利用于交易呢?下一步将是至多独自思考买入和卖出的达到,并找到一种办法来预测给定的霍克斯模型。而后,这些强度预测能够形成做方向性策略的一部分。让咱们看一下文献以取得一些想法。

申请交易

[4]中的论文十分分明地形容了如何在金融环境中拟合和评估霍克斯过程。Florenzen 还解决了同一时间戳中的多个交易的不同解读形式,并对 TAQ 数据的后果进行了评估。

Hewlett[2]应用买入和卖出达到之间的双变量自激和穿插激振过程,预测了将来买入和卖出交易的不平衡性。作者设计了一个最佳的清理策略,由一个基于这种不均衡的价格影响公式得出。

在文献 [3] 中,作者应用双变量霍克斯过程的买入和卖出强度比作为进行方向性交易的进入信号。

在 [12] 中,作者开发了一种高频做市策略,该策略辨别了有影响力的交易和无影响力的交易,以此来取得他们的霍克斯模型与数据的更好拟合(我假如)。该模型的另一个成分是短期的两头价格漂移,它容许进行定向投注并防止一些逆向抉择。他们的买入和卖出报价取决于短期漂移、订单不均衡(买入和卖出的不对称达到)和库存均匀回归的组合。

改良

Hawkes 过程的对数似然函数具备 O(N2) 的计算复杂度,因为它在交易历史中执行嵌套循环。这依然是低效的,特地是对于高频交易目标。

论断

在本文中,我展现了霍克斯过程是解释 交易的汇集达到的一个很好的模型。我展现了如何在给定交易工夫戳的状况下预计和评估模型,并强调了一些与预计无关的问题。

比特币交易数据及其价格发现尚未失去很好的钻研。自激模型可能会答复诸如比特币价格变动有多少是由根本事件引起的等问题。该模型自身天然也能够成为交易策略的一部分。

参考

[1] J. Fonseca 和 R. Zaatour:霍克斯过程:疾速校准、贸易聚类和扩散限制的利用 ssrn.

[2] P. Hewlett:订单达到聚类、价格影响和交易门路优化 pdf.

[3] J. Carlsson、M. Foo、H. Lee、H. Shek:应用双变量霍克斯过程进行高频交易预测。

退出移动版