Старт терминала. Несколько событий CHARTEVENT_CHART_CHANGE подряд. - страница 2

 

Нужна помощь зала.
Задание.

  1. В терминале должен быть открыт график EURUSD D1 и еще любой другой. На график EURUSD D1 накинуть советника, которого прилагаю. 
  2. Кликнуть один раз на любую другую вкладку.
  3. Вставить сюда отчет из вкладки "Эксперты". Вставлять лучше через "Код". Так красивее.
Вот мой отчет:

2013.10.30 17:14:25     ChartTimePriceToXY_2 (EURUSD,D1)        CHART_HEIGHT_IN_PIXELS =148pixels; CHART_WIDTH_IN_PIXELS =846pixels
2013.10.30 17:14:25     ChartTimePriceToXY_2 (EURUSD,D1)        CHARTEVENT_CHART_CHANGE
2013.10.30 17:14:25     ChartTimePriceToXY_2 (EURUSD,D1)        CHART_HEIGHT_IN_PIXELS =148pixels; CHART_WIDTH_IN_PIXELS =846pixels
2013.10.30 17:14:25     ChartTimePriceToXY_2 (EURUSD,D1)        CHARTEVENT_CHART_CHANGE
2013.10.30 17:14:23     ChartTimePriceToXY_2 (EURUSD,D1)        CHART_HEIGHT_IN_PIXELS =238pixels; CHART_WIDTH_IN_PIXELS =992pixels
2013.10.30 17:14:23     ChartTimePriceToXY_2 (EURUSD,D1)        CHARTEVENT_CHART_CHANGE

 Что меня смущает: в моем случае цифра 148. Причем от размера графика у меня эта цифра не зависит. Всегда 148.

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Свойства объектов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Свойства объектов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Свойства объектов - Документация по MQL5
Файлы:
 
2013.10.31 03:08:50     ChartTimePriceToXY_2 (EURUSD,D1)        CHARTEVENT_CHART_CHANGE
2013.10.31 03:08:50     ChartTimePriceToXY_2 (EURUSD,D1)        CHART_HEIGHT_IN_PIXELS =570pixels; CHART_WIDTH_IN_PIXELS =1589pixels
2013.10.31 03:08:52     ChartTimePriceToXY_2 (EURUSD,D1)        CHARTEVENT_CHART_CHANGE
2013.10.31 03:08:52     ChartTimePriceToXY_2 (EURUSD,D1)        CHART_HEIGHT_IN_PIXELS =372pixels; CHART_WIDTH_IN_PIXELS =962pixels
2013.10.31 03:08:52     ChartTimePriceToXY_2 (EURUSD,D1)        CHARTEVENT_CHART_CHANGE
2013.10.31 03:08:52     ChartTimePriceToXY_2 (EURUSD,D1)        CHART_HEIGHT_IN_PIXELS =372pixels; CHART_WIDTH_IN_PIXELS =962pixels
(отсортировал)
 
Спасибо. Вижу то-же повторяется один размер. Только у Вас 372. Есть подозрение, что эти повторяющиеся размеры - это размеры свернутого окна графика.
 

Разобрался. Начальные условия: графики развернуты.

Что происходит с графиком который теряет фокус: при потере фокуса график становиться размером, как после нажатия на иконку "свернуть в окно".  Как только график получает фокус, график разворачивается в полный размер. 

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

 
Странную особенность обнаружил при получении события CHARTEVENT_CHART_CHANGE в OnChartEvent(). Это событие почему-то возникает всякий раз, когда происходит вызов функции ChartGetInteger() или ChartGetDouble() для получения свойств графика. Но, по логике вещей, никаких новых событий по изменению графика в подобных случаях не происходит и возникновение этого события в такой ситуации носит исключительно пустопорожний характер.