POSITION_TYPE使用问题

 
   if(EA总单数>0)
     {
      int positionsTotal = PositionsTotal();

      for(int index = positionsTotal; index >=0; index--)
        {
         ulong ticket = PositionGetTicket(index);

         if(ticket > 0)
           {
            if(PositionSelectByTicket(ticket))
              {
               double profit = PositionGetDouble(POSITION_PROFIT);
               string symbol = PositionGetString(POSITION_SYMBOL);
               double volume = buy最大开仓手数(symbol);
               double openPrice = PositionGetDouble(POSITION_PRICE_OPEN);
               double 利息 = PositionGetDouble(POSITION_SWAP);
               double 当前价格 = PositionGetDouble(POSITION_PRICE_CURRENT);
               long 订单类型 = PositionGetInteger(POSITION_TYPE);Print("symbol="+symbol+"1订单类型= ", 订单类型);

 明明当前订单是buy单,结果输出 1订单类型=1,有时又正确,有时又错误。有没有专家指导一下,这是为什么

 
檢查的時候 把單號也加進去 這樣你才能確認那個訂單對應哪個類型
 
20761814:
   if(EA总单数>0)
     {
      int positionsTotal = PositionsTotal();

      for(int index = positionsTotal; index >=0; index--)
        {
         ulong ticket = PositionGetTicket(index);

         if(ticket > 0)
           {
            if(PositionSelectByTicket(ticket))
              {
               double profit = PositionGetDouble(POSITION_PROFIT);
               string symbol = PositionGetString(POSITION_SYMBOL);
               double volume = buy最大开仓手数(symbol);
               double openPrice = PositionGetDouble(POSITION_PRICE_OPEN);
               double 利息 = PositionGetDouble(POSITION_SWAP);
               double 当前价格 = PositionGetDouble(POSITION_PRICE_CURRENT);
               long 订单类型 = PositionGetInteger(POSITION_TYPE);Print("symbol="+symbol+"1订单类型= ", 订单类型);

 明明当前订单是buy单,结果输出 1订单类型=1,有时又正确,有时又错误。有没有专家指导一下,这是为什么

你顺序写错了,要先Select再GetTicket !!!

 

感谢热心的朋友们