Работа с индикатором

 

Ещё раз прошу помощи.

Ести индикатор MA_Crossover_Signal пытаюсь пицыпить для проверки.

По правильному появилась стрелка сработало условие, но получается, что срабатывает на каждом баре в обе стороны

Вот пример:

       ted=iCustom(NULL,0,"MA_Crossover_Signal",1,0);
       ned=iCustom(NULL,0,"MA_Crossover_Signal",3,0);
              
       if(ted>0)
         {
         Alert("Появилась стрелка +2");
                   }
     
     else
     {
       if(ned>0)
         {
          Alert("Появилась стрелка -2");

         }
      }
 

Индикатора не видел, но попробуйте сравнивать на !=2147483647, а не >0. И проверьте правильность выбора номера буфера.

 

Правильность проверил, только вместо 1;3 надо 0;1 срабатывает на стрелки, но на каждом баре +-, +-.

Я поставил !=0.

Вот сам индикатор.

Файлы:
 
Что мой вопрос неразрешим чмили?
 
Попробуйте на первом баре, а не на нулевом.
 

Начнем с того, что вы совсем неправильно вызываете iCustom. У вас в индикаторе ЧЕТЫРЕ внешних параметра. А при Вашем вызове вы их нигде не указываете. Во-вторых буфера всего 2. тогда откуда появилась тройка?

Почитайте внимательно документацию. и всё получится. https://docs.mql4.com/ru/indicators/iCustom

P.S.

А вообще, судя по всем вашим поднятым темам форума, вы новичек, но ОЧЧЧЕНЬ ленивый.

ЧИТАЙТЕ ДОКУМЕНТАЦИЮ! там есть ответы на ВСЕ ВАШИ вопросы.

 

Подскажите как правильно. Так как написано в помощи я делал резулитат тот-же.

 
double iCustom(string  symbol, int  timeframe, string  name, ..., int  mode, int  shift)
Расчет указанного пользовательского индикатора. Пользовательский индикатор должен быть скомпилирован (файл с расширением EX4) и находиться в директории каталог_терминала\experts\indicators.
Параметры:
symbol  -  Символьное имя инструмента, на данных которого будет вычисляться индикатор. NULL означает текущий символ.
timeframe  -  Период. Может быть одним из периодов графика. 0 означает период текущего графика.
name  -  Имя пользовательского индикатора.
...  -  

Список параметров (при необходимости). Передаваемые параметры должны соответствовать порядку объявления и типу внешних (extern) переменных пользовательского индикатора.

mode  -  

Индекс линии индикатора. Может быть от 0 до 7 и должен соответствовать индексу, используемому одной из функций SetIndexBuffer.

shift  -  Индекс получаемого значения из индикаторного буфера (сдвиг относительно текущего бара на указанное количество периодов назад).
Пример:
  double val=iCustom(NULL, 0, "MA_Crossover_Signal",1,13,1,25,0,0);
 
Это я делал причём сразу. Если это подцепить к советнику то получится, что на каждом баре происходит покупка и продажа сразу,
 

Сказали же сравнивать на !=2147483647

Вот тот же индикатор, только все нули кроме стрелочек.

Print(iCustom( Symbol(), 0, "MA_Crossover_Signal", FasterMode, FasterMA, SlowerMode, SlowerMA, 0, 0) - в эксперте всё нормально выводится...

Файлы:
 
sergeev:

Начнем с того, что вы совсем неправильно вызываете iCustom. У вас в индикаторе ЧЕТЫРЕ внешних параметра. А при Вашем вызове вы их нигде не указываете. Во-вторых буфера всего 2. тогда откуда появилась тройка?

Почитайте внимательно документацию. и всё получится. https://docs.mql4.com/ru/indicators/iCustom

P.S.

А вообще, судя по всем вашим поднятым темам форума, вы новичек, но ОЧЧЧЕНЬ ленивый.

ЧИТАЙТЕ ДОКУМЕНТАЦИЮ! там есть ответы на ВСЕ ВАШИ вопросы.

Внешнии параметры можно и не указывать, если устраивают те, что забиты в индикаторе. Я проверял.

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