MQL5 的语法和 C 语言很像,但新手最容易卡住的地方不是语法,而是不知道“该调什么函数”。写 EA 无非三件事:下单、读数据、看时间。把这三类常用函数认熟,大部分 EA 的骨架就拼出来了。

下单:OrderSend 是核心
MQL5 里开仓、平仓、挂单全靠 OrderSend。它需要你提供:订单类型(开仓还是平仓)、品种、手数、价格、止损止盈等参数。用的时候注意,MQL5 和 MQL4 的 OrderSend 参数完全不同,网上找教程先确认版本,别照搬。
一个简单的开仓调用长这样:先构造交易请求结构体,填上动作、品种、手数、价格,再调用 OrderSend,最后检查返回值。建议新手直接复制官方文档里的示例改,比自己从零拼快得多。
读数据:iClose、iHigh 和 CopyRates
判断行情离不开历史价格。iClose(symbol, period, shift) 返回指定 K 线的收盘价,iHigh、iLow 同理,shift 填 0 表示当前正在形成的 K 线,填 1 表示上一根。这三个函数足够写大多数简单策略。
需要批量读取一段数据时,用 CopyRates 更高效:一次把几百根 K 线拷进数组,再循环处理。指标值可以调用 iMA、iMACD 这类函数,参数和图表上挂载的指标一一对应。
看时间:TimeCurrent 和 TimeToStruct
EA 经常需要判断“现在几点”“是不是周五”。TimeCurrent() 返回当前服务器时间,TimeToStruct() 把它拆成年月日时分秒,配合星期几的判断,就能实现“周五下午不开新仓”这类规则。
入门最快的路径
写代码前的三个小习惯
第一,把手数、止损距离、均线参数这些会反复调整的值都写成输入参数,放在 EA 顶部,改的时候不用动逻辑代码;第二,在关键位置用 Print 输出调试信息,比如每次开仓的原因和价格,跑回测时能在日志里回看每一步决策;第三,变量命名用有意义的英文,比如 entry_price 而不是 a1,三个月后再看代码,你会感谢现在的自己。这三个习惯前期不起眼,写多几个 EA 之后,差距就出来了。
别急着背函数表,先打开 MetaEditor 的“帮助”(F1),里面有全部函数的官方说明和示例代码,比任何教程都权威。再找个最简单的 EA 模板,把里面的 OrderSend 改成你自己的手数和品种,跑一次回测,你就迈过第一道坎了。开发环境的搭建可以看MQL5开发环境搭建,更多内容在MT5高阶进阶专区。