ChartIndicatorName

Возвращает короткое имя индикатора по номеру в списке индикаторов на указанном окна графика.

string  ChartIndicatorName(
   long  chart_id,      // идентификатор графика
   int   sub_window     // номер подокна
   int   index          // индекс индикатора в списке индикаторов, добавленных к данному подокну графика
   );

Параметры

chart_id

[in]  Идентификатор графика. 0 означает текущий график.

sub_window

[in]  Номер подокна графика. 0 означает главное окно графика.

index

[in]  Индекс индикатора в списке индикаторов. Нумерация индикаторов начинается с нуля, то есть самый первый индикатор в списке имеет нулевой индекс. Количество индикаторов в списке можно получить функцией ChartIndicatorsTotal().

Возвращаемое значение

Короткое имя индикатора, которое задается в свойстве INDICATOR_SHORTNAME функцией IndicatorSetString(). Чтобы получить информацию об ошибке, необходимо вызвать функцию GetLastError().

Примечание

Не следует путать короткое имя индикатора и имя файла, которое указывается при создании индикатора функциями iCustom() и IndicatorCreate(). Если короткое наименование индикатора не задается явным образом, то при компиляции в нем указывается имя файла с исходным кодом индикатора.

Необходимо правильно формировать короткое имя индикатора, которое с помощью функции IndicatorSetString() записывается в свойство INDICATOR_SHORTNAME. Мы рекомендуем, чтобы короткое имя содержало значения входных параметров индикатора, так как идентификация удаляемого с графика индикатора в функции ChartIndicatorDelete() производится именно по короткому имени.

Пример:

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- получаем идентификатор текущего графика и количество его подокон, включая главное окно
   long chart_id = ChartID();
   int  wnd_total= (int)ChartGetInteger(0,CHART_WINDOWS_TOTAL);
   
//--- пройдём в цикле по всем окнам текущего графика
   for(int w=0w<wnd_totalw++)
     {
      //--- получим количество индикаторов, присоединенных к указанному индексом цикла окну графика
      int ind_total=ChartIndicatorsTotal(chart_idw);
      
      //--- распечатаем заголовок для выбранного окна графика
      PrintFormat("Chart window %d indicators: "w);
      
      //--- получим в цикле и запишем в переменную все имена прикреплённых к выбранному окну индикаторов
      string ind_names="";
      for(int i=0i<ind_totali++)
        {
         ind_names+="  "+ChartIndicatorName(chart_idwi)+(i<ind_total-1 ? "\n""");
        }
      //--- распечатаем в журнале полученный список имён всех индикаторов, присоединенных к указанному окну графика
      Print(ind_names);
     }
   /*
   результат:
   Chart window 0 indicators
     AMA(9,2,30)
     SAR(0.02,0.20)
     Fractals
   Chart window 1 indicators
     RSI(14)
     AMA(9,2,30)
   Chart window 2 indicators
     MFI(14)
   */
  }

Смотри также

ChartIndicatorAdd(), ChartIndicatorDelete(), ChartIndicatorsTotal(), iCustom(), IndicatorCreate(), IndicatorSetString()