Что не так с рисованием в мт5? Почему такое запаздывание возникает при перемещении графика? В мт4 идеально, там складывается впечатление, что отрисовка работает в разы лучше и быстрее.
2 одинаковых по коду и реализации индикатора, в мт4 классы CCanvas взят от МТ5.
Слева МТ4, справа МТ5.
Код к сожалению клиентского продукта предоставить не могу, но могу отправить в поддержку.
Что не так с рисованием в мт5? Почему такое запаздывание возникает при перемещении графика? В мт4 идеально, там складывается впечатление, что отрисовка работает в разы лучше и быстрее.
2 одинаковых по коду и реализации индикатора, в мт4 классы CCanvas взят от МТ5.
Слева МТ4, справа МТ5.
Код к сожалению клиентского продукта предоставить не могу, но могу отправить в поддержку.
В MetaTrader 5 ChartRedraw Вам нужно делать самостоятельно. В МТ4 - он происходит постоянно без нашего ведома.
Для чего самостоятельно? А чтобы после изменения каждого объекта не перерисовывать чарт. Только после изменения последнего объекта нужно сделать единственный ChartRedraw
Просто для проверки - добавьте на график комментарий, меняющийся на каждом изменении графика в OnChartEvent, и сразу увидите как тормоза прекратятся.
Причина давно известна (тормознутость chartget и XY функций ), но Ренат сказал, что менять ничего не будут.
изучу, но чаще всего без этих функций никак ( мне нужно преобразование в координаты и обратно для правильного рисования объектов.
изучу, но чаще всего без этих функций никак ( мне нужно преобразование в координаты и обратно для правильного рисования объектов.
для этого этот класс и создавал. ChartGet функции работают только в момент CHARTEVENT_CHART_CHANGE. Когда они обрабатываются пачкой, то это происходит быстрее в сумме. Дальше все пересчеты цены и времени в координаты и обратно расчитываются на основе ранее полученных параметров чарта, что происходит примерно в 100000 раз быстрее (без преувеличения) в сравнении с XY и ChartGet функциями.
В результате по факту канвас в МТ5 намного быстрее МТ4, тем более в МТ4 есть большая проблема с заморозкой OnChartEvent в случае расчета из него более ~10 миллисекунд, что приходится решать через таймер.
В MetaTrader 5 ChartRedraw Вам нужно делать самостоятельно. В МТ4 - он происходит постоянно без нашего ведома.
Для чего самостоятельно? А чтобы после изменения каждого объекта не перерисовывать чарт. Только после изменения последнего объекта нужно сделать единственный ChartRedraw
Просто для проверки - добавьте на график комментарий, меняющийся на каждом изменении графика в OnChartEvent, и сразу увидите как тормоза прекратятся.
В канвасе в функции Update() уже есть ChartRedraw(), в коде топикстартера Update() есть, значит ChartRedraw() тоже задействован.
Причина в другом.
Где то лишние расчёты. Причём очень много лишних расчётов.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Что не так с рисованием в мт5? Почему такое запаздывание возникает при перемещении графика? В мт4 идеально, там складывается впечатление, что отрисовка работает в разы лучше и быстрее.
2 одинаковых по коду и реализации индикатора, в мт4 классы CCanvas взят от МТ5.
Слева МТ4, справа МТ5.
Код к сожалению клиентского продукта предоставить не могу, но могу отправить в поддержку.