文章 "在算法交易中 KOHONEN 神经网络的实际应用 第二部分优化和预测"

 

新文章 在算法交易中 KOHONEN 神经网络的实际应用 第二部分优化和预测已发布:

在设计使用 Kohonen 网络的通用工具的基础上,我们建立了优化EA参数的分析和选择系统,并探讨了时间序列的预测。在第一部分中,我们修正和改进了公开的神经网络类,增加了必要的算法。现在,是时候在实际应用中使用它们了。

这里是从2018年7月1日到2018年12月1日这段时间测试的结果。

Unity-Forecast: 在 MetaTrader 5 测试器中根据外汇和黄金集群预测白银价格变化

Unity-Forecast: 在 MetaTrader 5 测试器中根据外汇和黄金集群预测白银价格变化

在这一时间段,准确率达到了 60 %. 我们可以得出这样的结论:基本上,如果这种方法需要从根本上选择预测对象,准备输入参数,以及长期细致的配置,那么它是可行的。

作者:Stanislav Korotky

 
感谢您提供了高质量和有趣的材料。事实上,两篇文章合二为一。
 
我看了一下这篇文章--第二部分很有新意,但第一部分关于优化结果 分析的内容却没什么用处。虽然优化结果分析这一主题对于选择能保证智能交易系统稳定工作的参数非常重要。这里有一个相当著名的假设,即如果选择这样一个局部盈利最大值,其周围的盈利随着输入参数值的偏差而平滑下降,即梯度函数平滑下降,那么即使市场条件发生变化,专家顾问的实际性能也会相对于测试期间确定的参考值和预期值平滑下降。在更高级的情况下,有必要在目标函数中不仅包括盈利能力,还包括对其他输出指标稳定性的评估。也就是说,有必要在输出变量空间中寻找的不是高原,而是山丘,但这些山丘位于输入变量的相邻区域。
遗憾的是,我没有看到作者使用 Kohonen 地图来解决这个问题。
此外,作者删除无利可图点的方法从根本上说是错误的--这些点可能只是输入变量空间中的相邻点,其中的盈利点表明盈利组合的不稳定性。
 

作品当然是高质量的。这是一本关于在分析和交易中使用神经网络的好教程。

作为讨论,我想补充以下几点(关于 "优化 "部分):

作者声称 "实验并未揭示最佳设置"。在我看来,原因如下:

1. 使用了传统指标(RSIMA抛物线 参数作为研究对象(在优化过程中)。一般来说,这些都是非常粗糙的分析工具,因此有经验的交易者通常不会将其用于实际交易。如果使用蜡烛图分析 但非经典模型来代替这些 指标 ,结果应该会有所改善(我测试 "经典 " 指标 的经验表明它们效率低下)。也就是说,烛台参数(振幅、烛台体的大小、阴影的大小)可用作优化参数。这些参数在时间上的变化是比传统指标信号更为精确的分析工具。

2. 缺乏 多尺度 只使用一个尺度),这严重降低了分析的准确性。因此,最好同时使用 3-4 个时间框架(当然是同一金融工具)的蜡烛图进行分析。

3. 作者选择黄金和白银作为分析的金融工具(在作者看来,保护性资产对基本面因素的依赖性较小)。相反,我认为要进行全面分析,就必须使用交易量最大的金融工具,首先是欧元兑美元(EURUSD ,因为它是最具特征的金融工具(就动态而言)。此外,(在分析中)不应害怕市场的波动和所谓的 "噪音"(小时间框架上的变动),因为这些都是市场性质的表现,是市场的自然因素。

 
我同意这些意见。文章中的一些观点已得到解释(例如,遗传优化结果的使用、添加其他尺度/指标的必要性等)。目标之一是为战斗机器人研究提供工具和一般方法。分享您的成果。
 
Stanislav Korotky:
我同意这些意见。文章中的一些观点已得到解释(例如,遗传优化结果的使用、添加其他尺度/指标的必要性等)。目标之一是为战斗机器人研究提供工具和一般方法。分享您的发现。

这些不是评论,只是建议,因为文章非常出色。

 

遗传算法 在维度非常大的参数空间中进行搜索,为了使其不 "坍塌 "到有利可图的区域,可以使用合成优化参数,如以下参数:

TesterStatistics(STAT_PROFIT_TRADES)/TesterStatistics(STAT_LOSS_TRADES)。或者 TesterStatistics(STAT_MAX_CONPROFIT_TRADES)/TesterStatistics(STAT_MAX_CONLOSS_TRADES)。实际上,您必须连接更多参数。

 

我对文章中关于优化结果 的高原选择部分很感兴趣。我不太明白,如果地图是从随机 CSV 导出的,那么如何对其进行分析?文章中明确提到了这一点,即进行简单的 GA,之后丢弃垃圾。


我们怎样才能更接近实际呢?这里有一个 EA,需要找到一个高原。


还有。绘制地图时选择单元格的原则是什么?可能在描述中遗漏了什么,但这很难理解。

 
fxsaber:

我对文章中关于优化结果 的高原选择部分很感兴趣。我不太明白,如果地图是从随机 CSV 导出的,那么如何对其进行分析?文章中明确提到了这一点,即进行了简单的 GA,并在之后丢弃了垃圾。

我们如何才能更接近实际呢?这里有一个 EA,我们需要找到一个高原。

还有一件事。绘制地图时选择单元格的原则是什么?我可能在描述中遗漏了什么,但这很难理解。

在文章中--更多的是关于工具本身,以及如何获取数据进行分析--虽然是这么说的,但并没有做任何研究。这是不止一篇文章的重点--尤其是比较传统优化和遗传优化的解空间。完全过冲不会产生任何偏差--如果可以,就使用它。不过,"随机 CSV "一词并不恰当,或者说选择不当,否则你可以说 MT 中的所有优化结果都是随机的。在我看来,剔除明确的异常值是正常做法。

关于构建地图时选择单元格的问题,我不太明白。

 
Stanislav Korotky:

这篇文章更多涉及的是工具本身,以及如何获得分析数据,虽然提到了这一点,但没有进行任何研究。这是不止一篇文章的幌子--尤其是比较传统优化和遗传优化的解空间。完全过冲不会产生任何偏差--如果可以,就使用它。不过,"随机 CSV "一词并不恰当,或者说选择不当--否则你可以说 MT 中的所有优化结果都是随机的。在我看来,剔除明显的异常值是正常做法。

GA 的随机性在于滑入局部极值,而每次滑入的极值都可能不同。也就是说,GA 和完全搜索的结果可能大相径庭(在剔除两种变体中的垃圾之后)。

我遇到过关于 GA 的无稽之谈

关于交易、自动交易系统和交易策略测试的论坛

新版 MetaTrader 5 第 1930 版:MQL5 中的浮动图表窗口和 .Net 库

fxsaber, 2019.02.02 09:54 AM

遗传优化日志
PH      0       11:40:35.073    Tester  genetic optimization finished on pass 9216 (of 30240000)
FI      0       11:40:35.563    Statistics      optimization done in 1 minutes 51 seconds
JP      0       11:40:35.563    Statistics      shortest pass 0:00:00.014, longest pass 0:00:01.329, average pass 0:00:00.177
II      0       11:40:35.563    Statistics      local 3891 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)

在 3000 万个变体中,只有不到 4K 个变体,持续时间不到两分钟。如何提高 GA 的准确性?最好是用 2 个小时来计算,但得出的结果更客观。

在 MT4 中却并非如此。

事实证明,为了达到或多或少的客观性,我至少需要用同一个 OnTester 运行 GA 十几次。我看到您为不同的优化方法推荐了不同的标准。但标准 GA 还是有点奇怪。因此我决定采用不同的方法--见下文。

关于构建地图时单元格的选择--我不明白这个问题。

文章在分析不同地图时使用了这样一个属性:在两个地图中,具有匹配坐标 (X; Y) 的单元格对应于相同的 TC 输入参数集。这条规则是如何形成的?


非常感谢你们以文章和博文的形式付出的劳动!材料与一般材料有很大不同。

您实现 MHR 的 基础上,我想做一个标准 GA 的替代方案,并进行比较分析。标准 GA 在每次运行之间的差异非常大。而且 10K 通过限制与 MT4 GA 不一致。我看过您的虚拟化实现,我想使用类似的方法,但使用测试仪的图形用户界面。

 

GA 永远不会收敛到全局最优,它是一种以多样性为目标的进化方法。它根本不需要收敛到任何东西。

https://www.monographies.ru/en/book/view?id=707