视频:简单自动交易 如何利用 MQL5 创建简单的智能交易系统(基础篇)
「用 MQL5 搭一个能跑的裸 EA」
在 MT5 里写自动交易,第一步不是搞复杂策略,而是先让一个最小可运行智能交易系统(EA)挂上图表不报错。MQL5 的 EA 骨架由三个事件函数构成:初始化 OnInit、主循环 OnTick、反初始化 OnDeinit,缺一个编译器都会给警告。 原文给出的示例发布于 2022-08-08,在 MetaTrader 5 官方栏目下累计被查看 2 610 次,说明即便是“裸框架”也够大量新手直接抄去改。你开 MT5 按 F4 进 MetaEditor,新建 EA 模板就能看到这套结构。 外汇与贵金属品种波动大、杠杆高,实盘前务必在策略测试器用历史数据跑一遍,迷你手数验证逻辑再说。
◍ 从模板生成一个空壳 EA
在 MT5 里说的智能交易系统(EA),本质是一个能在 MetaTrader 内自动运行、自行下单和平仓的脚本程序。 新建时走「文件 → 新建 → 智能交易系统(模板)」,名称填 SimpleExpertAdvisor,连续点“继续、继续、完成”就能生成基础文件。这一步只是搭出人类可读的源码骨架,编译后才会变成终端可加载的 ex5。 把生成的文件拖到新图表上,EA 能挂上去运行,但此时没有任何交易逻辑。后续要补开平仓条件,它才可能真正触发订单——外汇和贵金属杠杆高,实盘前务必在策略测试器里先用历史数据验证。
EA 里三个生命函数与 Comment 显字
MQL5 的自动化靠函数驱动,模板里自带几个关键函数。OnInit 是初始化函数,EA 拖到图表上只跑一次,且有返回值,可用它判断初始化是否成功。 OnDeinit 负责退出前清理,定义为 void 是因为程序马上关闭,返回什么都没意义。真正干活最多的是 OnTick,图表每次价格变动就触发一次,绝大多数交易逻辑都写在它的大括号里。 想直接在图表上看东西就用 Comment 函数,它在左上角显示传入参数。最简单一个 EA 只留 OnTick,里面调 Comment("Hello"),编译后拖到图表就出字。 Comment 支持多参数逗号隔开。例如 OnTick 中写 Comment("本地时间是", TimeLocal()),重编译后图表实时打印本地时间,验证只需开 MT5 拖入 EA。外汇与贵金属杠杆高,EA 仅作显示验证也须警惕平台断线风险。
「在 MT5 里跑通第一个回溯测试」
打开 MT5 后按 CTRL+R 调出策略测试器,或者从顶部菜单「查看 / 策略测试器」进入。拿之前写好的 SimpleExpertAdvisor(只打印 "Hello MQL5" 的那个模板)做第一次回测,选 AUDCAD、1 分钟周期、自定义区间 2017 年。MT5 不像旧版要手动补历史,缺数据会在后台自动拉取。 测试模型里有个 OHLC 选项,对应单根蜡烛的开盘、最高、最低、收盘价。很多人以为选了「每一次即时报价」就真还原了tick流:若母蜡烛是 24 小时周期,除了 OHLC 四个点,中间价格全是随机插值的。做价格行为研究时得清楚这点偏差。 账户栏填本金和杠杆,高杠杆意味着小账户能控更大头寸,但外汇/贵金属自带高波动高风险,爆仓概率随杠杆放大。作者不跑前向测试、也不开慢速网络模拟,理由是他不认有人能预测未来。 点「开始」后图表会刷出 Hello MQL5。把代码里的打印改成 TimeLocal() 再编译,重跑测试就能看到每次价格变动算出的本地时间。整套动作只动了几行 MQL5,验证路径极短。