MT5 EA 向导:四步拼出能跑的自动交易
不会写 MQL5 也能出 EA?用向导搭信号、资金管理、追踪止损三模块,编译后测一版再说
◍ ▍ 三模块拼装逻辑
几乎每个 EA 都由三个独立部分构成:交易信号、资金管理和追踪止损。信号决定什么时候进场出场,资金管理控制每单手数和风险,追踪止损负责浮盈保护。 向导里这些模块各有若干内置实现,组合方式很多。你只需要回答三个问题:响应什么信号、用哪种资金系统、怎么跟止损,剩下的代码生成交给向导。 生成后编译,拿到的是依据你选择算法运行的 EA,不是伪代码。
▍ 四次单击到编译
实际操作路径:打开 MT5 的 MQL5 向导 -> 选信号类(如内置指标信号)-> 选资金管理模式 -> 选追踪止损方式 -> 生成 mq5 文件。 有用户反馈向导生成的 EA 在策略测试器里不交易,常见原因是信号模块参数未匹配当前品种周期,或自定义指标未继承 CIndicator 类导致模块加载失败。 新手若要用自己的指标做信号,指标代码必须扩展 CIndicator,否则向导能识别但 EA 跑不起来。
class=class="str">"cmt">// 自定义信号指标必须继承 CIndicator 才能被向导信号模块调用 class MySignal : class="kw">public CIndicator { class="kw">protected: class="type">bool Initialize(class="type">void); class=class="str">"cmt">// 初始化指标缓冲区 class="kw">public: MySignal(class="type">void); ~MySignal(class="type">void); class="type">bool GetSignal(ENUM_ORDER_TYPE &type); class=class="str">"cmt">// 返回信号类型 };
「▍ 生成后必须做的验证」
向导给的是骨架,不是盈利保证。编译完立刻进策略测试器,用 2014 年以后的历史数据跑一遍,看成交记录和权益曲线。 如果测试器显示零交易,先查信号模块时间框架是否和测试设置一致;再查日志有无『signal module not found』类报错。 优化参数建议在测试器里用遗传算法跑几代,别凭感觉填手数。外汇和贵金属杠杆高,盲用默认参数可能放大回撤。
◍ 画得少,看得清
向导降低了写代码的门槛,但没降低交易本身的难度。它适合快速验证一个想法能不能跑出成交,不适合替代你对策略的思考。 把模块当积木,拼完就去测,别在参数界面空想。看得清自己 EA 每个模块在干什么,比堆功能更重要。