在 MetaTrader 4(MT4)电脑端编写“一键平仓”功能,最常用且高效的方式是编写一个 MQL4 脚本(Script)。
与普通的 EA(持续在后台运行监听市场)不同,“脚本(Script)”的特点是“拖拽即触发一次,执行完即停止”,极其适合做毫秒级的一键全盘清仓、一键平多、一键平空或撤销挂单等风控操作。
以下是完整的 MQL4 编写教程、核心代码与安装使用步骤:
在 MT4 中,一键平仓的核心是使用 OrdersTotal() 遍历当前账户持仓,并用 OrderClose() 或 OrderDelete() 函数处理订单。
必须采用倒序遍历(从 OrdersTotal()-1 递减到 0):如果采用正序平仓(从 0 开始),当平掉第一笔订单后,后面的订单索引在系统内会自动前移,导致部分订单被跳过而平仓失败!
代码段
//+------------------------------------------------------------------+
打开 MT4 电脑端客户端。
按键盘快捷键 F4,或点击顶部菜单栏的 “工具” -> “MetaQuotes 语言编辑器” (MetaEditor)。
在 MetaEditor 中,点击左上角 “新建” (New)。
选择 “脚本 (Script)”,点击下一步。
命名为 CloseAllOrders,点击完成。
将默认生成的代码清空,把上面的完整代码粘贴进去。
点击上方工具栏的 “编写” (Compile)(或按 F7)。
确认下方“错误”窗口显示 0 errors, 0 warnings。
返回 MT4 主界面,点击顶部菜单栏的 “自动交易” (AutoTrading) 按钮,确保显示为绿色播放图标。
在左侧“导航”窗口中,展开 “脚本” (Scripts) 列表。
找到编译好的 CloseAllOrders,直接拖拽到任意图表上即可秒级触发平仓。
在黄金(XAUUSD)或白银(XAGUSD)遇到剧烈波动的消息面(如 CPI、非农数据)时,鼠标拖拽可能不够敏捷。您可以为该脚本分配键盘快捷键:
在 MT4 左侧“导航”窗口的“脚本”目录下,右键点击 CloseAllOrders。
选择 “设置快捷键” (Set hotkey)。
为脚本指定一个组合快捷键(例如 Alt + Q 或 Ctrl + Alt + C)。
以后在交易任何品种时,只要按下一键平仓快捷键,即可瞬间清空所有持仓与未成交挂单。
仅平当前图表品种: 如果您希望脚本只平掉当前图表所在的品种(例如只平黄金,不平外汇),只需将代码中的 if(type == OP_BUY) 修改为 if(type == OP_BUY && symbol == Symbol())。
避开恶性滑点: 配合爱华(AvaTrade)移动端 AvaTrade app 中的专利风控工具 AvaProtect™,开仓时可一键购买亏损保护保险,在重大消息公布前为订单提供“程序脚本 + 平台赔付”的双重避险屏障。