ATC冠军访谈:新手EA生存之道
从物理教师到工厂保安,一年上手MQL5的实战心得
一、受访者背景:半路出家的交易者
Ilnur Khasanov(论坛ID aharata)来自俄罗斯巴什科尔托斯坦的斯特尔利塔马克,2005年毕业于物理数学系,曾服役并从事过保安、销售、采购等工作,2009年创业因金融危机失败。他在2010年锦标赛前一个月才接触外汇,先手动交易 demo 盈利,实盘亏损后转向自动化。2011年锦标赛时,他仅用一年时间便凭借自写EA稳居前十,证明非科班出身也能在量化领域取得成绩。
他的编程经历始于1998年,熟悉 Basic、Pascal、Delphi、C、PHP 等语言,但专攻交易策略仅一年。他认为自己的IT背景能快速验证EA想法,并直言对面向对象编程(OOP)有近乎宗教般的热爱,而MQL5原生支持OOP正是吸引他的核心点。
二、为什么从MQL5直接起步
Ilnur 没有经历过 MQL4 的阶段,一开始就写 MQL5。他表示官方文档、社区和文章组织得非常清晰易懂,质量在其他地方很难找到;尤其是MQL5支持类、继承、封装等OOP特性,让他可以像写现代软件一样组织EA逻辑,而不是堆砌过程式代码。
他认为MQL5的参考手册(CHM/PDF)和论坛已经足够自学,不需要额外找教程。对于习惯C++的人,MQL5的语法过渡平滑;对于老牌MQL4用户,则需要适应严格类型与标准库的变化。
- 官方文档齐全,社区活跃
- 原生OOP,代码可维护性强
- 从零到上架EA的路径短
三、EA设计理念:简单但带自优化
他的锦标赛EA基于移动平均类趋势指标,用另一个指标过滤入场信号,在5分钟周期上运行。由于止损较大,交易频率偏低。EA内部实现了部分参数自优化,但重启后优化结果会丢失——他坦言这并非最初计划提交的版本,而是原方案表现太差后紧急替换的。
他相信优秀策略可以像爱因斯坦方程一样‘伟大而简单’。在开发时,他会持续寻找更优EA,一旦发现更好的就暂时搁置旧的。这种迭代思维比死磕单一模型更健康。
四、风控与资金管理的关系
在被问及‘高盈利策略’与‘高效资金管理’孰重时,Ilnur 指出策略本身是根本,资金管理只是策略的一部分,两者不可偏废。他举例锦标赛中 notused 的EA,正是二者结合得当才稳定。他的EA使用了隐藏止损、自定义 trailing stop 以及通道边界排除区,而非完全依赖标准库。
他认为交易者不必多疑,但需谨慎、清醒。经验是最宝贵的资产,偶尔需要被‘踢一脚’才能行动。这种务实心态让他敢于在亏损后换策略、在竞赛中紧急换EA。
- 策略为核心,仓位管理嵌入其中
- 使用影子止损与自定义跟踪止损
- 避开通道边缘防假突破
五、标准库的使用与代码风格
提交版本的EA删除了所有注释,也未积极使用标准库。原因有二:一是他习惯自己写止损、通道逻辑;二是他难以阅读他人代码,标准库仅用于临时验证。竞赛版刻意保持‘沉默’,不在专家日志输出信息,降低暴露思路的风险。
这提醒我们:标准库能加速开发,但深度定制策略往往需脱离模板。新手可先学标准库 CTrade、CIndicators 等封装,再逐步重写关键模块。
// 示例:Ilnur风格的趋势EA核心片段(简化示意,非原文完整代码)
#property strict
#include <Trade/Trade.mqh>
CTrade trade;
int ma_handle;
int OnInit(){
ma_handle = iMA(_Symbol, PERIOD_M5, 20, 0, MODE_SMA, PRICE_CLOSE);
return(INIT_SUCCEEDED);
}
void OnTick(){
double ma[1];
CopyBuffer(ma_handle, 0, 0, 1, ma);
double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID);
if(bid > ma[0] && PositionsTotal()==0){
trade.Buy(0.1, _Symbol);
}
}
六、对非程序员交易者的建议
Ilnur 玩笑道:成功的交易者可以雇程序员,不成功的可以雇编程教练。实际上他认为学任何语言都从‘Hello World’开始,剩下的就是‘文书工作’(指反复练习)。MQL5社区有大量中文文章与示例代码,中文交易者完全可借助翻译工具跨过语言障碍。
他鼓励人们至少写个程序提交锦标赛,才有赢的机会。被动等待永远不会产生收益,这一态度对犹豫是否学编程的主观交易者尤其重要。
七、对竞赛与社区的观察
他提到多名2011锦标赛选手(如 Integer、notused、AM2、Lizar 等)给他启发,尤其欣赏简单却富有想法的代码。他认为竞赛不仅是比收益,更是吸收无形创意、结识同好的场所。即便不常发帖,只读论坛和文章也能进步。
对于多币种EA,他承认羡慕 ias 的爆发,但自认不熟悉,计划下届再尝试。这种‘承认盲区、分步扩展’的思路,比盲目追求复杂系统更稳健。
- 观察高手代码,提取思路而非复制
- 竞赛是低成本的真实压力测试
- 社区沉默阅读也是一种学习
八、总结:一年新手的启示
Ilnur 的案例说明:在MQL5时代,背景不是壁垒。清晰文档+OOP+社区,让物理教师也能做出前十EA。关键是用工程思维迭代策略、诚实面对回测与实盘缝隙、把风控写进代码而非挂在嘴边。中文交易者可将他的路径本地化:用中文站文章入门,以5分钟趋势为练手起点,逐步加入自优化与自定义止损。
最后他强调,EA不会永远适应市场,经验与下一届的新想法才是持续力。对于想走PAMM或资管路线的交易者,一个高质量策略胜过十个粗糙系统。