零代码用 MQL5 向导生成自己的 EA
一、向导解决了什么
过去缺乏编程技能是实现交易策略的不可逾越障碍。MQL5 向导把 EA 拆成三个独立模块,让交易者用现成组合生成代码,编程经验不再是必需品。
二、三个核心模块
几乎每个 EA 都由三个模块组成,组合方式的不同产生无数可能的 EA:
- 信号(Signal):什么时候进场的依据。
- 资金(Money):下多少仓位的依据。
- 追踪(Trailing):如何移动止损护利的依据。
三、四次单击生成 EA
向导流程极其简短:选择信号模块 → 选择资金模块 → 选择追踪模块 → 生成并编译。一套依你策略交易的 EA 就此就绪。
- 第 1 步:在向导中选信号算法(如 Moving Average、MACD)。
- 第 2 步:选资金/风险管理算法(如固定手数、百分比风险)。
- 第 3 步:选追踪止损算法(如固定点数、移动止损)。
- 第 4 步:点击完成,向导生成 .mq5 并编译。
四、生成后该做什么
编译只是开始。接下来必须:策略测试回测 → 参数优化 → 模拟盘验证。没有这一步,生成的 EA 只是“能跑的代码”,不是“能赚钱的系统”。
五、能力边界
六、向导三模块协作流程
向导建 EA 的本质是「信号模块 + 资金模块 + 追踪模块」三件套:OnTick 里信号模块先判方向,资金模块据止损算手数,追踪模块护利润,主循环把它们串起来。读懂这个流水线,你就懂了任何 EA 的骨架。
三模块通过共享的「上下文对象」通信:信号写方向、资金读止损算手数、追踪读浮盈调止损。这种数据流向清晰,改任何一层都不用通读全局。
七、生成的 EA 如何扩展
向导产物是可读代码,扩展就是改对应模块:加个过滤条件改信号模块、换手数算法改资金模块、加个时间过滤在 OnTick 里加判断。不必从零写,在脚手架上加。
八、与手写的边界
标准三件套覆盖大多数策略,但多品种对冲、复杂状态机、自定义订单流这类非标准逻辑,向导结构不够用,必须手写或大幅改造。判断标准:向导表达得了就用向导,表达不了就手写。
硬把非标准逻辑塞进向导,代码会四不像、难维护;不如直接写类继承,反而更清晰。这是「用工具」和「被工具限制」的分界。
九、从向导到生产级 EA
向导产物适合验证想法,要上生产还需加固:加报错日志、加持仓去重、加资金护栏、加异常恢复(终端重启后状态重建)。这些「工程件」向导不生成,必须自己补。
补完工程件后,这个 EA 才从「能跑的demo」变成「能长期跑的生产系统」。很多人的 EA 回测漂亮、实盘几天就出怪事,缺的正是这些加固。
十、小结
十一、向导背后生成的真实代码长什么样
别以为“四次单击”只是魔法。向导最终生成的是一个标准结构的 .mq5:包含 CSignalXXX、CMoneyXXX、CTrailingXXX 三个类的实例,并统一挂到 CExpert 引擎下。你看到的是图形界面,编译器看到的是和普通手写 EA 完全相同的面向对象代码。理解这点很重要——它意味着向导不是“黑箱”,你随时可以打开生成的源文件,在三个模块之间插入自己的逻辑。
十二、何时该离开向导、动手写代码
当你需要下列能力时,向导就不够用了:多货币/多周期调度、调用 DLL 或神经网络、按持仓盈亏曲线动态切换策略、自定义平仓与加仓规则。此时应把向导生成的代码当作起点,继承 CExpertSignal/Money/Trailing 继续扩展,而不是直接从零写。渐进式上手比一次性硬啃 MQL5 更易坚持。