Помогите разобраться с iCustom

 

День добрый.

Мне необходимо использовать свой индикатор в советнике.

Индикатор не только расчитывает некоторые значения, но еще и многое визуализирует непосредственно на графике.

Так вот я не могу найти и не пойму одну вещь - что именно вытаскивает функция iCustom из индикатора?

Какое конкретно значение?

В индикаторе рассчитывается с десяток разных переменных.

А как выбрать (указать) значения, которые будут подавать на выход для функции iCustom?


сорри за тупой вопрос ))

 
luka >>:

..сорри за тупой вопрос ))

Вопрос полностью освещен в справке. iCustom вытаскивает не просто переменные, а только значения индикаторных буферов, которые затем можно использовать во втором индикаторе. Например, индикатор MACD использует для расчетов данные индикаторного буфера встроенного индикатора iMA. Таким же образом его можно переделать, чтобы он использовал не встроенный iMA, а другой пользовательский индикатор, получая от него данные с помощью iCustom.

Посмотрите код MACD и параллельно почитайте учебник.

 

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


Если тебе нужно забирать значения с выводимых на чарт элементов, ищи эти элементы на чарте и вытаскивай значения из них.


А вообще лучьше всего это скриншот с указанием того что нужно вытащить и сам индикатор, так быстрее тебе помогут.

 
HIDDEN >>:

А вообще лучьше всего это скриншот с указанием того что нужно вытащить и сам индикатор, так быстрее тебе помогут.

Вот пример:

//ТОЧКА ВХОДА ВНИЗ


int enterpointdown = 0; // БАР, на котором будет вход

int shift0 = 0;

double fracpricedown = Low[fracbardown];

if (fracbardown != 9596)


{

shift0 = fracbardown;

while (shift0 >= 0)

{

if ((Low[shift0]-1) < fracpricedown)

{

enterpointdown = fracbardown;

Write("INFO_07", 1, 600, 58,"ВХОД ВНИЗ: "+(DoubleToStr(Low[enterpointdown]-1, Digits)), 13, "Tahoma", Blue);

break;

} else

{

// Раскрашиваем бары

val1[fracbardown]=High[fracbardown]; 

val2[fracbardown]=Low[fracbardown];

}

fracbardown --;

}

}


Вот финальный расчет в индикаторе. Необходимое значение - в переменной

fracbardown


Получается, мне ее нужно записать в буфер, чтобы потом получить ее значение через icustom? Как это можно сделать?


Может вообще проще такие расчеты в тело самого советника засовывать, оформляя в виде функций, и не париться??:)

 

Скорее всего значения которые будут в буферах это val1[fracbardown], val2[fracbardown]. Чтобы не париться просто посмотрите в коде индикатора - при помощи функции SetIndexBuffer происходит назначение номеров буфера и связи его с переменными.


Если расчеты индикатора не особо запутаны и вы понимаете что именно он делает, то их можно вынести в советник. Таким образом в ваших руках будет вся необходимая информация, а не только то что вы достали при помощи iCustom.

Причина обращения: