Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Планируешь заказать программу? Узнай, как получить желаемый результат
Forex Trader
114255
Forex Trader 2005.12.25 12:11 
Я написал индикатор, считающий два значения:

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
114255
Forex Trader 2005.12.25 12:22  
Напиши так:
eRays_line = iCustom(NULL,0,"minutki",1,0);
Forex Trader
114255
Forex Trader 2005.12.25 12:51  
Напиши так:
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
114255
Forex Trader 2005.12.25 12:55  
Напиши так:
eRays_line = iCustom(NULL,0,"minutki",1,0);


Послушай! А не соответствует ли индекс линии значению соответствующего буфера?
Forex Trader
114255
Forex Trader 2005.12.25 14:49  
Если взять пользовательский индикатор 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)

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