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

 
Alexey Burnakov:

等一下。我也会运行你的数据进行依赖。

在我开始之前有一个问题。你的数据是否包括一行中的所有条形,或者在取样前是否有条形变细?

R1、R2、R3排成一排,其中也有一排是H1的时间序列
 
桑桑尼茨-弗门科
R1、R2、R3排成一排,在它们内部也排成一排,是H1的时间序列。

我明白了。好吧,有了你的数据,我大致上明白了如何工作。

我也想了解Dr.Trader。

 

我也有H1,样本包括过去4个柱子的数据。open[1]-high[1]-close[1]-...-open[2]-high[2]-close[2]-...等,那里的数据来自于MqlRates 和MqlDateTime结构,另外还有几个指标和来自更高时间段的收盘价,一切都在区间[0...1]内规范化。1或0的结果是下一栏的价格增加或减少。但所有这些显然是不够的。

问题是,我们不知道我们需要多少条。Neuronka只需要3个小节就能重新训练到误差为0%(因此50%会在前测中出现)。或者,如果你用控制来训练它,并及时停止它,前沿测试误差会减少几个百分点。但是,完全可以取几百个条子,并取得大致相同的结果,尽管样本中的每一个新条子都是大量的垃圾,并因此降低了模型的质量。

 
Dr.Trader:
我也有H1,样本包括过去4个柱子的数据。open1-high1-close1-...-open2-high2-close2-...等。来自MqlRates 和MqlDateTime结构 的数据。1或0的结果是下一栏的价格增加或减少。
很好。是否有类似open1-open2的东西?返回
 

对上一篇文章的一点补充。不,没有三角洲。我必须要试一试。

 
Dr.Trader:

我也有H1,样本包括过去4个柱子的数据。open[1]-high[1]-close[1]-...-open[2]-high[2]-close[2]-...等,那里的数据来自于结构MqlRates 和MqlDateTime,另外还有几个指标和更高时间段的收盘价,都是以区间[0...1]为标准的。1或0的结果是下一栏的价格增加或减少。但所有这些显然是不够的。

问题是,我们不知道我们需要多少条。Neuronka只需要3个小节就能重新训练到误差为0%(因此50%会在前测中出现)。或者,如果你用控制来训练它,并及时停止它,前沿测试误差会减少几个百分点。但是,完全可以取几百条,达到同样的效果,尽管样本中的每一条新条都是大量的垃圾,模型的质量也会相应下降。

嗯,你必须做功能工程。这不一定是使用标准指标。你需要想象力和对过程的理解。仅仅给出黑匣子的数据可能真的不够。而信息所取的深度也很重要。例如,我在研究中看到,你需要在输入端送入一个相对于输出端深度的对称的深度。预测未来3小时的情况--给出后面3小时和以后的数据。

这里有一个预测器开发方案的例子,在我的研究中也有部分反映。这些数据已经给机器提供了很多关于过去的信息。

http://blog.kaggle.com/2016/02/12/winton-stock-market-challenge-winners-interview-3rd-place-mendrika-ramarlina/comment-page-1/

Winton Stock Market Challenge, Winner's Interview: 3rd place, Mendrika Ramarlina
Winton Stock Market Challenge, Winner's Interview: 3rd place, Mendrika Ramarlina
  • 2016.12.02
  • blog.kaggle.com
The Stock Market Challenge, Winton's second recruiting competition on Kaggle, asked participants to predict intra and end of day stock returns. The competition was crafted by research scientist at Winton to mimic the type of problem that they work on everyday. Mendrika Ramarlina finished third in the competition with a combination of simple...
 
Dr.Trader:

对上一篇文章的一点补充。不,没有三角洲。我必须要试一试。

那是必须的。

你知道什么东西好用吗?最后已知的价格与移动平均线 之间的差异。平均数的窗口应该是不同的。

 
我在这里阅读,阅读....我无法理解从形式上看什么是目标变量:一个实数(回归)或一个名义值(分类)。另外,如果我们讨论的是预测因素对目标变量的影响程度,那么了解目标变量本身的含义是个好主意。
 

我把目标变量看成是买入/卖出的限定条件,而不知道要保持交易多长时间或等待什么价位的具体细节。该EA在一个柱状图开始时开仓交易,并等待下一个柱状图来做下一个决定。

有了逻辑感就更难了 :)

我想训练神经元在图表上寻找模式和形状(头部和肩部等)。而且它必须学会在没有我参与的情况下自己寻找一些数字;我把之字形方向作为目标变量。根据我的计划,目标变量的含义应该是 "发现模式,趋势将上升,我应该买入"(结果=1)。同时,结果=0将意味着趋势将向上发展,我应该卖出。我试着考虑信号强度,当结果接近0.5时不进行交易。

我的想法出来了,我以前没有想过:看来我的模式是错的,我不得不教3个班的人买入/卖出/关闭_所有_交易_和不交易。并从一个网络中做3个输出,或者训练3个独立的网络。不是一个网络有一个出口。

然后我通过实验意识到,我可以只取5条而不是200条,什么都不会改变,结果还是一样。我不认为该模型会在这样的配置中学习寻找模式,而是在时间上找到一些规律性。我逐渐决定不以人字形为模型,而是简单地以下一栏的收盘价 为模型。在这种情况下,我不需要对神经元的结果进行过滤,在相同的结果下问题更少,这不是那么糟糕。这里的逻辑意义已经很简单了--目标变量0/1--价格将在1个小节内下降/上升。

过去几天,我一直在研究森林,以及这个论坛的例子。如果你采取同样的5条,那么森林将不会学习一些抽象的东西,如神经元学,而是会得出相当具体的规则。例如,森林可以推导出 "穿越两个MAs "或类似的规则。 在我看来,对于这样的数据集,森林更有希望,我将学习使用它。 目标变量的含义是相同的--0/1--价格将在1个小节内下降/上升。

对于预测因素的影响,我并不像我想的那样了解。时间肯定要用,小时/分钟/星期,可能是其中之一(小时?)你不能使用预测器,在没有循环的情况下,用一组小的值去预测。例如,如果训练样本包含一年的数据,你就不能使用 "月份 "预测器。该模型可以简单地将所有数据按照月份分成12个块,并为每个块训练一些不同的逻辑。而2015年1月的逻辑肯定不适合2016年1月的逻辑。但如果训练数据是5年的,那么 "月 "可能已经适合了。另外,我不确定使用指标是否合理,标准指标上的EA都是亏损的,如果训练有素的模型从这些数据中提取出有用的东西,那就奇怪了。此外,据我所知,森林本身也会进行一些计算,在训练中可能会创建自己的内部指标。 价格也应该使用,虽然我不相信开盘价和收盘价,我更喜欢高价和低价。

所有这些预测指标显示了一种当前的市场状况,模型的目的是利用预测指标来定义这些相同的条件,以及在这种情况下的价格走向。一个模型应该使用尽可能少的输入数据,就像奥卡姆剃刀一样,那么它就有可能描述一些依赖性,而不符合实例。

 
Dr.Trader:

我把目标变量看成是买入/卖出的限定条件,而不知道要保持交易多长时间或等待什么价位的具体细节。该EA在一个柱状图开始时开仓交易,并等待下一个柱状图来做下一个决定。

有了逻辑感就更难了 :)

我想训练神经元在图表上寻找模式和形状(头部和肩部等)。而且它必须学会在没有我参与的情况下自己寻找一些数字;我把之字形方向作为目标变量。根据我的计划,目标变量的含义应该是 "发现模式,趋势将上升,我应该买入"(结果=1)。同时,结果=0将意味着趋势将向上发展,我应该卖出。我试着考虑信号强度,当结果接近0.5时不进行交易。

我的想法出来了,我以前没有想过:看来我的模式是错的,我不得不教3个班的人买入/卖出/关闭_所有_交易_和不交易。并从一个网络中做3个输出,或者训练3个独立的网络。不是一个网络有一个出口。

然后我通过实验意识到,我可以只取5条而不是200条,什么都不会改变,结果还是一样。我不认为该模型会在这样的配置中学习寻找模式,而是在时间上找到一些规律性。我逐渐决定不以人字形为模型,而是简单地以下一栏的收盘价 为模型。在这种情况下,我不需要对神经元的结果进行过滤,在相同的结果下问题更少,这不是那么糟糕。这里的逻辑意义已经很简单了--目标变量0/1--价格将在1个小节内下降/上升。

过去几天,我一直在研究森林,以及这个论坛的例子。如果你采取同样的5条,那么森林将不会学习一些抽象的东西,如神经元学,而是会得出相当具体的规则。例如,森林可以推导出 "穿越两个MAs "或类似的规则。 在我看来,对于这样的数据集,森林更有希望,我将学习使用它。 目标变量的含义是相同的--0/1--价格将在1个小节内下降/上升。

对于预测因素的影响,我并不像我想的那样了解。时间肯定要用,小时/分钟/星期,可能是其中之一(小时?)你不能使用预测器,在没有循环的情况下,用一组小的值去预测。例如,如果训练样本包含一年的数据,你就不能使用 "月份 "预测器。该模型可以简单地将所有数据按照月份分成12个块,并为每个块训练一些不同的逻辑。而2015年1月的逻辑肯定无法在一年内适应2016年1月的逻辑。但如果训练数据是5年的,那么 "月 "可能已经适合了。另外,我不确定使用指标是否合理,标准指标上的EA都是亏损的,如果训练有素的模型从这些数据中提取出有用的东西,那就奇怪了。此外,据我所知,森林本身也会进行一些计算,在训练中可能会创建自己的内部指标。 价格也应该使用,虽然我不相信开盘价和收盘价,我更喜欢高价和低价。

所有这些预测指标显示了一种当前的市场状况,模型的目的是利用预测指标来定义这些相同的条件,以及在这种情况下的价格走向。根据奥卡姆之刃原则,一个模型应该使用尽可能少的输入数据,那么它就有可能描述一些依赖性,而不符合实例。

在许多方面,我们的想法是重叠的。

但最后我还是坚持使用噪音预测器。噪声预测器的存在使得模型过度学习,所有其他推理都变得毫无意义。