在时间序列分析中使用机器学习创建交易机器人

这不是一篇技术文章;没有对方法和理论进行详细的分析。仅仅是因为我不知怎地对机器学习有所了解,就像许多刚接触该主题的人一样,我决定制造一个交易机器人。但是,这已不仅仅是培训项目。这就是我想讲的所有内容。

关于机器学习的一些知识


机器学习(机器学习;以下简称为MO)以一种或另一种方式是科学技术领域的人工智能(Artificial Intelligence;以下简称AI)行业的组成部分,该技术允许“智能”计算机系统模拟人类行为。这个行业还包括深度学习的概念,它影响神经网络和人类思维的模仿。

AI的学术学科是作为一台机器学习的,即计算机,解决仅受人类思想困扰的问题。这可以是一项任务,例如理解阅读的文本,确定跳棋游戏的动作或解决难题。 MO将开发算法,以帮助计算机根据收到的信息得出结论。在这种情况下,推动一切的是数据。

图片
(c)Oracle

在信息时代,信息和数据是最有价值的。无论离线还是在线,我们所做的每件事都会生成新数据:文本,音频,视频数据,感官测量,“智能”小工具以及它们之间的数据交换。由于硬件设备的可用性,云基础设施的发展以及由于这些技术的大量使用,其成本下降,收集大型和新数据的机会正在迅速增加。知识或信息就是力量-公理是真实的,但是有一个“但是”。

拥有大量信息尚不能使信息持有人受益。但是通过MO的算法和方法,大数据才开始变得有意义和有益。更具体地说,MO系统会注意到数据模式并根据数据系统中的许多因素构建结论,而无需为此进行编程。

今天,MO的主要应用是对象识别,计算机视觉,数据分析,质量控制(监视)和预测分析。

因此,我们知道机器学习依赖于数据处理算法和数据本身。关于MO方法,您可以深入研究其他系列文章。如果这些技术中的每一种都有其优点和缺点,那么对它们的描述将等同于在Web开发及其应用中列出可能的技术。

应当注意的是,随着时间的流逝,数据处理的算法和方法不断完善,数据越来越多,从而使得数据处理的质量越来越好。

在数据类型中,我想关注个人项目示例的时间序列-自动加密货币交易。

时间序列分析


时间序列是一种数据类型,可以表示为在非随机时刻排序的测量序列。

时间序列分析的主要目标有两个:
确定序列的性质和进行预测(从当前值和过去值预测时间序列的未来值)。这涉及序列模型的识别和描述,以及数据解释,这使我们能够得出序列的未来价值。

使用MO方法处理此类数据,我们可以在数据中找到更深的模式。结果,我们获得了对未来价值更“智能”的预测。

与分析随机数据样本不同,对时间序列的分析是基于以下假设:数据文件中的顺序值是定期观察的。在其他方法中,我们并不重要,并且通常不希望将观察值与时间联系起来。

换句话说,对于分析而言,事件X发生在时间Y上很重要。例如,汇率,我们对于价格与特定时间点相关的选择非常重要。如果您按一系列日期价格破坏日期顺序,那么它将变得毫无意义。

例如,使用金融时间序列,MO算法可以预测获利能力的增长或下降。在处理音频文件时,时间序列将通过音调相对于时序的变化来表示,您可以分析语音的含义。给定气象数据,可以通过MO和时间序列得出复杂的天气预报。

如果MO的算法分析了例如印章的图像,那么我们将不在乎时间,甚至图像的到达顺序。

以加密货币为例


在我的项目中,我试图回答是否有可能基于机器学习方法构建全自动交易系统的问题。为此,我找到并收集了有关比特币价格,交易量以及已下达和撤回订单的历史数据。

经过一段时间的尝试和错误,我对如何解释该数据,使用哪种神经网络体系结构,如何标记数据等有了一定的了解。特别是,训练以10秒的粒度进行,将来的价格用作结果值。

现在,该算法使用了在不同时间训练的几个模型,因为我不断改进学习算法,并向其中添加了新收集的数据。为了实现,Python编程语言与Keras,Scipy,Pandas库一起使用。

执行交易操作的脚本全天候在Bitmex交易平台下订单。当出现打开头寸并完成相关交易的信号时,脚本将等待,直到价格达到止盈或止损水平,或直到交易到期(生存时间)为止。


显示实时数据处理的主日志文件

数据处理算法依赖于技术数据分析,交易历史记录,先前的订单,订单以及与加密货币有关的新闻(通过自然语言处理或自然语言处理-NLP)。

主要的成功指标是基于获利订单数量相对于订单总数的准确性。总体而言,当达到止盈订单时,预测被认为是成功的,而止损和生存时间被模型识别为不成功。

精度=(获利类型的订单数量)/(订单总数)

当准确性达到67%时,讨价还价被认为是有利可图的。
准确性
2020年1月72%
2020年2月70%
2020年3月60%
2020年4月70%

以下是使用这种软件解决方案直观地呈现的交易。


绿色三角形表示交易成功(获利),红色三角形表示交易失败(止损,生存时间)。向上看的三角形代表买入交易,向下看的三角形代表卖出交易。

在押


自动交易只是时间序列分析最可能的应用之一。如果我们谈论业务,那么根据收集的数据预测不同的指标可能至关重要。基于这样的预测,现在可以制定重要的业务决策,并且将来自动决策的数量只会增加。

执行此类计算是相当耗费资源的过程。幸运的是,计算机系统的计算能力正在不断提高。此外,研究AI的现代计算机科学分支旨在创建最有效地使用可用计算资源来识别累积数据中的模式的算法。

如果不使用时间序列,则无法导出和构建预测。这种数据是预测的基础,可以帮助高管制定对业务至关重要的决策。毫无疑问,MO算法对时间序列及其处理的分析是未来业务流程不可或缺的一部分。

All Articles