自定义函数 平所有持仓单(含挂单)

阅读 :
欢迎访问 外 汇 邦 WWW.WaiHuiBang.com

void CloseAllOrder()//平掉所有仓位包括挂单
{  
  int tick[200]; 
  PingFlag=0;
  int j=0;
  for(int i=0;i<OrdersTotal();i++)
   {
     OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
     if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
     {j=j+1;
      tick[j]=OrderTicket();      
      Print("全部平仓! :",tick[j]);    
     }
   }
if (j!=0)
{
   for(i=1;i<=j;i++)
    {
     OrderSelect(tick, SELECT_BY_TICKET);
     if(OrderType()==OP_BUY)
      {
       if(OrderClose(OrderTicket(),OrderLots(),Bid,滑点可接受范围)==false)
       {
        PingFlag=1;
        Print("多头平仓失败"+GetLastError());
       } 
      } 
      
     //OrderSelect(tick, SELECT_BY_TICKET);
     if(OrderType()==OP_BUYSTOP)
      {
       if(OrderDelete(OrderTicket(),CLR_NONE)==false)
       {
        PingFlag=1;
        Print("多头挂单撤销失败"+GetLastError());
       } 
      } 
     //OrderSelect(tick, SELECT_BY_TICKET);
     if(OrderType()==OP_BUYLIMIT)
      {
       if(OrderDelete(OrderTicket(),CLR_NONE)==false)
       {
        PingFlag=1;
   Print("多头挂单撤销失败"+GetLastError());
       } 
      } 
     if(OrderType()==OP_SELL)
      {
       if(OrderClose(OrderTicket(),OrderLots(),Ask,滑点可接受范围)==false)
       {
        PingFlag=1;
        Print("空头平仓失败"+GetLastError());
       } 
      } 
      
      if(OrderType()==OP_SELLSTOP)
      {
       if(OrderDelete(OrderTicket(),CLR_NONE)==false)
       {
        PingFlag=1;
        Print("空头挂单撤销失败"+GetLastError());
       } 
      }     
      if(OrderType()==OP_SELLLIMIT)
      {
       if(OrderDelete(OrderTicket(),CLR_NONE)==false)
       {
        PingFlag=1;
        Print("空头挂单撤销失败"+GetLastError());
       } 
      } 
    }
   }
  if (PingFlag==0) PingStop=1;
}

欢迎访问 外 汇 邦 WWW.WaiHuiBang.com
本文标题:自定义函数 平所有持仓单(含挂单) - MT4平台MQL4编程学习
本文地址:http://www.ea666.cn/fxschool/autotrading/mql4/40680.html

相关文章

你可能感兴趣