Функция является умным подмножеством алгоритма StructToTime в mql5
К сожалению, исходный код StructToTime не анализируется компилятором, а подключается в виде имфортируемой функции. Поэтому StructToTime при каждом вызове считает все поля структуры.
MQL5-компилятор умеет не считать неиспользуемые поля, но для этого нужно, чтобы анализировался исходный код.
MQ неоднократно говорили, что включат исходный код штатных функций при компиляции. К сожалению, со StructToTime этого не произошло.
boost::posix_time, std, boost ::chrono... надо учиться эффективно использовать чужие велосипеды, иначе легко завязнуть в своих... Зачем нужна эта библиотека? Данная библиотека поможет в случаях, когда есть необходимость часто использовать метку времени и искать данные, имеющие взаимосвязь с разными промежутками времени. Например, когда нужно...
Я как-то говорил, что хорошая идея год начинать с 1 марта, а не с 1 января. Тогда кривой февраль становится последним месяцем. Тогда можно будет применить для нахождения месяца следующую логику:
int m1 = days/30;
if (m1 == days/31) month = m1; // более 80% случаевelse {...}
где days - количество дней с последнего 1 марта сам бы сделал, да спать пора.
быстрее, чем GetYear3(), но не слишком сильно 1,5x
Скорее всего, там все функции очень быстрые. Можно взять за основу для написания своей TimeToStruct_Custom. Тогда будет намного быстрее штатной функции.
Спасибо, это действительно быстро!
Функция является умным подмножеством алгоритма StructToTime в mql5, или mktime в C https://github.com/lattera/glibc/blob/master/time/mktime.c.
Отлично отформатировано:
Функция является умным подмножеством алгоритма StructToTime в mql5
К сожалению, исходный код StructToTime не анализируется компилятором, а подключается в виде имфортируемой функции. Поэтому StructToTime при каждом вызове считает все поля структуры.
MQL5-компилятор умеет не считать неиспользуемые поля, но для этого нужно, чтобы анализировался исходный код.
MQ неоднократно говорили, что включат исходный код штатных функций при компиляции. К сожалению, со StructToTime этого не произошло.
mktime в C https://github.com/lattera/glibc/blob/master/time/mktime.c.
Отлично отформатировано:
Легкий для понимания исходник.
Простой и понятный исходный код.
Хорошие коды, хотя и не самые быстрые.
Форум о трейдинге, автоматических торговых системах и тестировании торговых стратегий
Библиотеки: Местные часовые пояса и часы локальных сессий
amrali, 2024.04.16 18:40
Обновление 16 апреля 2024 года - версия 1.85
Заменен внутренний метод GetNthSunday на более оптимизированный методGetMonthTime .
Forum on trading, automated trading systems and testing trading strategies
Libraries: Local Timezones and Local Session Hours
amrali, 2024.04.17 00:27
Update 17 April 2024 - version 1.87
Replaced the TimeYear internal method with the more optimized GetYear method.
Начнем с года.
Или она же в целочисленном виде.
генеально! Круто получилось. Спасибо!
Хорошие коды, хотя и не самые быстрые.
Легко конвертируется на MQL. Например, нахождение года.
Скорость не проверял.
Легко конвертируется в MQL. Например, поиск года.
Скорость работы не проверял.
быстрее, чем GetYear3(), но не слишком сильно 1,5x
Я как-то говорил, что хорошая идея год начинать с 1 марта, а не с 1 января. Тогда кривой февраль становится последним месяцем.
Тогда можно будет применить для нахождения месяца следующую логику:
где days - количество дней с последнего 1 марта
сам бы сделал, да спать пора.
быстрее, чем GetYear3(), но не слишком сильно 1,5x
Скорее всего, там все функции очень быстрые. Можно взять за основу для написания своей TimeToStruct_Custom. Тогда будет намного быстрее штатной функции.