Почему происходит мерцание индикаторов (линий, стрелок, гистограмм) в биржевом терминале MT5? - страница 6
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Выше Вы предлагали аналогичное решение - вставить принт в функцию OnCalculate(), добавил, ничего неожиданного в журнале не появилось, идет нормальный процесс поступления и обработки поступления новых баров. Счетчики не сбрасывается, а моргание случаются.
Мысль возникла.
Полный пересчет (и перерисовка) происходит, если prev_calculated = 0. Попробуйте вставить в начало ОнКалкулейт принт на этот случай и посмотреть, появляются ли принты при мигании.
Если да, то нужно выяснять, из-за чего терминал сбрасывает счетчик в 0 (и можно об этом написать в сервис-деск).
Если нет, то это тем более глюк и можно в сервис-деск отправить простой тестовый индикатор, условия для воспроизведения и короткое видео с демонстрацией.
Короткая предыстория:
Когда-то я пытался переписать индикатор собирающий тики вверх и вниз раздельно в режиме реального времени с mql4 на mql5, но ничего не получилось по той причине, что индикатор периодически сбрасывал уже накопленные данные. По этому вопросу общался с СД и они убедили меня что сброс идёт от того что prev_calculated сбрасывается в 0 и происходит пересчёт всей истории, а сброс происходит по причине потери связи с сервером.
Проведённые вчера эксперименты:
В первую очередь поставил Print() по условию... Не дождался, начал искусственно создавать потерю связи. Print() выполняется, но при этом индикатор не моргает.
ПКМ по графику и из контекстного меню "Обновить" тоже обнуляет prev_calculated, но индикатор не моргает. Решил посмотреть как влияет ChartRedraw на пересчёт индикатора, но результат нулевой... Никак не влияет, ни вписанный в сам индикатор, ни параллельно работающий индикатор с вызовом ChartRedraw.
Потом пытался найти чем можно заменить prev_calculated. Если вызывается какой либо технический индикатор, то prev_calculated можно заменить на BarsCalculated(handle), но если нет... не нашёл. В случае такой замены при обнулении prev_calculated индикатор не пересчитывается и не теряет своих расчётов.
В общем ничего путного найти не смог...
Бредовое предположение:
Не может быть так что теряется несколько тиков, потом с некоторым запозданием подгружаются и в этот момент происходит подмигивание?
Этот гистограмный биржевой индикатор на основе тиков у кого-нибудь мерцает?
Мне удалось увидеть постоянное мерцание индикатора всего один раз (на открытии рынка) и только в панели CTRL+D, сами гистограммы не показали мерцания (возможно, из-за отсутствия GPU). Воспроизвести повторно для записи видео не получилось.
Биржевой эффект должен наблюдаться на быстром рынке. Надо дождаться, когда раскочегарится биржа, тогда, скорее всего, получится записать мерцание. Либо же предлагаю поставить терминал на постоянную запись нескольких часов. А затем вырезать кусок, где мерцание особенно заметно.
Вот и я прихожу к такому же заключению. Скорее всего, это внутренние дела, которые они не будут афишировать, и мы об истинных причинах вообще никогда не узнаем. А свое отношение к этому вопросу разработчики неявно, но высказали, так ни разу и не появившись в этой ветке. Хотя могли бы внести ясность...
Индикатор ЗЗ из поставки пропал в оффлайне на пару секунд - так что дело не в тиках.
Выше Вы предлагали аналогичное решение - вставить принт в функцию OnCalculate(), добавил, ничего неожиданного в журнале не появилось, идет нормальный процесс поступления и обработки поступления новых баров. Счетчики не сбрасывается, а моргание случаются.
Я не читал предыдущие страницы, вам ответили на вопрос? Если нет то вот вам решение, попробуйте увеличьте количество буферов, у вас неправильное количество стоит, поэтому мигает.
Я не читал предыдущие страницы, вам ответили на вопрос? Если нет то вот вам решение, попробуйте увеличьте количество буферов, у вас неправильное количество стоит, поэтому мигает.
Почему Вы считаете, что "неправильное количество буферов стоит, поэтому мигает"? Если я использую 2 буфера и 2 массива, то я и укажу соответственно
Почему я должен указывать кол-во буферов больше, чем мне необходимо, т.е. больше двух?
Почему Вы считаете, что "неправильное количество буферов стоит, поэтому мигает"? Если я использую 2 буфера и 2 массива, то я и укажу соответственно
Почему я должен указывать кол-во буферов больше, чем мне необходимо, т.е. больше двух?
А, если они соответствуют, то не надо изменять.