Скачать MetaTrader 5

Подскажите, как передать эксперту значения пользовательского инд., если их (значений) больше 1?

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Forex Trader
114293
Forex Trader  
Я написал индикатор, считающий два значения:

ind_buffer1[i] = тому-то, тому-то;
ind_buffer2[i] = тому-то, тому-то;

Я хочу двум переменным в тексте эксперта присваивать значения буферов. На примере построения MACD это делается просто:

Macd = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0);
Signal = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,0);

Я пытался сделать по аналогии с MACD, взяв за основу исходный текст пользовательского MACD:

double eRays_, eRays_line;

eRays_ = iCustom(NULL,0,"minutki",MODE_MAIN,0,0);
eRays_line = iCustom(NULL,0,"minutki",MODE_SIGNAL,0,0);
Comment(" * eRays_ == ", eRays_, " * eRays_line == ", eRays_line);

Но, почему-то обе переменные получают значение ind_buffer1[i]. Я подозреваю, что мой вопрос из разряда "блошиных", но, почему-то у меня никаких идей в голову не приходит.

А.
Forex Trader
114293
Forex Trader  
Напиши так:
eRays_line = iCustom(NULL,0,"minutki",1,0);
Forex Trader
114293
Forex Trader  
Напиши так:
eRays_line = iCustom(NULL,0,"minutki",1,0);


Спасибо, Rosh. Я посмотрел в Help:

double iCustom( string symbol, int timeframe, string name, ... , int mode, int shift)
Вычисляется указанный пользовательский индикатор.
...
mode - Индекс линии. Может быть от 0 до 7.
...

Это моя постоянная "головная боль". Что такое индекс линии? Я нигде не смог об этом прочесть.
Forex Trader
114293
Forex Trader  
Напиши так:
eRays_line = iCustom(NULL,0,"minutki",1,0);


Послушай! А не соответствует ли индекс линии значению соответствующего буфера?
Forex Trader
114293
Forex Trader  
Если взять пользовательский индикатор MACD, то в блоке init есть такие строчки:
 
SetIndexBuffer(0,ibuffer1nd_) ... SetIndexBuffer(1,ind_buffer2)// по нулевому индексу будут 
//сидеть значения буфера/массива ind_buffer1, а по первому индексу значения 
//буфера/массива ind_buffer2
...
  SetIndexLabel(0,"MACD");
   SetIndexLabel(1,"Signal");
// здесь задаются имена индексам



Поэтому, когда понадобится получить значение нулевого индекса (значение MACD) в нулевом баре мы запишем iCustom (NULL,0"MACD",параметры_индикатора,0,0)
А для сигнальной линии в нулевом баре
iCustom (NULL,0"MACD",параметры_индикатора,1,0)

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий