ChartIndicatorGet

Retorna o manuseio do indicador com nome abreviado especificado na janela do gráfico especificado.

int  ChartIndicatorGet(
   long           chart_id,              // ID gráfico\
   int            sub_window             // O numero da sub-janela
   const string   indicator_shortname    // Nome abreviado do indicador
   );

Parâmetros

chart_id

[in]  ID Gráfico. Significa o gráfico atual.

sub_window

[in]  O numero da sub-janela do gráfico. 0 (zero) significa a principal janela do gráfico.

const indicator_shortname

[in]  O nome abreviado do indicador que é definido na propriedade INDICATOR_SHORTNAME será escrita usando a função IndicatorSetString(). Para obter o nome abreviado de um indicador usar a função ChartIndicatorName().

Valor do Retorno

A função retorna bem sucedida, caso contrário retorna INVALID_HANDLE. Para obter informações sobre o erro, chame a função GetLastError().

Observação

O handle do indicador obtido com ajuda da função ChartIndicatorGet() aumenta o contador interno de uso desse indicador. O sistema de execução do terminal mantém carregados todos os indicadores cujo contador é maior que zero. Por isso, um handle de indicador desnecessário deve ser imediata e explicitamente liberado com ajuda de IndicatorRelease() no mesmo programa que o recebe, conforme mostrado no exemplo abaixo. Caso contrário, será impossível encontrar o identificador "abandonado" e liberá-lo corretamente desde outro programa.

Ao criar um indicador, tenha cuidado para formar sua abreviação, o que está escrito na propriedade INDICATOR_SHORTNAME usando a função IndicatorSetString(). É recomendado que o nome abreviado deve conter valores de todos os parâmetros de entrada do indicador, porque sendo o indicador excluído do gráfico pela função ChartIndicatorGet() ele é identificado pelo nome abreviado.

Outra forma de identificar o indicador é obtendo uma lista de seus parâmetros para um manipulador, usando a função IndicatorParameters() e, em seguida, analisar os valores obtidos.

Exemplo:

//+------------------------------------------------------------------+
//| Programa Script da função start (iniciar)                        |
//+------------------------------------------------------------------+
void OnStart()
  {
   //--- O número de janelas no gráfico (ao menos uma janela principal está sempre presente)
   int windows=(int)ChartGetInteger(0,CHART_WINDOWS_TOTAL);
   //--- Verifique todas as janelas
   for(int w=0;w<windows;w++)
     {
      //--- o número de indicadores nesta janela/sub-janela
      int total=ChartIndicatorsTotal(0,w);
      //--- Passar por todos os indicadores na janela
      for(int i=0;i<total;i++)
        {
         //--- obtém o nome abreviado do indicador
         string name=ChartIndicatorName(0,w,i);
         //--- obter o manipulador (handle) de um indicador
         int handle=ChartIndicatorGet(0,w,name);
         //--- Adicionar o log
         PrintFormat("Janela=%d,  índice=%d,  nome=%s,  manipulador (handle)=%d",w,i,name,handle);
         //--- You should obligatorily release the indicator handle when it is no longer needed
         IndicatorRelease(handle);
        }
     }
  }

Também Veja

ChartIndicatorAdd(), ChartIndicatorName(), ChartIndicatorsTotal(), IndicatorParameters()