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

 
FxTrader562:

对我来说,如果我理解正确的话,GDMH似乎并不难实现......但我将再次研究它。

1.你通过for循环来计算每个多项式,并得到共效和指标值输入的乘积,如ai*xi。

2.接下来,向RDF输入个别多项式,并对其进行训练

3.接下来,用最小平方法计算出最佳系数

4.接下来,在交易期间不断迭代整个过程

如果我的理解正确,如果我可以帮助你,那么你可以写信给我。

顺便说一下,我有很好的Lotoptimisation()和资金管理()等的示例代码,如果你能把系统的准确度和缩减到一个合理的水平,这些代码会非常非常有帮助。 系统不需要一直保持99%的准确度,但缩减和连续损失很重要。

好的,但需要正确实现:为预测器保存最佳模型和系数,以便下次使用。

也有不同的Gmdh方法--快速遗传选择或蛮力(我认为是第一种)。

此外,在这个新的库中,你可以添加多个具有不同预测器和不同设置的代理,结果将是所有代理的平均值。
 
Vizard_:

你从4岁起就被告知,在所有的实施中,这是一个蹩脚的响声,而且它很快就会杀死你。
扯淡就是扯淡,但如果你有东西,而有人需要,就送过去......该项目是开放的,不是你的))))

我并不贪婪。这纯粹是出于原则,尤其是我已经给了他链接.....。就让它在.....我打算完成这个拨浪鼓,我想雷舍托夫只是没有时间 :-(((((。但在一个盒子里得到一个好的优化器并不是一个坏主意。但比这更酷的是。真正能赚钱的地方是一个被遗忘很久的项目,但它需要程序员,去哪里找呢?这里没有这样的人。顺便想一想,我的生日正好在程序员的日子。.....

 
马克西姆-德米特里耶夫斯基

好的,但需要正确实现:保存最佳模型和预测器的系数,以便下次使用。

也有不同的Gmdh方法--快速遗传选择或蛮力(我认为是第一种)。

此外,在这个新的库中,你可以添加多个具有不同预测器和不同设置的代理,结果将是所有代理的平均值。

为了保存最佳模型,你需要对整个事情进行迭代,以 "锐利率 "和 "恢复系数 "的特定值为目标。在它达到所需的优化结果之前,不要交易。我已经在你以前的版本中实现了这一点。如果你想得到样本代码,我可以给。

是的,当然,快速遗传算法。但正如我上面提到的,在达到输入设置中设定的所需结果之前,不要进行交易,因此,这并不重要。

让我探索这个新图书馆的可能性,我将给你反馈。

 
马克西姆-德米特里耶夫斯基

在这个版本中,我检查测试子集上的分类(或logloss)错误,并选择最好的一个。这个模型我保存。我认为它运作良好,但目前的内核很糟糕

而这个函数 在转换后的预测因子上选择最佳模型

好的,但它将如何重复迭代?我的意思是这是一个一次性的过程,还是在每支蜡烛或每小时等之后都会重复进行?

这是最重要的部分。

我正在使用一个由我自己开发的第三方软件来迭代整个事情,因为我不知道如何在MQL5中做。我的意思是我在你以前的版本中使用它,在每次优化完成后检查 "锐利率"。

你有没有做过类似的事情,在一定时间后连续迭代整个过程?

 
FxTrader562:

但它将如何重复迭代?我的意思是这是一个一次性的过程,还是在每支蜡烛或每小时等之后都会重复进行?

这是最重要的部分。

我正在使用一个由我自己开发的第三方软件来迭代整个事情,因为我不知道如何在MQL5中做。

这1个迭代过程,在测试器中。然后在这个函数中,他迭代转换预测器并学习模型。

我有另一个版本的optomisator,但根据我的经验,这里的1次迭代也是不错的。

 
FxTrader562:

你有没有做过类似的事情,在一定时间后连续迭代整个过程?

尚无

如果我们有一个好的模型--它可以工作几天或几周,所以自动优化不是一个优先任务。
 
马克西姆-德米特里耶夫斯基

这1个迭代过程,在测试器中。然后在这个函数中,他迭代转换预测器并学习模型。

我有另一个版本的optomisator,但根据我的经验,这里的1次迭代也是不错的。

但我不认为一种模式可以在没有优化的情况下一直工作。特别是,当市场发生变化时,最好的模型可能会失败得很厉害,即使是在锐利的比率和其他因素的大值之后。

 
FxTrader562:

那么我认为,如果你不断地进行优化,就没有问题。


顺便说一下,这就是我所说的源代码。

输入字符串OptimizationParameterCheckSettings="===保存优化参数的设置==="。

输入 bool OptimizationParameterCheck=true。

输入双倍SharpRatioRequired=0.3。


在测试器中加入这段代码。

filehnd=FileOpen("SharpRatio_"+_Symbol+(string)_Period+".txt",FILE_READ|FILE_WRITE|FILE_CSV|FILE_ANSI|FILE_COMMON);//--要保存上次运行的SharpRatio。

double SharpRatio=NormalizeDouble(TesterStatistics(STAT_SHARPE_RATIO),2)。

FileWrite(filehnd,SharpRatio)。

FileClose(filehnd)。


接下来,在内部启动功能。

如果(SharpRatioLastRun<SharpRatioRequired)

{

Comment("根据最后的优化结果,目前的交易政策不符合交易要求....,所以交易已经停止一段时间了")。

返回。

}


不错的方法,谢谢!

 
马克西姆-德米特里耶夫斯基

不错的方法,谢谢!

好的,但我要重申,你应该认真考虑添加某种形式的持续优化,否则,它将会失败。因为正如我之前所说,我尝试了每一种设置组合以及不同的指标和多个时间框架,但没有任何东西能完美地发挥作用,所以到目前为止.....。

但当我不断迭代时,那么它曾经工作得有时很好。顺便说一下,我有解决我的问题的办法。但我不喜欢这种方法,因为它应该由MQL5来做,而我不知道如何在MQL5中做。

 
FxTrader562:

好的,但我要重申,你应该认真考虑添加某种形式的持续优化,否则,它将会失败。因为正如我之前所说,我尝试了每一种设置组合以及不同的指标和多个时间框架,但没有任何东西能完美地发挥作用,所以到目前为止.....。

但当我不断迭代时,那么它曾经工作得有时很好。

因为模型仍然很烂^),有很大的误差,需要模型的工作时间更长

例如,2个月的学习和1周的交易