文章 "在MQL5中构建自适应的自动化交易系统(EA)"

 

新文章 在MQL5中构建自适应的自动化交易系统(EA)已发布:

建立前瞻性的EA,并根据任何市场进行调整。

开发能够适应当前市场条件的交易机器人(EA),是稳定算法交易策略的关键。我们的目标不仅仅是开发仅针对少数交易标的的狭义机器人。而是旨在设计具有学习和适应任何交易标的能力的系统。本指南侧重于使用MQL5开发能够自优化以适应任何交易环境的机器人。

与一些看法相反的是,MQL5非常适合这项任务。其应用程序接口(API)提供了丰富的矩阵和向量功能,使其能够创建紧凑的机器学习模型。本文重点强调使用MQL5来构建自优化的机器人。采用面向对象编程(OOP)方法可以减少重复编码,并且提升在不同时间框架和市场条件下的适应性。

选择MQL5的矩阵和向量功能,相较于ONNX和Python等替代方案,具有显著的优势。使用ONNX模型需要为每个交易标的创建单独的模型实例,并且对于任何微小的参数变化(如时间框架调整)都需要创建新的模型。然而,MQL5提供了适应性,无需为不同的条件管理众多的模型。

作者:Gamuchirai Zororo Ndawana

 

非常感谢你分享这些信息,并花时间以非常愉快和可读的方式进行了解释。非常好。

致敬、

安东尼奥

 
Antonio Simon Del Vecchio #:

非常感谢你分享这些信息,并花时间以非常愉快和可读的方式进行了解释。非常好。

谢谢、

安东尼奥

您太客气了,安东尼奥,谢谢您的美言。
 
非常感谢 Gamuchirai,这篇文章非常精彩,非常及时,而且与我们的 EA 交易时代息息相关。

你是最棒的 :-)
 
Douglas I #:
非常感谢 Gamuchirai,这篇文章非常精彩,非常及时,而且与我们的 EA 交易时代息息相关。

你是最棒的 :-)
谢谢道格拉斯,我很高兴能帮上忙。

我们走吧。
 

感谢您的发布,这又是一个非常独特的方法。我很有兴趣了解并实施这种评估方法。您的解释非常翔实,读起来非常愉快,大大提高了我的理解能力。感谢您花时间编写了这本书。

致尼尔

 
linfo2 #:

感谢您的发布,这又是一个非常独特的方法。我很想了解并实施这一评估方法。您的解释非常翔实,读起来非常愉快,大大提高了我的理解能力。感谢您花时间创建了这个网站

致尼尔

谢谢你,尼尔,有很多人在幕后提供帮助,比如拉希德和其他内容版主,是他们让这一切成为可能,我们不可能感谢每一个人。我很高兴能为我们带来更多价值,这一直是我们的目标。事实上,这是唯一的目标。

 
在周末试用 LinearRegressionEA 时,LinearRegression,mqh, class Predict() metod 中的 m[0] 和 b[0] 的值未定义,因此返回未定义值 -nan,在Strategy Tester 中进行回溯测试。
方法 Trained() 此时返回 true。
这是否与交易时间之外有关?

更新:可能是历史数据的问题。我在 "真实点数 "模式下运行。在一个月后的数据上进行回溯测试,结果正常。我看看能否添加一些代码,防止未定义的数据在未被发现的情况下漏掉。我看到里面有一些对未定义的 m[0] 和 d[0] 的检查,但可能还需要更多。我明天再检查。



 
Gunnar Forsgren Strategy Tester 中进行回溯测试。 方法 Trained() 此时返回 true。 这是否与交易时间之外有关?更新:可能是历史数据的问题。我在 "真实点数 "模式下运行。在一个月后的数据上进行回溯测试,结果正常。我看看能否添加一些代码,防止未定义的数据在未被发现的情况下漏掉。我看到里面有一些对未定义的 m[0] 和 d[0] 的检查,但可能还需要更多。我明天再检查。







我的 "每个刻度线 "回溯测试观察结果可以通过从符号列表中明确导出 "点数 "和 "条形图 "历史数据文件并将其保存到测试人员将引用它们的文件路径来解决。
这些文件需要涵盖执行测试的天数范围。
默认情况下,测试人员在每次测试运行时都会从网上下载这些数据,但有时这显然并不可靠。
通常第一次尝试让测试人员在本地引用这些数据时,会有一些文件路径的麻烦,直到知道正确的路径,
举例说明,在我的情况下,Windows 路径是 "C:\Users\<username>\Appdata\Roaming\MetaQuotes\Terminal\Common\Files"。
本帖提供的提示:https://www.mql5.com/en/forum/367098#comment_21816898

Where to locate files for Strategy tester to find them
Where to locate files for Strategy tester to find them
  • 2021.04.12
  • Anthony Eric Gillon Dawson
  • www.mql5.com
MT5 has a very bizarre way of handling files...
 
Gunnar Forsgren Strategy Tester 中进行回溯测试。 方法 Trained() 此时返回 true。 这是否与交易时间之外有关?更新:可能是历史数据的问题。我在 "真实点数 "模式下运行。在一个月后的数据上进行回溯测试,结果正常。我看看能否添加一些代码,防止未定义的数据在未被发现的情况下漏掉。我看到里面有一些对未定义的 m[0] 和 d[0] 的检查,但可能还需要更多。我明天再检查。







我喜欢你的主动方法。你说得对,在试图获取历史数据时,可能会出现一些异常。例如,如果您在交易时段中间尝试更改时间框架,可能会再次出现"-nan "问题。


在保持信息简明易懂和修复我观察到的所有错误之间存在着固有的权衡。如果我选择后者,代码可能会变得更加复杂,也不容易理解。因此,我决定让它简单易懂,并希望你能快速扩展它。

你的解决方案听起来很有前途,结果如何?

 
Gunnar Forsgren #:

我的 "每个刻度线 "回溯测试观察结果是通过从符号列表中明确导出 "点数 "和 "条形图 "历史 数据文件,并将其保存到测试器将引用它们的文件路径来解决的。
这些文件需要涵盖执行测试的天数范围。
默认情况下,测试人员在每次测试运行时都会从网上下载这些数据,但有时这显然并不可靠。
通常第一次尝试让测试人员在本地引用这些数据时,会有一些文件路径的麻烦,直到知道正确的路径,
举例说明,在我的情况下,Windows 路径是 "C:\Users\<username>\Appdata\Roaming\MetaQuotes\Terminal\Common\Files"。
本帖提供的提示:https://www.mql5.com/en/forum/367098#comment_21816898

是的,在本地拥有数据确实是一项重大改进。 在本地拥有数据,我们不仅可以修改线性回归的系数,还可以即时优化技术指标的参数。

谢谢您分享的链接。我会找时间看一遍的。