文章 "如何在 MQL5 中使用 ONNX 模型" - 页 4

 
非常感谢。真的非常感谢。希望在不久的将来能有更多关于它的文章。
 

onyx 库有问题吗?

安装 onyx 时出现错误

ERROR:Could not find a version that satisfies the requirement onyx (from versions:0.0.5, 0.0.17, 0.0.19, 0.0.20, 0.0.21, 0.1, 0.1.1, 0.1.3, 0.1.4, 0.1.5, 0.2, 0.2.1, 0.3, 0.3.2, 0.3.3, 0.3.4, 0.3.5, 0.3.6, 0.3.7, 0.3.8, 0.3.9, 0.3.10, 0.3.11, 0.3.12, 0.4, 0.4.1, 0.4.2, 0.4.4, 0.4.5, 0.4.6, 0.4.7, 0.5, 0.6.1, 0.6.2, 0.6.3, 0.6.4, 0.7.3, 0.7.4, 0.7.5, 0.7.6, 0.7.7, 0.7.8, 0.7.10, 0.7.11, 0.7.12, 0.7.13, 0.8.5, 0.8.7, 0.8.10, 0.8.11)

错误:未找到与 onyx 匹配的发行版

然后在运行 t2fonnx 时

导入 onyx

ModuleNotFoundError:没有名为 "onyx "的模块



 
奇怪的是,网络是以小时为单位进行训练的,而专家顾问提供的却是每日数据。这是一个错误吗?还是我不明白什么?
 
donbar upbar #:

onyx lib 有问题吗?

安装 onyx 时出现错误

ERROR:Could not find a version that satisfies the requirement onyx (from versions:0.0.5, 0.0.17, 0.0.19, 0.0.20, 0.0.21, 0.1, 0.1.1, 0.1.3, 0.1.4, 0.1.5, 0.2, 0.2.1, 0.3, 0.3.2, 0.3.3, 0.3.4, 0.3.5, 0.3.6, 0.3.7, 0.3.8, 0.3.9, 0.3.10, 0.3.11, 0.3.12, 0.4, 0.4.1, 0.4.2, 0.4.4, 0.4.5, 0.4.6, 0.4.7, 0.5, 0.6.1, 0.6.2, 0.6.3, 0.6.4, 0.7.3, 0.7.4, 0.7.5, 0.7.6, 0.7.7, 0.7.8, 0.7.10, 0.7.11, 0.7.12, 0.7.13, 0.8.5, 0.8.7, 0.8.10, 0.8.11)

错误:未找到与 onyx 匹配的发行版

然后在运行 t2fonnx 时

导入 onyx

ModuleNotFoundError:没有名为 "onyx "的模块



你好,Donbar,看起来你试图安装错误的软件包。应该是 onnx,而不是 onyx。
 

嗨,感谢您的文章。这是一篇关于如何构建 ML 模型并将其纳入 EA 的精彩攻略!

我试图重现您的结果,但遇到了一些问题。我希望你能帮助我了解原因。

我仔细地阅读了文章,但最终在策略测试器中 得到的结果却截然不同。我知道这些算法有一些随机特性,但我还是对这种差异感到惊讶。我也很小心地使用了相同的时间段,这样至少在建立模型时我的训练数据和测试数据是相同的,而且我的 MT5 回溯测试也是在相同的时间段内进行的。结果却大相径庭。

我试图找出可能的原因,我认为最有趣的差异始于模型构建过程。我的损失函数表明,在查看测试/验证数据的表现时,你的概括性要好得多。我已将它们包含在本信息的末尾。

您能提出可能的原因吗?这个模型是不是太脆弱了,以至于无法预料?

我最近一次重现的努力是简单复制粘贴您的 Python 最终代码,插入一些 Matplotlib 调用来生成损失图,但结果基本相同。您能建议我如何更好地重现您的结果吗?

谢谢

附加的文件:
LOSS.png  99 kb
RMSE.png  120 kb
copypaste.py  5 kb
 
Vladimir Perervenko 项目 都包括三个阶段:
  • 预处理
  • 模型选择、训练、优化等
  • 实施

在 µl 中使用 ONNX 模型解决了实施问题。不过,并非所有模型都能实现,而且也不太容易。

模型的训练和优化由 Python 中的一个单独流程解决。

但在上述所有过程中,第一阶段是最耗时、最具创造性和最重要的。而且不可能在 µl 上实现。我们不认为原始缩放是预处理。民间智慧说:"垃圾进,垃圾出"。要在 MCL 上充分使用 MO,需要在 MCL 上额外开发和实施的东西太多了。不可能包罗万象,尤其是它还在不断扩展。

因此,要执行预处理,要么用另一种语言(掌握 R/Python/Julia 等语言的人),要么尝试将其转换为 ONNX。

到目前为止,实施 ONNX 的好处仅在于学习如何转换、创建、简化和优化 ONNX 模型。将来可能会有用。

你说得太好了,一切都很准确,切中要害

 
Rorschach #:

将预处理转移到 MT 不是问题,但我很想在 MT 测试仪中测试系统,而在 python/R 中我需要编写自己的测试仪,错误百出。

现在已经有很多用 R 和 Python 测试过的测试器了。

但转移预处理只是个问题,预处理不是一个微不足道的缩放或随机计算。
 
Bill M 策略测试器中 得到的结果却截然不同。我知道这些算法有一些随机特性,但我还是对这种差异感到惊讶。我也很小心地使用了相同的时间段,这样至少在建立模型时我的训练数据和测试数据是相同的,而且我的 MT5 回溯测试也是在相同的时间段内进行的。结果却大相径庭。

我试图找出可能的原因,我认为最有趣的差异始于模型构建过程。我的损失函数表明,在查看测试/验证数据的表现时,你的概括性要好得多。我把它们放在了本信息的末尾。

您能提出可能的原因吗?模型是否过于脆弱,以至于出现这种情况并非意料之外?

我最近的重现工作只是复制粘贴了您的 Python 最终代码,插入了一些 Matplotlib 调用来生成损失图,但得到的结果基本相同。您能建议我如何更好地重现您的结果吗?

谢谢

我也遇到了同样的问题。

谁能帮帮我?

 
Joseph #:

我也遇到了同样的问题。

谁能帮帮我?

继续调查我所面临的问题(很可能还有其他问题);并更新我的调查结果。

首先,非常感谢MetaQuotes(作者)分享这篇详细的文章。在我的 ML 交易探索中,我学到了很多东西。

在我的 MetaQuates 演示账户上运行文章中的原始 onnx文件 ,我设法重现了相同的结果。但是,使用附件中的 ONNX.eurusd.H1.120.Training.py 重新训练 onnx 模型时,模型(附件:ONNX.eurusd.H1.120.Training.py:

data start date = 2022-09-03 00:00:00
data end date = 2023-01-01 00:00:00

模型(ONNX 附录:)的得分:

RMSE         : 0.005212606864326095
MSE          : 2.7171270322019527e-05
R2 score     : -3.478924709873314

以及所附的 2023 年 1 月 1 日至 3 月 26 日的回溯测试结果:"回溯测试结果.png"

MetaQuotes
  • 2023.11.23
  • www.mql5.com
Trader's profile
附加的文件:
 

我用下面的内容重新训练了所附的 ONNX.eurusd.H1.120.Training.py:

data start date = 2022-11-28 12:28:00
data end date = 2023-03-28 12:28:00

模型(ONNX 附录:)得分:

RMSE         : 0.0014680559413400179
MSE          : 2.155188246903726 e-06
R2 score     : 0.9699715149559284

并附上 2023 年 1 月 1 日至 2023 年 3 月 26 日的细菌检测结果:"bacttest result2.png

因此,从上述练习中,我猜测用于生成文章中最终结果 的模型很可能没有经过以下日期的训练?

data start date = 2022-09-03 00:00:00
data end date = 2023-01-01 00:00:00
希望有人能对此发表评论。
附加的文件: