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

全文下载链接:http://tecdat.cn/?p=25880 

本文描述了一个模型,该模型解释了交易的聚集到达,并展示了如何将其应用于比特币交易数据。这是很有趣的,原因很多。例如,对于交易来说,能够预测在短期内是否有更多的买入或卖出是非常有用的。另一方面,这样的模型可能有助于理解基本新闻驱动价格与机器人交易员对价格变化的反应之间的区别点击文末“阅读原文”获取完整代码数据

介绍

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

交易不会以均匀的间隔到达,但通常会在时间上聚集在一起。类似地,相同的交易标志往往会聚集在一起并产生一系列买入或卖出订单。 例如,将订单分成小块的算法交易者或对某些交易所事件做出反应的交易系统。

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

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

3ba6eff6c0b436ec403f22653e4db21e.jpeg

每分钟的平均交易数是 13,但是我们可以找出几个超过 50 的实例。通常较高的交易强度会持续几分钟,然后再次下降到平均值。特别是在 16:00 之后的 15 分钟左右,我们可以看到非常高的交易强度,其中一个实例每分钟超过 200 个订单,然后在接下来的约 10 分钟内强度缓慢下降。

描述事件计数到达的最基本方法,例如上面的时间序列,是泊松过程 ,有一个参数λ。在泊松过程中,每单位时间的预期事件数由一个参数定义。这种方法被广泛使用,因为它非常适合大量数据,例如呼叫中心的电话到达。然而,就我们的目的而言,这太简单了,因为我们需要一种方法来解释聚类和均值回归。

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

让我们继续理解和拟合霍克斯过程(Hawkes Processes)到上面的数据。

霍克斯过程(Hawkes Processes)

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

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

bd1754a58bee9e3dd539fd01e8c3ca34.jpeg

它由 8 个事件组成,通常采用时间戳的形式,以及由三个参数定义的样本强度路径

438df6d3e523a7995fb940bbb76f0abe.png

这里,μ是过程恢复到的基本速率,α是事件发生后的强度跳跃,β是指数强度衰减。基准率也可以解释为外生事件的强度,例如新闻。其他参数 α 和 β 定义了过程的聚类属性。通常情况下 α<β 确保强度降低的速度快于新事件增加的速度。


点击标题查阅往期内容

ad8c5f9d8e2c0f789041c7c91d7d6b77.png

R语言连续时间马尔科夫链模拟案例 Markov Chains

outside_default.png

左右滑动查看更多

outside_default.png

01

6fc0586a4a7b93c5865f1c57341da2ad.jpeg

02

4262eee5cc730a5a71856b6fbc1cf9f4.jpeg

03

2d6b6c66cd179b17f8caa88e5b0aef2b.png

04

7fe5b38ac31db8c11d05441e41c6e1fd.png

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

条件强度最简单的形式是

67579d04e6bab009d973ad1f7caf2732.png

指数函数定义了过程的记忆,即过去的事件如何影响当前的事件。求和将此函数应用于从事件 titi 到当前事件 t 的历史。λ(t)表示时间 t 的瞬时强度。

给定条件强度,两个派生量也很有趣:期望强度(在某些条件下)可以显示为 [4] 具有以下形式

dffa2b0a2160565588ac8108634de3dc.png

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

49cea5a3db131e5140226ced307d51a1.png

它描述了内生产生的交易比例(即作为另一笔交易的结果)。这可以用来评估交易活动中有多少是由反馈引起的。

可以使用传统的最大似然估计和凸求解器来拟合模型的参数。

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

在给定一组有序交易时间 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)

c7e99bb8d1bbdc419170eee715d28ab1.png

我们最终得到的参数估计为 μ=0.07,α=1.18,β=1.79。α 的参数估计表明,在单笔交易发生后,条件强度每秒增加 1.18 笔交易。此外,整个期间的平均强度为每秒 E[λ]=0.20次交易,一分钟内总共有 12 次交易,这与我们的经验计数相符。n=65%的分支率表明超过一半的交易是在模型内作为其他交易的结果产生的。鉴于所研究的时间相对平稳,价格呈上涨趋势,这一数字很高。将其应用于更动荡的区制或状态(例如一些崩溃)会很有趣,我认为该比率会高得多。

现在的目的是计算拟合模型的实际条件强度,并将其与经验计数进行比较。R 执行此评估,我们只需提供一系列时间戳即可对其进行评估。该范围介于原始数据集的最小和最大时间戳之间,对于该范围内的每个点,都会计算瞬时强度。

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

79497271c2f1960b45296e9755a55eca.png

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

拟合优度

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

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

a5e7ed51d72d74545f84f41375bcf225.png

现在我们知道该模型很好地解释了到达的聚类,那么如何将其应用于交易呢?下一步将是至少单独考虑买入和卖出的到达,并找到一种方法来预测给定的霍克斯模型。然后,这些强度预测可以构成做方向性策略的一部分。让我们看一下文献以获得一些想法。

申请交易

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:使用双变量霍克斯过程进行高频交易预测。


0cf414c92ed6d16c6f83a4a6be7b16f0.png

本文摘选R语言和Python用泊松过程扩展:霍克斯过程Hawkes Processes分析比特币交易数据订单到达自激过程时间序列,点击“阅读原文”获取全文完整资料。

73571964ab1da1180d21070914c137a2.jpeg

e4677b0f59a8dc82e023b7ac4ed07d26.png

点击标题查阅往期内容

指数加权模型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随机服务排队系统

4743f3438c8baf15dc6a7fe7e8daf73b.png

79dbc6b284332cc9d43a34eb2813dcaa.jpeg

1c5cfc01e55a772b78c6ce9cdf4d1d9d.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/112663.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

易混淆的符号

C自学精简教程 目录(必读) &符号在C中有多个含义。 下面我们列出常见的3种&#xff0c;你都能分得清吗&#xff1f; #include <iostream> using namespace std;//传递引用类型的参数 pass by reference void fun(int& a)//(1) 这里的 & 表示参数a是引用类…

成集云 | 抖店客户静默下单催付数据同步钉钉 | 解决方案

源系统成集云目标系统 方案介绍 随着各品牌全渠道铺货&#xff0c;主播在平台上直播时客户下了订单后不能及时付款&#xff0c;第一时间客户收不到提醒&#xff0c;不仅造成了客户付款率下降&#xff0c;更大量消耗了企业的人力成本和经济。而成集云与钉钉深度合作&#xff0…

Vue.js安装步骤和注意事项

安装完node.js后开始安装和部署Vue在检查webpack的下载版本时出现错误出现错误的原因是之前下载时未指定对应的版本号导致版本不兼容先卸载掉之前下载的版本 cnpm uninstall webpack-cli -g cnpm install webpack-cli4.9.2 -g 最后检查版本是否对应

CentOS8安装mysql8.0.24

一、下载mysql安装包并解压 执行以下命令&#xff1a; # 创建mysql安装目录 mkdir /usr/local/mysql # 进入mysql安装目录 cd /usr/local/mysql/ # 下载mysql-8.0.24 wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.24-linux-glibc2.12-x86_64.tar.xz # 解压…

Linux 虚拟机安装 hadoop

目录 1 hadoop下载 2 解压hadoop 3 为 hadoop 文件夹改名 4 给 hadoop 文件夹赋权 5 修改环境变量 6 刷新环境变量 7 在hadoop313目录下创建文件夹data 8 检查文件 9 编辑 ./core-site.xml文件 10 编辑./hadoop-env.sh文件 11 编辑./hdfs-site.xml文件 12 编辑./mapr…

【网络】HTTPS的加密

目录 第一组&#xff0c;非对称加密第二组&#xff0c;非对称加密第三组&#xff0c;对称加密证书签名 HTTPS使用的是非对称加密加对称加密的方案 &#xff08;非对称加密&#xff1a;公钥加/解密&#xff0c;私钥解/加密&#xff09; &#xff08;对称加密&#xff1a;一组对称…

文件属性查看和修改学习

这个是链接&#xff0c;相当于快捷方式&#xff0c;指向usr/bin这个目录&#xff0c;链接到这个目录

【自学开发之旅】基于Flask的web开发(一)

web开发项目设计&#xff1a; 立项-需求分析-设计&#xff08;原型图、数据库、api设计&#xff09;-技术选型-写代码-测试-上线 web开发的本质上就是生成超文本。 前端负责展示&#xff0c;后端负责逻辑处理&#xff1a;后逻辑请求&#xff08;接收请求、响应请求&#xff0…

Python文本终端GUI框架详解

今天笔者带大家&#xff0c;梳理几个常见的基于文本终端的 UI 框架&#xff0c;一睹为快&#xff01; Curses 首先出场的是 Curses。 Curses 是一个能提供基于文本终端窗口功能的动态库&#xff0c;它可以: 使用整个屏幕 创建和管理一个窗口 使用 8 种不同的彩色 为程序提供…

用最少数量的箭引爆气球【贪心算法】

用最少数量的箭引爆气球 有一些球形气球贴在一堵用 XY 平面表示的墙面上。墙面上的气球记录在整数数组 points &#xff0c;其中points[i] [xstart, xend] 表示水平直径在 xstart 和 xend之间的气球。你不知道气球的确切 y 坐标。 一支弓箭可以沿着 x 轴从不同点 完全垂直 地…

Spring Boot(Vue3+ElementPlus+Axios+MyBatisPlus+Spring Boot 前后端分离)【六】

&#x1f600;前言 本篇博文是关于Spring Boot(Vue3ElementPlusAxiosMyBatisPlusSpring Boot 前后端分离)【六】&#xff0c;希望你能够喜欢 &#x1f3e0;个人主页&#xff1a;晨犀主页 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是晨犀&#xff0c;希望我的文章…

iOS逆向:越狱及相关概念的介绍

在上一篇内容中我们介绍了App脱壳的技术&#xff0c;今天我们来介绍一个和iOS逆向密切相关的知识&#xff1a;越狱。 iOS操作系统的封闭性一直是开发者们关注的焦点之一。为了突破Apple的限制&#xff0c;越狱技术应运而生。本文将深入探讨iOS越狱&#xff0c;包括可越狱的版本…

MongoDB 双机热备那篇文章是 “毒”

开头还是介绍一下群&#xff0c;如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis &#xff0c;Oracle ,Oceanbase 等有问题&#xff0c;有需求都可以加群群内有各大数据库行业大咖&#xff0c;CTO&#xff0c;可以解决你的问题。加群请加微信号 liuaustin3 &#xff08;…

成功对接巴斯夫BASF EDI 平台

BASF&#xff0c;作为中国化工领域重要的外商投资企业&#xff0c;巴斯夫主要的投资项目位于南京、上海和重庆&#xff0c;生产基地遍布全国&#xff0c;其中巴斯夫上海创新园更是全球的研发枢纽。2017年&#xff0c;巴斯夫大中华区销售额达到73亿欧元&#xff08;按客户所在地…

Java“牵手”1688拍立淘接口数据,图片搜索1688商品,图片识别商品接口,1688API申请指南

1688商城是一个网上购物平台&#xff0c;售卖各类商品&#xff0c;包括服装、鞋类、家居用品、美妆产品、电子产品等。要获取1688商品列表和商品详情页面数据&#xff0c;您可以通过开放平台的接口或者直接访问1688商城的网页来获取商品详情信息。以下是两种常用方法的介绍&…

Linux————LNMT搭建

一、原理 搭建一个基于Linux系统的Web服务器&#xff0c;使用Nginx作为反向代理服务器&#xff0c;Tomcat作为应用服务器&#xff0c;MySQL作为数据库服务器。 Linux操作系统 基于Linux的操作系统 Nginx Nginx是一款高性能的Web服务器和反向代理服务器&#xff0…

Java自定义捕获异常

需求分析 ElectricalCustomerVO electricalCustomerVO new ElectricalCustomerVO(); electricalCustomerVO.setElcNumber(chatRecordsLog.getDeviceNumber()); List<ElectricalCustomerVO> electricalCustomerlist electricalCustomerMapper.selectElectricalCustomer…

读SQL学习指南(第3版)笔记06_连接和集合

1. 连接 1.1. 笛卡儿积 1.1.1. 交叉连接&#xff08;cross join&#xff09; 1.1.2. 查询并没有指定两个数据表应该如何连接&#xff0c;数据库服务器就生成了笛卡儿积 1.1.2.1. 两个数据表的所有排列组合 1.1.3. 很少会用到&#xff08;至少不会特意用到&#xff09; 1.…

政府科技项目验收全流程分享

科技验收测试 &#xff08;验收申请→主管部门初审→科技厅审核→组织验收→归档备案→信用管理&#xff09;&#xff1a; &#xff08;一&#xff09;验收申请 项目承担单位通过省科技业务管理系统提交验收申请。 按期完成的项目&#xff0c;项目承担单位应当在项目合同书…

自测scRNA-Seq+scWGBS=3分三区文章?

写在前面 最近在捣鼓表观遗传学&#xff0c;处理了一批Bulk RNA-Seq和WGBS(Whole Genome Bisulfite Sequencing)的数据。熟悉我风格的粉丝都知道&#xff0c;我一般会读几篇文献再下手&#xff0c;遂于PubMed中检索了几篇文章&#xff0c;发现一个2022年发表的题为"WGBS …