Особенности языка mql5, тонкости и приёмы работы - страница 279
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Эта функция указывает на наличие/отсутствие определенной оптимизации компилятора, а не на наличие/отсутствие одноименного флага GUI компилятора.
Пожалуйста, дайте ссылку на эту тему.
TimeUtilsверсии 1.10был опубликован в кодовой базе.
https://www.mql5.com/en/code/53970
Рассмотрим этоткод старого образца для поиска значения в статическом массиве:
Теперь статические массивы оцениваются во время выполнения, поэтому мы можем переопределить массив как:
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Особенности языка mql5, тонкости и приёмы работы
Dominik Egert, 2024.11.28 15:37
Немного более оптимизированная версия:
Скорее всего, так быстрее будет.
А обратно ?
в смысле что TimeToStruct обычно применяется в паре с обратной функцией StructToTime
найти "первый понедельник предыдущего месяца" , "начало текущего квартала" etc.
А просто разложить текущую дату на день-месяц-год (чтобы знать) бывает нужно раз в сутки и этот момент не критичен. Никто-же не вызывает TimeToStruct на каждом тике :-)
А обратно ?
Частично обсуждалось.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Особенности языка mql5, тонкости и приёмы работы
amrali, 2024.12.03 20:05
TimeUtilsверсии 1.10был опубликован в кодовой базе.
https://www.mql5.com/en/code/53970
Чтобы найти "первый понедельник предыдущего месяца", "начало текущего квартала" и т.д.
А просто разложить текущую дату на день-месяц-год (узнать) может понадобиться раз в день и этот момент не критичен. Никто же не вызывает TimeToStruct на каждом тике :-)
Самая быстрая замена встроенной функции TimeToStruct(),
я предлагаю использовать эту функцию:
Ускорение примерно в 4-5 раз (для версии без кэша).
После применения оптимизаций из статьи "Евклидовы аффинные функции и их применение к алгоритмам календаря ":
Результаты:
/* Compiler Version: 4620, X64 Regular 13th Gen Intel Core i3-1305U, AVX2 + FMA3 1970.01.01 00:05:17 - 2099.11.29 23:56:35, random datetimes[] 5.20 ns, checksum = 151984615301017 // TimeToStruct2100 5.18 ns, checksum = 151984615301017 // TimeToStructFast 4.52 ns, checksum = 151984615301017 // TimeToStructFast2 4.87 ns, checksum = 151984615301017 // TimeToCalendar 5.62 ns, checksum = 151984615301017 // TimeToJulian 23.08 ns, checksum = 151984615301017 /// MQL's TimeToStruct() */После применения оптимизаций из статьи "Евклидовы аффинные функции и их применение к алгоритмам календаря ":
Спасибо, очень интересное решение.
Вы можете использовать меньшие числа в выражении.
После применения оптимизаций из этой статьи "Евклидовы аффинные функции и их применение к календарным алгоритмам":
Результаты: