Особенности языка mql5, тонкости и приёмы работы - страница 219

 
fxsaber #:

Здесь.

Alexey Viktorov #:

CHART_IS_MAXIMIZED

Окно графика развернуто

bool r/o

CHART_IS_MINIMIZED

Окно графика свернуто

bool r/o

Спасибо, сейчас поэкспериментирую.
Еще нашел  CHART_WINDOW_IS_VISIBLE. Но вроде раньше проверял и были какие-то нюансы.

 
Nikolai Semko #:

Спасибо, сейчас поэкспериментирую.
Еще нашел  CHART_WINDOW_IS_VISIBLE. Но вроде раньше проверял и были какие-то нюансы.

fxsaber #:

Здесь.

Да, Ваш вариант работает в отличии от  CHART_WINDOW_IS_VISIBLE.
Спасибо еще раз.

Значит есть смысл контролировать видимость графика для формирования битмапа таким способом, а не через CHART_BRING_TO_TOP

ЗЫ только вот контроль слишком дорогой получается без использования user32.dll, т.к. приходится постоянно мониторить все окна. 
Но очевидно, что контроль всех окон нужно осуществлять только в том случает когда окно собственного чарта не в фокусе (ChartGetInteger(0, CHART_BRING_TO_TOP) == false)
 
Nikolai Semko #:

Но очевидно, что контроль всех окон нужно осуществлять только в том случает когда окно собственного чарта не в фокусе (ChartGetInteger(0, CHART_BRING_TO_TOP) == false)

Минимизированное окно может возвращать true даже тогда, когда есть несколько окон.

 
fxsaber #:

Минимизированное окно может возвращать true даже тогда, когда есть несколько окон.

Речь о  CHART_BRING_TO_TOP или функции IsInvisible?

 
Nikolai Semko #:


Значит есть смысл контролировать видимость графика для формирования битмапа таким способом, а не через CHART_BRING_TO_TOP

ЗЫ только вот контроль слишком дорогой получается без использования user32.dll, т.к. приходится постоянно мониторить все окна. 
Но очевидно, что контроль всех окон нужно осуществлять только в том случает когда окно собственного чарта не в фокусе (ChartGetInteger(0, CHART_BRING_TO_TOP) == false)

Да, это может быть оправдано только в экспертах, т.к. в них ChartGet функции работают значительно быстее. 
В индикаторах нет смысла заморачиваться. Быстрее перерисовать канвас, чем мониторить состояние других окон.
ИМХО

Снова все уперается в тормознутость ChatGet функций :((
 
Nikolai Semko #:

Речь о  CHART_BRING_TO_TOP или функции IsInvisible?

CHART_BRING_TO_TOP.

 
Nikolai Semko #:

Да, это может быть оправдано только в экспертах, т.к. в них ChartGet функции работают значительно быстее. 

Тормозили, когда мониторил.

В индикаторах нет смысла заморачиваться. Быстрее перерисовать канвас, чем мониторить состояние других окон.
ИМХО

Зависит от тяжести вычислений. Для HFT очень важно, чтобы визуализация была минимальной по возможности. Поэтому использую IsInvisible2.

 
fxsaber #:

CHART_BRING_TO_TOP.

странно, что в таком режиме размер окна выдает, словно оно не минимизировано.
Впрочем это очень редкий случай, когда минимизируется активное окно. Да в этом случае будет молотить без толку. 

 
Nikolai Semko #:

Впрочем это очень редкий случай, когда минимизируется активное окно.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

MT5 и скорость в боевом исполнении

fxsaber, 2020.09.30 21:42

Смотрю, что даже мои теперь вылизанные в производительности боты работают так, что CPU Терминала 15%. А теперь лайфхак!

  • Закрываем Обзор рынка (CTRL+M) - в нем только торгуемые символы.
  • Закрываем таблицу с текущими позами (CTRL+T).
  • Минимизируем все чарты.

Вуаля, CPU Терминала 2.5%! Разгружайте свои VPS. Если у кого-то еще какие действенные рекомендации, дайте знать.


Уважаемые разработчики, просьба иметь возможность переключать Терминал в режим минимального потребления ресурсов для алготорговли.

Самый распространенный режим работы боевых советников.
 
fxsaber #:
Самый распространенный режим работы боевых советников.

значит в боевом режиме нужно выключать все графические нахлабуды без минимизации. Пусть графика заморожена если окно остается видимым, но не активным.
А проще и лучше, как мне кажется, автоматически выключать и убирать всю графику при неактивности мышки, например, 1 минуту. Как только мышь активна - графика возобновляется. 

Причина обращения: