优秀程序员(第 01 部分):您必须停止做这 5 件事才能成为一名成功的 MQL5 程序员(基础篇)
写好 MQL5 前先戒掉的五个习惯
很多人在 MT5 里写了几年 EA,却始终跑不出稳定逻辑,问题往往不在语法,而在起步阶段养成的坏惯性。 把 IndicatorBuffers 当万能容器、在 OnTick 里做重计算、用 Print 代替日志系统、忽视 ENUM_TIMEFRAMES 的跨周期对齐、以及不看 MQL5 参考里的返回值约束——这五件事只要还在做,程序架构就会持续漏风。 以 OnTick 内重算为例,tick 频率在欧美盘重叠时段可达每秒 3~5 次,若每次都重跑 200 根 K 线的循环,CPU 占用会瞬间拉满并触发掉线。 打开你最近的源码,先搜 OnTick 里有没有不该出现的循环体,有就外移到 OnTimer 或独立函数,这是今天就能做的一个验证动作。
「拉伸认知维度才能写好 MQL5」
奥利弗·温德尔·福尔摩斯说过,人的思维被一个新念头拉伸后,就回不到原来的维度。写 MQL5 也是一样:只靠 24/7 啃语法不够,得搞懂「为什么这么写」和「什么场景该用什么结构」,记忆和代码质量才会同步抬升。 很多人卡在 EA 写不顺,不是语言不会,而是没建立最佳实践的心智模型。当你清楚每段代码的职责边界,MT5 里调参、排错的时间能砍掉一大半。 下面这套路径如果真沉下去用,大概率能在极短时间内改变你写指标和 EA 的经验——不是鸡汤,是认知层先动,手才跟得上。
◍ 别把复制粘贴当真懂了
很多 MT5 新手甚至老手都有个隐蔽毛病:在论坛搜到一段标着“能用”的 MQL5 片段,看都不看原理就塞进自己的 EA。2019 年我刚接触编程时也这么干,专挑评论区有人回“谢谢,现在跑通了”的帖子,复制完就当任务结束。 后来才发现自己当初说“标准库图表不能用”纯属冤枉——那段代码是从某个早忘掉的角落抄来的,出错根源在我没理解它。外汇和贵金属杠杆交易本身高风险,连跑通的逻辑都不清楚,实盘里一个 tick 异常就可能放大亏损。 论坛里资深开发者常只丢一个 MQL5 文档链接,不写定制解答,根本原因就是多数提问者连基础概念都没吃透。始终盯住“理解”而不是“方案”,基本原理通了,写指标或脚本才顺手。 盲目粘贴短期省事,长期会毁掉你的信誉,也比正经修 bug 引出更多诡异问题。开 MT5 随便建个脚本,把抄来的代码逐行注释一遍,跑不顺的地方就是你知识盲区。
先搞懂为什么崩,再谈改代码
遇到 MQL5 代码跑不起来,第一反应不应该是去论坛等人贴一段能替换的源码。先确认自己清楚两件事:标准库里那个对象到底怎么工作,以及你写的哪一行触发了异常。我早期干过一件蠢事——把一段操作图表模板的代码随便塞进项目,其实根本没读懂 CChart 之类的标准库结构,最后甩锅说“函数库不能用”,本质是自己没通读文档。 MetaEditor 自带的帮助就是最快的查证入口。打开编辑器,点顶部“帮助”→“MQL5 参考”,本地就有完整函数和类说明,不用开浏览器搜。另一个渠道是 MQL5 论坛,能把你忽略的边界条件暴露出来,但只复制别人片段而不读上下文,就会卡在“菜鸟螺旋”里反复绕圈。 实操上,下次编译报错先别删代码:在 MetaEditor 里对报红的函数按 F1 看参考,再把你调用它的前三行贴到论坛提问,注明“标准库版本 + 报错行号”。外汇和贵金属 EA 跑在实时行情上,这类未理解就套用带来的逻辑漏洞可能引发实盘异常,风险很高。