Alguien podria ayudarme con este codigo de error que no aparece en el manual

 

Mi problema es el siguiente, quiero hacer un metodo para cerrar parcialmente mis posiciones , lo realice asi y funciona correctaente en el backtesting, pero al ponerlo a correr normal en una grafica noté que no lo hacia y entonces puse el 

,trade.ResultRetcode() para mirar el codigo de error y marca cero y error desconocido, alguien sabe como se puede arreglar?


gracias

void CierraPosicionParcial(string symbol)
  {
//printf(__FUNCTION__+"entra");
   int ticket=0;
   string Mysymbol ="";
   double volumen=0;
   double desviacion=100;
   double ptp=0;
   double ppo=0;
   double ppc=0;
   double meta=0;

//obtenemos la posicion abierta
   for(int i=PositionsTotal()-1; i>=0; i--) // recorrera todas las posiciones abiertas
     {
      // Obtener el # de ticket para la posicion abierta
      ticket=PositionGetTicket(i);
      Mysymbol=PositionGetSymbol(i);
      if(Mysymbol==symbol)
        {
         ptp= PositionGetDouble(POSITION_TP);
         ppo=PositionGetDouble(POSITION_PRICE_OPEN);
         ppc=PositionGetDouble(POSITION_PRICE_CURRENT);

         
         volumen = PositionGetDouble(POSITION_VOLUME);
         int PositionDirection=PositionGetInteger(POSITION_TYPE);
         if(PositionGetDouble(POSITION_PROFIT) > 0)
           {
            meta= MathAbs(ppc-ppo)/ MathAbs(ptp-ppo);
            Comment(round(meta*100)," %");
            printf(__FUNCTION__+" La posicion va ganando "+meta);
            if(meta >= 0.6)
              {
               printf(__FUNCTION__+" Si cumple la meta:"+meta);

               if(volumen > 0.01)
                 {
                  volumen = round(volumen*100/2)/100;
                  printf(__FUNCTION__+"entra a evaluar volumen2, volumen a cerrar: " + volumen);
// ------ here is the the if that gives me false   ---------------------------
                  if(trade.PositionClosePartial(ticket,volumen))
                    {
                     if(trade.PositionModify(PositionGetInteger(POSITION_TICKET),PositionGetDouble(POSITION_PRICE_OPEN),0))
                    }
                  else
                    {
                     Print("method failed. Return code=",trade.ResultRetcode(),
                           ". Code description:",trade.ResultRetcodeDescription());
                    }
                 }
              }
           }
        }
     }
  }
Razón de la queja: