PositionGetTicket

La función retorna el ticket de la posición según un índice de la lista de posiciones abiertas y elige de forma automática esta posición para trabajar posteriormente con ella con la ayuda de las funciones PositionGetDouble, PositionGetInteger, PositionGetString.

ulong  PositionGetTicket(
   int  index      // número en la lista de posiciones
   );

Parámetros

index

[in]  Índice de la posición en la lista de posiciones abiertas, empezando por el 0.

Valor devuelto

Ticket de la posición. En caso de ejecución fallida, devuelve 0.

Observación

En el registro de posiciones con "compensación" (ACCOUNT_MARGIN_MODE_RETAIL_NETTING y ACCOUNT_MARGIN_MODE_EXCHANGE) de cada símbolo en cualquier momento solo puede abrirse una posición, que es el resultado de una o más operaciones. Es mejor no confundir las posiciones con las órdenes pendientes en activo, que también se muestran en la pestaña "Trading" en el panel "Herramientas".

En el caso de que las posiciones se representen independientemente (ACCOUNT_MARGIN_MODE_RETAIL_HEDGING), de cada símbolo pueden abrirse a la vez varias posiciones.

Para obtener de forma garantizada datos recientes sobre una posición, se recomienda llamar a la función PositionSelect() justo antes de solicitarlos.

Ejemplo:

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- en un ciclo por todas las posiciones en la cuenta
   int total=PositionsTotal();
   for(int i=0i<totali++)
     {
      //--- obtenemos el ticket de la siguiente posición, seleccionando una posición de forma automática para acceder a sus propiedades
      ulong ticket=PositionGetTicket(i);
      if(ticket==0)
         continue;
      
      //--- obtenemos el tipo de posición y mostramos la descripción de la posición seleccionada en el registro
      string type=(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE ? "Buy" : "Sell");
      PrintFormat("[%d] Selected position %s #%I64u"itypeticket);
     }
   /*
  resultado:
   [0Selected position Sell #2810802718
   [1Selected position Buy #2810802919
   */
  }

Véase también

PositionGetSymbol(), PositionSelect(), Propiedades de las posiciones