Как получить данные из индюка? - страница 3

 
Retabs:

Растолкуйте что я правильно понял а что нет.

double val=iCustom(NULL,0,"RegressionPolynomial",13,1,0);

...
Параметры индикатору передавать ВСЕ надо, сколько есть, не только первый, у вас их 6 должно быть. Причём передавать их обязательно в той же последовательности чтои в индикаторе прописана.
 
Retabs:

Растолкуйте что я правильно понял а что нет.

double val=iCustom(NULL,0,"RegressionPolynomial",13,1,0);

double - значит переменная val будет действительное число, содержащее дробную часть.

val - переменная которую мы назвали val

= - присваиваем значения переменной val

iCustom - Вызываем функцию которая наделит переменную числовым значением

( - маркер что именно отсюда будут перечисляться Параметры функции iCustom

NULL - функция iCustom будет вычислять переменную val с текущей валютной пары

0 - функция iCustom будет вычислять переменную val с текущего периода графика

"RegressionPolinomynal" - имя индикатора из которого функция iCustom будет вычислять переменную val

13 - input-параметр(числовое значение первого параметра, который отображается в окне свойств индикатора)

1 - Непонятно :( (пишут Индекс линии индикатора)

0 - Непонятно :( (пишут Индекс получаемого значения из индикаторного буфера)

) - маркер что именно досюда будут перечисляться Параметры функции iCustom

; - конец куска кода который отвечает за присваиванием значения переменной val

Используйте метод "научного тыка". Добавлю, что 13 - это из окна свойств индикатора, а если этих параметров много (в коде индикатора extern), то их можно через запятую передать из советника, который расчитает эти параметры. Можно и не передавать вообще. Можно передать некоторые такими же, а некоторые вычислить. Тут дело хозяйское. Индекс индикатора линии можно смотреть по присваиваемым индикатору массивам (в коде), а можно просчитать в окне данных, начиная с нуля (выше писал). Индекс получаемого значения - это отступить влево нужное количество тиков, если текущее значение не нужно, либо произвести какие либо опреации с данными индикатора в советнике (прошлыми и текущими, либо как то еще).. Ну а остальное, кроме val, вроде бы похоже на правду.
 
evillive:
Параметры индикатору передавать ВСЕ надо, сколько есть, не только первый, у вас их 6 должно быть. Причём передавать их обязательно в той же последовательности чтои в индикаторе прописана.

Спасибо. 6 Параметров. Конечная форма строчки кода приобретает вид double val=iCustom(NULL,0,"RegressionPolynomial",13,10000,55,5,2,0,1,0);

Параметры индикатору передавать ВСЕ надо...

Какому индикатору? Я понял что Снимаю Параметры(Внешние,Extern) с индикатора RegressionPolynomial, а передаю-функции iCostum для расчета переменной val

 
Retabs:

Спасибо. 6 Параметров. Конечная форма строчки кода приобретает вид double val=iCustom(NULL,0,"RegressionPolynomial",13,10000,55,5,2,0,1,0);

Параметры индикатору передавать ВСЕ надо...

Какому индикатору? Я понял что Снимаю Параметры(Внешние,Extern) с индикатора RegressionPolynomial, а передаю-функции iCostum для расчета переменной val

Создайте скрипт с выводом на экран значения val.

Методом подбора поймёте смысл функции iCustom.

P./S.: По неясным моментам наберите в поиске на сайте: iCustom и поразбирайте коды.


 
_new-rena:
Используйте метод "научного тыка". Добавлю, что 13 - это из окна свойств индикатора, а если этих параметров много (в коде индикатора extern), то их можно через запятую передать из советника, который расчитает эти параметры. Можно и не передавать вообще. Можно передать некоторые такими же, а некоторые вычислить. Тут дело хозяйское. Индекс индикатора линии можно смотреть по присваиваемым индикатору массивам (в коде), а можно просчитать в окне данных, начиная с нуля (выше писал). Индекс получаемого значения - это отступить вправо нужное количество тиков, если текущее значение не нужно, либо произвести какие либо опреации с данными индикатора в советнике (прошлыми и текущими, либо как то еще).. Ну а остальное, кроме val, вроде бы похоже на правду.


1. Спасибо. Да! Я использую метод "научного тыка" в познании кодировании советника. Но получаю от этого процесса познания ТАКОЕ удолетворение! О котором даже не мечтал при работе со справкой.

2. ...можно через запятую передать из советника, который расчитает эти параметры... - из какого советника если он только в процесе создания?

3. ...начиная с нуля (выше писал)... "1 - номер по порядку в том окне, которое я попросил тебя открыть (ты называешь "ряд чисел"). В данном случае - 1 - это 2-ой сверху вниз" - да. прочитал только пока я писал очередной пост, вы успели ответить, так что получилось с опозданием. Спасибо. Я обязательно читаю ВСЕ. Но все таки не понял что именно это "Индекс линии индикатора"

 
Retabs:


Но все таки не понял что именно это "Индекс линии индикатора"

Скрин окна данных положите. Разберем на примере.
 
Retabs:

Спасибо. 6 Параметров. Конечная форма строчки кода приобретает вид double val=iCustom(NULL,0,"RegressionPolynomial",13,10000,55,5,2,0,1,0);

Параметры индикатору передавать ВСЕ надо...

Какому индикатору? Я понял что Снимаю Параметры(Внешние,Extern) с индикатора RegressionPolynomial, а передаю-функции iCostum для расчета переменной val

Хорошо, щас пример приведу:
//В индикатор передаются параметры, инача называемые "внешние переменные":
//Вот эти параметры в коде индикатора:

extern int history = 10000; //1
extern int period  = 55;    //2
extern int signal  = 5;     //3
extern int degree  = 2;     //4
extern int price   = 0;     //5
extern bool drowArrow=true; //6

//В скрипте или советнике в котором наша iCustom никто не мешает такие же точно переменные завести, те же 6 строк вышеуказанных, а потом вызывая иКустом, просто вписывать их туда:

double Line=iCustom(NULL,0,"RegressionPolynomial", history , period , signal , degree , price , drowArrow , 0/*это первый буфер индикатора*/, 0);
double Signal=iCustom(NULL,0,"RegressionPolynomial", history , period , signal ,degree ,price , drowArrow , 1/*это второй буфер индикатора*/, 0);

//ЧТО ТУТ СЛОЖНО ПОНЯТЬ???
 
не обязательно передавать все параметры можно без параметров
 

Vladon:

не обязательно передавать все параметры можно без параметров


Можно. Но если захочется параметры подбирать в оптимизаторе - то надо. А захочется обязательно, по себе знаю )))
 

Прочитал и перепрочитал все предыдущие сообщения. Мнооого чего понял. Спасибо ВСЕМ за помощь и стимуляцию к познанию MQL4 через ваши полезные ответы. На данном этапе осталось разобраться если я все правильно понимаю. Я попытаюсь объяснить как я все вижу, и прошу поправить/дополнить меня где я не прав. Итак что я понял для себя:

1. Индикатор "RegressionPolynomial" рисует 2 линии. Значит у него есть 2 буфера. В которых при каждом тике записываются новые значения. А прошлые значения заносятся в архив.

2. Функцией iCostum мы можем эти значения присвоить нашим переменным.

3. Чтобы функция смогла работать ей надо указать Параметры, опираясь на которые она будет оперировать. А именно:

3a. С какой валютной пары оперировать. (NULL-с текущей)

3b. С какого периода графика оперировать. (0-с текущего)

3c. Имя индикатора с которым оперировать. (в моем случае RegressionPolynomial)

3d. Значения всех Imput(входных) параметров индикатора, в той очереди в которой они отображаются в окне свойств индикатора. (в моем

случае 10000,55,5,2,0)

3e. Индекс линии индикатора(порядковый номер линии индикатора в списке окна данных) с которой оперировать. (в моем случае если первая линия то 1,

если вторая то 2)

3f. Индекс получаемого значения из индикаторного буфера(порядковый номер значений буфера) с которым оперировать.

(0-с текущего значения буфера, 1-с прошлого значения буфера и.т.д)

4. После выполнения функции iCostum указанной заранее переменной присваивается числовое значения, равняющееся размером цены на указанный в

параметрах момент.

5. Сигнал пересечения линий индикатора рассчитывается исключительно только математическими формулами, ибо сам индикатор не может явно

указать этот момент.

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