文章 "连续前行优化 (第八部分): 程序改进和修复"

 

新文章 连续前行优化 (第八部分): 程序改进和修复已发布:

根据本系列文章的用户和读者的评论和要求,程序已进行了修改。 本文包含一个自动优化器的新版本。 该版本实现了所需的功能,并提供了其他改进,这些是我运用该程序操作时发现的。

以前的程序版本分阶段输入日期,从而进行前行和历史优化,这很不方便。 而这一回,我实现了所需时间范围的自动输入。 功能的细节可以描述如下。 所选时间间隔应自动分为前行优化和历史优化。 两种优化类型的步骤都是固定的,并在间隔拆分之前已设置完毕。 每个新的前行范围必须在上一个范围之后的第二天开始。 历史间隔的偏移(重叠)等于前行窗口的步长。 与历史优化不同,前行优化不会重叠,它们实现了连续的交易历史。 

为了实现该任务,我决定将此功能转移到一个单独的图形窗口之中,并令其独立于主界面,彼此不直接相关。 结果就是,我们得到以下对象层次结构。

 


作者:Andrey Azatskiy

 

我没想到你们会继续开发。支持多种工具很酷!我很惊讶没有反馈。我猜是文章太复杂的缘故。我花了一个星期才读完。像你这样接受过 C# 和 OOP 培训的人并不多。那些能够理解这里所写内容的人将能够自己完成这个程序。无论如何,请接受我对您工作的感谢。有了这样的劳动投入,您就可以编写自己的测试程序并将其投放市场。您可能会买下它。我将对优化器的工作进行测试,并在此分享我的感受。谢谢!

 
Good Beer:

我没想到你们会继续开发。支持多种工具很酷!我很惊讶没有反馈。我猜是文章太复杂的缘故。我花了一个星期才读完。像你这样接受过 C# 和 OOP 培训的人并不多。那些能够理解这里所写内容的人将能够自己完成这个程序。无论如何,请接受我对您工作的感谢。有了这样的劳动投入,您就可以编写自己的测试程序并将其投放市场。您可能会买下它。我将对优化器的工作进行测试,并在此分享我的感受。谢谢!

感谢您如此溢美之词的评论,但我本人在编程和交易领域还有很多追求,所以不要过誉)我希望该程序会有用。

 

又见面了!我完全不是在夸奖你,而是在轻轻地暗示,如果能在 kodobase 中以简明手册和包含编译应用程序的存档的形式提供一个简略版本,将对你的伟大工作起到很好的补充作用。对于那些想参与这项工作的人来说--这些文章。谁能看懂它们,谁就能写出这样的程序.....。
现在,关于潜力的实现:Autoset 不工作!或者说,它不能正确工作。在 Metatrader 中,"截止日期 "不参与优化,正向测试应直接从测试期的这一日期开始。下一个远期的起始日期必须与上一个远期的截止日期一致。
例如,我们在 2020 年 3 月进行测试。设置起始日期是另一个主题。在当前版本中,当设置 3 月份的 4 周和 2 月份的 1 周时,我希望得到两个远期,细分为 3 周(21 天)-历史周期和 1 周(7 天)-远期。所有时间都是周一到周一。

自动设置
结果是:第一个是正确的--周一到周一。然后:我们开始了!
远期从 3 月 17 日(星期二)开始,而它本应该从 3 月 16 日(星期一)开始!如果范围允许的话,下一个 "前进 "期应该从 3 月 25 日星期三开始。而下一期的 Nystory 开始于 3 月 17 日,尽管上一期的最后一天是 3 月 15 日(不包括 16 日)。

时期

您自己没有使用过自动设置吗?
还有一点关于设置起始日期的问题。在期货交易中,历史记录可能有限,但在外汇交易中,有足够的历史记录可供测试。因此,为什么要在第一个日期的定义上伤脑筋呢?也许我们应该通过远期来设置全面覆盖的时间段,然后自动确定历史日期。例如,在我的例子中,我们将得到 5 个远期(如果自动设置工作正常),第一个 Histoty 日期将是 2 月 3 日。
我期待着补丁的出现。在此之前,我会手动输入周期,因为我可能会有时间。

 

我手动输入了句号并运行。又失败了。这样输入句号是否正确,还是必须严格交替输入?

测试期

优化器的结果选项卡中什么都没有:既没有向前也没有历史。智能交易系统记录了每种资产的三次历史优化。虽然优化器似乎计算过,但没有向前优化。这个窗口不时弹出:

窗口

优化后,优化集的名称会出现在左上角(优化窗口),但点击加载机器人参数按钮时,窗口又会弹出:

窗口 2

优化步骤之间有大约 30 秒的停顿。尤其是当进度条到达终点时。这总共会耗费很多时间。

 
说到自动完成,我突然想到:里面有时间!我一开始没注意到。为什么是 12:00?应该是 0-00。所以测试中包含了日期提尔。而且无法更改。手动填写也是一样
 
Good Beer:
说到自动完成,我突然想到:里面有时间!我一开始没注意到。为什么是 12:00?应该是 0-00。所以测试中包含了日期提尔。而且无法更改。手动填写也是一样的

没错,这是因为日期是从 00:00 开始计算到 0:00。
至于远期不是从历史的最后一天开始,而是向前推移了一天,按理说你不会回到过去一天来交易远期吧?时间机器还没有发明出来,但这是个遗憾)
关于没有数据可创建的错误--您确定在 Expert Advisor 中连接了自动卸载和报告生成功能吗?这里有两种选择,一种是您没有在 EA 代码中包含自动卸载和报告生成功能,另一种是 EA 的交易结果没有通过您设置的优化过滤器。

 
时间段可以分散输入,也可以按顺序输入,这不会影响程序,它们会按顺序自行排序。如果您有兴趣了解其逻辑,我可以向您推荐负责排序周期和自动填写优化日期的方法。
 
关于优化时间的设置(即不仅是年份,还有时间),这是平台的限制。请参阅创建配置文件的说明,[Tester]部分,字段 "FromDate"、"ToDate" - 接受值的格式为 "YYYYY.MM.DD"。

并删除日期 "From",我当然不会因为它方便而有必要限制好时间间隔。
Запуск платформы - Для продвинутых пользователей - Справка по MetaTrader 5
Запуск платформы - Для продвинутых пользователей - Справка по MetaTrader 5
  • www.metatrader5.com
По завершении установки в меню "Пуск" создается группа программ торговой платформы, а на рабочем столе дополнительно помещается ярлык программы. Используйте их для запуска. Нельзя запускать одновременно две копии платформы из одной директории. Чтобы одновременно запустить несколько копий, установите соответствующее количество программ в разные...
 

您好,您的系列文章 真的 有帮助,我不擅长 c#,所以我正试着从您的课程中学习。

我下载了第 4 至第 7 部分的附件,但我无法创建 "Metatrade Auto Optimiser "项目:


这是我第一次看到您的 程序界面,当优化模式被禁用时,它能成功启动 mt5,而当我打开它时,却 出现了 如图所示的 错误



请帮我解决这个问题,谢谢

 
Andrey Azatskiy:

没错,这是因为日期是从 00:00 开始计算到 0:00。
至于远期不是从历史的最后一天开始,而是向前推移了一天,那么一切都是合乎逻辑的,您不会回到过去一天来交易远期吗?时间机器还没有发明出来,但这是个遗憾)。

您理解错了。您的优化时间是从 12:00 到 12:00。我找不到可以更改的地方。

时期

因此,我们失去了历史第一天的 12 个小时,而我们的优化时间则为 12 个小时。正因为如此,远期被向前推移了一天,因为这一天被历史记录占用了。

由于一周有 7 天,因此优化期必须分为 7 天。历史进程在周一 0:00 结束,而远期在周一 0:00 开始。事实证明,我们在周一并没有进行测试,而是进行了转发。没有时间机器