回到首页 / 免费试用生成 EA

MT4/MT5 EA 编程入门:从一句中文需求到能跑的源码

很多人对 EA 的印象还停在“要懂编程才能做”。其实 EA 的骨架就那几块:什么条件下进场、下多少手、什么时候出、亏到什么程度认输。把这几件事用中文说清楚,程序就能把它写成 MQL4/MQL5 源码。这篇把结构、策略类型、参数设计和回测的坑讲明白。

一、一个 EA 由哪几块组成

组成部分作用说需求时要交代什么
初始化加载时做一次性设置:画面板、建指标句柄要不要在图表上显示状态面板
行情驱动每来一个价格(Tick)判断一次要不要动作用哪些指标、什么条件才算信号
下单与仓位开仓、加仓、平仓、改止损止盈手数怎么定、最多几单、加仓间距
风控止损止盈、总亏损上限、单量上限亏多少停、盈利怎么保护
外部参数把可调项做成 input哪些参数要能自己改

二、常见策略类型,需求怎么说

趋势型

用均线、MACD、布林带之类判断方向,顺着方向进场,跌破某条线就出。需求要写清:用哪几个周期、金叉还是突破、止损多少点、止盈多少点、允许重仓信号叠加吗。

马丁(加倍)型

第一单亏了就加倍下第二单,靠回调一把回本。必须交代:手数阶梯(例如 0.01/0.01/0.02/0.03…)、加仓间距是固定点数还是固定金额、最大多少单、达到上限怎么处理。

网格型

每隔固定距离挂一单,靠震荡反复吃差价。要写清网格间距、总单量上限、是否带整体止盈、要不要允许周末持仓。

对冲 / 双向型

同时或先后持有多空两边,做价差或锁仓。要写清开锁条件、解锁条件、两边手数比例、总敞口上限。

顺势追加(加仓)型

盈利之后按固定间距继续加仓,把趋势利润做大。注意:如果你要的是“价格到了就直接成交”,那是市价加仓,不是挂单——这点在需求里一定要写明白,两种写法的行为差别很大。

三、参数为什么要做成外部参数

把关键数值放在“外部参数”里,你改了不用重新编译、不用找作者改代码;同一份 EA 也能用不同参数跑不同品种。下面这些几乎都会做成外部参数:

如果你想把某些参数藏起来、只按你下发的值运行,可以用授权版:参数由服务器统一下发,客户那边即使看得到输入框也不生效。

四、回测和上线之间差了些什么

五、不会写 MQL 也能做出 EA

如果不是把它当职业,而是想把自己的交易想法快速变成能跑的程序,最省事的路径是:用中文把规则写清楚(进场、出场、手数、加仓、风控、交易时段),交给编程工具直接生成 MQL4/MQL5 源码,然后在 MetaEditor 里编译、回测,觉得不对就继续用中文补一句需求改。

判断一个想法值不值得写,可以先用一句话自问:什么情况下开仓、什么情况下平仓、亏多少我认输。这三句说得出来,EA 就能写出来。

源码做出来之后,如果要交给客户或者代理,下一件事通常是加密与限时授权,见 《EA 加密与在线授权》。