Русский

Справочник MQL4 Пользовательские индикаторы SetIndexBuffer

SetIndexBuffer

Связывает указанный индикаторный буфер с одномерным динамическим массивом типа double. Существует 2 варианта функции.

bool  SetIndexBuffer(
   int                    index,         // индекс буфера
   double                 buffer[],      // массив
   ENUM_INDEXBUFFER_TYPE  data_type      // что будем хранить
   );

Вызов без указания типа данных индикаторного массива:

bool  SetIndexBuffer(
   int                    index,        // индекс буфера
   double                 buffer[]      // массив
   );

Параметры

index

[in]  Номер индикаторного буфера. Нумерация начинается с 0. Номер должен быть меньше значения, объявленного в #property indicator_buffers.

buffer[]

[in]  Массив, объявленный в программе пользовательского индикатора.

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

В случае успешного выполнения возвращает true, в противном случае false.

Примечание

После связывания динамический массив buffer[]  будет иметь индексацию как в обычных массивах, даже если для связываемого массива будет предварительно установлена индексация как в таймсериях. Если необходимо изменить порядок доступа к элементам индикаторного массива, необходимо применить функцию ArraySetAsSeries() после связывания массива функцией SetIndexBuffer(). При этом необходимо иметь ввиду, что нельзя изменять размер для динамических массивов, назначенных в качестве индикаторных буферов функцией SetIndexBuffer(). Для индикаторных буферов все операции по изменению размера производит исполняющая подсистема терминала.

Пример:

  double ExtBufferSilver[];
  int init()
    {
      SetIndexBuffer(0, ExtBufferSilver); // буфер для первой линии
      // ...
    }

Смотри также

Свойства пользовательских индикаторов, Доступ к таймсериям и индикаторам