Counted_bars=IndicatorCounted(); // Количество просчитанных баров
i=100-Counted_bars-1; // Индекс первого непосчитанного (ограничение 100 баров)
IndicatorCounted() при первом вызове возвращает 0 при всех последующих вызовах возвращает количество баров имеющихся на графике. У вас от 100 отнималось количество баров, получалось отрицательное число.
потому и пишут обычно i=Bars-counted-1; То есть при первом запуске в counted 0 и потому просчитываем все бары, при последующих в counted количество баров как и в Bars и отнимаем 1 остаётся 1 бар который и пересчитываем.
i=MathMax(1,100-Counted_bars); // Индекс первого непосчитанного (ограничение 100 баров)
А вот это хороший пример, если нужно просчитать только 100 последних баров, не просчитывая всю историю целиком. При первом запуске у нас функция MathMax вернёт 100 так как в Counted_bars 0 а при всех последующих запусках будет возвращать 1.
PozitiF: А вот это хороший пример, если нужно просчитать только 100 последних баров, не просчитывая всю историю целиком. При первом запуске у нас функция MathMax вернёт 100 так как в Counted_bars 0 а при всех последующих запусках будет возвращать 1.
Не совсем так. Я говорил, что это костыль. Пусть индикатор висит на минутках, и 5 минут не было интернета. Что произойдет? По идее, он должен пересчитать шесть баров, а не два.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
...
Код идникатора:
Подскажите почему не происходит открытия сделок? что не так с индикатором?Поменяйте строку в индикаторе
Это заплатка, но ошибка в этой строке.
Поменяйте строку в индикаторе
Это заплатка, но ошибка в этой строке.
Заработало! в
Огромное спасибо!
Можете пояснить суть ошибки, я не смог самостоятельно понять :(
Заработало! в
Огромное спасибо!
Можете пояснить суть ошибки, я не смог самостоятельно понять :(
IndicatorCounted() при первом вызове возвращает 0 при всех последующих вызовах возвращает количество баров имеющихся на графике. У вас от 100 отнималось количество баров, получалось отрицательное число.
потому и пишут обычно i=Bars-counted-1; То есть при первом запуске в counted 0 и потому просчитываем все бары, при последующих в counted количество баров как и в Bars и отнимаем 1 остаётся 1 бар который и пересчитываем.
А вот это хороший пример, если нужно просчитать только 100 последних баров, не просчитывая всю историю целиком. При первом запуске у нас функция MathMax вернёт 100 так как в Counted_bars 0 а при всех последующих запусках будет возвращать 1.