![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
А такой код, что у Вас выдает?
У меня минимальные значения 15-16 миллисекунд.
Поспешил я с выводами, вот эти функции сильно грузят терминал при перемещении графика с зажатой левой кнопкой мыши
В МТ4 такого не наблюдается
И это раз в 5-10 начинает работать медленнее в МТ5
Поспешил я с выводами, вот эти функции сильно грузят терминал при перемещении графика с зажатой левой кнопкой мыши
В МТ4 такого не наблюдается
И это раз в 5-10 начинает работать медленнее в МТ5
Да, к сожалению это так.
Это большая загадка, зачем ChartGet функции сделали асинхронными.
Пытался достучатся до разработчиков, но увы.
Приходится городить костыли, чтобы эти функции вывести за скобки.
Приходится городить костыли, чтобы эти функции вывести за скобки.
Рецепты костылей есть?)
Рецепты костылей есть?)
Создаем структуру с необходимыми параметрами чарта.
Обновляем и заполняем эту структуру при наступлении события CHARTEVENT_CHART_CHANGE.
Используем эту структуру для расчета.
Если лень писать свое, можете заглянуть сюда.
Создаем структуру с необходимыми параметрами чарта.
Обновляем и заполняем эту структуру при наступлении события CHARTEVENT_CHART_CHANGE.
Используем эту структуру для расчета.
Если лень писать свое, можете заглянуть сюда.
Она же будет перезаполняться почти при каждом событии CHARTEVENT_CHART_CHANGE
Она же будет перезаполняться почти при каждом событии CHARTEVENT_CHART_CHANGE
Да, будет. И стоить это будет 2-20 миллисекунд на всю пачку. Это меньше времени одного кадра, поэтому для глаз это будет мало заметно.
Такова особенность выполнения ассинхронных функций. Пачка выполняется почти за то же время, что и одна функция.
Главное - не использовать эти функции в другие моменты времени
и совсем не использовать две абсолютно прожорливые функции:
значения, получаемые этими функциями можно получать расчетным путем с выйгрышем в тысячи раз. У меня это реализовано (см. ссылку выше).
Я думаю, что ваши лаги именно из-за этих функций.
функциями можно получать расчетным путем с выйгрышем в тысячи раз. У меня это реализовано (см. ссылку выше).
Я думаю, что ваши лаги именно из-за этих функций.
Ок, чуть позже гляну
Создаем структуру с необходимыми параметрами чарта.
А если график постоянно смещается, придется каждый раз перезаполнять эти структуры?
Вообще не используются?
Такова особенность выполнения ассинхронных функций. Пачка выполняется почти за то же время, что и одна функция.
При прокрутки графика колесиком нет таких проблем, только при прокрутке с зажатой левой кнопкой мыши
Ок, чуть позже гляну
А если график постоянно смещается, придется каждый раз перезаполнять эти структуры?
Вообще не используются?
При прокрутки графика колесиком нет таких проблем, только при прокрутке с зажатой левой кнопкой мыши
Посмотрел код, у вас заполняется структура один раз, при изменении графика, затем все это дело используется, ну меня также в принципе, но что будет если график все время смещать левой кнопкой мыши, тогда каждый раз структура будет перезаполняться, вызывая эти функции асинхронные
Без кода Вам никто не поможет исправить ваши ошибки
Почему используется CopyOpen(), а не iOpen() например? CopyOpen() быстрее работает?