关闭所有订单和头寸 - MetaTrader 5 脚本
当您创建 EA 并且您没有注意到导致开立订单过多(如果不是订单)的错误时,有时会发生这种情况。或者,当您使用 Metaeditor 时,Ontick 中某处的 If 语句之外可能存在交易执行代码,该代码会在 MT5 后台打开交易
尝试手动关闭太多订单和头寸很无聊,而且很耗时。让我们创建可以关闭所有这些的脚本。
01:实例化要使用的库
#包括<贸易\贸易.mqh>//建立交易执行库 #包括<交易\OrderInfo.mqh>//建立订单信息库 #包括<交易\PositionInfo.mqh>//建立仓位信息库 //---CTrade m_trade;// 交易信息和执行库COrderInfo m_order;//订单信息库CPositionInfo m_position;// 所有位置特征和信息的库
02:我们的简单输入
输入 颜色 订单颜色 =clr道奇蓝;// 图表上的订单计数器颜色 输入 颜色 位置颜色 =clr绿色黄色;//在图表上设置计数器颜色
03:(可选)让我们在图表上绘制对象来计算 MT5 交易部分可用的头寸和订单数量。
图表写入(「职位」,「职位」+ (细绳)持仓总数(),100,80,20,清绿);// 在图表上写入仓位数量 图表写入(“订单”,“订单”+ (细绳)订单总数(),100,50,20,clr道奇蓝);//在图表上写入订单数量
04:让我们的脚本首先通过关闭所有仓位来处理仓位
为了(整数我=持仓总数()-1;我 >=0;我 - )// 循环所有未平仓头寸 如果(m_position.SelectByIndex(i)) // 选择一个位置 { m_trade.PositionClose(m_position.Ticket());// 然后删除它--period 睡觉(100);// 放松 100 毫秒 图表写入(「职位」,「职位」+ (细绳)持仓总数(),100,80,20, 位置颜色);//在图表上重新写入持仓数量 }
05:然后通过关闭我们的订单来完成
为了(整数我=订单总数()-1;我 >=0;我 - )// 循环所有可用订单 如果(m_order.SelectByIndex(i)) // 选择一个订单 { m_trade.OrderDelete(m_order.Ticket());// 删除它--句点 睡觉(100);// 放松 100 毫秒 图表写入(“订单”,“订单”+ (细绳)订单总数(),100,50,20,订单颜色);//在图表上重新写入订单数量 }
这是我们的对象被初始化的地方。要了解对象,请阅读文档 这里
空白图表写入(细绳 姓名, 细绳 评论, 整数 x_距离, 整数 y_距离, 整数 字体大小, 颜色 清除) { 对象创建(0, 姓名,OBJ_LABEL,0,0,0); 对象集整数(0, 姓名,OBJPROP_角,角左上); 对象集整数(0, 姓名,OBJPROP_COLOR,清除); 对象集字符串(0, 姓名,OBJPROP_TEXT, 评论); 对象集整数(0, 姓名,OBJPROP_FONTSIZE,字体大小); 对象集字符串(0, 姓名, OBJPROP_FONT,“露西达控制台”); 对象集整数(0, 姓名,OBJPROP_SELECTABLE,错误的); 对象集整数(0, 姓名,OBJPROP_XDISTANCE,x_距离); 对象集整数(0, 姓名,OBJPROP_Y距离,y_距离); }//+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+
这个脚本可以帮助你关闭所有订单和仓位在眨眼之间。
附件下载
📎 close_all_orders_and_positions.mq5 (3.75 KB)
Source: MQL5 #36010
💡 精彩内容推荐
✍️ 楼主最新发布
- •
- •
- •
- •
- •
- •
🔗 您可能感兴趣
- •
- •
- •
- •
- •
- •
🔐
请登录后参与评论
注册满12小时后评论,即可解锁附件下载
立即登录
