交易中的机器学习:理论、模型、实践和算法交易 - 页 268

 
mytarmailS:

收到警告

从逻辑上讲,脚本试图从rdata文件中读取之前创建的表,但失败了,所以它被卡住了。下一次你运行脚本时,带有表格的rdata文件将被读取,并且不会出现翘曲。


NA - 也符合逻辑,建立模型的数据应该是准备好的,而不是从这些指标的原始输出中提取。在那里可以做的事情还有很多------。

<NA>在表格的开头是可以的,毕竟蜡烛图至少需要23个柱子。对于前23个小节,你可以一直期待NA。
我没有把表格填到窗口的宽度,不仅会有NA,而且人们可以期待 "一些不那么 "的结果,因为指标计算的 深度较浅。
最好把所有的第一行切成窗口宽度。
trainData <- trainData[-(1:indicatorDepth), ] 。

纠正除目标以外的列名中的<NA>: colnames(trainData)[-ncol(trainData)] <- paste0("pred",1:(ncol(trainData)-1) )

对于所有的正数,用1代替目标,对于所有的负数,用-1代替目标。或{0;1},如果你有神经元。

那些包含一些接近价格的数值的指标--比例为0-1,或计算deltas。(例如MA值总是在接近价格的地方,它们需要被缩放或delta。而RSI总是在自己的0-100范围内,这本身就是一件好事。如果指标值可以超出训练期间的已知值--delta它,它不会变得更糟)

对于一般的神经元来说,最好将所有的指标都按0-1的比例划分。

如此下去。

但第46-51栏中的NA--确实有问题。要么它们以另一种格式返回所有的东西,我们需要另一段代码专门将它们插入到表中。
或者--这些指标只是自己返回NA;也许它们需要更大的窗口宽度;或者它们总是为最后一个柱状体返回NA,然后根据新的柱状体数据替换NA,这是重绘,而且很糟糕。

 
桑桑尼茨-弗门科

这里出现了一个新的柱子,这是市场反转的预兆。但我们,继续喂养着这头神牛,不会为了一些想法而改变我们对历史的看法,从 "分析 "部分摘取。

对于简单的交易,这是相当出色的,我同意。该指标已经发现了某种刚刚出现的模式,并向我们展示了它,一切都很好。

但我们需要准备数据并训练模型。如果一个指标是透支的,通常意味着过去的条形图的值根据较新的数据在不断变化,也就是说,可以窥见未来。而模型最终会从这些着眼于未来的价值中学习,没有什么好东西可以出来。
虽然,这样的指标可以作为学习的目标,但同样的人字形,比如说,看100个柱子的前方,这就是为什么它能吸引人画出趋势。

 
Dr.Trader:

但第46-51栏中的NA--确实有问题。要么是指标以不同的格式返回所有内容,需要专门用不同的代码将它们插入到表中。

或者--这些指标只是自己返回NA;也许需要一个更大的窗口宽度;或者它们总是为最后一个柱状体返回NA,然后根据新的柱状体数据替换NA,这是重绘,而且很糟糕。

检查了一下,看起来是透支了。对于最后一个棒,NextCandlePosition指标总是返回NA。然后在下一栏,它用看起来正确的东西取代NA。@mytarmailS 再试试你的第一段代码,但没有这个指标并训练模型,我想结果会更糟。

我纠正了我的脚本,取了nextCandlePosition的倒数第二个值,而不是最后一个值,现在最后几行表格中就没有NA了。

 
Dr.Trader:

对于简单的交易,这是相当出色的,我同意。该指标已经发现了某种刚刚出现的模式,并向我们展示了它,一切都很好。

但我们需要准备数据,并教授模型。如果指标重绘,通常意味着以前的条形图的值在较新数据的基础上不断变化,也就是说,有一个对未来的展望。而模型最终会从这些着眼于未来的价值中学习,没有什么好东西可以出来。
虽然,这样的指标可以作为学习的目标,但同样的人字形,比如说,看100个柱子的前方,这就是为什么它能吸引人地绘制趋势。

让我们用一个简单的例子。

1.我们画了一个Hodrick-Prescott平滑图。它被重新绘制。

在当前的酒吧里,切线向上看。在下一个柱状图上,切线指向下方--指标重新绘制,因为它考虑到了当前的变化。预测向前一步--向下一步。

2.绘制切线。

在当前的条形图上,正切线呈上升趋势。在下一个柱状图上,切线看起来是向上的--指标还没有达到变化。

请考虑到HP指标在10-15条的某个地方停止重绘。

你的选择,为什么?

 
桑桑尼茨-弗门科

你的选择,为什么?

在手工交易中--我可以假设有好的策略使用这两个指标。我不知道任何这样的策略,所以我不会和他们交易。

在机器学习中--我会选择向导。愚蠢的滞后指标比任何重绘指标都好。

 
Dr.Trader:

检查了一下,看来是透支了。对于最后一个棒,NextCandlePosition指标总是返回NA。然后在下一小节,它用需要的东西取代了NA。@mytarmailS 再试试你的第一段代码,但没有这个指标并训练模型,我想结果会更糟。

我纠正了我的脚本,取了NextCandlePosition的倒数第二个值,而不是最后一个,现在表格的最后几行就没有NA了。

我写道,我删除了大约6个最好的预测器,只想把那些可能过度涂抹的预测器去掉,但准确率下降了大约3%,它们可能都是过度涂抹的......。

那么,你已经训练好了模型吗? 也许你应该从几千人开始尝试,而不是一下子数到5万人?

 
虽然我不知道那里可以重绘什么,但绝大多数的蜡烛图只有三个输出选项TRUE,FALSE,NA。
 
mytarmailS:

是的,我写道,我删除了大约6个最好的预测器,只是删除了那些可能重绘的预测器,但准确率简直下降了3%,那里可能都是重绘的...

采用你的代码,删除了从nextCandlePosition (X27)获得的6个指标,得到的准确率为52%,而不是100%。在稍有不同的训练指数上,准确率有时低于50%。总而言之--随机。

mytarmailS:
虽然我不知道什么是可以重新绘制的,但在绝大多数的烛台形态中,只有三个TRUE,FALSE,NA输出。

使用nextCandlePosition--你得到的是与下一栏真正相关的数值,这里是对未来1步的展望。

所以它没有发挥作用。

 
Dr.Trader:

采用你的代码,删除了从nextCandlePosition (X27)获得的6个指标,得到的准确率为52%,而不是100%。在稍有不同的训练指数上,准确率有时低于50%。一般来说--随机。

使用nextCandlePosition--你可以得到与下一栏真正相关的数值,这里是指未来的1步。

一般来说,它不起作用。

好了,一切都弄清楚了就好了,我并不真的相信圣杯的 存在。

 

有一个新的、非常有前途的软件包RKEEL网关到KEEL

祝好运

KEEL: Software tool. Evolutionary algorithms for Data Mining
  • www.keel.es
KEEL contains classical knowledge extraction algorithms, preprocessing techniques, Computational Intelligence based learning algorithms, evolutionary rule learning algorithms, genetic fuzzy systems, evolutionary neural networks, etc.