PositionGetInteger

A função retorna a propriedade solicitada de uma posição aberta, pré-selecionado usando PositionGetSymbol ou PositionSelect. A propriedade de operação deve ser de tipo datetime, int. Existem 2 variantes da função.

1. Imediatamente retorna o valor da propriedade.

long  PositionGetInteger(
   ENUM_POSITION_PROPERTY_INTEGER  property_id      // Identificador de propriedade
   );

2. Retorna true ou false dependendo do sucesso da execução da função. Se for bem sucedido, o valor da propriedade é colocada em uma variável de recebimento passada por referência no último parâmetro.

bool  PositionGetInteger(
   ENUM_POSITION_PROPERTY_INTEGER  property_id,     // Identificador de propriedade
   long&                           long_var         // Aqui nós aceitamos o valor da propriedade
   );

Parâmetros

property_id

[in]  Identificador de uma propriedade de operação. O valor pode ser um dos valores de enumeração ENUM_POSITION_PROPERTY_INTEGER.

long_var

[out]  Variável de tipo double, que aceita o valor da propriedade requerida.

Valor do Retorno

Valor do tipo long. Se a função falhar, será retornado 0.

Observação

For the "netting" interpretation of positions (ACCOUNT_MARGIN_MODE_RETAIL_NETTING and ACCOUNT_MARGIN_MODE_EXCHANGE), only one position can exist for a symbol at any moment of time. This position is a result of one or more deals. Do not confuse positions with valid pending orders, which are also displayed on the Trading tab of the Toolbox window.

If individual positions are allowed (ACCOUNT_MARGIN_MODE_RETAIL_HEDGING), multiple positions can be open for one symbol.

Para garantir o recebimento de novos dados sobre a posição, é recomendado chamar PositionSelect() logo antes referindo-se a eles.

Exemplo:

//+------------------------------------------------------------------+
//| Função Trade                                                     |
//+------------------------------------------------------------------+
void OnTrade()
  {
//--- verificar se a posição está presente e exibir a hora de sua mudança
   if(PositionSelect(_Symbol))
     {     
receber ID posição para trabalhos futuros
      ulong position_ID=PositionGetInteger(POSITION_IDENTIFIER);
      Print(_Symbol," posição #",position_ID);
//--- receber o tempo de posição formando em milissegundos desde 01.01.1970
      long create_time_msc=PositionGetInteger(POSITION_TIME_MSC);
      PrintFormat("Posição #%d  POSITION_TIME_MSC = %i64 milissegundos => %s",position_ID,
                  create_time_msc,TimeToString(create_time_msc/1000));
//--- receber o tempo da última alteração da posição em segundos desde 01.01.1970
      long update_time_sec=PositionGetInteger(POSITION_TIME_UPDATE);
      PrintFormat("Posição #%d  POSITION_TIME_UPDATE = %i64 segundos => %s",
                  position_ID,update_time_sec,TimeToString(update_time_sec));
//--- receber o tempo da última alteração da posição em milissegundos desde 01.01.1970
      long update_time_msc=PositionGetInteger(POSITION_TIME_UPDATE_MSC);
      PrintFormat("Posição #%d  POSITION_TIME_UPDATE_MSC = %i64 milissegundos => %s",
                  position_ID,update_time_msc,TimeToString(update_time_msc/1000));
     }
//---
  }

Também Veja

PositionGetSymbol(), PositionSelect(), Propriedades de uma Posição