在 MetaTrader 4(MT4)电脑端编写一个“一键平仓”的 MQL4 脚本(Script)或 EA(Expert Advisor)非常实用。相比于普通 EA,脚本(Script) 的特点是“拖拽即执行一次,执行完即停止”,极其适合用来做“一键清仓/一键平多/一键平空”等紧急风控操作。
以下是完整的 MQL4 代码编写教程与使用步骤:
在 MT4 中,一键平仓的核心是使用 OrdersTotal() 遍历当前账户持仓,并用 OrderClose() 函数逐笔平仓。
倒序遍历持仓列表:平仓时必须采用倒序循环(从 OrdersTotal()-1 递减到 0)。因为正序平仓(从 0 开始)在平掉第一个订单后,剩余订单的索引位置会向前移动,导致部分订单被漏平!
代码段
//+------------------------------------------------------------------+打开 MT4 电脑端软件。
按键盘快捷键 F4,或者点击顶部菜单栏的 “工具” -> “MetaQuotes 语言编辑器” (MetaEditor)。
在 MetaEditor 中,点击左上角 “新建” (New)。
选择 “脚本 (Script)”,点击下一步。
命名为 CloseAllOrders,点击完成。
将默认生成的代码全部清空,把上面的完整代码粘贴进去。
点击上方工具栏的 “编写” (Compile)(或按 F7)。
查看下方“错误”窗口,确保显示 0 errors, 0 warnings。
返回 MT4 主界面,点击顶部菜单栏的 “自动交易” (AutoTrading) 按钮,确保其显示为绿色播放图标。
在左侧“导航”窗口中,展开 “脚本” (Scripts) 列表。
找到刚编译好的 CloseAllOrders,直接拖拽到任意图表上即可秒级执行一键平仓。

为了在剧烈行情(如黄金暴涨暴跌、CPI 重磅数据发布)下实现极致风控,可以为该平仓脚本绑定键盘快捷键:
在 MT4 左侧“导航”窗口的“脚本”下,右键点击 CloseAllOrders。
选择 “设置快捷键” (Set hotkey)。
为脚本分配一个组合快捷键(如 Ctrl + Alt + C 或 Alt + Q)。
以后在交易黄金(XAUUSD)或白银(XAGUSD)时,只需按下该快捷键,无需鼠标拖拽,即可瞬间清空所有持仓与未成交挂单。
滑点限制设置(Slippage): 代码中的 Slippage = 30 代表允许的最大点差滑点(30 个 Base Points / 3 点)。如果行情极其剧烈导致滑点超过此范围,个别订单可能会平仓失败,建议在流动性充裕的交易时段使用。
多品种防干扰扩展: 当前代码会平掉账户内的所有品种(含黄金、外汇、原油等)。如果你只想平掉当前图表对应的单一品种,可将代码中的 if(type == OP_BUY) 修改为 if(type == OP_BUY && symbol == Symbol())。
爱华 AvaProtect™ 组合防护: 如果在剧烈行情下担心脚本因网络延迟或滑点导致未能及时成交,可以在爱华(AvaTrade)移动端(AvaTrade app)或 WebTrader 上开仓时配合使用独家的 AvaProtect™ 亏损赔付一键保障,为订单提供二次风控防护。