ChartIndicatorGet

Restituisce l'handle dell'indicatore con il nome breve specificato nella finestra del grafico specificato.

int  ChartIndicatorGet(
   long           chart_id,              // ID del Grafico 
   int            sub_window             // Il numero di sottofinestra
   const string   indicator_shortname    // Nome breve dell'indicatore
   );

Parametri

chart_id

[in] ID del Grafico. 0 significa il grafico corrente.

sub_window

[in] Il numero della sottofinestra grafico. 0 significa la finestra principale del grafico.

const indicator_shortname

[in] Il nome breve se l'indicatore, che si trova nella proprietà INDICATOR_SHORTNAME utilizza la funzione IndicatorSetString(). Per ottenere il nome breve di un indicatore, utilizzare la funzione ChartIndicatorName().

Valore restituito

Restituisce un handle indicatore in caso di successo, altrimenti restituisce INVALID_HANDLE. Per ottenere informazioni sull' errore, chiamare la funzione GetLastError().

Nota

L'handle dell'indicatore ottenuto utilizzando la funzione ChartIndicatorGet() incrementa il contatore dell'utilizzo interno dell'indicatore. Il sistema di runtime del terminale mantiene tutti gli indicatori, il cui contatore è maggiore di zero, caricati. Pertanto, l' handle dell'indicatore che non è più necessario deve essere rilasciato immediatamente ed esplicitamente utilizzando IndicatorRelease() nello stesso programma che lo ha ricevuto, come mostrato nell'esempio seguente. Altrimenti, sarà impossibile trovare l'handle "abbandonato" e rilasciarlo correttamente da un altro programma.

Durante la creazione di un indicatore, fare attenzione a formare il suo nome breve, che è scritto nella proprietà INDICATOR_SHORTNAME utilizzando la funzione IndicatorSetString(). Si raccomanda che un nome breve deve contenere i valori dei parametri di ingresso dell'indicatore, poiché l'indicatore è identificato nella funzione ChartIndicatorGet() in base al suo nome breve.

Un altro modo per identificare l'indicatore è quello di ottenere una lista dei suoi parametri per una handle dato, utilizzando la funzione IndicatorParameters() e quindi analizzare i valori ottenuti.

Esempio:

//+--------------------------------------------------------------------------------+
//| Funzione di avvio del programma Script                                         |
//+--------------------------------------------------------------------------------+
voidOnStart()
  {
   //--- Il numero di finestre sul chart (almeno una finestra principale è sempre presente)
   int windows=(int)ChartGetInteger(0,CHART_WINDOWS_TOTAL);
   //--- Controlla tutte le finestre
   for(int w=0;w<windows;w++)
     {
      //--- il numero di indicatori in questa finestra/sottofinestra
      int total=ChartIndicatorsTotal(0,w);
      //--- Va attraverso tutti gli indicatori nella finestra
      for(int i=0;i<total;i++)
        {
         //--- ottiene il nome corto dell'indicatore
         string name=ChartIndicatorName(0,w,i);
         //--- ottiene l'handle dell'indicatore
         int handle=ChartIndicatorGet(0,w,name);
         //--- Aggiunge al log
         PrintFormat("Finestra=%d,  indice=%d,  nome=%s,  handle=%d",w,i,name,handle);
         //--- Devi obbligatoriamente rilasciare l' handle dell'indicatore quando non è più necessario.
         IndicatorRelease(handle);
        }
     }
  }

Vedi anche

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