这是用户在 2025-8-3 4:05 为 https://fxdreema.com/documentation/builder/testing-and-optimization-limits 保存的双语快照页面,由 沉浸式翻译 提供双语支持。了解如何保存?

#MetaTrader 4 中的测试功能和限制

这里有一个链接,您可以查看测试和优化时的功能和限制:https://www.mql5.com/en/articles/1512

历史数据上策略测试的特殊功能

  • 某些函数在处理时不会产生输出。这些函数包括 Sleep()Alert()SendMail()PlaySound()MessageBox()WindowFind()WindowHandle()WindowIsVisible()
  • 仅允许对测试中的符号进行交易,不支持组合测试。尝试使用其他符号交易将返回错误。
  • 手数包括初始手数和递增步长,佣金和掉期应取自活动账户设置。测试前,需确保“导航器”窗口的列表中至少有一个已激活账户。
  • 所有掉期、保证金要求、到期和 GTC 订单均被模拟。测试尽可能接近交易服务器的实际条件。但由于缺乏每时刻转换价格的精确信息,交叉货币的保证金要求估算可能存在一定误差。
  • 同一测试符号的另一时间框架的零柱大致模拟。开盘价=正确开盘价,收盘价=正确收盘价,最低价=min(开盘价,收盘价),最高价=max(开盘价,收盘价),成交量=最终成交量(虚假)。
  • 假设交易中使用即时执行模式,处理时无滑点
  • 处理订单,开仓/平仓无滑点
  • 在触发强平后停止测试
  • 未测试周、月及不规则时间框架
  • 存款货币可以更改,但转换价格是固定的,并使用当前可用的价格
  • 交易操作的执行仍然没有延迟
  • 计划在交易处理过程中引入设置延迟
  • 账户历史记录完全可用,且不依赖于设置
  • 如果其他品种和周期被积极使用,建议将它们下载到所有可能的深度
  • 在每个 tick 建模时,测试器会独立加载被测试品种的所有必要时间框架
  • 使用 MarketInfo 函数会产生错误 ERR_FUNCTION_NOT_ALLOWED_IN_TESTING_MODE(4059),但会提供关于被测试品种当前价格、止损水平大小、点值大小以及报价窗口中任何品种的点差大小的正确信息。

优化过程的特殊功能

  • 日志中没有任何输出(包括 Print() 函数)。这样做是为了加快测试速度并节省磁盘空间。如果输出完整日志,日志文件将需要数百兆字节。
  • 绘图对象实际上并未设置。为了加快测试,绘图对象被禁用。
  • 使用了“跳过无用结果”功能。为了避免测试结果使表格和图表混乱,启用了跳过非常差结果的功能。该功能可以在“优化结果”的上下文菜单中通过“跳过无用结果”选项卡启用。