更好的程序员(第 03 部分):放弃做这 5 件事成为一名成功的 MQL5 程序员(基础篇)
📘

更好的程序员(第 03 部分):放弃做这 5 件事成为一名成功的 MQL5 程序员(基础篇)

第 1/2 篇

◍ 想写好 MQL5 先扔掉这五样

不少人在 MT5 里写了很久 EA 却始终卡在半路,问题往往不在语法,而在习惯。2021 年 10 月一篇社区高热帖(浏览 2566)点出:想成为能稳定交付的 MQL5 程序员,有五件事该果断放弃。 第一,别为已经写废的旧代码恋战,重构不如重写干净模块。第二,别在不熟悉的 API 前自我怀疑,官方文档和编译器报错就是入口。第三,别认定别人该用你的编码风格,信号接口留足参数才是硬道理。 第四,从只抄策略的人变成愿意发回测、发片段的人,你给社区一段可用的指标骨架,收回来的往往是更稳的思路。第五,别迷恋自己那点技巧,外汇与贵金属杠杆高、滑点狠,实盘和回测差之千里,承认局限才能迭代。 开 MT5 新建一个空指标,把上面五条写成注释贴在头部,每次改代码前看一眼,比看十篇泛泛教程更管用。

「新手写 MQL5 最致命的是行为不一致」

刚接触 MQL5 的交易者最容易高估自己的代码可控性。实际盘房里,新手最常见的状态是:嘴上说想做均线交叉信号,写出来的 EA 却把止损逻辑和订单注释混在一起,连他自己三天后都读不懂。 这类不可预测不是偶然写错一行,而是行动和意图长期对不上——今天改个参数不记录,明天换编辑器不备份。等你真拿去跑黄金 15 分钟图,爆掉的是本金不是代码。 本系列后续会拆解 5 个该扔掉的习惯,先记住一点:外汇和贵金属杠杆高,用自己都看不懂的 EA 等于蒙眼接飞刀。

别把旧代码当成绊脚石

很多 MQL5 开发者在早期写过被客户差评的 EA 或指标,甚至因代码 bug 触发错单,把本金亏光还砸了自由职业者平台上的口碑。这种事发生过就发生过,反复回想只会拖慢你接下来的进度。 把精力从「我当初该用那个指标」这类后悔里抽出来,转到具体短板才划算。比如你以前总在数组越界上栽跟头,就去啃 MQL5 调试文档,在策略测试器里故意造几个越界场景跑一遍。 论坛里你几年前问过的「蠢问题」主题,翻出来自嘲纯属浪费电力和存储。真碰到卡点,开个新帖问现在的人比反复批判过去的自己有用得多。外汇和贵金属杠杆高,代码错一处就可能放大成实盘大亏,但过去无法改,能改的只有下一版系统。 想转就现在转,把下个 EA 的订单校验逻辑写严一点,比任何心理建设都实在。

◍ 代码自己会说话

写 MQL5 系统前,先别急着去论坛求专家盖戳。很多新手贴出一段能跑的 EA 代码,真正卡住他们的不是语法,而是「这玩意儿到底算不算解决了我的问题」的自我怀疑。 在 MT5 里,编译器加回测就是最直白的裁判:没报错、逻辑你全看得懂、下单行为符合预期,那就已经接近正确。我见过同一策略被五个人写出五种结构——有的用 iMA 句柄,有的直接 CopyBuffer 轮询,目标都是抓均线拐头,没有谁唯一正统。 开放讨论和跪求认证是两回事。把 OnInit 里的指标句柄打印出来、用 Strategy Tester 跑 2020–2023 年 XAUUSD 的 M15,成交次数和最大回撤摆在那,比任何人的口头「你这不对」都有说服力。外汇和贵金属杠杆高,实盘前务必用历史数据验证有效性,错了就调参数重测。

常见问题

先冻结参数跑至少 30 天历史数据,行为不一致是新手最致命的,定好规则就别中途手痒。
别把旧代码当绊脚石,先抽离核心函数做单元测试,能跑通就留,逐步替换比推倒重来稳。
小布可以读你的策略逻辑并标出行为不一致、冗余模块和命名混乱处,帮你先做一轮静态体检再上手改。
代码自己会说话,八成是周期或点差没对齐,打印中间变量到日志比对一下就知道断在哪。
按报错频率和成交影响排优先级,先修会漏单的核心分支,装饰性函数往后放。