ATC冠军访谈:零基础玩转MQL5向导
从网络工程师到算法交易者的实战心法
一、受访者背景与交易起点
Dmitry Terentew(论坛ID:SAFF)在2012年自动交易锦标赛(ATC 2012)中,其EA从开赛起就稳居排行榜第一页。他当时30岁,生活在俄罗斯一座小城,职业是某互联网服务商的高级网络工程师,并非科班程序员出身。他少年时接触苏联"Korvet"电脑上的BASIC语言,后来自学PHP5与C语言,靠逻辑思维和手册解决问题。他的交易兴趣始于2002年看电视上的交易所行情,受当时慢速网络限制,直到ISDN出现和发现MetaTrader 4及MQL5社区大量文章后才系统钻研。他参加过多次锦标赛:2010年获159名(300人),2011年随机策略获302名(400人),2012年使用均线EA取得领先。这证明没有金融学历、非全职程序员,也能通过平台和工具参与高阶量化竞赛。
他明确反对"必须先手动盯盘感受市场才能做算法交易"的流行观点。他认为自动系统应独立决策,计算机无法"感觉市场",只能跟踪价格或指标参数变化;最重要的算法原则是最小化损失或用止损硬限制,绝不让账户在三五笔交易内爆仓。虽然锦标赛不讲究2%仓位规则,但日常交易他推崇Elder的"单笔风险不超存款2%"为核心原则。这种去神秘化、重工程控制的思路,对中文散户非常有参考价值。
二、手动交易还是直接自动化
很多中文交易者纠结:我要不要先手动机几年再写EA?Dmitry的答案是直接从自动化开始,因为他没时间盯盘。他指出,所谓"盘感"本质是人对参数变化的模糊跟踪,而程序可以做得更严格。他建议用神经网络让系统自我训练出交易规则,而非人灌输固定想法。不过他也坦诚,神经网络难掌握,他2012年的实盘机器人只是用均线策略,由MQL5向导生成后再手工改进。对于普通用户,这条路径更现实:先用向导产出基础EA,再逐步迭代。
三、MQL5向导:五分钟产出可跑EA
Dmitry的锦标赛EA核心想法来自MQL5向导(MQL5 Wizard)。该工具内置几十个模块(Code Base中可下载),用户勾选信号、风控、追踪止损等模块,几分钟就能生成完整EA框架。他花约5分钟生成,再手动微调以满足锦标赛规则,并修改了MoneyFixedRisk.mqh库,把固定风险手数等参数写进代码。他说"每个懂点MQL5的用户都能开发能跑的机器人",就像"每个厨子都能管国家"一样平易近人。
向导生成的代码可读性高,有基础编程知识就能改。Dmitry自认网络工程师而非程序员,仍花几小时加测试就搞定。对中文用户来说,MQL5向导是零门槛入口:你不需要从OnTick写起,只需理解模块组合。下方片段展示类似向导生成的固定风险资金管理头文件思路(基于原文提及的MoneyFixedRisk.mqh改造逻辑):
//+------------------------------------------------------------------+
//| MoneyFixedRisk.mqh 简化示例(依据访谈改造思路) |
//+------------------------------------------------------------------+
#include <Trade/Trade.mqh>
CTrade trade;
input double RiskPercent = 2.0; // 存款风险百分比
input double LotStep = 0.01;
double CalculateLot(void){
double balance = AccountInfoDouble(ACCOUNT_BALANCE);
double riskMoney = balance * RiskPercent / 100.0;
double tickValue = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE);
double stopLoss = 500; // 示例止损点数,需按实际
if(tickValue<=0) return(LotStep);
double lot = riskMoney / (stopLoss * tickValue);
lot = NormalizeDouble(lot / LotStep, 0) * LotStep;
return(lot);
}
四、策略构思:从随机入场到均线优化
Dmitry强调,不盯盘也能有策略想法:程序可自行寻找规则,神经网络就是让系统训练出规则。他早年写过一个随机入场、限制2%亏损的机器人,在模拟盘活了两周,说明即便是随机逻辑,只要风控死锁,也能短期生存。2012年他使用的EA基于移动均线,用2012年1月1日至8月1日数据优化,在M10周期表现最好。他读过Elder的书,但没照搬,只抽取核心原则。这种"自造想法→多周期测试→至少不亏"的循环,是业余开发者的可行方法论。
- 读经典但不复制,只取风控与仓位原则
- 用历史段优化参数,如均线周期与止损
- 在多个时间帧测试,确保不同周期不下亏
- 先模拟后实盘,随机策略也可验证风控有效性
五、仓位与品种选择的反直觉做法
他的锦标赛EA始终交易4.9手EURUSD,原因很朴素:49是7的倍数,7是幸运数,且不想超过5手以免过早掉出领先。他认为品种不重要,任何货币对都是"不断变化的值",任务是用算法预测。EURUSD流行只因教材常用。这个细节提醒中文用户:竞赛排名逻辑与实盘生存逻辑不同,幸运数字不能用于资金管理,但"控制最大手数"的意识值得保留。日常请务必用百分比风控,而非固定幸运手数。
六、为何不轻易做多货币EA
被问到多货币机器人时,他说还没做,但计划次年用神经网络做多货币EA,因为不同货币对需不同预测算法,神经网络适合。这解释了为何锦标赛简单EA更多:多货币需处理相关性、各自参数,工程量大。对中文交易者,起步用单品种均线EA更稳,有余力再扩展。他也提到MQL5向导模块足够丰富,社区Code Base有数十个生成模块,降低了扩展门槛。
七、给中文算法交易新人的行动清单
Dmitry的结语是:别怕实验,读、学、试;只有不做事的人才不犯错。结合访谈,我们整理出可落地步骤:第一,装MT5,读MQL5参考手册;第二,打开向导,选均线信号+固定风险模块,生成EA;第三,在策略测试器用历史数据优化,换时间帧验证;第四,手工改MoneyFixedRisk参数适配你的本金;第五,模拟盘跑两周以上再考虑小实盘。整个过程不需科班学历,只需逻辑与耐心。
- 安装MT5终端与MQL5向导
- 用向导生成基础EA,理解模块结构
- 策略测试器多周期优化参数
- 修改风控头文件,落实2%风险
- 模拟验证后再小资金实盘
八、与手动交易及其他方案的对比
对比手动交易:手动依赖人盯盘,易情绪化;Dmitry的自动化路径用规则锁死风险,适合上班族。对比纯神经网络方案:2012年他坦言难掌握,向导+均线更平易。对比直接手搓EA:向导省去框架代码,聚焦策略逻辑。中文社区常神话量化,但ATC案例显示,业余者用平台内置工具也能进前列。关键不在多高深,而在用对平台、控好损失、持续迭代。