ChartIndicatorGet

Devuelve el manejador del indicador con el nombre corto especificado en la ventana del gráfico especificada.

int  ChartIndicatorGet(
   long           chart_id,              // identificador del gráfico
   int            sub_window             // número de subventana
   const string   indicator_shortname    // nombre corto del indicador
   );

Parámetros

chart_id

[in]  Identificador del gráfico. 0 significa el gráfico actual.

sub_window

[in]  Número de subventana del gráfico. 0 significa la ventana principal del gráfico.

const indicator_shortname

[in]  El nombre corto del indicador que se establece en la propiedad INDICATOR_SHORTNAME a través de la función IndicatorSetString(). Para obtener el nombre corto del indicador, utilice la función ChartIndicatorName().

Valor devuelto

Devuelve el manejador del indicador en caso de la ejecución con éxito, de lo contrario INVALID_HANDLE. Para obtener la información sobre el error, hay que llamar a la función GetLastError().

Nota

El manejador de indicador obtenido con la ayuda de la función ChartIndicatorGet() aumenta el contador interno de uso de este indicador. El sistema de ejecución del terminal mantiene cargados todos los indicadores cuyo contador es superior a cero. Por eso, es necesario liberar de forma instantánea y explícita cualquier manejador de indicador innecesario, con la ayuda de IndicatorRelease() y en el mismo programa que lo ha recibido, como se muestra en el ejemplo más abajo. En caso contrario, no será posible encontrar el manejador "abandonado" y liberarlo desde otro programa.

A la hora de crear un indicador, hace falta formar de forma correcta su nombre corto que a través de la función IndicatorSetString() se escribe en la propiedad INDICATOR_SHORTNAME. Se recomienda que el nombre corto contenga los valores de los parámetros de entrada del indicador, ya que la identificación del indicador en la función ChartIndicatorGet() se realiza precisamente por el nombre corto.

Otro modo de identificar un indicador es recibir la lista de sus parámetros para el manejador establecido a través de la función IndicatorParameters() y luego realizar el análisis de valores recibidos.

Ejemplo:

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   //--- número de ventanas en el gráfico (siempre hay por lo menos una ventana principal)
   int windows=(int)ChartGetInteger(0,CHART_WINDOWS_TOTAL);
   //--- repasamos las ventanas
   for(int w=0;w<windows;w++)
     {
      //--- cuántos indicadores hay en esta ventana/subventana
      int total=ChartIndicatorsTotal(0,w);
      //--- repasamos todos los indicadores en la ventana
      for(int i=0;i<total;i++)
        {
         //--- obtenemos el nombre corto del indicador
         string name=ChartIndicatorName(0,w,i);
         //--- obtenemos el manejador del indicador
         int handle=ChartIndicatorGet(0,w,name);
         //--- mostramos en el diario
         PrintFormat("Window=%d,  index=%d,  name=%s,  handle=%d",w,i,name,handle);
         //--- release handle
         IndicatorRelease(handle);
        }
     }
  }

Véase también

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