Новая версия платформы MetaTrader 5 build 5800: Улучшенный торговый диалог и удобная работа с CSV в MetaEditor - страница 4
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Как новый бар может быть пустым?
Новый бар, это первый его тик!
Отрисовка тиков, это всего лишь пример для наглядности проблемы в момент нового бара, раньше такой проблемы не было.
Именно так, новый бар добавляется пустым в индикаторный буфер - там может быть мусор или ноль, если повезет.
У меня есть опыт написания индикаторов, с произвольным таймингом элементов - отличным от баров таймфрейма, на который наброшен индикатор. Безусловный сдвиг в вашем коде - это ошибка. При новом баре сдвиг делает система за вас.
Именно так, новый бар добавляется пустым в индикаторный буфер - там может быть мусор или ноль, если повезет.
Это и есть ошибка.
Повторюсь, это появилось давно, но раньше было корректное поведение.
В момент нового бара, никаких пустот не было.
Это и есть ошибка.
Повторюсь, это появилось давно, но раньше было корректное поведение.
В момент нового бара, никаких пустот не было.
Что ошибка - добавление нового бара? Это не ошибка. Это стандартное поведение. Всегда так было.
Что ошибка - добавление нового бара? Это не ошибка. Это стандартное поведение. Всегда так было.
Это ошибка!
Новый бар (rates_total - prev_calculated) == 1, это первый его тик! У которого есть значения на момент открытия.
Зачем добавлять в буфер пустой мусорный бар?
Так было не всегда!
Это и есть ошибка.
Повторюсь, это появилось давно, но раньше было корректное поведение.
В момент нового бара, никаких пустот не было.
Всегда так было и это не ошибка.
Вот, для примера индикатор написан в 2022 году и там , на новом баре просто не делается сдвиг.
Добавляется пустым в индикаторный буфер - там может быть мусор или ноль, если повезет.
Это ошибка!
Новый бар (rates_total - prev_calculated) == 1, это первый его тик! У которого есть значения на момент открытия.
Зачем добавлять в буфер пустой мусорный бар?
Так было не всегда!
Не мусорный бар, в баре всё есть, но вы то копируете свой же буфер, в котором на момент открытия нового бара происходит ресайз массива и в последнем индексе вашего буфера лежит мусор или ноль, если повезёт.
Затем выход из функции и передача управления.
Какой может быть мусор в новом последнем элементе?
Это явная ошибка поведения.
После авто-ресайза массива в последний индекс буфера кладётся крайнее его актуальное значение!
Затем выход из функции и передача управления.
Какой может быть мусор в новом последнем элементе?
Это явная ошибка поведения.
Красным - никогда так не было.
Нет актуального значения для нового элемента вашего индикаторного буфера! Неоткуда системе его взять.
Новый элемент непроинициализирован ничем, пока ваш код это не сделает. В МТ5 всегда так было. В МТ4 заполнялось нулем.
Нет актуального значения для нового элемента вашего индикаторного буфера! Неоткуда системе его взять.
Новый элемент непроинициализирован ничем, пока ваш код это не сделает. В МТ5 всегда так было. В МТ4 заполнялось нулем.
У него не в этом проблема. Он просто не видит, что при увеличении индикаторного буфера происходит сдвиг не на один элемент, а на два.