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

楼主  收藏   举报   帖子创建时间:  2019-05-05 10:17 回复:0 关注量:367
  1. void CloseAllOrder()//平掉所有仓位包括挂单
  2. {  
  3.   int tick[200];
  4.   PingFlag=0;
  5.   int j=0;
  6.   for(int i=0;i<OrdersTotal();i++)
  7.    {
  8.      OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
  9.      if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
  10.      {j=j+1;
  11.       tick[j]=OrderTicket();      
  12.       Print("全部平仓! :",tick[j]);   
  13.      }
  14.    }
  15. if (j!=0)
  16. {
  17.    for(i=1;i<=j;i++)
  18.     {
  19.      OrderSelect(tick, SELECT_BY_TICKET);
  20.      if(OrderType()==OP_BUY)
  21.       {
  22.        if(OrderClose(OrderTicket(),OrderLots(),Bid,滑点可接受范围)==false)
  23.        {
  24.         PingFlag=1;
  25.         Print("多头平仓失败"+GetLastError());
  26.        }
  27.       }
  28.       
  29.      //OrderSelect(tick, SELECT_BY_TICKET);
  30.      if(OrderType()==OP_BUYSTOP)
  31.       {
  32.        if(OrderDelete(OrderTicket(),CLR_NONE)==false)
  33.        {
  34.         PingFlag=1;
  35.         Print("多头挂单撤销失败"+GetLastError());
  36.        }
  37.       }
  38.      //OrderSelect(tick, SELECT_BY_TICKET);
  39.      if(OrderType()==OP_BUYLIMIT)
  40.       {
  41.        if(OrderDelete(OrderTicket(),CLR_NONE)==false)
  42.        {
  43.         PingFlag=1;
  44.    Print("多头挂单撤销失败"+GetLastError());
  45.        }
  46.       }
  47.      if(OrderType()==OP_SELL)
  48.       {
  49.        if(OrderClose(OrderTicket(),OrderLots(),Ask,滑点可接受范围)==false)
  50.        {
  51.         PingFlag=1;
  52.         Print("空头平仓失败"+GetLastError());
  53.        }
  54.       }
  55.       
  56.       if(OrderType()==OP_SELLSTOP)
  57.       {
  58.        if(OrderDelete(OrderTicket(),CLR_NONE)==false)
  59.        {
  60.         PingFlag=1;
  61.         Print("空头挂单撤销失败"+GetLastError());
  62.        }
  63.       }     
  64.       if(OrderType()==OP_SELLLIMIT)
  65.       {
  66.        if(OrderDelete(OrderTicket(),CLR_NONE)==false)
  67.        {
  68.         PingFlag=1;
  69.         Print("空头挂单撤销失败"+GetLastError());
  70.        }
  71.       }
  72.     }
  73.    }
  74.   if (PingFlag==0) PingStop=1;
  75. }
打赏