PositionGetSymbol

Retorna o símbolo correspondente à posição aberta e seleciona automaticamente essa posição para que possa ser trabalhada usando as funções PositionGetDouble, PositionGetInteger, PositionGetString.

string  PositionGetSymbol(
   int  index      // Número na lista de posições
   );

Parâmetros

index

[in]  Número de posição na lista de posições abertas.

Valor retornado

Valor do tipo string. Se a posição não foi encontrada, uma string vazia será retornada. Para obter um código de erro, chamar a função GetLastError().

Observação

Ao usar o registro de posições com "cobertura" (ACCOUNT_MARGIN_MODE_RETAIL_NETTING e ACCOUNT_MARGIN_MODE_EXCHANGE), para cada símbolo, em qualquer momento, pode estar aberta apenas a posição que resulte de uma ou mais operações. Não confunda as posições com as ordens pendentes ativas que aparecem na aba "Negociação" da janela "Caixa de ferramentas".

Ao usar a exibição independente de posições (ACCOUNT_MARGIN_MODE_RETAIL_HEDGING), pode haver várias posições abertas ao mesmo tempo para cada símbolo.

Exemplo:

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- obtemos a quantidade de posições abertas na conta
   int total=PositionsTotal();
   for(int i=0i<totali++)
     {
      //--- obtemos o símbolo da posição pelo índice do loop i
      ResetLastError();
      string symbol=PositionGetSymbol(i);
      
      //--- se o símbolo da posição for obtido com sucesso, a posição pelo índice i será automaticamente selecionada
      //--- e será possível acessar suas propriedades com PositionGetDouble, PositionGetInteger, PositionGetString
      if(symbol!="")
        {
         ENUM_POSITION_TYPE type=(ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE);
         PrintFormat("Position symbol at index %d: %s, position type: %s"isymbolStringSubstr(EnumToString(type), 14));
        }
      else
        {
         PrintFormat("PositionGetSymbol(%d) failed. Error %d"iGetLastError());
         continue;
        }
     }
   /*
   Resultado:
   Position symbol at index 0GBPUSDposition typeSELL
   Position symbol at index 1EURUSDposition typeBUY
   */
  }

Também Veja

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