ATC新手如何用概率EA逆袭
从零学MQL5半年跻身自动化交易大赛前列的实战复盘
一、背景:半年新手如何站上冠军赛舞台
Vitaly Antonov(论坛ID:beast)在2011年自动化交易冠军赛(ATC 2011)中表现抢眼。值得注意的是,他在当年7月才第一次听说MetaTrader 5终端与ATC赛事,之前仅对外汇略有兴趣。也就是说,从接触平台到提交EA参赛,他只用了不到半年。他本人是应用数学与物理专业的学生,具备C/C++基础,这成为快速上手MQL5的关键。他认为外汇类似博弈,新手往往带有某种“运气”,而他的策略并无严格数学证明,盈利在一定程度上来自随机性中的概率优势。
这给中文交易者的启示是:MT5与MQL5的门槛并非高不可攀,若有编程底子并善用官方文档与社区,短期也能产出可运行系统。但与此同时,不能把运气当能力,需明确策略的边界与风险。
二、策略核心:MACD信号叠加概率模型
Vitaly的EA以MACD指标产生买卖信号,但真正决定仓位的是“价格实际涨跌的概率”。他在赛前手动计算:当MACD给出某类信号时,历史中价格随后真正下跌或上涨的概率近似值,并假设相似信号下概率恒定。EA根据此概率与当前余额计算手数并下单。该模型在价格振荡较大时表现更好,而在GBPUSD相对平静阶段,净值曲线接近水平。
他随机选择GBPUSD作为标的是因为时间紧迫,后续尝试其他货币对均失败——每个品种特性不同,硬编码的概率参数并不通用。这也说明概率型策略对品种具有强依赖性,跨品种需重新建模。
- MACD用于触发信号,不承担方向判断的全部权重
- 概率表为离线手工统计,非在线学习
- 手数随余额与胜率概率动态计算
- 未使用追踪止损,因参赛前不知该功能
三、MQL5学习与开发实操路径
Vitaly强调,MQL5借鉴了C/C++语法,有相关基础者能很快入门。他未使用MQL5 Wizard(向导)生成框架,而是从零手写代码,并删除了向导默认生成的日志输出,因为算法简单、自己能直观理解执行逻辑。他认为两大资源最有价值:一是官方文档(MQL5 Reference),二是mql5.com论坛的讨论帖。
对于中文用户,mql5.com提供俄文、英文与中文界面,但核心技术文档以英文为主。建议直接阅读英文Reference并结合社区实例。下面片段演示了类似其思路的MQL5信号判断与手数计算的简化结构(非原文完整代码,仅示意):
#include <Indicators\Indicators.mqh>
CiMACD macd;
//+------------------------------------------------------------------+
void OnTick()
{
if(!macd.Initialized()) return;
double sig = macd.Main(0) - macd.Signal(0);
double prob_up = 0.55; // 手工统计的近似概率
double lot = AccountInfoDouble(ACCOUNT_BALANCE) * prob_up * 0.0001;
if(sig > 0 && OrdersTotal() == 0)
trade.Buy(SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN)>=lot?lot:SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN), _Symbol);
}
四、回测、优化与测试器使用体验
他的EA仅两个输入参数,优化目标设为最大利润。测试器中盈利交易占比不足50%,与实盘一致。Vitaly指出MT5测试器功能足够,但可视化速度调节不平滑:滑块拖到最右时,从快速跳到极快速的模式切换突兀。他认为可视化仅在早期追踪错误时有用,后期靠优化与统计即可。
这反映了一个现实:策略研究早期应多用可视化逐根K线观察EA行为,确认无逻辑bug;进入参数寻优阶段则可脱离图表,用批量优化与报告统计概率。对于现在的中文用户,MT5测试器已支持云优化与代理网络,速度远胜2011年,但基本方法论不变。
- 优化标准要明确,最大利润易过拟合,可结合回撤约束
- 盈利比低不代表策略无效,要看期望收益
- 可视化调试不可省,尤其手数与开仓条件分支
五、风险认知:为何不愿实盘运行
访谈中Vitaly明确表态:即便EA在赛中表现好,他也不会直接上真实账户。原因是算法缺乏严格论证,长期可能亏光保证金。他的盈利交易次数低于50%,靠的是概率与赔率组合,一旦概率假设失效便有崩盘风险。他还提到未用追踪止损,若早知会加上,说明原型系统并不完备。
这对新手是重要提醒:参赛排名策略不等于实盘策略。评价系统应看最大回撤与收益稳定性,而非单纯净值曲线漂亮。Vitaly自己也认为,成功交易者最需关注最大回撤与盈利能力。
六、与其他参赛者及平台的对比观察
Vitaly在赛中特别注意到lf8749(中国选手)的EA稳定性,以及Xupypr的EA在深度回撤后重回高位,后者因开源值得研究。他认为当时领先的lf8749最有可能夺冠。平台层面,他整体满意MT5测试器,仅建议改进可视化速度。相对于使用Wizard生成的EA,他的纯手写方式更轻量,但也牺牲了日志可观测性。
从今天视角看,MT5生态已极大丰富:信号跟单、市场应用商店、云测试等,都是当年所无。但核心逻辑——用代码表达概率与规则、用测试器验证——始终未变。
七、给中文参赛者与学习者的建议
Vitaly建议想参加ATC或类似赛事者:多和 experienced 专业人士交流、大量实践、保持运气与谦逊。他认为成为成功交易者至少要系统学习一年,而他因学业无法全职交易。对于命名“beast”,他调侃市场已有牛熊,自己创造了新动物。
总结来看,他的路径可复制性在于:已有编程基础+聚焦单一品种+利用概率简化决策+快速迭代。不可复制性在于随机运气与特定年份市场波动。中文交易者应以他为镜:重视工程能力,轻视暴利幻想,用MT5/MQL5扎实构建自己的交易工具。
- 先懂C/C++再学MQL5会极快
- 选一个品种做深,而非广撒网
- 文档与论坛是最强老师
- 明确策略假设,不神话历史曲线