文章 "用随机森林预测趋势"

 

新文章 用随机森林预测趋势已发布:

本文使用Rattle包自动进行模式识别,来预测外汇市场的多头和空头。本文对初学者和有经验的交易者都适用。

创建任何交易系统的目的都是为了能够预测金融产品的市场行为,如一个货币对。预测的目标可以是不同的。我们在此限定为预测货币的走势,或者更准确的说是预测货币报价的涨(多头)跌(空头)。

要预测货币价格走势,交易者通常在图标上附加一些指标,以期找到一种可用于预测的模式。

本文探讨使用R统计分析系统中的Rattle包,来自动选取相关模式进行价格行为预测。

我们使用R这一理想的金融市场预测工具,来对货币对价格行为进行预测。话说,R主要是一种给有经验的统计人员使用的编程语言,对许多交易者来说较难掌握。R语言的复杂性在于,用于预测的工具非常多并且分散在许多R的基本功能工具包中。

Rattle(简 单易学的R语言分析工具)集成了一系列R语言包,对于交易系统开发者来说非常重要,但初学者用起来并不容易。你不必了解掌握R语言就能开始使用 Rattle包。对Rattle报的使用将用R语言来编写,将可以被用于开发真实的交易系统。然而,在这个阶段就需要对R语言有所了解。

任何情况下,在交易系统设计的阶段,Rattle是不可替代的工具。它能够让新手快速的看到各种策略想法的结果并且使用之。

Rattle (Williams, 2009) 是一个开源的软件包,它是R的一部分(R开发小组,2011)。因为它是免费软件,Rattle的R语言源代码没有使用限制。Rattle源代码用C语言编写,鼓励用户学习、测试及扩展代码。

图1. ZigZag指标

作者:СанСаныч Фоменко

 

读到这篇文章时,我首先想到的是 "多么低劣的翻译"。

我查了一下作者是哪里人--原来根本不是翻译)))。

В качестве инструмента для предсказания поведения валютных пар выберем систему R, которая идеально подходит для задач предсказания на финансовых рынках и, в частности, предсказания поведения валютных пар.

我不想说什么坏话,只是在耳边想了想。这篇文章也许不错,也许非常好......。

 

对想法本身感兴趣(不知道随机森林)。人为强加的工具。我想再重复一遍--没有明确说明到底做了什么,使用了哪些数据向量。省略了 "之 "字形参数。目标读者是 Rattle 软件包的用户吗?还是用 R 语言编写的用户?如果没有他们的研究,文章中的许多观点就无法理解。结论语焉不详--从文章中看不出这个方向是否有前途。可以举例说明贸易情况。总体印象--好像是写给小圈子看的。

PS.当尝试打开文章中的 TC.Rdata 时,出现了以下内容:

Ошибка в sqrt(ncol(crs$dataset)) : 
  нечисловой аргумент для математической функции
Вдобавок: Предупреждение
In rm(crs) : объект 'crs' не найден
 
wmlab:
对想法本身感兴趣(不知道随机森林)。人为强加的工具。我想再重复一遍--没有明确说明到底做了什么,使用了哪些数据向量。省略了 "之 "字形参数。目标读者是 Rattle 软件包的用户吗?还是用 R 语言写作的人?如果没有他们的研究,文章中的许多观点就无法理解。结论语焉不详--从文章中看不出这个方向是否有前途。可以举例说明贸易情况。总的印象是,这篇文章好像是写给一个狭窄的圈子看的。

你有很多挑剔的东西。比如我,虽然不是数学家,但也能很好地理解其中的精髓,只是有些地方应该解释得更详细一些。例如,我不太理解 "树分裂 "这个词,它出现了好几次,但不太清楚它到底是什么意思。 至于结论,你需要什么结论?"去!去街垒"?以我为例,读完这篇文章后,我意识到自己正在发明一辆自行车,试图自己发明类似的算法,而不是使用现成的解决方案。据我所知,这篇文章的主要目的是向对统计学感兴趣的业余爱好者(而不是 "傻瓜")普及 R 软件包。 在我看来,结果还不错。

 
wmlab:

对想法本身感兴趣(不知道随机森林)。人为强加的工具。我想再重复一遍--没有明确说明到底做了什么,使用了哪些数据向量。省略了 "之 "字形参数。目标读者是 Rattle 软件包的用户吗?还是用 R 语言写作的人?如果没有他们的研究,文章中的许多观点就无法理解。结论语焉不详--从文章中看不出这个方向是否有前途。可以举例说明贸易情况。总体印象--好像是写给小圈子看的。

PS.当尝试打开文章中的 TC.Rdata 时,会出现以下内容:

目标读者--Rattle 软件包的用户?还是用 R 语言写作的人?如果不研究他们,文章中的很多观点都是无法理解的。

在使用 Rattle 时,我确定了两个目标受众:

没有接受过 R 语言培训的用户,他们可以编写自己的输入 .csv 文件,并创建和评估 6 个模型(不仅仅是随机森林)的结果。主要问题不在于模型,而在于模型输入数据。如果你能找到初始数据,那么你就可以订购编程。主要的是想法,编程技术也可以应用

PS.当尝试打开文章中的 TC.Rdata 时,出现了以下问题:

重新检查,一切正常。操作顺序如下:

  • 启动 R
  • 选项卡 {文件/加载工作区
  • 然后从解压压缩包中查找文件 TC.RData。
  • 启动 Rattle
  • 数据/数据集选项卡
  • 在数据名称窗口的下拉菜单中查找 TC 名称。
  • 点击 "运行

我们就会得到你感兴趣的向量列表。

另一个受众是训练有素的用户。Rattle 是为模型选择初始数据的便捷工具。在构建交易系统时,主要时间都花在选择初始数据上--这是最不确定的工作部分。这正是 Rattle 非常有用的地方。您可以非常快速地获得最终估计值,而无需进行非常复杂的数学模型构建。

祝你好运,准备好继续讲解

 
meat:

你这是吹毛求疵。以我为例,虽然我不是数学家,但也能很好地理解其中的精髓,只是有些地方应该解释得更详细一些。例如,我不太理解 "树分裂 "这个词,它出现了好几次,但不太清楚它到底是什么意思。 至于结论,你需要什么结论?"去!去街垒"?以我为例,读完这本书后,我意识到自己正在发明一辆自行车,试图自己发明类似的算法,而不是使用现成的解决方案。据我所知,这本书的主要目的是向对统计感兴趣的业余爱好者(而不是 "傻瓜")普及 R 软件包。 在我看来,结果还不错。

例如,我不太理解 "树分裂 "这个术语

我们取树根--它在树顶。

我们把树根分开,从树根开始画两条线--树根分割,然后在每一级采取同样的行动。

在树的每个节点上,都要检查算法制定的某些条件。例如,如果eurusd> 1.35,则沿着左边的分支走,如果不 > 1.35,则沿着右边的分支走。

该算法过多地生成了 500 棵这样的树。应该有 10000 个条件。

下一步在所有预测值(每个预测值一个)到达时,我总共有 88 个预测值与树进行比较,并决定这 88 个预测值是多头还是空头。即某种模式的类似物,只是非常类似而已。

 
faa1947:

我仔细检查过了,没有问题,顺序如下:

  • 运行 R
  • 文件/加载工作区选项卡
  • 然后从解压压缩包中查找 TC.RData 文件。
  • 启动 Rattle
  • 数据/数据集选项卡
  • 在数据名称窗口的下拉菜单中查找 TC 名称。
  • 点击 "运行

我们将得到您感兴趣的向量列表。

谢谢!现在清楚了。

请解释一下这些向量的本质:ZZ.75、ZZ.35?
*.dif1、*.dif2、*.dif3 是什么向量?增量?
欧元、英镑等向量?- 它们是什么?

还有一个综合性问题--为什么要添加指标数据?这不是和[x, f1(x), f2(x)]一样吗?我在暗示冗余。您没有试过只提供闭包的增量吗?

感谢您的回答。

 
wmlab:

谢谢现在清楚了。

您能解释一下这些向量的本质吗:ZZ.75、ZZ.35?
*.dif1、*.dif2、*.dif3 是什么向量?增量?
欧元、英镑等向量?- 它们是什么?

还有一个综合性问题--为什么要添加指标数据?这不就是[x, f1(x), f2(x)]吗?我是在暗示冗余。您没有试过只提供闭包的增量吗?

感谢您的回复。

能否请您解释一下 ZZ.75 和 ZZ.35 这些向量的本质?

这些是最小反转距离为 75 点和 35 点的 ZZ。目标变量 TREND 取自 ZZ.35。这些变量不能用于模型--展望未来。

*.dif1、*.dif2、*.dif3 是什么向量?增量?相对于什么的增量?

相对于上一个柱状图的增量、上一个柱状图的增量(-2)和增量(-3)。我们的想法是考虑趋势。

欧元、英镑等向量。- 它们是什么?

商数eurusd、gbpusd 是第一个符号。

我在暗示冗余。您有没有试过只输入收盘的增量?

我试过很多方法。这篇文章是对各种可能性的展示,同时也是对冗余的展示,这样每个人都可以根据自己的想法进行选择和尝试。选择的方法很简单--将变量标记为 "忽略"。

 

祝贺 SanSanych 撰写了这篇文章!

当然,用 R 语言撰写的文章会更紧凑,但我们也许应该先从 R 语言开始。

我正在完成一篇关于 "深度 "学习的文章。我们将尝试用你的数据来比较结果。

祝你好运

 

我仔细看了一下数据集,没有问题。引号需要舍弃。也就是说,去掉前 48 个变量。剩下的数据集有 42 个输入变量和一个目标变量。

好吧,这取决于所有者,每个人都会根据自己的喜好、经验等进行选择。不过,关于这个模型,我有一句话要说。"RandomForest 非常棒,因为它不需要预处理,完全不需要。它能很好地接受原始数据。

当然,除此之外,这篇文章也非常有用。

 
vlad1949:

祝贺 SanSanych 的文章!

当然,用 R 语言撰写的文章会更紧凑,但我们也许应该先从 R 语言开始。

我正在完成一篇关于 "深度 "学习的文章。我们将尝试用你的数据来比较结果。

祝你好运

如果能在这里重复你的那篇文章就更好了。

这是非常有用的材料。