测试程序函数的局限性
使用测试程序时,应注意对内置函数的一些限制。有些 MQL5 API 函数在策略测试程序中从未执行过,有些函数只在单次传递中有效,但在优化过程中无效。
因此,为了提高优化 EA 交易时的性能,不会执行 Comment、 Print 和 PrintFormat 函数。
但在 OnInit 处理程序中使用这些函数时例外,这是为了更容易找到初始化错误的可能原因。
提供与“世界”交互的函数不会在策略测试程序中执行。这些函数包括 MessageBox、 PlaySound、 SendFTP、 SendMail、 SendNotification、 WebRequest 以及处理 套接字的函数。
此外,许多用于处理图表和对象的函数也不起作用。特别是,将无法通过调用 ChartSetSymbolPeriod 来更改当前图表的交易品种或周期,使用 ChartIndicatorGet 列出所有指标(包括从属指标),使用模板 ChartSaveTemplate 等。
在测试程序中,即使在可见模式下,也不会为 OnChartEvent 处理程序生成交互式图表、对象、键盘和鼠标事件。