Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
И вы можете, например, отключить поступление событий от мыши, тогда другие события будут обрабатываться несколько быстрее.
К сожалению ни как не повлияло, в этом примере -> https://www.mql5.com/ru/forum/383101/page4#comment_26351874
К сожалению никак не повлияло, в этом примере -> https://www.mql5.com/ru/forum/383101/page4#comment_26351874
И я не увидел в комментарии характеристики тормозящего компа. 386DX?
И одновременно работающих программ. Defender?
И я не увидел в комментарии характеристики тормозящего компа. 386DX?
А зачем? сравнение идет же не с каким то эталоном, а в рамка одной системы
Вы меня удивляете, без лока нельзя гарантировать консистентность/целостность прочитанных данных
Цена такой гарантии слишком высока.
В результате самый высокопроизводительный терминал МТ5 воспринимается многими юзерами, как лагающий из-за лагов пользовательской графики. Это факт.
На 100% уверен, что это легко исправить, т.к. таких лагов нигде не встречал. Даже в браузере более медленный JS при ресайзе окна вообще не выдает лагов.
Позвольте мне пофантазировать как можно решить вопрос гарантии консистентности/целостности прочитанных данных.
- новую структуру данных (скажем MqlChartInfo)
- и функцию GetChartInfo(long chart_id, int sub_window=0), которая возвращает эту структуру из shared memory.
И пусть в документации будет указано, что данная функция не гарантирует актуальность данных и программисту нужно позаботиться об этом.
В таком случае, я, как разработчик MQL5 кода, могу создать собсвенную библиотеку с генерацией собственного пользовательского CHARTEVENT_CHART_CHANGE, контролируя изменения структуры MqlChartInfo через таймер. Такой вариант все равно будет дешевле существующих асинхронных функций на несколько порядков ( думаю в 10000 раз). И у меня, как программиста, теперь хоть появляется возможность создать нелагающий пользовательский интерферс. Сейчас такой возможности нет.
Более того, в этом случае можно решить еще одну проблему - сепарации события CHARTEVENT_CHART_CHANGE. На форуме часто слышал жалобы программистов, что событие CHARTEVENT_CHART_CHANGE слишком обобщенное и требует разделения. Ведь, например, если у меня мой пользовательсткий GUI не имеет привязки к цене чарта, и приходит событие CHARTEVENT_CHART_CHANGE, то я не знаю - пришел новый бар или произошол ресайз окна, и мне приходится все равно перерисовывать весь свой GUI даже в том случае, когда это вовсе не обязательно.
Это стало благодаря тому, что MQ действительно создало крутую среду разработки. Но без лагов ChartGet функций это бы было заметнее круче.
Короче - для более успешного продвижения вашей платформы нужно решать эту проблему тормознутых ChartGet функций и тогда раскроется весь скрытый потенциал.
Перепроверил код
Подавляющее большинство свойств своего чарта (чарта на котором работает эксперт), запрашиваются в обход очереди сообщений эксперта
Ниже список свойств, которые в любом случае запрашиваются через очередь:
Перепроверил код
Подавляющее большинство свойств своего чарта (чарта на котором работает эксперт), запрашиваются в обход очереди сообщений эксперта
Это обобщённо эксперт, или только советник? Основное рисование идёт в индикаторах, в советниках наверное только в утилитах.
Вам не сложно провести тот-же тест, но в индикаторе и выявить тормозные функции? Спасибо!
Это обобщённо эксперт, или только советник? Основное рисование идёт в индикаторах, в советниках наверное только в утилитах.
Вам не сложно провести тот-же тест, но в индикаторе и выявить тормозные функции? Спасибо!
Только для совертиков и скриптов и только при условии, что в очереди нет асинхронных комманд ожидающих выполнения, например выставление свойства чарта или свойства объекта на нём.
Индикаторы и сервисы только через очередь сообщенийТолько для совертиков и скриптов и только при условии, что в очереди нет асинхронных комманд ожидающих выполнения, например выставление свойства чарта или свойства объекта на нём.
Индикаторы и сервисы только через очередь сообщений