ATC冠军访谈:EA设计与风控实战
从军方系统工程师视角拆解稳定盈利EA的构建逻辑
受访者背景与交易启蒙
Boris Odintsov并非金融科班出身,而是长期在一家军工企业从事控制与导航系统开发,2009年完成系统分析与数据处理方向的研究生课程,并计划在同年底答辩副博士论文。他的主业本质与金融市场一样,都涉及建模与过程管理。2006年经朋友介绍接触股票交易,此前他对金融市场毫无概念,随后通过阅读经济与技术分析书籍,在俄罗斯股票市场实盘交易,较晚才了解外汇市场。2008年他首次接触MetaTrader 4平台,被其灵活性与扩展能力吸引,一个月后即写出第一个基于蜡烛图稀有形态的指标,以及同原理的EA,但当时系统并不稳定,多次参加自动交易竞赛最好仅进前三,且因无法稳定盈利从未用于实盘。
为何参加ATC 2010及风险目标设定
Boris此前未参加过MetaQuotes举办的自动交易锦标赛:2008年赛事已开始才得知,2009年赛事取消,2010年首次参赛。参赛动机一是检验自己的程序,二是争夺头奖。他并未细究2008年结果,而是反向推导夺冠所需资金曲线水平,并依此构建风险管理体系。这种以终为始的目标拆解,区别于多数参赛者盲目激进的做法。
在锦标赛初期,他的EA表现得相当激进。原因在于系统采用再融资原则与固定百分比风险参数:每笔交易风险按仓位规模调整,余额增长则仓位同步放大;若市场转劣,EA自动削减仓位以压缩最大回撤。当仓位达上限后,百分比风险不再上升反而下降。整个EA仅有一个风险比率外部参数,专为长期运行设计。
- 再融资:盈利后扩大头寸,亏损后收缩头寸
- 固定百分比风险:单笔风险始终挂钩当前余额
- 自动减仓:市场不利时优先保本金而非硬扛
策略核心:短期波动追踪与统计建模
Boris的EA策略建立在追踪市场短期运动之上,辅以统计市析、建模与优化。完整流程始于纸面交易概念,再转为算法、代码,随后通过大量建模使系统具备正数学期望——此阶段多数想法被废弃。接着检验参数微扰下的稳定性(即输入小变系统不崩),最后用真实迷你账户确认计算正确。从概念到发布耗时漫长,且大部分代码取自MT5标准库,极大简化开发;EA由MT4版本改造至MT5仅用数天。
入场方式上,EA使用动态挂单(limit order),限价随现价调整, placement逻辑基于MA短期趋势分析。他选择M5周期,理由有三:其一,M5含M1底层数据,建模质量可接受;其二,高质量统计需超300笔成交,高周期难攒够;其三,各周期风险本质无差,仅波动率与参数不同。这种用低周期换样本量的思路,对中文交易者做商品或 crypto 高频策略亦有参考价值。
不适用的市场环境与马丁格尔态度
Boris明确指出,震荡且高波动的市场对其EA不利。他未加过滤保护,因为附加过滤器会在有利时段拖累系统效率——这是典型的取舍:宁可接受特定市况回撤,也不牺牲主时段收益。关于马丁格尔,他引用俄交易所老话表达强烈质疑,认为摊平(averaging)毁灭性极强,始终持 skeptic 态度,其EA也绝不采用此类资金管理。
在 universality 上,EA多空胜率约63%平衡,源于设计时要求能适应牛熊任一阶段。优化准则是 profit / relative drawdown 比,对所有输入参数执行优化。EA专攻EUR/USD,因流动性最佳;其他货币对需另写算法与参数,实测均不及欧美。
MT4与MT5建模差异及MQL5迁移体验
Boris发现MT4与MT5建模结果存在偏差,故两平台使用不同参数。他认为找策略远比写代码难:大量策略被弃,而落地代码毫无障碍。作为十年Visual C++ OOP开发者,他迁移至MQL5很轻松,并总结新平台三大特征:一是订单与持仓分离(初时不习惯但更严谨);二是面向对象使代码清晰;三是测试建模功能增强。标准库复用进一步降低门槛。
// 示例:基于MA动态限价单简化逻辑(非原文完整EA,仅示意)
#include <Trade/Trade.mqh>
CTrade trade;
input double RiskPercent = 2.0;
void OnTick()
{
double ma = iMA(_Symbol,_Period,14,0,MODE_SMA,PRICE_CLOSE);
double price = SymbolInfoDouble(_Symbol,SYMBOL_ASK);
if(price > ma)
{
double lot = AccountInfoDouble(ACCOUNT_BALANCE) * RiskPercent/100 / 10000;
trade.BuyLimit(lot, price - 10*_Point, _Symbol);
}
}
实盘验证与运气在交易中的角色
竞赛EA已在实盘运行约一年,只是激进度调低,结果令他满意。他强调运气仅在短周期重要,长期靠心理、纪律与策略。他不信交易迷信,认为多数圣杯就在表面,不必过度挖掘。对于ATC 2010登顶,他归因于有利局势组合,并欣赏同届低风险的roadrunna11与稳健的ShurikAn,批评多数参赛者止损宽至200点或因高险爆仓。
这篇访谈虽写于2010年,但揭示的EA工程化路径——概念、算法、代码、建模、稳定性、实盘确认——至今仍是中文社区稀缺的方法论。尤其对于习惯跟风买马丁EA的用户,Boris的再融资与固定比例风险框架提供了更可持续的替代方案。
对中文交易者的具体启示
第一,不要用EA参加竞赛的激进度做实盘,Boris实盘 aggressiveness 远低于竞赛。第二,专一品种深耕优于多币泛用,EUR/USD案例说明流动性与数据量是优化前提。第三,MQL5标准库与OOP能数天改写MT4策略,迁移成本被高估。第四,拒绝摊平,用仓位自适应替代。第五,回测 discrepancy 跨平台属正常,需分别标定参数而非强求一致。第六,优化目标应兼顾收益与相对回撤,而非单纯追逐利润。
- 竞赛参数≠实盘参数,必须降险
- 单品种深挖数据量决定统计可信度
- OOP+标准库让MT4转MT5极轻量
- 以 profit/dd 为优化目标而非绝对收益