CHARTEVENT_CHART_CHANGE в MQL5 - страница 6

 
Nikolai Semko #:
Это хорошие новости и, к своему стыду, в советнике ещё не пробовал использовать пользовательский ГУИ.  Точнее начал писать один проект только несколько дней назад. Был уверен, что работа Chart get функций везде одинаковая.


Что это меняет? те свойства которые вам и нужны

Ilyas #:

Перепроверил код

Подавляющее большинство свойств своего чарта (чарта на котором работает эксперт), запрашиваются в обход очереди сообщений эксперта

Ниже список свойств, которые в любом случае запрашиваются через очередь:

  • CHART_WINDOW_IS_VISIBLE
  • CHART_HEIGHT_IN_PIXELS
  • CHART_WINDOW_TOP 
  • CHART_FIRST_VISIBLE_BAR
  • CHART_PRICE_MIN (при условии, что задано не нулевое подокно)
  • CHART_PRICE_MAX (при условии, что задано не нулевое подокно) 
Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Свойства графиков
Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Свойства графиков
  • www.mql5.com
Свойства графиков - Константы графиков - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Nikolai Semko #:

Сегодня это перепроверю.

Проверил.
Да, в эксперте у пользовательской графики значительно меньше лагов при наступлении события CHARTEVENT_CHART_CHANGE , чем в индикаторе. По очень приблизительной оценки в раз 50. 
Но считывание некоторых параметров все же весьма тормозит. Например: CHART_COLOR_BACKGROUND, CHART_FIRST_VISIBLE_BAR.
Как правило, самая прожорливая - это первая функция ChartGet из пачки таких функций.
В целом это радует, но еще есть - к чему стремиться. 

 
В копилку.

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

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

Anton, 2020.10.08 11:00

Разный смысл и разный механизм выполнения. 0 - событие в очередь "своего" чарта. -1 - событие в собственную очередь.

 
fxsaber #:
В копилку.

Спасибо!

 
Ilyas #:
Предполагаю, что при движении мышкой, происходит всплеск событий, которые обрабатывает эксперт.
При этом, если эксперт создаёт слишком большое число комманд чарту (загружает очередь чарта), то он получает пенальти, чтобы не произошло переполнение очереди комманд чарта.

Система проектировалась в ~2008 году, возможно стоит пересмотреть, подумаем.

лайфхак, я все события чарт эвент фильтрую через событие таймар.
чарт эвент выставляет флаги о необходимом изменении, хоть миллиард раз за например 100 миллисекунд,
а событие таймер отработает флаги уже каждые 100мс если они изменились, то есть flag != Last_flag
это по мимо фильтрации по id

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