文章 "基于机器学习构建均值回归策略" - 页 9

 

日安,马克西姆。下午好,尊敬的同事们。

我有一个急需解决的问题。

我想为机器人添加额外功能(输出仓位盈亏平衡和 trawl sl),但遇到了无法编译源代码的问题(我使用 MT5 软件包中的标准编译器)。
,甚至连作者附在文章后面 的原始源代码reversion.mq5 也无法通过
问题出在函数 OnnxSetInputShape 和OnnxSetOutputShape 上(第 51、58、66、71 行)
根据 mql5 帮助,这些函数的输入数据是三个变量:两个是long 类型,第三个是 const ulong 类型。然而,根据 Expert Advisor 代码,作为初始 变量的变量ExtInputShape、 ExtInputShape2 和 output_shape 在函数中被初始化为 const long 第 31、32、65 行)

当变量的数据类型改为 const ulong 时,编译成功。但是,机器人在 "盈利 "时停止工作,即执行的交易策略算法没有被执行。

请帮助解决这个问题。我最后考虑使用外部编译器。是否可以在不检查代码正确性的情况下使用标准的 MT5 工具进行编译?

[删除]  
Vladimir Levchenko long 类型,第三个是 const ulong 类型。然而,根据 Expert Advisor 代码,作为初始 变量的变量ExtInputShape、 ExtInputShape2 和 output_shape 在函数中被初始化为 const long 第 31、32、65 行)

当变量的数据类型改为 const ulong 时,编译成功。但是,机器人停止了 "盈利 "工作,即没有执行已实施的交易策略算法。

请帮助解决这个问题。我最后考虑使用外部编译器。是否可以在不检查代码正确性的情况下使用标准的 MT5 工具进行编译?

可以,试试这个选项。除了 ulong 之外,我不记得还改了什么。是的,更新后,一些相位的工作方式开始与之前不同。

请在 #define 中写入 include 文件中的相位名称。
附加的文件:
 
Maxim Dmitrievsky #:

金德,试试这个选项。除了 ulong,我不记得还改了什么。是的,更新后,一些 ph-iases 的工作方式开始与之前不同。

在 #define 中,写入 include 文件中的相位名称。

日安。

我做到了。但不幸的是,原因另有其人。我附上了你的编译版本和变量类型被替换为 ulong 的版本的结果截图。

使用长变量 改为 ULONG 后。

[删除]  
Vladimir Levchenko #:

日安

是的但不幸的是,原因另有其人。我附上了你的编译版本和变量类型被替换为 ulong 的版本的结果截图。


你在机器人中使用的属性类型与训练中的相同吗?您在 python 脚本中改变了属性,但在 inklulnik 中却没有。
因为我给您提供的这个变体对我来说很好用。
从图中的曲线来看,模型没有获得训练时的特征
 
Maxim Dmitrievsky #:
您在机器人中使用的属性类型与训练中使用的相同吗?您在 python 脚本中更改了属性,但在 inklulnik 中却没有更改。
因为我给您提供的这个变体对我来说很好用。
从图中的曲线来看,模型没有获得训练时的特征

可能是这样。因为我调出了机器人最初发布时的模型文件。
,但模型训练的算法仍处于研究和实现阶段。我在使用 Mql5 时没有问题,但在使用 Python 时还很难与它交上朋友。

[删除]  
Vladimir Levchenko #:

可能吧。因为我调出的模型文件是机器人最初发布时的文件。
但模型训练算法仍处于研究和实现阶段。我使用 Mql5 没有问题,但与 python 的友谊还有点困难。

经过检查,一切正常。我附上了文章中训练好的模型文件和上面更新的机器人文件。

之后最好重新训练模型,因为文章中附有演示模型。当你理解了 python 脚本后。


 
Maxim Dmitrievsky #:

检查过了,一切正常。附上文章中训练好的模型文件和上面更新的机器人文件。

之后最好重新训练模型,因为文章中附有演示模型。当你理解了 python 脚本后。


您好!
是的,在这个版本中,机器人本身可以正常编译和运行。但模型需要重新训练。
我正在逐渐掌握 python,但还没有完全理解 我在笔记本电脑上滚动了 Rutop 的主版本,并将其更新到当前版本。我安装了所有必要的软件包(pandas、numpa、numpy、catboost、scipy、scikit-learn)。引号已下载。我将报价文件和所有脚本放在 MT5 主目录下的 Files 文件夹中。我在模型训练脚本的代码中写入了路径。
我在 MetaEditore 中更正了脚本代码。我尝试从那里运行脚本。运行过程中出现错误(找不到 python 机器人软件包,试图按照安装其他软件包的方案安装时也出现错误)。通过 python 控制台运行脚本时,也会出现同样的错误。
,您能告诉我该从哪个方向钻研这个主题 吗?

安装机器人软件包时出错


脚本操作错误

[删除]  
Vladimir Levchenko #:
您好!
是的,在这个版本中,机器人本身可以正常编译和运行。但模型需要重新训练。
我正在学习 python,但目前还不是一切正常。我在笔记本电脑上运行了 Rutop 的主版本,并将其更新到当前版本。我安装了所有必要的软件包(pandas、numpa、numpy、catboost、scipy、scikit-learn)。引号已下载。我将报价文件和所有脚本放在 MT5 主目录下的 Files 文件夹中。我在模型训练脚本的代码中写入了路径。
我在 MetaEditore 中更正了脚本代码。我尝试从那里运行脚本。运行过程中出现错误(找不到 python 机器人软件包,试图按照安装其他软件包的方案安装时也出现错误)。通过 python 控制台运行脚本时也会出现同样的错误。
你能告诉我应该从哪个方向钻研这个主题 吗?

Bots 只是文章中模块所在的根目录(文件夹)。如果脚本在导入模块(附加文件)时没有看到它们,那么请写入文件的完整路径。

或者将所有这些文件扔到与主脚本相同的文件夹中,然后这样做:

Было
from bots.botlibs.labeling_lib import get_labels
from bots.botlibs.tester_lib import test_model
from bots.botlibs.export_lib import export_model_to_ONNX

Стало
from labeling_lib import get_labels
from tester_lib import test_model
from export_lib import export_model_to_ONNX

如果安装 Python 时没有设置 PYTHONPATH,就会出现这种情况。请在互联网上搜索如何为您的系统设置PYTHONPATH。也就是说,Python 看不到光盘上的文件。

或者在互联网上阅读有关导入模块的基础课程。

 
Maxim Dmitrievsky #:

Bots 只是文章中模块所在的根目录(文件夹)。如果脚本在导入模块(附加文件)时没有看到它们,请写入文件的完整路径。

或者将所有这些文件扔到与主脚本相同的文件夹中,然后这样做:

如果安装 Python 时没有设置 PYTHONPATH,就会出现这种情况。请在互联网上搜索如何为您的系统设置PYTHONPATH。也就是说,Python 看不到光盘上的文件。

或者在互联网上阅读有关导入模块的基础课程。

再见,马克西姆。谢谢。几乎所有问题都解决了。最后一个问题。
在训练模型的主脚本中有注释行(154-182)。据我所知,这些是替代交易采样器(标记)。但我无法尝试。如果取消注释任何一个标记(有条件的,第 154-158 行),并注释掉原来的标记(第 149-153 行),脚本将无法启动。
原因何在,应从何处查找?

谢谢 )

[删除]  
Vladimir Levchenko #:

日安 迈克西姆谢谢几乎所有问题都解决了。最后一个问题。
在训练模型的主脚本中有注释行(154-182)。据我所知,这些是替代交易采样器(标记)。但我无法尝试。如果取消注释任何一个标记(有条件的,第 154-158 行),并且注释了原始标记(第 149-153 行),脚本将无法启动。
原因何在,应从何处查找?

谢谢 )

您好,您需要 Python 解释器写入的日志。