МТ5. Последний билд. Проблемы. - страница 6

 
Renat Akhtyamov:

Всё хорошо теперь.

Получается что без ChartRedraw() в МТ5 никак, по сравнению с МТ4.


Дело не в том, что "как" или "не как". Дело в том, КАК НУЖНО. Любой графический объект после смены его свойст (расположение, размер, надпись, цвет, ...) должен быть перерисован. Это можно сделать принудительно через ChartRedraw() или дождаться новый тик - график сам перерисуется.

Здесь просто важно понимать, для чего нужна/не нужна перерисовка принудительная. Всё зависит от задач.

То есть таймер и так работает корректно, но вот сработал таймер, отослал новый текст в obj_label - и здесь уже Вам решать: чтобы увидеть изменение (визуальное) НУЖНО обновить принудительно.

 
Vladimir Karputov:

За 2,5 часа сработало один раз - и то, я очень жёстко задал поиск разницы, здесь видимо миллисекунды подкачали:

Думаю, что с вопросами по OnTimer() и по OnTick() закончили - всё работает штатно и корректно.

Да, закончили.

Норм.

Запустил советника - всё хорошо.
 
Vladimir Karputov:


Дело не в том, что "как" или "не как". Дело в том, КАК НУЖНО. Любой графический объект после смены его свойст (расположение, размер, надпись, цвет, ...) должен быть перерисован. Это можно сделать принудительно через ChartRedraw() или дождаться новый тик - график сам перерисуется.

Здесь просто важно понимать, для чего нужна/не нужна перерисовка принудительная. Всё зависит от задач.

То есть таймер и так работает корректно, но вот сработал таймер, отослал новый текст в obj_label - и здесь уже Вам решать: чтобы увидеть изменение (визуальное) НУЖНО обновить принудительно.

То есть получается что в МТ4 по таймеру происходит принудительная перерисовка чарта по умолчанию, а в МТ5 - нет?

Всё таки разница есть. В МТ4 команду перерисовки графика я не добавлял, она там лишняя.

К тому же сначала удаляется объект, а потом создается новый.

Ну да и ладно, это не проблема. Будем перерисовывать принудительно командой.

 
Renat Akhtyamov:

То есть получается что в МТ4 по таймеру происходит принудительная перерисовка чарта по умолчанию, а в МТ5 - нет?

Всё таки разница есть. В МТ4 команду перерисовки графика я не добавлял, она там лишняя.

К тому же сначала удаляется объект, а потом создается новый.

Ну да и ладно, это не проблема. Будем перерисовывать принудительно командой.


Принудительно - это если Вам нужно увидеть изменение НЕМЕДЛЕННО. Часто это бывает не нужно: например переместили линии - и она будет перерисована с первым же тиком.
 
Мда, проверять качество синхронизации не по милисикундным логам, а на глаз по перерисовке лейблов.
Точно, это все из-за плохого билда. 
 
Комментарии, не относящиеся к этой теме, были перенесены в "Вопросы от начинающих MQL4 MT4 MetaTrader 4".
Причина обращения: