掌握 MQL5:从入门到精通(第一部分):开始编程(基础篇)
「在 MT5 里写第一行 MQL5 之前」
想在 MT5 里自己写指标或 EA,第一步不是背语法,而是先把 MetaEditor 跑起来。打开 MT5 终端,按 F4 即可进入内置的 MetaEditor 编译器,这是官方唯一指定的 MQL5 开发环境,2024 年 6 月该系列教程原文在站内的基础阅读量已达 4 906 次,说明手动写策略的需求一直不低。 新建文件时选「Expert Advisor (template)」会直接生成带 OnTick 骨架的 mq5 文件,省去手写框架的麻烦。外汇与贵金属杠杆高、滑点随机,任何自写程序都只是概率工具,实盘前必须用策略测试器跑历史数据。 下面这段是 MetaEditor 新建 EA 模板后最常见的入口函数,看清楚它的触发逻辑再改代码:
class="type">int OnInit() { class=class="str">"cmt">//--- create timer EventSetTimer(class="num">1); class=class="str">"cmt">//--- class="kw">return(INIT_SUCCEEDED); } class="type">void OnTick() { class=class="str">"cmt">//--- }
◍ 为什么初学者在 MQL5 面前卡壳
不少交易者私信想自己写 EA 或指标,但翻到一百行左右带注释的代码就退缩了。不是资料少,而是现有手册默认你有编程底子,直接讲语法细节,初学者根本接不住。 我这组文章反过来写:从零起步,配图加示例,把 MQL5 一层层拆开,目标让读者脱离程序员也能看懂自己的策略怎么跑。 MQL5 不止自动化交易。它能画自定义指标、做结果优化、生成报价列表或持仓截图文件、推消息到 Telegram 机器人、接数据库。后续会逐步放能力:虚拟交易品种、数学开发库调用,这次先落基础。 外汇与贵金属杠杆高、滑点跳空频繁,用代码实盘前务必在 MT5 策略测试器跑历史回测验证逻辑。
先搞懂程序员嘴里的那些词
读 MQL5 文献之前,得先认下开发者常用的底层术语,否则后面代码和文档会卡壳。现代计算机大多还是冯·诺依曼架构:CPU 管计算和逻辑,RAM 临时存数据与程序,关机或关程序数据就清空,外部驱动器(SSD/HDD/U 盘)才存文件。 CPU 从 RAM 取片段,分辨是命令还是数据,执行完写回 RAM 或外部文件,再读下一段,这套连续动作叫“执行线程”。 信息最小单位是位(bit),非 0 即 1;8 个位凑成 1 字节(Byte),这源自早期打孔卡一次读 8 孔的速度与介质折衷。 重点在容量换算:物理量前缀是 1000 倍(1 千米=1000 米),但计算机数据里每级是 1024 倍——1 KB = 1024 字节,1 MB = 1024 KB,往上还有 GB、TB、PB。外汇和贵金属 EA 跑历史数据时要注意,数据文件常按 1024 进制占空间,别拿 1000 算错内存评估。 后续我们会碰内存管理、处理器指令和 MQL5 写文件,到时候再展开。术语第一次出现我会随文解释,不堆砌。
「跑通 MQL5 的四件基础工具」
写 MQL5 不一定要从零配环境,但得搞清楚背后哪几层在干活。最底层的文本编辑器负责写代码,装 MT5 时自带的 MetaEditor 已经内嵌了语法高亮,够用;嫌它别扭也能换 VSCode,挂个插件就能认 MQL5。 编译器是把人写的文本翻成 CPU 能跑的机器码,MQL5 的编译器直接缝在 MetaEditor 里,不像 C++ 常是独立程序;Python 那种边读边跑的叫解释器,但最后也还是落机器码,只是转换过程藏得深。 调试器能单步跟代码、看每一步的数据状态,MetaEditor 同样内置。版本控制(VCS)对单人写策略也实用——比如你改了一版 EA 发现不如三天前那版,用 Git 或 MetaEditor 自带的 VCS 点几下就能回滚,且远程存一份防硬盘炸。 把编辑器、编译器、调试器、VCS 全打包的就叫 IDE。MetaEditor 本质就是个面向 MQL5 的 IDE,新手直接用它就能少踩环境坑;外汇和贵金属策略回测杠杆高、滑点诡异,环境稳了才谈得上验证。