помогите пожалуйста обнаружить графический обьект

 
пытаюсь добить советника работающего по сигналам (стрелкам) индикатора в отдельном окне. помогите пожалуйста на индикаторе обнаружить стрелку на 1-ом баре.Если я правильно понимаю, то надо сделать цикл перебора обьектов с именем например "bearishDivergence" из соответствующего массива и выбрать ближайший по времени, а потом определить разницу во времени между текущим и временем установки стрелки.Если разница меньше Period() то это то что надо.Только у меня не получается. может я ошибаюсь? заранее спасибо. индик прикреплен.
Файлы:
 
locol91 >>:
пытаюсь добить советника работающего по сигналам (стрелкам) индикатора в отдельном окне. помогите пожалуйста на индикаторе обнаружить стрелку на 1-ом баре.Если я правильно понимаю, то надо сделать цикл перебора обьектов с именем например "bearishDivergence" из соответствующего массива и выбрать ближайший по времени, а потом определить разницу во времени между текущим и временем установки стрелки.Если разница меньше Period() то это то что надо.Только у меня не получается. может я ошибаюсь? заранее спасибо. индик прикреплен.

Здесь стрелки не являются графическими объектами, а рисуются из буферов индикатора

double bullishDivergence[];
double bearishDivergence[];

когда нет стрелки возвращается число: 2147483647 когда стоит стрелка возвращается уровень на котором стоит стрелка.

Если не вникать в код, можно попробовать так:

    if(bullishDivergence[1]!=2147483647)
       {
        //...........
       }
    if(bearishDivergence[1]!=2147483647)
       {
        //...........
       }




 
    1. спасибо. поясните пожалуйста что означает это число 2147483647 (какой-то код стрелки или еще что-то) и как в таком случае инициализировать индикатор и произвести необходимые операции по определению наличия стрелки?
      double bullishDivergence[1] = iCustom (NULL,0,"FX5_Divergence_V2.1",9,21,5,2,1); 
      if(bullishDivergence[1]!=2147483647) 
      { 
      //...........
      } 
      double bearishDivergence[1] = iCustom (NULL,0,"FX5_Divergence_V2.1",9,21,5,3,1);
      if(bearishDivergence[1]!=2147483647) 
      { 
      //........... 
      } 
      примерно так да?
       
      locol91 >>:
      спасибо. поясните пожалуйста что означает это число 2147483647 (какой-то код стрелки или еще что-то)?

      По-моему называется машинный ноль, или как-то так. В поиске наберите это число, там много чего написано про него.



       
      locol91 >>:
        1. примерно так да?

          Обращение из советника примерно так:

          double bullishDivergence=iCustom(Symbol(),0,"FX5_Divergence_V2.1",2,1); 
          if(bullishDivergence!=2147483647)
           {
            //.........
           }
          

          если будете передавать внешние параметры индикатора, то пишите их все по порядку их там 7 штук, а не 3.

          P.S. Вот Ваш случай: https://www.mql5.com/ru/forum/108598 в поиске нашёл :).



           
          вроде сделал. скомпилил без ошибок. в тестере работает чрезвычайно медленно. А после стопа тестирования все ценовое поле становиться в очень частую горизонтальную черточку. Практически белое. подскажите пожалуйста почему так происходит?.
           
          У меня так бывает, если в советнике в iCustom неправильно вызываются параметры. При попытке тестера показать индикатор после стопа происходит ошибка.
           
          locol91 >>:
            1. спасибо. поясните пожалуйста что означает это число 2147483647 (какой-то код стрелки или еще что-то) и как в таком случае инициализировать индикатор и произвести необходимые операции по определению наличия стрелки?

              В чистом виде внутренние константы лучше не использовать. Чревато.

              Лучше так:

              double bullishDivergence[1] = iCustom (NULL,0,"FX5_Divergence_V2.1",9,21,5,2,1); 
              if(bullishDivergence[1] != EMPTY_VALUE)
              { 
              //...........
              } 
              double bearishDivergence[1] = iCustom (NULL,0,"FX5_Divergence_V2.1",9,21,5,3,1);
              if(bearishDivergence[1] != EMPTY_VALUE)
              { 
              //........... 
              } 
              В своем коде ценовые индюки я заодно на 0 проверяю. На всякие пожарные :) .
               
              TheXpert писал(а) >>

              В чистом виде внутренние константы лучше не использовать. Чревато.

              Лучше так:

              В своем коде ценовые индюки я заодно на 0 проверяю. На всякие пожарные :) .

              granit77 писал(а) >>
              У меня так бывает, если в советнике в iCustom неправильно вызываются параметры. При попытке тестера показать индикатор после стопа происходит ошибка.

              Спасибо. Вроде все рисуется. Только теперь выдает сообщение о ошибке в журнале
              2008.11.21 09:09:50 TestGenerator: unmatched data error (volume limit 387 at 2008.06.30 17:00 exceeded)
              2008.11.21 09:09:50 TestGenerator: unmatched data error (low value 1.9888 at 2008.06.30 17:14 and price 1.9887 mismatched)
              2008.11.21 09:09:50 TestGenerator: unmatched data error (high value 1.9724 at 2008.06.19 21:45 is not reached from the least timeframe, high price 1.9723 mismatches)
              2008.11.21 09:09:51 TestGenerator: unmatched data error (low value 1.8415 at 2008.09.26 21:15 is not reached from the least timeframe, low price 1.8417 mismatches)
              2008.11.21 09:09:51 TestGenerator: unmatched data error (high value 1.8423 at 2008.09.26 21:15 is not reached from the least timeframe, high price 1.8422 mismatches)
              
              Это почему так? Несоответствие цен и предела обьема с чем? с собственными записями об этих данных?
               
              Наверное некогда людям.
               
              locol91 >>:
              Наверное некогда людям.

              Вообще-то людям всегда некогда заниматься чужими делами, все предпочитают свои. Здесь не справка по mql, здесь помощь тем, кто искал в учебнике,

              поиском по форуму, перевел сообщения об ошибке, проверил его по справке, еще раз провел поиск по форуму.. Если и после этого не срослось - Вам ответят.

              Например, я ответил Вам потому, что посчитал ошибку отображения индикатора после окончания тестирования достаточно редкой и не описанной в справке.

              В данном конкретном случае достаточно провести поиск по форуму сочетания "unmatched data error" и Вы получите 40 ответов от коллективного разума.