Работа кода в нулевом баре

 

Доброго дня!

Создаю ветку для аккумулирования информации и поиску новых решений по важному, на мой взгляд, вопросу

работа кода в нулевом баре в индикаторах и экспертах

На форуме нашла только https://www.mql5.com/ru/forum/131853/page4#504607

Индикатор адекватно работает на истории, но на нулевом баре столкнулась со следующими проблемами:

1. Индикатор не берёт в работу нулевой бар.

Каковы могут быть причины?

2. В коде индикатора используется счётчик баров (время жизни сигнала, например). Только в нулевом баре поступают тики и естественно счётчик пересчитывается (переполняется) на каждом тике. После этого основные переменные обнуляются и индикатор отображает не правильно (т.е. вообще не отображает). Как обойти данное обстоятельство? Каковы могут быть варианта кода?

3. Индикатор не пересчитывается при появлении новых баров

4. Возможно, есть и другие особенности работы с нулевым баром, с которыми я ещё не встречалась - дополняйте .

Если есть подобная ветка, в которой обсуждались данные вопросы, киньте ссылку, поставлю там вопрос, а тему можно удалить (дабы не хломить и без того перегруженный новыми темами форум)

 

Задавала этот вопрос и на данный момент есть следующие ответы

continue, break, return - если данные функции прерывают работу цикла. На нулевом баре это может привести к тому, что код будет ожидать прихода нового бара (нулевой не будет принят в работу)

ps: у меня в цикле нет данных функций, т.е. проблема не решена.

 
LOA:

1. Индикатор не берёт в работу нулевой бар.

Каковы могут быть причины?


По любому причины в коде, а чем они вызваны кто кроме Вас может знать? Может индикатор подобный индикатору поиска фракталов и не должен брать в расчет нулевой бар?

Да и на все ваши остальные вопросы без кода отвечать смысла не имеет. С нулевым баром можно реализовать фактически любую работу главное самому понимать как индикатор должен работать на этом баре.

 

i+1 - тоже приводит к тому, что индикатор не принимает в работу нулевой бар.

ps: в коде моего индикатора не используется i+1

 
LOA:

i+1 - тоже приводит к тому, что индикатор не принимает в работу нулевой бар.

ps: в коде моего индикатора не используется i+1


Ну i+1 это моветон и признак плохого понимания основ кодинга. Замените i+1 на j+1. Вдруг заработает?)
 
Figar0:


С нулевым баром можно реализовать фактически любую работу

Я не сомневаюсь, что у профи (специальное образование+ опыт) данный вопрос вызывает какие-то затруднения. Ваши ответы будут полезны новичкам, которые столкнуться с подобными проблемами.

Чтобы не быть голословной и обсуждать на примере, код, конечно, размещу.

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

 

В перерисовывающихся индикаторах нужно дать возможность подглядывать историю. Для этого два оператора вычисления переменной limit заменить на следующий:

    int limit=MathMin(Bars-1, Bars-сounted_bars+T_Life_ORD+1);
 

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

Нужно фиксировать время пробоя, потом просто искать по времени номер бара

Vinin 21.12.2011 17:28
У меня в ЗЗ есть пример обращения со временем https://www.mql5.com/ru/code/9794
 

Размещаю код индикатора.

Это основной, с которым проблемы.

Файлы:
 

Далее индикаторы, к которым из кода основного идёт обращение.

Код индикатора входе обсуждения будет изменяться согласно рекомендациям и размещаться далее с изменениями.

 
Figar0:

главное самому понимать как индикатор должен работать на этом баре.

Индикатор на нулевом баре должен работать следующим образом:

1. Не обнуляться с появлением новых тиков

2. Автоматически пересчитываться при появлении новых баров

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