ATC冠军访谈:简策略EA生存之道
🤖

ATC冠军访谈:简策略EA生存之道

从物理教师到工厂保安,他用MQL5自研趋势EA挤进前十

交易策略 难度 · 入门 2026-01-07 8 分钟阅读
#MQL5#ATC2011#自动交易#趋势EA

一、受访者背景:半路出家的交易者

Ilnur Khasanov(论坛ID aharata)来自俄罗斯巴什科尔托斯坦共和国的斯特尔利塔马克市。他2005年毕业于斯特尔利塔马克国立师范院校物理数学系,曾服役并从事过保安、销售、采购等工作,甚至尝试创业但因2009年金融危机失败。在2010年锦标赛前一个月才接触外汇,最初手动交易模拟账户获利,实盘却亏损。他自述亏损源于 broker 问题、心理与策略多重因素,曾用 Woodie 策略写过一个基于均线且加载 WoodiesCCI 指标极慢的机器人,后来废弃。到2011年锦标赛时,他已只做自动交易并租用了服务器。

值得注意的是,Ilnur 从1998年就开始编程,学过 Basic、Pascal、Delphi、C、PHP,但接触交易策略编程仅一年。他受IT圈朋友赚钱效应启发转向外汇,甚至建过网站但最终荒废,因为‘外汇利润更大’。他的经历说明,具备编程底子的人在量化交易入门上具有明显加速度,但不代表一定能盈利,实盘心理与经纪商环境同样关键。

✦ 给中文交易者的提示
如果你本身有开发背景,直接学 MQL5 比从零学交易再学编程更高效;但务必先用模拟盘验证策略,实盘亏损常来自非代码因素。

二、为何直接选择 MQL5 而非 MQL4

Ilnur 表示自己一开始就写 MQL5,且非常喜欢。他认为 MQL5 社区文档、指南、文章齐全且易懂,质量在其他地方难找,尤其推崇其面向对象编程(OOP)特性,笑称对 OOP 有‘宗教般感情’。相比 MQL4 的过程式语法,MQL5 的 OOP 让熟悉现代语言的开发者更容易组织复杂逻辑。

对于中文用户,MQL5 中文站(mql5.com/zh)已提供大量文档与参考手册。直接切入 MQL5 意味着可使用标准库、类封装与事件驱动模型,利于编写可维护的 EA。不过 Ilnur 也提到,自己提交锦标赛的版本几乎没用标准库,因为常用自定义影子止损、跟踪止损与通道边界排除区,且‘很难读别人代码’,标准库仅用于临时检查。

三、参赛 EA 的设计思路与自优化

Ilnur 的 EA 在5分钟周期上运行,但交易不频繁。它跟随一个指标产生交易活动,用另一个指标过滤入场信号;低活跃度源于较大的止损层级。EA 内嵌了部分参数优化,但重启后优化失效——也就是说,它并非真正在线学习,只是启动阶段自适应。他透露,这并非原计划提交的机器人:原版在赛前表现极差,临阵换枪才紧急替换。

该 EA 基于移动平均线,属趋势型;面对赛事中四周不同的市场波动,依然留在前十。他认为最终结果是盈利导向,稳定与抗风险保护必不可少。他个人对交易的观点转变过两次:一次是实盘亏损后,一次是开始盈利后(月收益约10%–20%)。在他看来,交易是好生意,无需季度报表、员工与官僚文书。

⚠ 常见坑:重启丢失优化
若 EA 将优化结果只存在内存变量,MT5 终端或 VPS 重启后参数回归默认,可能导致实盘表现漂移。重要状态应序列化到文件或全局变量。

四、与其他方案的对比:多货币与简单生成器

当被问及是否后悔没提交多货币 EA(参考选手 ias 的飙升),他说不后悔,因为不熟悉多货币机器人,但下届准备提交并已有想法。他欣赏 AM2 的 EA‘简单却是好点子生成器’,也关注 Integer 的图表、notused 的运作,甚至想改后用 anuta 的 EA。对比可见:复杂多货币系统可能短期爆发,但简单趋势单品种系统在未知行情中反而‘存活’概率高。

从 ATC 2011 群体看,有人用永不平亏仓、加仓的极高风险多货币策略(如 yyy999),也有人像 Ilnur 用大止损慢节奏趋势 EA。两种路线反映量化理念分歧:前者博期望暴利,后者求稳。对普通中文交易者,先理解单品种趋势逻辑比盲目堆多货币更安全。

五、策略与资金管理谁更重要

Ilnur 明确回答:策略本身最重要,资金管理是策略的一部分,二者都重要。他举例 notused 的 EA 能清晰体现两者权重。他认为只需一个高质量策略而非多个,若真有‘超级系统’,会开 PAMM、建银行直至自己当经纪商。这种‘质量优于数量’的观点,对沉迷堆指标的新手是一记清醒剂。

在 MQL5 开发中,资金管理常通过 CTrade 类与自定义 lot 计算实现。下面片段演示以固定比例风险计算手数(非 Ilnur 原码,仅为说明通用做法):

double CalculateLot(double riskPercent, double stopPoints)
{
   double accountBalance = AccountInfoDouble(ACCOUNT_BALANCE);
   double riskMoney = accountBalance * riskPercent / 100.0;
   double tickValue = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE);
   double lot = riskMoney / (stopPoints * tickValue);
   return NormalizeDouble(lot, 2);
}

六、给非程序员交易者的学习建议

被问及不会编程怎么办,Ilnur 调侃:成功交易者雇程序员,不成功雇编程老师;正经说,任何语言都从‘Hello World’开始,其余是‘文书工作’。MQL5 参考手册即最佳起点。他本人从显示 Hello World 消息入门,说明门槛没想象高。

中文用户可利用 MQL5 向导(EA Wizard)或社区免费代码改写。关键是先想清逻辑:入场条件、过滤、止损、退出。代码只是把规则翻译给终端。与其恐惧编程,不如把交易规则写成语序清晰的步骤,再找片段拼接。

✦ 起步路径
1) 模拟盘手动记录规则;2) 读 MQL5 参考中 OnTick/CTrade 示例;3) 改官方均线 EA 加打印;4) 逐步接入自己的过滤指标。

七、社区交流与心理特质

Ilnur 在 mql5.com 发帖不多,但常读论坛与文章,称其为‘完美网站’。他吸收想法多为无意间,如前届 Boris Odintsov 的帖子。他认为竞赛让人渴望学习,也‘嫉妒权威’从而自驱。关于交易者是否该多疑,他倾向谨慎、恰当、觉醒,而非怀疑一切;认为人需被‘踢醒’去行动,经验是最宝贵财富。

这对中文交易者的启示是:别只潜水,精选少数高质量作者跟踪;用锦标赛公开 EA 做反向工程教材;保持行动力,先提交个程序才有赢的可能。Ilnur 正是赛前一个月才入行,却因‘至少写并提交了程序’获得前十席位。

八、结语与可复用要点

Ilnur 的 ATC 2011 之旅证明:一年外汇经验、简单均线趋势 EA、内嵌有限自优化、大止损与双指标过滤,足以在公开赛存活前十。其成功不在复杂度,而在规则清晰、执行纪律与 MQL5 高效开发。中文量化新手应优先掌握单品种趋势框架、OOP 基础与风险管理嵌入,而非追逐黑箱多货币神话。

原文由 MetaQuotes 译自俄文,链接 https://www.mql5.com/zh/articles/548 。所有材料版权归 MetaQuotes Ltd.,本文仅作教学蒸馏。自动交易锦标赛(ATC)后续停办,但公开 EA 思路仍值研习。

常见问题

若有 C++/Delphi 基础很容易;没基础也从‘Hello World’起步,官方参考手册齐全。先理解类与对象,再用标准库 CTrade 写简单 EA。
不要把优化结果只存内存变量。用 FileSave/FileLoad 写本地文件,或 GlobalVariableSet 存终端全局变量,启动 OnInit 时读取恢复。
可以。成功者雇程序员,或用 MQL5 向导/社区免费 EA 改参数。先手动理清入场、过滤、止损规则,再找代码模板拼接。
大止损层级与双指标过滤降低噪音交易,在波动市靠少而准的顺势单存活。频率低不等于无效,重点是风险回报比与稳定性。