在MT5平台上自定义MQL5脚本(Script)主要涉及使用内置的MetaEditor开发环境进行编写、编译和部署。脚本与智能交易系统(EA)不同,它通常用于执行一次性任务(如批量平仓、一键设置止损等),运行一次后自动终止。
以下是创建和部署自定义MQL5脚本的完整流程:
1. 打开开发环境
在MT5终端中,点击顶部菜单栏的 工具 (Tools) -> MetaQuotes Language Editor,或者直接按键盘快捷键 F4。
这将启动MetaEditor集成开发环境。
2. 创建新脚本文件
在MetaEditor左上角点击 新建 (New) 按钮,或按 Ctrl+N。
在向导中选择 脚本 (Script),然后点击“下一步”。
输入脚本名称(例如 MyCustomScript),作者和链接可选,点击“完成”。
系统会自动生成一个基础的脚本框架代码。

3. 编写核心逻辑
MQL5脚本的核心入口函数是 OnStart()。你需要在此函数内编写具体的交易或数据处理逻辑。
关键注意事项:
无循环限制:脚本没有像EA那样的OnTick事件驱动,它从OnStart开始执行直到结束。如果涉及长时间运行或等待,需注意超时问题。
交易请求结构:MT5使用 MqlTradeRequest 和 MqlTradeResult 结构体来发送交易指令,需通过 OrderSend() 函数执行。
错误处理:务必检查 OrderSend 的返回值和 GetLastError(),以确保操作成功。
4. 编译脚本
编写完成后,点击工具栏上的 编译 (Compile) 按钮,或按 F7。
查看底部的 工具箱 (Toolbox) -> 错误 (Errors) 标签页。如果没有错误,说明编译成功,生成的 .ex5 文件会自动保存到数据文件夹。
5. 在MT5终端中运行脚本
回到MT5主界面。
在左侧 导航器 (Navigator) 窗口中,找到 脚本 (Scripts) 文件夹。
如果没看到新脚本,右键点击“脚本”文件夹选择 刷新 (Refresh)。
将你的脚本拖动到任意图表上,或者双击脚本名称。
在弹出的确认窗口中,勾选 允许算法交易 (Allow Algo Trading) 和 允许导入DLL(如果脚本需要),点击确定即可执行。
以下是一个简单的MQL5脚本示例,功能是为当前图表品种的所有持仓订单设置固定的止损点数。你可以直接复制此代码到MetaEditor中编译使用。
代码功能与特点说明:
输入参数化:使用 #property script_show_inputs 和 input int StopLossPoints,允许用户在运行脚本前自定义止损点数,无需修改代码。
品种过滤:脚本仅针对当前图表所在的交易品种(Symbol())进行操作,避免误改其他品种的持仓。
方向判断:自动识别买单(BUY)和卖单(SELL),分别计算下方和上方的止损价格。
安全修改:在修改前对比当前止损与新止损,避免重复发送相同的修改请求,减少服务器负载。
标准化处理:使用 NormalizeDouble 确保价格符合经纪商的小数位数要求,防止因精度问题导致订单拒绝。
结果反馈:通过 Print 输出日志,并在结束后通过 Alert 弹窗告知用户修改成功的订单数量。