ATC冠军访谈:EA开发与风控实战
从军方系统工程师视角拆解盈利EA的构建逻辑
受访者背景与交易启蒙
Boris Odintsov并非金融科班出身,而是长期在军工企业从事控制与导航系统开发,2009年完成系统分析与数据处理方向的副博士课程。他的主职工作本质与金融市场类似,都涉及建模与过程管理。2006年经朋友介绍接触股票交易,此前对金融市场毫无概念,随后通过阅读经济与技术分析书籍在俄罗斯股市实盘交易,较晚才了解外汇市场。2008年他首次接触MetaTrader 4平台,被其灵活性与扩展能力吸引,一个月后写出第一个基于蜡烛图稀有形态的指标,继而写出首个EA。早期EA原理简陋且无稳定表现,仅用于自动化交易竞赛,最好成绩进入前三,因无法稳定盈利从未上真实账户。
为何参加ATC 2010锦标赛
Boris此前未参加过MetaQuotes举办的自动交易锦标赛。2008年赛事已开局才得知,2009年赛事取消,2010年参赛首要动机是检验自己的程序,其次才是争夺头奖。他未细究2008年结果,而是直接设定了夺冠所需的余额目标,并依此反向构建风险管理体系。这种以终为始的目标导向,是业余开发者常忽略的备赛思路。
激进策略与固定比例风控原理
其EA在赛初表现激进,核心采用再融资原则与固定百分比风险参数:每笔交易按账户余额的固定比例计算风险,仓位随余额增长而放大;当市场转坏,EA主动缩减仓位以压低最大回撤。到达最大仓位后,百分比风险不增反降。系统仅有一个风险比输入参数,为长期运行设计。该逻辑与马丁格尔完全对立,Boris引用俄交易所老话表达对摊平策略的极度排斥,认为 averaging 比想象中更致命。
不适用的市场环境与设计取舍
Boris指出,震荡且高波动的行情对其EA最不利。他未加入针对此类行情的过滤器,理由是任何额外过滤都会在有利周期降低系统效率。这是典型的效率优先取舍:宁可承受特定市况劣势,也不牺牲主盈利期的锐度。其EA已在真实账户运行约一年,只是激进度远低于竞赛设置,实盘结果令他满意。
策略构建从纸面到上线的全流程
EA策略基于短期市场运动追踪,配合统计分析与建模优化。完整流程为:纸面交易概念→算法设计→代码实现→建模寻求正数学期望(大量想法在此淘汰)→稳定性检验(参数微变不引起系统全局变化)→真实迷你账户确认计算正确。Boris强调,从概念到发布耗时极长,多数代码取自MT5标准库,大幅简化编程;EA由MT4版本仅用数日改造成MQL5。
入场机制与M5周期选择逻辑
EA使用挂限价单动态入场,限价随现价调整, placement 依据MA短期趋势分析。选择M5周期有三因:一、M5含M1底层,建模质量较满意;二、高质量统计需超300笔交易,高级周期难获此样本量;三、各周期风险本质相似,仅波动率与参数设定不同。他认为周期无根本风险差异,只是每段区间有自身波动特征。
多空平衡与优化准则
EA多空胜率约各63%,源于Boris坚持的 universality 原则:系统应能适应牛熊任一阶段。优化以收益对相对回撤的比值作准则,对所有输入参数执行优化。EA专为EURUSD这一高流动性货币对开发,其他品种需特定参数与算法,建模测试均难复现EURUSD表现。
测试一致性问题与跨平台参数
LR相关系数近1属当前极佳市况的偶然,长测中EA亦有修正与横向振动阶段但总向上。实盘与测试表现差异不大,但Boris无法解释MT4与MT5建模结果偏差,故两平台采用不同参数。这提醒开发者:回测引擎差异会实质影响参数映射,不可跨平台套用同一组set。
策略发现比编程更难
拥有超10年Visual C++与面向对象经验的Boris认为,找可行策略远难于代码实现,大量策略被弃。转向MQL5对他轻松,他特别肯定MT5三项特性:订单与仓位概念分离(初不习惯但更清晰)、面向对象使代码易读、新建模功能。他指出神经网路EA流行但许多开发者不明原理,主张EA应简单清晰,圣杯多浮于表面;多货币EA若逐对调校亦可行。
运气、心理与赛事观察
Boris视运气仅作用于短周期,长期靠心理、纪律与策略;否认交易迷信。赛果超预期,归功形势组合。他欣赏roadrunna11极小风险比与ShurikAn低侵略稳定,批评多数选手风险过高、止损约200点易出局。该视角对评估锦标赛或信号源风险有直接参考。