关于数据挖掘:R语言和Python用泊松过程扩展霍克斯过程Hawkes-Processes分析比特币交易数据订单附代码数据

44次阅读

共计 4877 个字符,预计需要花费 13 分钟才能阅读完成。

全文下载链接: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 个事件组成,通常采纳工夫戳的模式,以及由三个参数定义的样本强度门路

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


点击题目查阅往期内容

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

左右滑动查看更多

01

02

03

04

自我激发性在工夫标记 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 执行此评估,咱们只需提供一系列工夫戳即可对其进行评估。该范畴介于原始数据集的最小和最大工夫戳之间,对于该范畴内的每个点,都会计算刹时强度。

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

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

拟合优度

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

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

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

申请交易

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

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

改良

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

论断

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

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

参考

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

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

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


本文摘选 R 语言和 Python 用泊松过程扩大:霍克斯过程 Hawkes Processes 剖析比特币交易数据订单达到自激过程工夫序列 ,点击“ 浏览原文”获取全文残缺材料。


点击题目查阅往期内容

指数加权模型 EWMA 预测股市多变量稳定率工夫序列
R 语言极值实践 EVT、POT 超阈值、GARCH 模型剖析股票指数 VaR、条件 CVaR:多元化投资组合预测危险测度剖析
R 语言 GARCH-DCC 模型和 DCC(MVT)建模预计
Python 用 ARIMA、GARCH 模型预测剖析股票市场收益率工夫序列
R 语言中的工夫序列分析模型:ARIMA-ARCH / GARCH 模型剖析股票价格
R 语言 ARIMA-GARCH 稳定率模型预测股票市场苹果公司日收益率工夫序列
Python 应用 GARCH,EGARCH,GJR-GARCH 模型和蒙特卡洛模仿进行股价预测
R 语言工夫序列 GARCH 模型剖析股市稳定率
R 语言 ARMA-EGARCH 模型、集成预测算法对 SPX 理论稳定率进行预测
matlab 实现 MCMC 的马尔可夫转换 ARMA – GARCH 模型预计
Python 应用 GARCH,EGARCH,GJR-GARCH 模型和蒙特卡洛模仿进行股价预测
应用 R 语言对 S&P500 股票指数进行 ARIMA + GARCH 交易策略
R 语言用多元 ARMA,GARCH ,EWMA, ETS, 随机稳定率 SV 模型对金融工夫序列数据建模
R 语言股票市场指数:ARMA-GARCH 模型和对数收益率数据探索性剖析
R 语言多元 Copula GARCH 模型工夫序列预测
R 语言应用多元 AR-GARCH 模型掂量市场危险
R 语言中的工夫序列分析模型:ARIMA-ARCH / GARCH 模型剖析股票价格
R 语言用 Garch 模型和回归模型对股票价格剖析
GARCH(1,1),MA 以及历史模拟法的 VaR 比拟
matlab 预计 arma garch 条件均值和方差模型 R 语言 POT 超阈值模型和极值实践 EVT 剖析
R 语言极值推断:狭义帕累托散布 GPD 应用极大似然预计、轮廓似然预计、Delta 法
R 语言极值实践 EVT:基于 GPD 模型的火灾损失散布剖析
R 语言有极值(EVT)依赖构造的马尔可夫链 (MC) 对洪水极值剖析
R 语言 POT 超阈值模型和极值实践 EVT 剖析
R 语言混合正态分布极大似然预计和 EM 算法
R 语言多项式线性模型:最大似然预计二次曲线
R 语言 Wald 测验 vs 似然比测验
R 语言 GARCH-DCC 模型和 DCC(MVT)建模预计
R 语言非参数办法:应用核回归平滑预计和 K -NN(K 近邻算法)分类预测心脏病数据
matlab 实现 MCMC 的马尔可夫转换 ARMA – GARCH 模型预计
R 语言基于 Bootstrap 的线性回归预测置信区间预计办法
R 语言随机搜寻变量抉择 SSVS 预计贝叶斯向量自回归(BVAR)模型
Matlab 马尔可夫链蒙特卡罗法(MCMC)预计随机稳定率(SV,Stochastic Volatility)模型
Matlab 马尔可夫区制转换动静回归模型预计 GDP 增长率 R 语言极值推断:狭义帕累托散布 GPD 应用极大似然预计、轮廓似然预计、Delta 法 R 语言中实现马尔可夫链蒙特卡罗 MCMC 模型 matlab 贝叶斯隐马尔可夫 hmm 模型实现
R 语言如何做马尔科夫转换模型 markov switching model
matlab 中的隐马尔可夫模型 (HMM) 实现
R 语言马尔可夫体制转换模型 Markov regime switching
R 语言马尔可夫转换模型钻研交通伤亡人数事变预测
R 语言中的马尔科夫机制转换 (Markov regime switching) 模型
用机器学习辨认一直变动的股市情况—隐马尔科夫模型 (HMM) 股票指数预测实战
用机器学习辨认一直变动的股市情况—隐马尔科夫模型 (HMM) 的利用
R 语言中实现马尔可夫链蒙特卡罗 MCMC 模型用 R 语言模仿 M / M / 1 随机服务排队零碎
用 R 语言模仿混合制排队随机服务排队零碎
用 R 语言模仿 M /M/ 1 随机服务排队零碎

正文完
 0