ATC冠军访谈:波浪理论EA实战揭秘
从折叠规则到MQL5开发的全流程经验
访谈背景与选手来历
2011年自动交易锦标赛(ATC 2011)期间,MQL5社区采访了参赛选手Andrey Bobryashov(论坛ID:tmt0086)。他是一名土木工程大学的学生,接触外汇时间不长,但通过一位有七年实盘经验的交易者引导,快速进入了量化交易领域。这位导师曾与知名交易员Alexander Gerchik共事数年,主要专注外汇市场。Andrey的EA在TOP-10中显得与众不同,因为它是当时少见的基于波浪理论变体开发的机器人,而非单纯依赖神经网络或复杂数学模型。
在ATC历史中,前几届比赛里基于标准指标的EA和带周级自动优化的分析系统都曾取得过好成绩,但波浪类策略因主观性强、难以程序化,一直很少出现在前列。Andrey认为这并非不可攻克,他用简化方案实现了稳定交易,这给中文交易者一个启示:经典理论若做适当工程化裁剪,同样可以跑在MT5上。
折叠规则与ABC形态的核心逻辑
Andrey的EA描述中写明策略基于标准ABC形态的水平突破,但下单位置并非极值,而是小于当前时间周期的“折叠规则(Folding Rule)”突破位。折叠规则由论坛用户Teon提出并简化,本质上可视为“傻瓜版波浪分析”:当规则被突破,即代表一个波浪周期结束。他认为几乎所有策略都直接或间接建立在波浪周期上,这是市场牛顿第三定律般的客观存在。
具体来看,EA在M5周期开仓,但分析涵盖M5到H1所有周期。它并不试图用经典方式去数浪——那像画画一样充满替代解释,程序化近乎疯狂;而是抓取折叠规则作为波浪终点信号,回测通过后逐步加入资金管理和ABC过滤,显著提升绩效。对于中文交易者,这种“放弃完美数浪、只取端点信号”的思路,大幅降低了开发难度。
- 折叠规则=波浪分析的极简工程化版本
- 突破规则线即视为某波次终结
- ABC形态用于过滤与确认,而非精确数浪
- 多周期(M5-H1)联合判断,M5执行下单
MQL5开发经验与语言对比
Andrey此前有Java、Delphi、C++经验,他认为MQL5非常易学,相比MQL4大幅增强且对普通用户更友好。他主要使用标准库(Standard Libraries),指出MQL5向导可基于移动平均快速生成简单EA,复杂过程才手写全部逻辑。这一点对从MT4迁移的用户很重要:MQL5不是更难,而是范式不同,类与库机制能省去大量底层代码。
他仅在锦标赛前一个月才系统学习MQL5并打磨机器人,其中一周用来适配MetaQuotes-Demo服务器的交易条件。这说明MQL5的上手曲线对有其他编程背景的人并不陡,但也提醒:实盘前必须针对经纪商/赛事服务器的点差、限制做参数校正。
// 使用标准库快速创建基于MA的EA骨架示例(MQL5向导风格)
#include <Trade/Trade.mqh>
CTrade trade;
void OnTick()
{
double ma = iMA(_Symbol,_Period,14,0,MODE_EMA,PRICE_CLOSE);
double price = SymbolInfoDouble(_Symbol,SYMBOL_BID);
if(price > ma) trade.Buy(0.1,_Symbol);
else trade.Sell(0.1,_Symbol);
}
资金管理、手数与Trailing Stop
访谈中一个关键细节:EA始终以最大手数(设置误填为5手)交易,看似无资金管理,实则资金管理体现在每次入场信号的容差与止损后的扁平模式切换。当止损触发,EA收窄信号容差并进入盘整(flat)模式,避免连续亏损。Andrey承认若仔细读规则,可将总手数摊到多笔共15手,说明参数理解偏差也会影响实盘表现。
Trailing Stop按设置点数移动,条件随市场手动设定一个参数——预期盈利大小。因为年内波动率变化,提交前已考虑此点。这意味着EA虽自动运行,但需人工根据季节波动预设期望值。对中文用户而言,这种“半自动调参”比纯黑箱更可控。
- 止损激活后收窄容差并转flat模式
- Trailing Stop仅设预期盈利一个外部参数
- 手数风险通过信号容差间接控制
- 赛季前需按服务器条件重校参数
品种适应性与多货币对展望
折叠规则适用于任何货币对、金属、股票、期货与期权,波动率越高假信号越少。但开发时EURUSD在M5测试最佳,故未做多币种。Andrey计划下届做多货币EA。这反映出策略孵化的普遍路径:先单品种验证,再扩展。中文交易者切忌一开始就写“全市场万能EA”,应学此步进式研发。
自动验证中,机器人交出盈利7.2万美元、最大回撤20.54%、100空单与113多单的成绩。多单盈利比低于空单,他认为外汇自发市场属性使然,且欧元区的假设本应让空单占90%,但那已非算法交易范畴。该数据说明即便波浪简化模型,多空分布仍受宏观驱动。
优秀EA的数学本质与优化观
被问及“怎样让EA不止过拟合还能合理评估市场”时,Andrey答:需要数学正确的算法与正期望收益(expected value)。默认EA不会亏,但无法保证盈利;若期望值为正,结果围绕零轴,此时才可基于历史优化。这击中很多中文用户的痛点:拿历史美化当圣杯,忽视期望值为负必然崩盘。
他对自己锦标赛表现总体满意,仅想微调flat相关设置。他认为参赛像体育比赛,最激动时刻在后段。对于预测冠军,他拒绝断言,只说最强者胜。这种工程化谦逊,恰是量化交易者应具心态。
给中文MQL5学习者的行动清单
综合访谈,我们可提炼出一套适合国内用户的落地产路径:第一,用标准库与向导生成骨架,快速验证想法;第二,将经典理论(如波浪)降维成可突破的量化规则;第三,多周期分析、小周期执行;第四,资金管理藏在信号容差与模式切换中;第五,先单品种后多品种;第六,以正期望为优化前提,不做无根历史拟合。
- 从MQL5标准库起步,降低开发门槛
- 把主观理论转为客观突破条件
- M5-H1多周期共振,M5下单
- 用flat模式与容差实现隐性风控
- 期望值为正才谈历史优化
- 参考ATC选手公开思路,少走弯路