if(ExtMapBuffer3[i+k] <= ExtMapBuffer5[i+k])//это условие при неправильной работа скорее всего выполняется постоянно
StartUP=1; //почему только непонятно. ExtMapBuffer3,5,6 считаются в одном цикле...<==
А лучше весь код покажи
хм.. странные вещи просиходят.. переписал так
if(i<(limit-BarsToCountX)) { if(ExtMapBuffer3[i]>=ExtMapBuffer6[i])//BUY { StartUP=0; for(k=1; k<=BarsToCountX; k++) if(ExtMapBuffer3[i+k] <= ExtMapBuffer5[i+k]) StartUP=1; Print("i+k=",i+k," , ExtMapBuffer5=",ExtMapBuffer5[i+k]); }// ...............
лог принта:
21:25:35 1_Jedi_MBA EURUSD,M5: deinitialized
21:25:35 1_Jedi_MBA EURUSD,M5: uninit reason 2 <- после перекомпиляции прикрепленного индикатора, все ОК
21:25:35 1_Jedi_MBA EURUSD,M5: loaded successfully
21:25:35 1_Jedi_MBA EURUSD,M5: initialized
21:25:35 1_Jedi_MBA EURUSD,M5: i+k=21, ExtMapBuffer5=18.4698
21:25:35 1_Jedi_MBA EURUSD,M5: i+k=22, ExtMapBuffer5=18.4698
21:25:35 1_Jedi_MBA EURUSD,M5: i+k=23, ExtMapBuffer5=18.4698
21:25:35 1_Jedi_MBA EURUSD,M5: i+k=24, ExtMapBuffer5=18.4698
21:25:35 1_Jedi_MBA EURUSD,M5: i+k=25, ExtMapBuffer5=18.4698
21:25:35 1_Jedi_MBA EURUSD,M5: i+k=26, ExtMapBuffer5=18.4698
21:25:35 1_Jedi_MBA EURUSD,M5: i+k=31, ExtMapBuffer5=18.4698
21:25:35 1_Jedi_MBA EURUSD,M5: i+k=32, ExtMapBuffer5=18.4698
21:25:35 1_Jedi_MBA EURUSD,M5: i+k=42, ExtMapBuffer5=18.4698
21:25:35 1_Jedi_MBA EURUSD,M5: i+k=43, ExtMapBuffer5=17.1895
21:25:35 1_Jedi_MBA EURUSD,M5: i+k=44, ExtMapBuffer5=17.1895
21:25:35 1_Jedi_MBA EURUSD,M5: i+k=45, ExtMapBuffer5=17.1895
21:25:35 1_Jedi_MBA EURUSD,M5: i+k=46, ExtMapBuffer5=17.1895
21:25:35 1_Jedi_MBA EURUSD,M5: i+k=47, ExtMapBuffer5=17.1895
21:25:35 1_Jedi_MBA EURUSD,M5: i+k=48, ExtMapBuffer5=17.1895
21:25:35 1_Jedi_MBA EURUSD,M5: i+k=49, ExtMapBuffer5=17.1895
21:26:00 1_Jedi_MBA EURUSD,M5: deinitialized
21:26:00 1_Jedi_MBA EURUSD,M5: uninit reason 5 <- после вызова свойств(параметры не менял), значения переполненные хотя индексы те-же.. ((
21:26:00 1_Jedi_MBA EURUSD,M5: initialized
21:26:00 1_Jedi_MBA EURUSD,M5: i+k=21, ExtMapBuffer5=2147483647
21:26:00 1_Jedi_MBA EURUSD,M5: i+k=22, ExtMapBuffer5=2147483647
21:26:00 1_Jedi_MBA EURUSD,M5: i+k=23, ExtMapBuffer5=2147483647
21:26:00 1_Jedi_MBA EURUSD,M5: i+k=24, ExtMapBuffer5=2147483647
21:26:00 1_Jedi_MBA EURUSD,M5: i+k=25, ExtMapBuffer5=2147483647
21:26:00 1_Jedi_MBA EURUSD,M5: i+k=26, ExtMapBuffer5=2147483647
21:26:00 1_Jedi_MBA EURUSD,M5: i+k=31, ExtMapBuffer5=2147483647
21:26:00 1_Jedi_MBA EURUSD,M5: i+k=32, ExtMapBuffer5=2147483647
21:26:00 1_Jedi_MBA EURUSD,M5: i+k=42, ExtMapBuffer5=2147483647
21:26:00 1_Jedi_MBA EURUSD,M5: i+k=43, ExtMapBuffer5=2147483647
21:26:00 1_Jedi_MBA EURUSD,M5: i+k=44, ExtMapBuffer5=2147483647
21:26:00 1_Jedi_MBA EURUSD,M5: i+k=45, ExtMapBuffer5=2147483647
21:26:00 1_Jedi_MBA EURUSD,M5: i+k=46, ExtMapBuffer5=2147483647
21:26:00 1_Jedi_MBA EURUSD,M5: i+k=47, ExtMapBuffer5=2147483647
21:26:00 1_Jedi_MBA EURUSD,M5: i+k=48, ExtMapBuffer5=2147483647
21:26:00 1_Jedi_MBA EURUSD,M5: i+k=49, ExtMapBuffer5=2147483647
21:26:00 1_Jedi_MBA EURUSD,M5: deinitialized
21:26:00 1_Jedi_MBA EURUSD,M5: uninit reason 1
21:26:00 1_Jedi_MBA EURUSD,M5: removed
Попробуй разделить циклы
if(ExtMapBuffer3[i+k] <= ExtMapBuffer5[i+k])//это условие при неправильной работа скорее всего выполняется постоянно
StartUP=1; //почему только непонятно. ExtMapBuffer3,5,6 считаются в одном цикле...<==
А лучше весь код покажи
разделить? так наоборот если в одном то значения из разных буфферов с одним индексом будут адекватными.. И проблема не в этом.. А непонятно в чем..
Т.к. не трогая код то работает то нет..
2147483647 <= вот ключевая фигура этого бага! тогда тебе сюда => https://forum.mql4.com/ru/search/2147483647
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Тоесть при изменении свойств, удаления и заново прикреплению к графику не работает как надо - рисует все стрелки BUY..
При прикрепленном, после перекомпиляции работает как надо(бай и селл указывает верно).
Заранее спасибо )