文章 "MQL5 交易策略自动化(第24篇):集成风险管理与移动止损的伦敦时段突破系统" - 页 2

 
您在代码中的什么地方打算使用变量 "MaxOpenTrades"?它被定义了,但从未被引用过。
 
Allan Munene Mutiiria #:

至于您的第二个问题,文章中已有解释,但假设您的问题源于测试数据不佳并给出提示,那么当范围处于计算状态时,您将始终看到 "计算中... "状态,直到有足够的数据来设置伦敦范围会话或您在输入中定义的会话。假设您使用的是默认设置,伦敦前时间为 3 小时,而您从共享截图中看到的时间是 2 月 13 日,22:00 之后的 2 个条形图是 2*15 分钟 = 30,因此给出的 22:30 在范围计算时间之外,所以面板上的数据应该仍然可见,因为之前设置的范围仍在起作用,除非尚未找到第一个时段,并且会在午夜达到范围计算时被清除。请参见下文:

您可能需要查看以下查找范围的逻辑

以及如何设置。

请看下图,虽然我们不知道您测试的年份,但我们会选择 2025 年,如果像您的情况一样是 2020 年,我们没有这方面的高质量数据,所以无论如何,我们都会使用 2025 年,因此范围计算应从午夜开始。


从图中可以看到,23:55 时的数据仍然完好无损。但是,当午夜来临时,我们需要重新设置。请看下图。

你可以看到,为了进行其他范围计算,我们在午夜重置了数据。实际上,当范围计算完成后,可视化可以帮助你了解真正发生了什么。例如,在您使用默认设置的情况下,我们将看到从 0300 时到 0800 时的运行条形图,因为这是我们定义的。见下图:

希望这能再次说明问题。您可以根据自己的交易风格调整一切。为避免您遇到的问题,建议您使用可靠的测试数据。谢谢。

非常感谢你的全面答复。

是的,我确实读了这篇文章,并跟着自己的拷贝编码,直到我遇到了我所概述的问题。我看到的是面板没有更新,即使在默认时间内也是如此。我截图的目的是想说明,虽然图表上已经画出了方框,数据也已收集,但面板却没有更新。此外,日志中没有关于无效价格或水平的错误信息。

,我在我的版本中添加了日志信息;从中我可以看到,当范围过大或过小时,面板不会更新;因此这可能是部分原因。

,我会仔细检查测试数据的质量。谢谢你指出了你测试的货币对;我一定会对我选择的货币对进行调整。

非常感谢你的帮助。

 
Kyle Young Sangster #:

非常感谢你的全面答复。

是的,我确实读了这篇文章,并跟着自己的拷贝编码,直到我遇到了我概述的问题。我看到的是面板没有更新,即使在默认时间内也是如此。我截图的目的是想说明,虽然图表上已经画了方框,数据也已收集,但面板却没有更新。此外,日志中没有关于无效价格或水平的错误信息。

,我在我的版本中添加了日志信息;从中我可以看到,当范围过大或过小时,面板不会更新;因此这可能是部分原因。

,我会仔细检查测试数据的质量。谢谢你指出了你测试的货币对;我一定会对我选择的货币对进行调整。

非常感谢你的帮助。

当然,欢迎您。

 

感谢您与我们分享您的代码。

由于我自己也编写了会话依赖型 EA,我可以告诉您,只有当您的经纪商始终处于 GMT+1 时区并且使用英国夏令时 时,代码才会起作用。

在所有其他情况下,您的开始时间将不起作用。为什么?因为伦敦会议的开始时间是英国时间上午 8:00。冬天是格林尼治标准时间 8:00,夏天是格林尼治标准时间 7:00。

TimeCurrent() 不会返回您的本地时间,而总是返回交易服务器的时间。