Советники: Программирование на MQL5 для трейдеров — исходные коды из книги. Часть 4

 

Программирование на MQL5 для трейдеров — исходные коды из книги. Часть 4:

В четвертой части книги мы сосредоточимся на освоении встроенных функций (MQL5 API) и будем последовательно углубляться в специализированные подсистемы. Перечень технологий и функциональности, доступных любой программе на MQL5, огромен. Поэтому для начала имеет смысл рассмотреть наиболее простые и полезные функции, которые могут применяться в большинстве программ.

Программирование на MQL5 для трейдеров — исходные коды из книги. Часть 4

Автор: MetaQuotes

 

Здравствуйте,

Алгоритм расчета смещения брокера по GMT и перехода на летнее время в скрипте "TimeSummer.mq5" абсолютно неверен.

https://www.mql5.com/ru/book/common/timing/timing_daylight_saving

Правильный алгоритм можно найти здесь: https: //www.mql5.com/en/code/48650

Determine Broker's Daylight (DST) schedule
Determine Broker's Daylight (DST) schedule
  • www.mql5.com
Script to determine whether your Broker follows the US, UK or AU daylight (DST) schedule.
 
хорошо
 

Можно сортировать структуры более чем по 1 полю, если создать немного измененную версию макроса SORT_STRUCT. Например, для сортировки по 2 полям это может быть:

//+------------------------------------------------------------------+
//| Удобный макрос для сортировки 'A'rray 'T'ype по двум 'F'ields |
//+------------------------------------------------------------------+
#define  SORT_STRUCT_2(T,A,F1,F2)                                     \
{                                                                    \
   class InternalSort : public QuickSortStructT<T>                   \
   {                                                                 \
      virtual bool Compare(const T &a, const T &b) override          \
      {                                                              \
         return (a.##F1 > b.##F1)                                    \
            || (a.##F1 == b.##F1 && a.##F2 > b.##F2);                \
      }                                                              \
   } sort;                                                           \
   sort.QuickSort(A);                                                \
}
MQL5 Book: Common APIs / Working with arrays / Comparing, sorting, and searching in arrays
MQL5 Book: Common APIs / Working with arrays / Comparing, sorting, and searching in arrays
  • www.mql5.com
The MQL5 API contains several functions that allow comparing and sorting arrays, as well as searching for the maximum, minimum, or any specific...
 
amrali #:

Алгоритм, используемый для расчета смещения брокера по Гринвичу и перехода на летнее время в скрипте "TimeSummer.mq5", совершенно неправильный.

Не стесняйтесь написать мне подробности в PM. Ваш скрипт выполняет аналогичные действия более сложным способом и привязан к уже существующей таблице правил, которую я намеренно не использовал, так как вся идея заключалась в определении DST по чистой статистике котировок. Настройки сервера на практике могут быть неточными и не соответствовать стандартам. Именно поэтому ваши скрипты иногда не определяли реальный часовой пояс серверов пользователей, судя по их отзывам.

Недавно была опубликована обновленная версия детектора летнего времени для моего сервера.

TimeServerDaylightSavings
TimeServerDaylightSavings
  • www.mql5.com
Time-related functions for empirical detection of server time zone and daylight savings mode (DST) from history of quotes