ATC冠军访谈:简单EA的盈利哲学
从德国学生Tim Fass的MQL5实战看稳健策略设计
谁是 Tim Fass 与 The_Wild_13
Tim Fass 是一名来自德国的机电一体化(Mechatronics)专业本科生,2011年首次参加 MetaTrader 举办的自动交易锦标赛(Automated Trading Championship,简称 ATC 2011)。他与同样参与开发的兄弟 Golomolo 此前已用 MQL4 写过实盘 EA 管理自有资金投入外汇市场约四个月。为锦标赛,两人分头改写策略以追求更高收益与风险暴露,Tim 的参赛作品命名为 The_Wild_13。该名字源于这是第13次修改后才通过锦标赛自动化测试验收的版本,灵感来自他喜欢的儿童故事 Jim Knopf,并无深层交易含义。
The_Wild_13 在 ATC 2011 初期冲上排行榜前列,权益曲线呈现缓慢上行后回落的形态,长期停留在前十附近。Tim 强调,该 EA 在实盘使用的原型同样展现平滑向上的特征,其核心信仰是:工程师视角下,最简单的解法往往最好,不需要复杂模型也能稳定获利。
The_Wild_13 的策略原理与周期选择
Tim 透露,EA 采用基于 ZigZag 指标的突破系统(breakout system),在当前价格周围挂出 pending orders(挂单)以捕捉既有趋势。它仅使用 15 分钟周期(M15)进行计算,不加载其他技术指标,输入变量极为精简。由于依赖明确趋势,EA 在趋势清晰时表现最佳;而在震荡(flat)行情中,ZigZag 生成的高低点彼此靠近,会产生大量错误信号,这是亏损交易的主要来源。
为抑制震荡干扰,Tim 做了多数过滤但自承未能找到满意的横盘识别方案。订单注释中的 '321' 仅是随机选取用于标识 EA 自身订单、防止误处理的标记,与流行的 123 形态系统无关。不同方向的订单数量与手数存在差异,因为上升与下降趋势采用了略有不同的子策略,而非统一逻辑。
- 仅用 M15 单周期与 ZigZag 单指标,输入简单
- 挂单突破已有趋势,不预测拐点
- 大止损搭配小止盈,亏损少但单次幅度大
- 过滤震荡不完美,flat 是主要亏损场景
大止损与稳定参数优化的权衡
The_Wild_13 的平滑权益来自一个刻意设计:使用较大的止损位(large stop loss)下挂单,使得亏损交易稀少但单次冲击强,关键在于尽可能降低亏损频率。Tim 在优化时偏好 profit factor(盈利因子)至少达到 3 的稳健参数组合,而非极致高收益但脆弱的拟合。他认为,不混乱的曲线更易于判断 EA 是否有效、何时需重新优化。
在锦标赛中他一周内遭遇三笔亏损,自认运气不佳。这也反映出简单突破系统对趋势环境的依赖:一旦连续震荡或趋势反转,大止损会被触及。对中文交易者的借鉴是,评估 EA 不能只看曲线美观,要明白其最大回撤触发机制与行情适配边界。
MQL4 与 MQL5 的开发体验对比
Tim 约一年前从 MQL4 起步,三个月前接触 MQL5。他指出 MQL5 语法更复杂,许多 MQL4 中单行命令能完成的事,在 MQL5 需定义类(class)等面向对象结构。但 MQL5 在复杂逻辑上具备优势。他的总结是:MQL4 这类线性语言适合“瀑布式”简单顺序的 EA,而 MQL5 面向对象特性适合更高复杂度项目。两者各有强弱,近期他仍用更熟悉的 MQL4。
从工程角度看,若策略本质是“指标触发→挂单→止损止盈”的线性流,MQL4 足够且开发快;若需管理多品种组合、复杂状态机、自定义对象,则 MQL5 更顺手。中文初学者常纠结选哪个,其实应先把策略逻辑写清楚,再按复杂度选语言。
// 示意:MQL5 中基于 ZigZag 获取最近拐点的简化片段 #include <Indicators\Trend.mqh> CiZigZag zig; zig.Create(_Symbol, PERIOD_M15, 0, 5, 0); double lastHigh = zig.GetHigh(1); double lastLow = zig.GetLow(1); // 在 lastHigh 上方挂突破买单,lastLow 下方挂突破卖单
自动化交易与手动交易的取舍
Tim 用模拟账户试过手动交易,结论是自己情绪化且无法 24 小时盯盘,并不适合。他认为程序只做理性决策,不会因恐惧或贪婪偏离策略,这是自动化最大优势。一旦有成熟 EA,日常仅需定期优化,不必持续看盘。他也承认部分人具备手动能力,但他不属于此类。
对于“自动化还是手动更好”,他的态度是视目标而定:锦标赛要排名需用更激进 EA,实盘资金保全则需更平稳 EA,环境决定选择。这提醒中文用户,同一套代码不应无脑既跑竞赛又跑本金,风险画像要分离。
简单 EA 是否足够赚钱与作者野望
Tim 的 EA 已在实盘为他赚钱,但他清醒表示不会投入超过亏损承受力的资金,也明白外汇仍有风险。偶尔测算月化 20% 的“暴富梦”只是日梦,真实规划是当作附加收入而非唯一来源。他笑谈最疯狂梦想是住城堡、建科技藏窖,并开一家不被利润单一驱动的生物与机电研究公司。
这折射出健康交易观:用简单策略挣认知内的钱,不押命。对中文社区尤其中小资金者,先求生存再求扩张,比追逐圣杯更实际。
从访谈看中文交易者的可落地动作
第一,策略上可用单指标突破+宽止损验证趋势跟随,但必须补震荡过滤器(如 ATR 阈值或波动率截断)。第二,开发上若逻辑线性,MQL4 快速验证;想用 MQL5 面向对象可参考官方文档 https://www.mql5.com/zh/articles/546 延伸资料。第三,实盘与展示账户隔离。第四,优化以 profit factor 与回撤为锚,而非仅看净利润。第五,接受运气成分,ATC 选手亦称无完美程序。
Tim 的兄弟用指标型、他用数学分析型,同源不同径,说明家庭协作中分工试错能提速。中文用户可组建小团队,一人挖逻辑一人写代码,用版本号管理 EA(如 v13 才过测),降低单点失误。
- 用 ZigZag+M15 做突破原型,先跑历史回测
- 加入 flat 检测,避免震荡期频繁止损
- MQL5 类结构管理多单状态,提升可维护性
- 竞赛与实盘参数分文件配置,互不干扰