Особенности языка mql5, тонкости и приёмы работы - страница 165
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Да, у меня чтение истории присутствует.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Библиотеки: Easy Canvas
Nikolai Semko, 2020.02.17 05:15
Хочу прояснить заинтерисованным программистам важным момент работы канваса в режиме тестера.
Ко мне обратился один известный программист в этом сообществе с таким вопросом:
- Почему в режиме тестера панель, созданная на объектах перерисовывается на порядок быстрее, чем реализованная на канвасе, тогда как в обычном режиме со скоростью канваса все в порядке?
Разобравшись, понял причину и решение данной проблемы.
Дело в том, что при объектах перерисовка происходит вместе с перерисовкой всего экрана, а экран в тестере перерисовывается не чаще, чем 30 кадров с секунду.
Объекты - это в конечном счете тот же канвас (внутренний), но когда вы изменяете своиства объекта, то канвас объекта не формируется(не пересчитывается), а формируется лишь в момент обновления экрана (ChartRedraw), что происходит в тестере (да и в обычном режиме тоже) не чаще, чем способен различить изменения наш глаз, т.е. не чаще ~ 32 кадров в секунду.
Допустим панель меняется каждый тик. Тогда и в тестере по умолчанию канвас будет пересчитываться каждый тик, но перерисовка в тестере происходит все равно не чаще ~30 милисекунд (~30 кадров в секунду).
Другими словами канвас будет пересчитываться гораздо чаще, чем будет происходить реальный вывод его на экран, поэтому и происходит несоразмерный перерасход ресурсов.
Решением данной проблемы будет контроль пересчета и перерисовывания канваса не чаще, чем раз в 15-30 милисекунд компьютерного времени, тогда и не будет лишних циклов пустых персчетов.
Например так:
Если, например, нужно создать файл "EURUSD.txt" (большие символы), а на диске уже есть "eurusd.txt" (малые символы), то имя у файла будет, как прежде.
Больше того, когда я сохраняю EURUSD TicksLongOpt.set, сохраняется eurusd tickslongopt.set. Приходится потом переименовывать. И таких досадных мелочей много.
Больше того, когда я сохраняю EURUSD TicksLongOpt.set, сохраняется eurusd tickslongopt.set. Приходится потом переименовывать. И таких досадных мелочей много.
Думаю, если сначала удалить, а потом создать, то все будет нормально.
Думаю, если сначала удалить, а потом создать, то все будет нормально.
Нет, я про создание нового файла, именно при сохранении из диалога терминала. Если такое не у всех, значит ещё от чего-то зависит. У меня Win7, если что.
Нет, я про создание нового файла, именно при сохранении из диалога терминала. Если такое не у всех, значит ещё от чего-то зависит. У меня Win7, если что.
Имел в виду FileOpen и FileSave функции.
Имел в виду FileOpen и FileSave функции.
Да, только сейчас понял, что не к месту, тема же про язык...
Удобная сортировка массива структур
Применение
Результат
Не работает, можете обновить ? Пишет template declarations are not allowed in local classes TestarrSort.mq5 81 3
Не работает, можете обновить ? Пишет template declarations are not allowed in local classes TestarrSort.mq5 81 3
К сожалению, возможности языка обрезали. Такой код не работает.
Но Вы можете попробовать альтернативный вариант.
ЗЫ Здесь еще пример использования.