文章 "策略优化。一些简单的想法"

 

新文章 策略优化。一些简单的想法已发布:

即使你借助MQL5的云计算网络来进行优化工作,仍就需要消耗大量的计算机资源。本文由我对MetaTrader 5策略测试器一些简单的改进想所法组成。这些想法来自于MQL社区的相关技术文档、论坛和文章。

当发现一个稳定的EA策略,我们往往是将它加载在EURUSD图上进行交易的,不是吗?那么这个策略能在其他货币对上获利更多吗?此策略是否能在无需几何倍增交易量的前提下,在其他货币对上能有更佳的表现呢?

如果我们对于EURUSD 1H 下的运行结果不满意要怎么办呢?换到EURJPY H4 ?

另外,即使我们有一个64位的操作系统,让我们不必担心测试速度,难道我们忘了那些可怕的交易系统输入参数组合吗。所有的枚举组合在优化测试时都会被执行,而很多结果我们在最终的测试报告中又是不得不忽略的。

我已经解决了这些“小问题”,并且在本文中和大家分享这些有效的解决办法。如果有其他更好的解决方案也请告诉我。

作者:Jose Miguel Soriano

 

天哪,真是噩梦般的翻译!

不知道后面翻译成西班牙文是否也是这样?

必须想办法解决这个问题。

 
译文有改动。感谢您的评论!
 
很高兴能 在一家 西班牙 开发商的网站 上读 这篇文章�
他的 建议 也适用 优化 入口时间 如果 很好地 理解了 篇文章 在电子 编程 方面 还是个 新手�
致以问候和感谢
 
decolimper:
很高兴能 在一家 西班牙 开发商的网站 上读 这篇文章�
他的 建议 也适用 优化 入口时间 如果 很好地 理解了 篇文章 在电子 编程 方面 还是个 新手�
问候和感谢

如果你是西班牙人...我们说西班牙语。

我知道您想问我是否优化了输入周期。

问题是,代码中的所有函数都必须有一个参数,告知您 EA 运行的时间段。仅将PERIOD_CURRENT 设为默认值是不够的,还必须 向所有使用时间段的函数 传递 一个全局变量(例如 marcoTF),用于存储 EA 运行的时间段。

对于我的代码来说,在哪个图形中加载 EA 并不重要。它总是在我在输入参数中指定的框架内运行,该参数随后报告给 "marcoTF"。

如果您是西班牙人......请说西班牙语。

我明白,如果我优化输入期间的问题。

问题是,代码的所有功能都必须有一个参数来报告 EA 工作的时间框架。您不能使用 PERIOD_CURRENT 默认值,传递所有使用时间全局变量(例如 marcoTF)的函数,存储 EA 工作的时间框架。

对于我的代码来说,在什么图形下上传 EA 并不重要。总是在输入参数的框架内工作,随后通知 "marcoTF"

[删除]  

其实很有趣...但它与通常根据交易者在其经验.... 上选择的参数进行的优化并无太大区别。

我更感兴趣的是,是否有可能将优化后的参数自动转移到EA 设置 中...

也就是说,是否有可能在交易者定义的一段时间后自动优化并重新优化智能交易系统?

 
josemiguel1812:

如果您是西班牙人...我们说西班牙语。

我知道您想问我是否优化了输入时段。

问题在于,代码中的所有函数都必须有一个参数来告知 EA 运行的时间框架。仅将 PERIOD_CURRENT 设为默认值是不够的,还必须 向所有使用时间段的函数 传递 一个全局变量(例如 marcoTF),用于存储 EA 运行的时间段。

对于我的代码来说,在哪个图形中加载 EA 并不重要。它总是在我在输入参数中指定的框架内运行,该参数随后报告给 "marcoTF"。

如果您是西班牙人......请说西班牙语。

我明白,如果我优化输入期间的问题。

问题是,代码的所有功能都必须有一个参数来报告 EA 工作的时间框架。您不能使用 PERIOD_CURRENT 默认值,传递所有使用时间全局变量(例如 marcoTF)的函数,存储 EA 工作的时间框架。

对于我的代码来说,在什么图形下上传 EA 并不重要。总是在输入参数的框架内工作,随后通知 "marcoTF"

 
你好,何塞-米格尔,我想通过邮件与你联系,可以吗?
 
非常好的文章,José!我一直在寻找一种方法,不仅能按时间框架进行优化,还能按资产进行优化。祝贺你的举措

如果您有兴趣,我有一个建议可能对您有用。

要优化的外部参数:

资产数量:1
资产:EURUSD



资产数量:2
资产:EURUSD; USDJPY

资产1:EURUSD
资产2:USDJPY

等等。

从而优化资产数量和资产。

另一种方法是在图表 运行 EA 时自动进行优化。对于只通过蜡烛收盘进行操作的 EA(例如我的情况),是否可以通过图表上的蜡烛进行优化,而无需使用 Strategy Tester?
 

一篇好文章。我觉得奇怪的是,我也遇到过这个问题,解决方法与你的非常相似。另一个有趣的思路是这篇文章中介绍的 "虚拟 "优化:

https://www.mql5.com/en/articles/143

无论如何,感谢你与程序员的孤独作斗争:)

Adaptive Trading Systems and Their Use in the MetaTrader 5 Client Terminal
Adaptive Trading Systems and Their Use in the MetaTrader 5 Client Terminal
  • 2010.09.14
  • MetaQuotes Software Corp.
  • www.mql5.com
This article suggests a variant of an adaptive system that consists of many strategies, each of which performs its own "virtual" trade operations. Real trading is performed in accordance with the signals of a most profitable strategy at the moment. Thanks to using of the object-oriented approach, classes for working with data and trade classes of the Standard library, the architecture of the system appeared to be simple and scalable; now you can easily create and analyze the adaptive systems that include hundreds of trade strategies.
 
Jose:

一篇好文章。奇怪的是,我也遇到过这个问题,解决方法与你的非常相似。另一个有趣的思路是这篇文章中介绍的 "虚拟 "优化:

https://www.mql5.com/en/articles/143

无论如何,感谢你与程序员的孤独作斗争:)

我做的是结构化编程,我不太 "懂 "面向对象编程。

我不理解该策略本身,因为我不知道它是如何获取蜡烛 1 上所有策略的虚拟结果来选择蜡烛 0 开仓时的操作的。例如,在蜡烛 100 上(从现在到过去的编号),如果我可以通过已知历史和 MT5 测试系统提供的 priceBID "移动 "到未来来估计蜡烛 98 上的结果,....。但在蜡烛 1 上,我如何估算虚拟结果?