OnChartEvent - замедляет загрузку эксперта - страница 2

 
gisip:

Да от внешнего индикатора от созданных им объектов идет большое кол-во сообщений!

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

Отключить их нельзя.

Лучше постарайтесь уменьшить объем изменений, производимых с объектами - это даст результат лучше в долгосрочной перспективе.

Сколько объектов изменяется/создается на старте другими индикаторами?

 
Renat:

Сколько объектов изменяется/создается на старте другими индикаторами?

Возможно даже по теме... Гляньте мой тикет #74412 от сегодня...
 
Renat:

Я имел в виду, чтобы gisip сам вставил в свой скрипт отлов событий.

По всей видимости его соседние индикаторы вовсю управляют огромным количеством объектов, что выливается в шквал бродкаст сообщений всем скриптам на этом графике.

ну да, стоит посмотреть как имено обрабатываются события и от кого.

Да и измерение при помощи GetTickCount() в некоторых местах применить будет не лишним.

 

gisip:

Да от внешнего индикатора от созданных им объектов идет большое кол-во сообщений!

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

Отключить не выйдет, но можно игнорировать.

К примеру создать глобальную переменную и выставить ее как false. И пока она false игнорить все что приходит в OnChartEvent.

как вариант обрабатывать только то что послано только этому эксперту и только на этом чарте (тут придется применить фантазию).

 
Interesting:

Отключить не выйдет, но можно игнорировать.

К примеру создать глобальную переменную и выставить ее как false. И пока она false игнорить все что приходит в OnChartEvent.

как вариант обрабатывать только то что послано только этому эксперту и только на этом чарте (тут придется применить фантазию).

Тут проблема в другом - если сгенерировать 100 000 изменений объектов, то они наглухо забью очередь (а внутри ведь событийная модель) сообщений.  Фактически это как DoS на канал передачи данных между скриптами.

Со своей стороны мы постараемся эффективно разруливать такие случаи.

 
Renat:

Тут проблема в другом - если сгенерировать 100 000 изменений объектов, то они наглухо забью очередь (а внутри ведь событийная модель) сообщений.  Фактически это как DoS на канал передачи данных между скриптами.

Со своей стороны мы постараемся эффективно разруливать такие случаи.

Да, спасибо за ответ!

Я наконец понял в чем дело.

Мне нужно было бы, чтобы внешний индикатор вообще не генерил события OnChartEvent.

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

Я ответ понял, но так на всякий случай, отключить во внешнем индикаторе событие OnChartEvent полностью ни как нельзя?

Может все таки есть какой нибудь способ?

 
gisip:

Я ответ понял, но так на всякий случай, отключить во внешнем индикаторе событие OnChartEvent полностью ни как нельзя?

Может все таки есть какой нибудь способ?

Если индюк Ваш или к нему есть исходник то можно самостоятельно попробовать отделаться от событий излишних.

Если исправить код индюка нельзя тогда облом.

 
gisip:

Да, спасибо за ответ!

Я наконец понял в чем дело.

Мне нужно было бы, чтобы внешний индикатор вообще не генерил события OnChartEvent.

Неправильно понимаете.

Любое изменение любого графического объекта на чарте генерирует широковещательное уведомление всех скриптов (кто имеет OnChartEvent) об изменении этого объекта.

Измените 100 000 объектов и получите как минимум по 100 000 широковещательных уведомлений во все скрипты (индикаторы, эксперты и тд), подписавшиеся на получение событий чарта.

 
Interesting:

Если индюк Ваш или к нему есть исходник то можно самостоятельно попробовать отделаться от событий излишних.

Если исправить код индюка нельзя тогда облом.

Скорее всего индикатор рисуется графическими объектами в десятки и сотни тысяч, что порождает огромные очереди уведомлений для всех остальных программ.

Это самоубийственный путь. Не нужно рисовать индикаторы огромным количеством (десятки и сотни тысяч) объектов.

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Стили рисования
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Стили рисования
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Стили рисования - Документация по MQL5
 
Renat:

Неправильно понимаете.

Любое изменение любого графического объекта на чарте генерирует широковещательное уведомление всех скриптов (кто имеет OnChartEvent) об изменении этого объекта.

Измените 100 000 объектов и получите как минимум по 100 000 широковещательных уведомлений во все скрипты (индикаторы, эксперты и тд), подписавшиеся на получение событий чарта.

Renat:

Скорее всего индикатор рисуется графическими объектами в десятки и сотни тысяч, что порождает огромные очереди уведомлений для всех остальных программ.

Это самоубийственный путь. Не нужно рисовать индикаторы огромным количеством (десятки и сотни тысяч) объектов.

Тогда да, это путь в некуда и очень походит на игру в РУССКУЮ РУЛЕТКУ...
Причина обращения: