Новая версия платформы MetaTrader 5 build 2530: Сортировка в Обзоре рынка и удобная работа с результатами оптимизации - страница 6
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Для экспертов и скриптов доступ радикально ускорен к 45 свойствам чарта из 58ми, по остальным существенных изменений нет.
Ваш код (после стайлера):
Т.е. вы замеряете не время получения одного свойства чарта, а сразу нескольких свойств.
Да, очень жёсткий мой ляп.
Прошу прощения.
На компе нет HDD, только SSD.
ЗЫ Стоит ли попробовать Терминал разместить на RAM-drive?
SSD могут очень тормозить, если там свободного места менее 25-30% (чем меньше, тем медленнее происходят операции удаления и записи). К тому же многие модели со временем начинают тормозить.
RAMd я бы попробовал, просто чтобы отсечь одну из причин.
Да, очень жёсткий мой ляп.
Прошу прощения.
Попробуйте добавить одну строчку в свой код:
Т.е. буквально один синхронный запрос ДО всех замеров.
RAMd я бы попробовал, просто чтобы отсечь одну из причин.
С нуля поставил на RAM-drive MT5 b2530. Оставил один символ в Обзоре рынка, отключил новости, один чарт, 5000 баров в окне.
Запустил советник на чарте. Первые пять минут.
Билд 2530 установился (торговля ФОРТС)
Скорость выставления стала в 6-7 раз больше.
Стало:
Было
В Алерт-окне отсутствуют миллисекунды. Авторазмер столбцов спорный - на столбец со временем выделяется очень много места, которого не хватает на основное сообщение.
Попробуйте добавить одну строчку в свой код:
Т.е. буквально один синхронный запрос ДО всех замеров.
да, это я уже давно заметил, что после первого запроса все остальные запросы в текущем теле программы отрабатываются гораздо быстрее.
Но ведь этот первый запрос тянет на несколько миллисекунд.
Суть моего вопроса и пожелания можно свести к следующему:
Функциям ChartGet при запросе любого параметра имеет смысл иметь внутренние статические переменные этих параметров и в случае, если с момента последнего обращения по данному параметру не происходило события CHARTEVENT_CHART_CHANGE, то возвращать значение этой статической переменной.
В этом случае время выполнения функций ChartGet будет даже не микро, а считанные наносекунды.
В моем же примере, даже когда чарт не менялся, а стало быть, и все его параметры не менялись, каждый раз при движении мышки и обращении к функциям ChartGet запускается асинхронный процесс, в чем нет необходимости, т. к. известно, что параметры не менялись.
Повторюсь, я у себя эту проблему уже давно решил с горем пополам, отслеживая событие CHARTEVENT_CHART_CHANGE и систематизируя запросы. (один из примеров реализации в классе iCanvas). Просто постоянно на форуме возникает этот вопрос и недоумение во временной утечке при выполнении функций ChartGet. Ведь событие CHARTEVENT_CHART_CHANGE довольно редкое, а некоторые умудряются использовать функции ChartGet десятки тысяч раз только в одном кадре, где и микросекунды это непозволительная роскошь.
Билд 2530 установился (торговля ФОРТС)
Скорость выставления стала в 6-7 раз больше.
Старый и новый билды параллельно запустите для сравнения.
С нуля поставил на RAM-drive MT5 b2530. Оставил один символ в Обзоре рынка, отключил новости, один чарт, 5000 баров в окне.
Параллельно были запущены два Терминала: на SSD и RAM-drive. И уловил совпадение тормозов (обратите внимание на время).
RAM-drive.
SSD.
О чем это говорит?
Параллельно были запущены два Терминала: на SSD и RAM-drive. И уловил совпадение тормозов (обратите внимание на время).
RAM-drive.
SSD.
О чем это говорит?
Мы сегодня пофиксили несколько мест, которые могли вносить задержки. Дело было не в диске, а в общей экосистеме виндовс сообщений.
Желательно обновляться на Windows 10 и апгрейдить железо.
Проверьте новую бету утром, пожалуйста.
Проблема ясна, будем дальше улучшать.