EA回测曲线好看,先核对这几项测试条件
区分建模方式与真实逐笔数据,记录点差假设、参数筛选和独立检查区间,让EA测试结论可以复查。
作者:托马斯|EA与平台实务|2026年10月6日
一张向上的回测曲线,不能说明程序在什么条件下运行,更不能直接代表实盘表现。比较黄金EA时,先核对测试条件,再读结果,比只挑净利润最高的一份报告更有用。本文讨论常规MT4测试器,不将MT5或第三方测试工具的功能混为一谈。
先保存一份能够复查的测试记录
在运行测试之前,保留EA版本、参数文件、完整品种名称、图表周期、日期区间、初始资金及其货币,以及数据来源与终端版本。每次修改参数或条件,都记录原因,不在看到结果之后只保存最好的一次。
这些记录的目的不是增加报告页数,而是让其他人能够知道测试究竟比较了什么。两份曲线即使外观相近,只要合约条件、数量或资金口径不同,就可能没有直接可比性。报告缺失的条件应标明未知,不能靠猜测补齐。
建模方式,需要与程序逻辑对应
MT4官方帮助列出不同的历史建模方式。只按开盘价测试与依靠柱内价格变化的程序,可能不能反映同一种触发过程。选择方式时应先确认EA是在完整K线形成后判断,还是依赖同一根K线内部的价格、退出和订单变化。
官方说明中的Every tick模式也使用较小周期数据与插值生成价格变化,并不自动等于完整的历史真实逐笔成交记录。不能看到“每个tick”字样,就认定已经还原了全部市场细节。若使用第三方数据或额外工具,应另外说明其来源和方法。
点差假设,不等于历史成交环境
根据MT4官方帮助,常规测试器默认会使用测试开始时品种的当前点差来模拟Ask,也可在Spread字段设置自定义值。这意味着测试的点差假设需要明确记录,不能把固定假设当成整个历史期间的真实浮动点差。
数据公布、流动性变化或异常时段的成交条件,未必能由一组固定设置充分体现。佣金、隔夜费用和其他执行影响,也应核对具体报告与工具是否考虑、采用何种口径。没有模拟的部分要明确说明,不用“回测已通过”代替这些检查。
优化结果,只是特定条件下的排序
MT4优化结果可以显示不同参数组合的利润、交易数、回撤和预期收益等统计项。排序第一,表示该组合在所选区间与条件下达到了相应指标,不代表未来仍然排第一。
分析时不仅看最佳一行,还要观察附近参数稍作变化后是否出现完全不同的结果。如果表现只集中在一个很窄的组合,说明结论可能对设置敏感,但不能仅凭这一现象就断定程序一定失效。应继续核对逻辑、数据和测试条件,保留有利与不利结果。
留出未用于调参的数据,再作检查
可以预先划分用于调整参数的区间,以及不参与调参的独立检查区间。划分方式和评价指标应在看到检查结果之前确定。若检查后又反复用同一段数据改参数,这段数据就不再是完全独立的检验。
这是一种研究安排,不是保证盈利的认证流程。不同市场状态下的样本数量、持仓敞口和结果差异仍需记录;不能因为一次独立检查盈利,就忽略样本不足或只覆盖单一环境的问题。
条件变化时,保留前后对照
在保持其他条件相同的情况下,改变一个明确的假设并比较结果,可以帮助发现程序对条件的敏感性。应记录改动、依据、测试结果和没有覆盖的限制,而不是只给出“更稳”这种难以核查的评价。
模拟运行可以用于检查程序流程和记录实际报价环境,但模拟成交仍不等同于实盘。进入任何运行阶段之前,应明确异常订单、断线、仓位偏离和损失达到限制时的检查流程,不能为了延续回测曲线而临时放宽规则。
最后把结论写成条件句
一份清楚的总结应写明:在什么数据、参数和费用假设下,观察到了什么结果;哪些风险没有被覆盖;还需要验证什么。把未知事项保留下来,比把研究结果包装成收益承诺更有助于后续复查。
杠杆交易可能造成重大损失。本文用于EA测试与研究方法说明,不构成程序购买、交易或仓位建议。回测、模拟与优化结果均不能保证实盘安全或未来收益。