| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> Advanced candlesticks for machine learning -> 正文阅读 |
|
[人工智能]Advanced candlesticks for machine learning |
Advanced candlesticks for machine learning(作者:Gerard Martínez) – 论文精读文章目录核心速览这篇文章讲述了机器学习模型使用的数据其实是不合理的,不应该使用time-base的烛图,而应该使用tick bars与volume and dollar bars 当前背景
Time-base candlesTime-base的两个缺点
先来点哲学层面的东西: 人类作为生物,更倾向于按照日光周期来构建数据集;但是算法交易更倾向于依赖CPU周期,那CPU有周期吗?显然是没有的… 下面是一个列子关于time-base数据两个缺点的显现 数据来自于2013.5 - 2019.4 的Bitcon-US dollar的五分钟烛图
从图中可以看出:
所以这就是Time-base的缺点,有时候我们带着这样的数据去做ML的训练,有70%的数据是没有意义的,而2%的数据中其实蕴含了更大的信息没有被使用;因此,我们希望找到一种好的方法,在市场活跃的时候多采样,在市场平静的时候少采样 替代烛图de Prado’s book Advances in Financial Machine Learning给出了许多替代的烛图
Tick BarsTick bars就是基于交易的次数来画一个烛图,因为交易次数数据难以获取,下面是一个机构的研究结果,第一个幅图是连续的交易价格;第二幅图是四个小时间隔的Time-base bar;第三幅图是1000次交易记录一次的Tick Bar; 注意下面蓝色的小点点,这表示采样点随时间的变化,Tick Bars有效解决了Time-base bar过采样与采样不足的缺点 Tick Bars的统计性质序列相关(自相关性)因为每个观测都应该是独立的,不依赖与前一个的,考虑计算序列(对数收益)的自相关性(用 l o g ( R t ) 与 l o g ( R t ? 1 log(R_t) 与 log(R_{t-1} log(Rt?)与log(Rt?1?计算相关系数) 注意到前五列的数据,是tick bar的,而后面的是time bar的; 意味着tick bar的自相关性通常低于time bar的采样 还可以通过Durbin-Waston测试来判断序列相关性的存在,DB统计量的含义为
可以看到结果与相关系数的计算一致 回报的正态性有的人士非常在意回报的正态性,特别是那些做风控的,做对冲基金的,因为知道回报的分布往往有利于帮助他们决策,因为回报往往是服从对数正态分布的,对回报取对数就会服从正态分布 我们可以通过两个统计检验来检验正态性,Jarque-Bera Test, Shapiro-Wilk Test Jarque-Bera Test是用于检验偏度和峰度,进而推断是否服从正态分布 该图是Jarque-Bera Test的出的p-value,不论是time bar还是tick bar,对数回报都不服从正态分布 Shapiro-Wilk Test与普通的假设检验没有什么区别,看p-value与显著性水平的大小即可 再看看Shapiro-Wilk Test给出的p-value,结果基本与上面一致 volume and dollar barsvolume and dollar bars则是按照交易量来绘制烛图,他也是在市场活跃的时候多采样,在市场平静的时候少采样,只不过采样方法不一样; 如在1000$时采样一次 用算法打败算法因为Tick bar是基于交易次数的采样,事实上交易次数的多少也不能反映市场的活跃程度,他很容易被操纵;例如:一个熟悉的算法或交易者可能会自动发出非常小的重复订单来影响市场情绪(这称为冰山订单) 所以我们应该使用交易量来采样,但是显然会丢掉交易数量序列中的信息,同时也会被Wash trading(买卖双方是同一个人)所控制 构建volume and dollar bars虽然交易量的数据容易获取,但是真的要划分至1000$的数据,还是需要分钟级别的数据的,这里还是引用作者的研究成果,第一个幅图是连续的交易价格;第二幅图是四个小时间隔的Time-base bar;第三幅图是1000个bit-coin交易记录一次的volume bars;第四幅图是1M$交易记录一次的dollar bars 统计性质操作方法与各种展示图就不放了,讲一下结论即可 Volume与Time-base
Dollar与Time-base
烛图改变是否真的有效观察下图,下图是所有类型的烛条在一天内采样的个数,与bitcon历史价格的关系图 可以看出我们甚至只要关心烛条的采样数就能知道价格的变化(当然这样决定是很武断的),当然在每个采样点上的数据仍然有被挖掘的价值 Imbalance barsImbalance bars是通过计算序列的变化特征来构造一个计算变量,当这个计算变量超过某个threshold的时候,就会被采样一次 构造计算变量根据分钟数据, 构造一个与分钟数据长度等同的计算变量signed tick(暂且理解为一个元素),t时刻的计算变量signed tick规则是:
最后将这些signed tick加和起来,得到给定T下的Imbalance threshold设定在新一个Imbalance bars构造前,我们计算signed tick的EWMA(移动平均,一种预测趋势的方法),然后用EWMA乘上tick序列的长度,如果 θ T \theta_T θT?大于这个值,就采样一次,否则继续; 用简单的算法表述如下
但愿我没有理解错,我将原生的英文算法描述贴在下面,然后这里还有一个Github Page里面是de Prado的官方定义 A visual example以下是一个实现的示例,引用作者的研究成果 总结本文中,我们核心要理解的是为什么Time-base bar在financial Machine Learning领域已经不适用了;我们重点讲述了tick bar与Volume and dollar bar,虽然他们能强化对活跃市场的采样,减少平静时期的采样;但是同时他们各有缺点,前者会被高频小订单confusion,而后者又会受到Wash trading的影响; 后面我们又介绍了一个Imbalance bar的做法,这个似乎是一个更优的采样方式,似乎能把tick bar与Volume and dollar bar融合,但是他有个极大的缺点,就是tick_number是一个经验参数,设置的不好就会导致采样数量过多,或者很长时间也采样不了一次; 他们各有缺点,前者会被高频小订单confusion,而后者又会受到Wash trading的影响; 后面我们又介绍了一个Imbalance bar的做法,这个似乎是一个更优的采样方式,似乎能把tick bar与Volume and dollar bar融合,但是他有个极大的缺点,就是tick_number是一个经验参数,设置的不好就会导致采样数量过多,或者很长时间也采样不了一次; 而在学术领域中似乎Volume and dollar bar使用更多,重点关注即可… |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 14:55:37- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |