![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Как по-человечески ограничить частоту обновления канваса в визуализаторе?
Чтобы на медленной скорости картинка обновлялась реалтайм, а на быстрой не тормозила тест?
Сейчас действительно канвас (если обновляется на каждом тике) тормозит всю визуализацию (профилирование показывает 80-90% времени на отрисовку). Я извернулся настраиваемой паузой в секундах, но это костыль, ограничивающий функциональность (картинка обновляется редко даже на медленной скорости).
К чему привязаться, чтобы не обновлять слишком часто? GetMicroseconds?
Какие функции пропускать?
Андрей я уже писал об этом вот здесь больше года назад.
получается вполне сносно.
![](https://c.mql5.com/3/350/ZZP__1.gif)
Вот видео в реальном времени (всего два канваса):
только нужно добавить, что в тестере не работает событие CHARTEVENT_CHART_CHANGE,
поэтому я включаю в блок формирования канваса следующее (при использовании iCanvas):
А вот часть кода в OnCalculate из индикатора, который на гифкe:
невооруженным взглядом видно, что канвас значительно тормознутее
в тестере МТ5, таймер работает, можно поставить на 60 сек и будет обновляться раз в минуту по тестерному времени)
Про костыль с паузой я написал, он не подходит.
Андрей я уже писал об этом вот здесь больше года назад.
получается вполне сносно.
Вот видео в реальном времени (всего два канваса):
Выглядит медленновато, как для максимальной скорости.
Спасибо, попробую через GetTickCount!
Выглядит медленновато, как для максимальной скорости.
Спасибо, попробую через GetTickCount!
Нет это не максимальная. Там очень чувствительно перед максимальным.
![](https://c.mql5.com/3/350/ZZP3.gif)
Вот максимальная:
Выглядит медленновато, как для максимальной скорости.
Спасибо, попробую через GetTickCount!
Так же, чтобы не было смещений по отношению к самому графику, надо бы попробовать поэкспериментировать с OBJ_BITMAP, а не с OBJ_BITMAP_LABEL. Чтобы привязка была ко времени и цене, а не к координатам XY.
Все хочу попробовать, но никак руки не доходят. В этом случае нужно делать канвас больше размера окна и сильно логику управления менять. Возможно будет сильный выйгрыш по скорости, из-за того, что не нужно перерисовывать весь канвас, а только меньшую часть, если масштаб по вертикали не меняется. Во всяком случае не будет резать глаза разбалансировка канваса с основным графиком при быстрой движухи.
Нет это не максимальная. Там очень чувствительно перед максимальным.
Вот максимальная:
Это "все тики"?! Если да, то круто. Проверю.
Так же, чтобы не было смещений по отношению к самому графику, надо бы попробовать поэкспериментировать с OBJ_BITMAP, а не с OBJ_BITMAP_LABEL. Чтобы привязка была ко времени и цене, а не к координатам XY.
Все хочу попробовать, но никак руки не доходят. В этом случае нужно делать канвас больше размера окна и сильно логику управления менять. Возможно будет выйгрыш по скорости. Во всяком случае не будет резать глаза разбалансировка канваса с основным графиком при быстрой движухи.
У меня обычная панелька. Нет привязки к чарту.
У меня обычная панелька. Нет привязки к чарту.
а, ну тогда это вообще норм.
У меня же тоже на гифке один канвас это панелька, и она меньше всего ресурсов отъедает, так как ее не нужно так часто перерисовывать и ловить момент прихода нового бара.
Это "все тики"?! Если да, то круто. Проверю.
нет это были минутные OHLC на 3 минутах. Но я проверил на всех тиках. Картина почти такая же. Ведь перерисовка канваса в этом случае на завязана на тики, а только на фактическое время(не тестерное). Т.е. чем больше скорость, тем меньше плотность кадров. Но для глаз разницы не видно.