Для начала, смотрите в двух индикаторах есть такое:
int сounted_bars=IndicatorCounted();
if (сounted_bars==0) int limit=Bars-1;
if (сounted_bars>0) limit=Bars-сounted_bars-1;
......
for(int i=limit;i>=0;i--)
{
То что показал выше надо поправить, и попробуйте такой вариант из приципа, у меня гистограмма на нулевом баре не исчезает. Понаблюдайте, комплекс индикаторов сильно перемудрен, попробовал решить универсально. Проверьте.
Figar0: То что показал выше надо поправить, и попробуйте такой вариант из приципа, у меня гистограмма на нулевом баре не исчезает. Понаблюдайте, комплекс индикаторов сильно перемудрен, попробовал решить универсально. Проверьте.
В принципе вот стандартная универсальная конструкция прям из справки для пересчета индикатора на нулевом баре:
int limit;
int counted_bars=IndicatorCounted();
//---- последний посчитанный бар будет пересчитанif(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
//---- основной циклfor(int i=0; i<limit; i++)
Т.е. там где у Вас "-1", должен быть "+1". Если надо, пересчитывать занова для большего колличества баров, например, для перерисовывающихся индикаторов пусть на depth баров :
int limit;
int counted_bars=IndicatorCounted();
//---- последние d e p t h бар ов будут пересчитан ыif(counted_bars>depth) counted_bars=counted_bars - depth;
limit=Bars-counted_bars;
//---- основной циклfor(int i=0; i<limit; i++)
У вас же же не пойми что, зачастую бессмысленные конструкции типа:
Для начала, смотрите в двух индикаторах есть такое:
Ничего глаз не режет? В объявлении локальных переменных?Для начала, смотрите в двух индикаторах есть такое:
Ничего глаз не режет? В объявлении локальных переменных?Спасибо большое, что принимаете участие в обсуждении моего вопроса.
У меня знаний и опыта не так много, поэтому - ничего. Подскажите, пожалуйста.
Рассуждаю так:
сounted_bars - целочисленная переменная, int.
int limit, int i - аналогично.
Спасибо большое, что принимаете участие в обсуждении моего вопроса.
У меня знаний и опыта не так много, поэтому - ничего. Подскажите, пожалуйста.
Рассуждаю так:
сounted_bars - целочисленная переменная, int.
int limit, int i - аналогично.
У вас объявление одной локальной переменной стоит за условием.
Если counted_bar не равно нулю? Что будет с переменной limit?То что показал выше надо поправить, и попробуйте такой вариант из приципа, у меня гистограмма на нулевом баре не исчезает. Понаблюдайте, комплекс индикаторов сильно перемудрен, попробовал решить универсально. Проверьте.
Я изменила объявление переменной и внесла рекомендованные изменения, т.е
Но данные изменения привели к тому, что в работу не принимается 2 последних бара. Извините, возможно, что-то не так сделала.
Посмотрю на внесённые изменения на быстром т.ф. М1
Вот такая получается картинка, если не перезагружать индикатор.
.
и естественно далее - пусто...
Должно быть так....
Попробуйте сделать так:
Посмотерел на минутном ТФ у меня все работает правильно насколько понимаю как он должен работать.Правда я смотрю только индикатор Proboy_Order_F5_.mq4
В принципе вот стандартная универсальная конструкция прям из справки для пересчета индикатора на нулевом баре:
Т.е. там где у Вас "-1", должен быть "+1". Если надо, пересчитывать занова для большего колличества баров, например, для перерисовывающихся индикаторов пусть на depth баров :
У вас же же не пойми что, зачастую бессмысленные конструкции типа:
Почему в Bars-сounted_bars-1. Почему минус 1?