Что нового в MetaTrader 5?

История обновлений десктопной, мобильной и веб-платформ

5 сентября 2025
Новая версия платформы MetaTrader 5 build 5260: улучшения в Algo Forge и новые правила наследования в MQL5

Terminal

  1.  Исправлено отображение настроек маржи в спецификации торгового инструмента. Ранее при использовании плавающего плеча (например, в зависимости от объема позиций на счете) в некоторых случаях настройки маржи в спецификации контракта показывались неверно.
  2.  Исправлена сортировка заявок в стакане, если по символу разрешена торговля с отрицательными ценами. Теперь корректно и в правильном порядке отображаются заявки с положительными, отрицательными и нулевыми ценами. 
  3. В руководство по терминалу добавлен раздел "Как тестер загружает исторические данные". В нем мы собрали основные сведения, необходимые для понимания работы тестера стратегий с торговой историей. Тестер всегда загружает "буфер истории до старта", чтобы обеспечить стабильность расчётов:
  4. Если данных меньше, тестер сдвигает фактическую дату старта на ближайшую доступную, где условия выполняются.

    Из-за этих требований иногда возникает ситуация: тестирование начинается не с указанной даты, а с более поздней. В журнале тестера это сопровождается сообщением:

    start time changed to 2024.03.15 00:00 to provide data at beginning
  5. Добавлен перевод терминала на ирландский язык.
  6. Обновлены переводы пользовательского интерфейса.

MQL5

  1. Добавлены 5 новых методов в OpenBLAS — это новый раздел Matrix Balance, расширяющий возможности работы с квадратными матрицами. Новый набор функций обеспечивает:
    • Балансировку матриц для повышения точности вычислений собственных значений.
    • Восстановление собственных векторов после преобразований.
    • Редукцию к форме Хессенберга и Шур-разложение, включая генерацию ортогональных матриц.

    Благодаря этим инструментам разработчики получают полный цикл преобразований ― от предварительной подготовки матрицы до точного и устойчивого вычисления ее спектра.

    Под капотом используются проверенные алгоритмы LAPACK (GEBAL, GEBAK, GEHRD, ORGHR, HSEQR), гарантирующие высокую производительность и надежность:

    • MatrixBalance — балансирует квадратную матрицу (вещественную или комплексную) путем перестановок и/или масштабирования строк и столбцов. Снижает 1-норму, повышая точность последующего расчета собственных значений/векторов (на базе LAPACK-функции GEBAL).
    • EigenVectorsBackward — формирует собственные векторы (правые или левые) исходной матрицы после балансировки, выполняет обратную трансформацию (на основе GEBAK). 
    • ReduceToHessenbergBalanced — преобразует сбалансированную матрицу в верхнетреугольную форму Хессенберга посредством ортогонального преобразования (GEHRD).
    • ReflectHessenbergBalancedToQ — генерирует ортогональную матрицу Q, являющуюся продуктом отражающих матриц, образующихся при редукции к форме Хессенберга (ORGHR).
    • EigenHessenbergBalancedSchurQ — выполняет Шур-разложение: вычисляет собственные значения матрицы Хессенберга, а также матрицы T (верхнетреугольная Шур-форма) и Z (матрица векторов), при необходимости обновляет Q (HSEQR).


  2. Добавлены два новых метода в раздел Eigen Values. Обе функции позволяют эффективно получать собственные векторы после Шур-разложения и дополняют полный набор инструментов линейной алгебры в MQL5:

    • EigenVectorsTriangularZ — вычисляет собственные векторы действительной верхней квазитреугольной или комплексной верхнетреугольной матрицы (Шур-форма). Использует разложение A = Q · T · Qᴴ (TREVC). Отличается высокой точностью.
    • EigenVectorsTriangularZBlocked — блочный вариант вычисления собственных векторов (TREVC3). Работает быстрее, чем EigenVectorsTriangularZ, но может быть менее точным.
  3. Внесено важное изменение при наследовании — правило method hiding.

    Ранее, если в производном классе или структуре определялся метод с тем же именем, что и в базовом классе, происходила перегрузка: все варианты методов (и предка, и потомка) были доступны в наследнике. Теперь, методы с одинаковым именем в потомке скрывают методы предка (method hiding).

    Если необходимо вызвать скрытый метод предка, следует явно указать область видимости при вызове:
    class Base
      {
    public: 
       void Print(int x)   { ::Print("Base int: ", x); }
       void Print(double y){ ::Print("Base double: ", y); }
      };
    
    class Derived : public Base
      {
    public:
       void Print(string s){ ::Print("Derived string: ", s); }
      };
    
    void OnStart()
      {
       Derived d;
       d.Print("text");    // вызов Derived::Print(string)
       d.Print(10);        // ВНИМАНИЕ! вызов Derived::Print(string), т.к. Base::Print скрыт (недоступен)
       d.Base::Print(10);  // явный вызов скрытого метода предка
      }
    Некоторое время компилятор MQL5 будет выдавать предупреждение, если скрытый метод предка лучше подходит по параметрам вызова, чем доступный метод потомка. Пример для приведенного выше кода d.Print(10):
    call resolves to 'void Derived::Print(string)' instead of 'void Base::Print(int)' due to new rules of method hiding
       see declaration of function 'Derived::Print'
       see declaration of function 'Base::Print'
    implicit conversion from 'number' to 'string'

  4. Добавлен оператор using для восстановления перегрузок методов предка.

    Чтобы управлять новым поведением, в MQL5 появился оператор using. Он позволяет «подтянуть» в область видимости класса или структуры все перегрузки метода из базового типа:
    class Base
      {
    protected:
       void Print(int x)   { ::Print("Base int: ", x); }
       void Print(double y){ ::Print("Base double: ", y); }
      };
    
    class Derived : public Base
      {
    public:
       void Print(string s){ ::Print("Derived string: ", s); }
       using Base::Print;  // возвращаем перегрузки Print из Base
      };
    
    void OnStart()
      {
       Derived d;
       d.Print("text");   // Derived::Print(string)
       d.Print(42);       // Base::Print(int)
       d.Print(3.14);     // Base::Print(double)
      }
    Если убрать using Base::Print;, то вызовы d.Print(42) и d.Print(3.14) будут недоступны — останется только метод Derived::Print(string)

    Дополнительно в приведенном примере можно увидеть, что методы protected предка, стали доступны в потомке (protected сменился на public)

    Таким образом, разработчики получают более гибкий и предсказуемый контроль над иерархиями классов и могут точно определять, какие перегрузки методов предка должны оставаться доступными в наследнике.

MetaEditor

  1. Ускорены вычисления SHA-1 хэшей для Git-операций при работе с Algo Forge. Это дает прирост производительности более 40% при массовых операциях.
  2. Исправлена логика проверки модификаций файлов для Git-операций. Если изменилось только время модификации, но содержимое осталось прежним, файл больше не считается измененным. Это устраняет ложные детекты и предотвращает конфликты с удаленным репозиторием.

Algo Forge

Опубликована Справка по работе с MQL5 Algo Forge. Из нее вы узнаете все ключевые преимущества Git, без лишней сложности:

  • надёжное хранение истории версий и работа с ветками
  • быстрые эксперименты и безопасное слияние изменений,
  • собственный репозиторий или форк чужого проекта в один клик,
  • прозрачная работа в команде с фиксацией вклада каждого,
  • каталог открытых проектов и возможность учиться у других.

  • Клонирование чужого проекта
    На forge.mql5.io зайди в проект, который ты хочешь клонировать, и выполни команду Fork. Заполни имя создаваемого форка и описание и сохрани изменения:

    Клонирование проекта

    Затем перейди в MetaEditor с тем же MQL-аккаунтом и выполни команду обновить (Refresh) в Навигаторе.  В папке Shared projects появится твой клонированный проект. Теперь загрузи его с портала Algo Forge командой Git Clone. Ты скачаешь не только все файлы проекта, но и всю историю коммитов и все ветки этого проекта. То есть ты сможешь продолжить работу над форком, имея всю историю клонированного проекта.  

    Команда Git Clone для получения проекта из Algo Forge


Web Terminal

  1. Исправлено отображение времени рабочей и котировочной сессии в спецификации символа.
  2. Исправлено отображение настроек маржи в спецификации символа.
  3. Изменено отображение сессий торговых инструментов в спецификации символа.
  4. Добавлена поддержка торгового счета типа Contest — эти счета отображаются синим цветом, Demo — зеленым.
  5. Исправлена точность расчетов маржи с плавающим плечом в некоторых случаях. 
  6. Исправлена ошибка открытия нового счета — в некоторых случаях не работала кнопка "Next" для перехода к следующему шагу.
  7. Исправлена ошибка, когда нельзя было выставить лимитный ордер между ценами Bid и Ask в режиме биржевого исполнения.
  8. Исправлена ошибка показа цены исполнения ордера. После отсылки приказа в окне будет показан результат его исполнения — успешное совершение торговой операции или отказ с описанием причины, почему она не была исполнена. В некоторых случаях цена исполнения показывалась как "0".
  9. Исправлена ошибка, когда не отображалась кнопка быстрого закрытия позиции.

    Кнопка закрытия позиции

  10. Исправлен показ валют торгового счета в окне выбора из списка счетов.
31 июля 2025
Новая версия платформы MetaTrader 5 build 5200: расширение OpenBLAS и усиление контроля в MQL5

Terminal

  1. Добавлена возможность автоматически применять светлую или темную тему интерфейса в зависимости от настроек Windows. Для этого включите новую опцию «Вид \ Цветовые схемы \ Системная». При каждом запуске платформа будет проверять, какой интерфейс вы используете в системе, и адаптироваться соответствующим образом.


    Добавлена возможность автоматически применять светлую или темную тему интерфейса в зависимости от настроек Windows


  2. Исправлено отображение панелей инструментов, открепленных от основного окна.
  3. Исправлен расчет ликвидационной стоимости портфеля в разделе «Активы». Позиции по некоторым инструментам могли не учитываться.
  4. Исправлено отображение отрицательных цен в стакане цен. Теперь они сортируются корректно.
  5. Исправлен импорт ценовой истории в пользовательские торговые инструменты. Для инструментов, находящихся в корневой папке, соответствующие команды могли быть недоступны.
  6. Обновлены переводы пользовательского интерфейса.

MQL5

  1. Добавлены новые методы OpenBLAS:

    Приведение матриц

    • ReduceToHessenberg — преобразует вещественную или комплексную общую матрицу A размером n на n к матрице B верхней формы Хессенберга с помощью ортогонального преобразования подобия: Q**T * A * Q = H. LAPACK-функция GEHRD.
    • ReflectHessenbergToQ — генерирует ортогональную матрицу Q, которая определяется как произведение n-1 элементарных рефлекторов порядка n, возвращаемых функцией ReduceToHessenberg: Q = H(1) H(2) . . . H(n-1). LAPACK-функция ORGHR.

    Вычисление собственных значений и собственных векторов

    • EigenHessenbergSchurQ — вычисляет собственные значения матрицы Хессенберга H и матриц T и Z из разложения Шура: H = Z T Z**T. Здесь T — верхняя квазитреугольная матрица (форма Шура), а Z — ортогональная матрица векторов Шура. LAPACK-функция HSEQR.

    Решение систем линейных уравнений

    • SylvesterEquationTriangular — решает уравнение Сильвестра для вещественных квазитреугольных или комплексных треугольных матриц: op(A)*X + X*op(B) = scale*C или op(A)*X - X*op(B) = scale*C, где op(A) = A или A**T или A**H, а A и B — верхнетреугольные. LAPACK-функция TRSYL.
    • SylvesterEquationTriangularBlocked — решает уравнение Сильвестра для вещественных квазитреугольных или комплексных треугольных матриц: op(A)*X + X*op(B) = scale*C или op(A)*X - X*op(B) = scale*C, где op(A) = A, A**T или A**H, а A и B — верхнетреугольные матрицы. LAPACK-функция TRSYL3. Это блочная (BLAS уровня 3) версия TRSYL. Быстрее до 5 раз, но менее точная.

    Факторизованные расчеты

    • SylvesterEquationSchur — решает уравнение Сильвестра для вещественных квазитреугольных или комплексных треугольных матриц: A*X + X*B = C, где A и B — верхнетреугольные матрицы. A имеет размер m на m, а B — n на n; правая часть C и решение X имеют размер m на n. LAPACK-функция TRSYL.
    • SylvesterEquationSchurBlocked — решает уравнение Сильвестра для вещественных квазитреугольных или комплексных треугольных матриц: A*X + X*B = C, где A и B — верхнетреугольные матрицы. A имеет размер m на m, а B — n на n; правая часть C и решение X имеют размер m на n. LAPACK-функция TRSYL3. Это блочная (BLAS уровня 3) версия TRSYL. Быстрее до 5 раз, но менее точная.

    Расчет норм матриц для разных структур

    • MatrixNorm — возвращает значение 1-нормы, бесконечной нормы, нормы Фробениуса или наибольшего абсолютного значения любого элемента прямоугольной матрицы общего вида. LAPACK-функция LANGE.
    • MatrixNormGeTrid — возвращает значение 1-нормы, бесконечной нормы, нормы Фробениуса или наибольшего абсолютного значения любого элемента общей трехдиагональной матрицы. LAPACK-функция LANGT.
    • MatrixNormHessenberg — возвращает значение 1-нормы, бесконечной нормы, нормы Фробениуса или наибольшего абсолютного значения любого элемента верхней матрицы Хессенберга. LAPACK-функция LANHS.
    • MatrixNormSy — возвращает значение 1-нормы, бесконечной нормы, нормы Фробениуса или наибольшего абсолютного значения любого элемента действительной симметричной или комплексной эрмитовой матрицы. LAPACK-функции LANSY и LANHE.
    • MatrixNormComplexSy — возвращает значение 1-нормы, бесконечной нормы, нормы Фробениуса или наибольшего абсолютного значения любого элемента комплексной симметричной (не эрмитовой) матрицы. LAPACK-функция LANSY.
    • MatrixNormSyTrid — возвращает значение 1-нормы, бесконечной нормы, нормы Фробениуса или наибольшего абсолютного значения любого элемента действительной симметричной или комплексной эрмитовой трехдиагональной матрицы. LAPACK-функции LANST и LANHT.
    • MatrixNormTriangular — возвращает значение 1-нормы, бесконечной нормы, нормы Фробениуса или наибольшего абсолютного значения любого элемента трапециевидной матрицы размером m на n или треугольной матрицы. LAPACK-функция LANTR.

    Анализ структурных свойств матриц

    • IsSymmetric — проверяет, является ли квадратная матрица симметричной.
    • IsHermitian — проверяет, является ли квадратная комплексная матрица эрмитовой.
    • IsUpperTriangular — проверяет, является ли квадратная матрица верхнетреугольной.
    • IsLowerTriangular — проверяет, является ли квадратная матрица нижнетреугольной.
    • IsTrapezoidal — проверяет, является ли прямоугольная (не квадратная) матрица размером m на n верхней или нижней трапециевидной.
    • IsUpperHessenberg — проверяет, является ли квадратная матрица верхней матрицей Хессенберга.
    • IsLowerHessenberg — проверяет, является ли квадратная матрица нижней матрицей Хессенберга.
    • IsTridiagonal — проверяет, является ли квадратная матрица трехдиагональной.
    • IsUpperBidiagonal — проверяет, является ли квадратная матрица верхней бидиагональной.
    • IsLowerBidiagonal — проверяет, является ли квадратная матрица нижней бидиагональной.
    • IsDiagonal — проверяет, является ли квадратная матрица диагональной.
    • IsScalar — проверяет, является ли квадратная матрица скалярной.

  2. Добавлен метод Conjugate для комплексных матриц и векторов. Он изменяет знак мнимой части комплексного числа и возвращает измененную матрицу или вектор.
  3. Усилены правила скрытия методов. При наличии в производном классе метода с тем же именем, что и в базовом, теперь по умолчанию вызывается версия из производного класса. Чтобы обратиться к базовому методу, теперь требуется квалификатор:
    struct A
      {
       int y;
      
       string func(double x)
         {
          return(__FUNCSIG__);
         }
      };
      
    struct B : public A
      {
       string func(int x)   // метод скрывает A::func
         {
          return(__FUNCSIG__);
         }
      };
      
    void OnStart(void)
      {
       B b;
       b.func(M_PI);          // по новым правилам это вызов B::func
       b.A::func(M_PI);       // вызов скрытого метода A::func
      }
    Это упрощает чтение кода и устраняет неоднозначность, ранее сопровождавшуюся лишь предупреждением компилятора.

    Ранее при компиляции было предупреждение:
    deprecated behavior, hidden method calling will be disabled in a future MQL compiler version
    Теперь это изменение вступило в силу.

    Некоторое количество билдов в журнал будет выводиться предупреждение, если по параметрам доступен более подходящий скрытый метод.
    call resolves to 'string B::func(int)' instead of 'string A::func(double)' due to new rules of method hiding
       see declaration of function 'B::func'
       see declaration of function 'A::func'
    truncation of constant value from 'double(3.141592653589793)' to 'int(3)'
  4. Запрещено дублирование имен в одной области видимости. Например, ранее вы могли объявлять параметр input и функцию с одинаковым именем в одном файле. Теперь такое дублирование недопустимо:
    input int somename=42;
    
    int somename(int x)
      {
       return(42);
      }
  5. Добавлена строгая проверка типов значений по умолчанию в перечислениях. Для параметров-функций, принимающих enum, теперь проверяется не только значение, но и точное соответствие типа:
    int somename(ENUM_TIMEFRAMES TF=PERIOD_CURRENT);
    
    int somename(ENUM_TIMEFRAMES TF=0)   // ошибка, несоответствие типа параметра по умолчанию, несмотря на их одинаковые значения
      {
       return(42);
      }
  6. Запрещены одинаковые идентификаторы в разных перечислениях. Идентификатор внутри одного перечисления теперь не может повторяться в другом в одной области видимости:
    enum A
      {
       Value
      };
      
    enum B
      {
       Value  // ошибка, имя Value уже используется в перечислении A
      };
      
    void OnStart(void)
      {
       enum C
         {
          Value // ошибки нет, в области видимости OnStart имя Value не используется
         };
      }
    В разных областях видимости можно использовать одинаковые имена.

  7. Включены жесткие требования к шаблонным функциям-инициализаторам. При создании матриц/векторов через функции-инициализаторы отключены:

    • Автотипизация шаблонных функций
    • Значения параметров по умолчанию

    Теперь необходимо явно указывать параметры шаблона и все аргументы:
    template<typename T>
    void Initializer(matrix<T>& mat,int method=0);
    
    matrix<double> A(10,10,Initializer,42);          // ошибка, функция Initializer должна быть типизирована явно
    matrix<double> A(10,10,Initializer<double>);     // ошибка, отсутствует параметр 'method' для вызова функции Initializer (значения по умолчанию больше не поддерживаются)
    matrix<double> A(10,10,Initializer<double>,42);  // ошибки нет
  8. Улучшена поддержка ONNX. Добавлена неявная конверсия знакового типа при передаче массивов ulong в функциях, что облегчает интеграцию MQL5 с моделями ONNX.
    OnnxSetInputShape( … , ulong_array );
    OnnxSetOutputShape( … , ulong_array );
  9. Исправлено отображение типов в предупреждениях о неявном преобразовании строк.
  10. Обновлен пакет интеграции с Python. Для установки обновления выполните команду:
    pip install --upgrade MetaTrader5

MetaEditor

  1. MetaEditor: Исправлена работа команды «Откатиться к ревизии», используемой для MQL5 Storage. Теперь оценка конфликтов между версиями, которые могут возникнуть при откате, производится до операции. Если откат невозможен, операция отменяется.
  2. Обновлены переводы пользовательского интерфейса.

Tester

  1. Tester: Исправлена работа функции OrderCalcMargin для счетов с биржевой моделью расчетов.
  2. Tester: Исправлено переключение между графиками при визуальном тестировании мультивалютных экспертов.

Web Terminal

  1. Исправлена верификация email при открытии демонстрационных и предварительных счетов. В некоторых случаях поле для ввода кода подтверждения не показывалось.
  2. Исправлено подключение к счету при работе в браузере Huawei.
  3. Исправлено подключение к счетам при использовании одноразовых паролей. В некоторых случаях при первом подключении к счету поле для ввода одноразового пароля могло отсутствовать.
27 июня 2025
Новый MetaTrader 5 для iPhone/iPad: торговый отчет и дополнительные индикаторы

В последних версиях мобильного приложения MetaTrader 5 для iOS появилось множество новых функций, которые помогут трейдерам держать руку на пульсе финансовых рынков, где бы они ни находились.

  1. Добавлен отчет, позволяющий оценить результаты своей торговли в удобной визуальной форме. Он поможет оптимизировать портфель, понять, как снизить риски и повысить стабильность торговли. Чтобы проанализировать свою стратегию, перейдите в раздел истории и нажмите иконку выбора периода. Далее выберите период и нажмите «Создать торговый отчет».


    Новый торговый отчет


    Отчет поделен на несколько вкладок, каждая из которых содержит агрегированную информацию в своем разрезе:

    • Summary — сводная информация о торговле за все время: общие показатели прибыли и убытков, сумма депозитов и выводов, графики баланса, роста и дивидендов и другие результаты торговли.
    • Profit/Loss — информация о прибыльных и убыточных сделках. Делится по типам торговли (ручная, алготрейдинг и копирование сделок), результаты можно анализировать в разрезе сделок или денег по месяцам и годам.
    • Long/Short — покажет вам соотношение между покупками и продажами в динамике и в заданные промежутки времени, а также позволит оценить прибыльность по направлениям Buy и Sell.
    • Symbols — анализ сделок по финансовым инструментам. Здесь вы увидите, на каких символах вы зарабатываете или теряете, как часто по ним торгуете, графики сделок и денежных объемов по ним.
    • Risks — основные показатели по рискованности вашей стратегии: графики просадки и нагрузки на депозит, соотношения прибыльных и убыточных сделок.

  2. Добавлены индикаторы ZigZag и Market Profile, а также новый тип графика — Heikin Ashi. Эти инструменты помогут глубже понимать рынок и выявлять тенденции.

    Чтобы добавить новые индикаторы, откройте меню графика, нажмите «Главное окно» и выберите их из списка — ZigZag находится в трендовых индикаторах, Market Profile — в индикаторах объема.


    Индикаторы Market Profile и ZigZag


    Чтобы посмотреть график Heikin Ashi, нажмите на график и перейдите в настройки.


    График Heikin Ashi


  3. Добавлено отображение данных о сделках в окне данных. Если вы наводите «перекрестие» на бар, в течение которого совершались сделки, то в окне данных будут показаны не только цены и значения индикаторов, но и общие данные об операции: направление, тикет, объем, цена и финансовый результат.


    Улучшенное окно данных


  4. Добавлен режим быстрого вызова окна данных на графике. Теперь при долгом (более секунды) нажатии на основной график включается режим перекрестия и вызывается окно данных. Как только вы отпускаете палец, график возвращается в обычный режим. Это позволяет быстро просматривать точные значения баров, индикаторов и сделок, не переключаясь в режим перекрестия через верхнюю панель.
  5. Добавлена отдельная команда для перехода к изменению размера и порядка дополнительных окон индикаторов. Это же действие можно выполнить долгим нажатием на подокно индикатора на графике. Также улучшен сам режим редактирования подокон — добавлены дополнительные иконки для наглядности.


    Новая команда для изменения размеров и порядка подокон индикаторов


  6. Оптимизировано отображение торговой истории на графике. Теперь приложение может показывать тысячи сделок без существенного снижения производительности.

Установите последнюю версию приложения и расширьте свои торговые возможности:



12 июня 2025
Новая версия платформы MetaTrader 5 build 5120: улучшения и исправления

Terminal

  1. Исправлены ошибки отображения графического интерфейса при работе в Linux и macOS.
  2. Доработан механизм обновления платформы. Теперь стандартная библиотека MQL5 не будет заменяться каждый раз полностью, а только фактически измененные файлы.
  3. Добавлен сброс полноэкранного режима просмотра при перезапуске приложения. Теперь при каждом запуске программа будет иметь полный интерфейс.

MQL5

  1. Разрешена передача массивов с приведением по знаку для следующих функций:

    • ArraySwap
    • WebRequest
    • CryptEncode
    • CryptDecode
    • StringToCharArray
    • CharArrayToString
    • StringToShortArray
    • ShortArrayToString
    • StructToCharArray
    • CharArrayToStruct

  2. Исправлено получение состояния клавиш для MQL-программ на активном графике при помощи функции TerminalInfoInteger.
  3. Исправлена работа функции ArrayInitialize для массивов перечислений (enum).

MetaEditor

  1. Обновлены доступные модели для AI Assistant. Теперь поддерживаются все модели GPT-4.1 и 04-mini.
  2. Включены точные проверки для статуса файлов в хранилище MQL5 Storage. Теперь проверяется хэш файлов, что исключает отображение ложных индикаторов. Ранее красной иконкой могли помечаться файлы, фактически не имевшие локальных изменений по сравнению с версией в хранилище.
  3. Обновлены переводы пользовательского интерфейса.
5 июня 2025
Новая версия платформы MetaTrader 5 build 5100: Переход на Git и хаб разработчиков MQL5 Algo Forge, темная тема и улучшения интерфейса

MetaEditor

  • Мы полностью обновили хранилище исходных кодов MQL5 Storage. Теперь в качестве системы контроля версий в нем используется не Subversion, а Git. Он является стандартом для разработчиков по всему миру, обеспечивая надежность и гибкость в управлении кодом.

    • Гибкое ветвление и слияние — создавайте отдельные ветки для новых функций или экспериментов, а затем легко объединяйте их в основную версию проекта.
    • Ускоренная работа с репозиторием — в отличие от Subversion, Git хранит все данные локально, что делает операции (коммиты, переключение между версиями, сравнение изменений) гораздо быстрее.
    • Работа в оффлайн-режиме — теперь вам не нужно постоянное подключение к серверу: вы можете коммитить изменения локально, а затем отправлять их в онлайн-репозиторий, когда будет удобно.
    • Продвинутая система отслеживания изменений — Git позволяет легко просматривать историю изменений, отслеживать, кто и когда внес правки, а также откатываться к предыдущим версиям без лишних сложностей.
    • Лучшее слияние изменений — продвинутая система сравнения и объединения кода позволяет минимизировать конфликты и легко управлять совместной разработкой.

    Совместная разработка на новом уровне
    Вместе с переходом на Git мы открываем новый портал для управления проектами онлайн — MQL5 Algo Forge. Это не просто список ваших проектов, это целая социальная сеть для разработчиков, своего рода GitHub для алготрейдеров. Подписывайтесь на интересных авторов, создавайте команды и ведите совместные проекты удобно.




    Просматривайте детали проектов: структуру, файлы, коммиты, ветки и т.д. Отслеживайте вклад каждого участника, создавайте документацию и делитесь проектом в Интернете.




    Отслеживайте все изменения в коде: новые, измененные и удаленные строки. При обнаружении проблем ставьте разработчику задачу на исправление прямо в проекте.




    Для работы с Git мы переработали меню Навигатора и активного окна редактирования кода. Также мы добавили отдельное меню Git на верхнюю панель MetaEditor:




    Все подробности работы с Git скоро появятся в документации.

Terminal

  1. Добавлена поддержка темной цветовой схемы интерфейса для всех компонентов: торгового терминала, MetaEditor и визуального тестера. Темная тема позволит работать с платформой более комфортно в ночное время. Для переключения используйте меню «Вид»:




    Адаптируя интерфейс для поддержки разных тем, мы внесли множество улучшений в отображение диалогов, меню, панелей и кнопок для более комфортной работы. В MetaEditor информация о текущем положении курсора в активном окне, а также индикатор режима ввода текста (INS/OVR) показываются в правом верхнем углу. Строка состояния внизу окна больше не показывается, чтобы сэкономить рабочее пространство.

  2. Добавлена возможность арендовать VPS на 12 месяцев. Покупая хостинг сразу на долгий срок, вы экономите треть стоимости.




  3. Оптимизировано потребление памяти, теперь для работы терминала используется меньше ресурсов компьютера.
  4. Оптимизировано отображение торговой истории счета. Теперь платформа может корректно выводить миллионы записей.
  5. Добавлена команда «По умолчанию» в меню «Окно». Она возвращает все элементы интерфейса — графики, Навигатор, Тестер стратегий и т.д. — в исходное положение.
  6. Исправлена ошибка, в некоторых случаях приводившая к зависанию диалога изменения позиции.
  7. Исправлен расчет стоимости открытых позиций при отрицательных ценах.
  8. Исправлен расчет гарантийного обеспечения в спецификации торгового инструмента при отрицательных ценах.
  9. Исправлен расчет текущих значений и отображение графиков MFE и MAE в торговом отчете.
  10. Исправлено масштабирование осцилляторов в подоконах графиков. Теперь вертикальная шкала для них отображается корректно.
  11. Исправлено скрытие и показ стаканов и досок опционов при переключении полноэкранного режима.
  12. Добавлен показ тикета позиции в торговой истории счета. Для включения колонки используйте контекстное меню.
  13. Исправлен расчет ликвидационной стоимости на вкладке «Активы» для фьючерсов и опционов.
  14. Исправлено копирование данных созданного счета в буфер обмена. На последнем этапе регистрации демонстрационного или предварительного счета пользователю выводятся данные счета: логин, пароли и т.д. Их можно скопировать в буфер обмена, чтобы сохранить в отдельном файле. Теперь соответствующая команда работает корректно на macOS.
  15. Исправлено отображение раздела журнала VPS. В некоторых случаях на странице показывалась ошибка.
  16. Исправлена поддержка мониторов HiDPI при работе в Linux.
  17. Обновлены переводы пользовательского интерфейса.

MQL5

  1. Добавлен оператор матричного умножения @. Он работает по правилам линейной алгебры и позволяет умножать матрицы и векторы, а также выполнять скалярное произведение векторов.

    Матричное умножение (матрица × матрица)
    matrix A(2, 3);
    matrix B(3, 2);
    matrix C = A @ B; // Результат: матрица C размером [2,2]
    Матричное умножение (матрица × вектор)
    matrix M(2, 3);
    vector V(3);
    vector R = M @ V; // Результат: вектор R из 2 элементов
    Матричное умножение (вектор × матрица)
    matrix M(2, 3);
    vector V(1, 2);
    vector R = V @ M; // Результат: вектор R из 3 элементов
    Скалярное произведение (вектор × вектор)
    vector V1(1, 3), V2(1, 3);
    double r = V1 @ V2; // Результат: скаляр
  2. Добавлен параметр ddof в методы Std, Var и Cov. Он определяет число степеней свободы, которые вычитаются из делителя при вычислении стандартного отклонения. Для Std и Var параметр по умолчанию равен 0, для Cov — 1.

    Как влияет ddof:

    • По умолчанию ddof=0, и стандартное отклонение вычисляется для всей совокупности (population standard deviation).
    • Если ddof=1, то используется выборочное стандартное отклонение (sample standard deviation), что корректирует оценку для конечной выборки (используется в статистике при работе с подмножеством данных).

  3. Добавлены новые методы OpenBLAS:

    Вычисление собственных значений и собственных векторов

    • EigenTridiagonalDC — вычисляет собственные значения и собственные векторы симметричной трехдиагональной матрицы с использованием алгоритма «разделяй и властвуй» (LAPACK-функция STEVD).
    • EigenTridiagonalQR — вычисляет собственные значения и собственные векторы симметричной трехдиагональной матрицы с использованием QR-алгоритма (LAPACK-функция STEV).
    • EigenTridiagonalRobust — вычисляет собственные значения и собственные векторы симметричной трехдиагональной матрицы с использованием алгоритма MRRR (Multiple Relatively Robust Representations) (LAPACK-функция STEVR).
    • EigenTridiagonalBisect — вычисляет собственные значения и собственные векторы симметричной трехдиагональной матрицы с использованием алгоритма бисекции (LAPACK-функция STEVX).
    • ReduceToBidiagonal — приводит общую вещественную или комплексную матрицу размером m×n к верхней или нижней бидиагональной форме B с помощью ортогонального преобразования: Q**T * A * P = B. Если m≥n, то B является верхней бидиагональной матрицей, иначе — нижней бидиагональной. (LAPACK-функция GEBRD).
    • ReflectBidiagonalToQP — генерирует ортогональные матрицы Q и P**T (или P**H для комплексных типов), определяемые методом ReduceToBidiagonal при приведении вещественной или комплексной матрицы A к бидиагональной форме: A = Q * B * P**T.  Q и P**T представляют собой произведения элементарных отражателей H(i) или G(i) соответственно. (LAPACK-функции ORGBR, UNGBR).
    • ReduceSymmetricToTridiagonal — приводит вещественную симметричную или комплексную эрмитову матрицу A к трехдиагональной форме B с помощью ортогонального преобразования подобия: Q**T * A * Q = B.  (LAPACK-функции SYTRD, HETRD).
    • ReflectTridiagonalToQ — генерирует ортогональную матрицу Q, которая представляет собой произведение n-1 элементарных отражателей порядка n, возвращаемых функцией ReduceSymmetricToTridiagonal.

    • LinearEquationsSolution — вычисляет систему линейных уравнений с квадратной матрицей коэффициентов A и несколькими правыми частями.
    • LinearEquationsSolutionTriangular — вычисляет систему линейных уравнений с квадратно-треугольной матрицей коэффициентов A и несколькими правыми частями.
    • LinearEquationsSolutionSy — вычисляет систему линейных уравнений с симметричной или эрмитово сопряженной матрицей A и несколькими правыми частями.
    • LinearEquationsSolutionComplexSy — вычисляет систему линейных уравнений с комплексной симметричной матрицей A и несколькими правыми частями.
    • LinearEquationsSolutionGeTrid — вычисляет систему линейных уравнений с симметричной или эрмитово сопряженной положительно определенной матрицей A и несколькими правыми частями.
    • LinearEquationsSolutionSyPD — вычисляет систему линейных уравнений с общей (несимметричной) трехдиагональной матрицей коэффициентов A и несколькими правыми частями.
    • LinearEquationsSolutionSyTridPD — вычисляет систему линейных уравнений с симметричной трехдиагональной положительно определенной матрицей A и несколькими правыми частями.
    • FactorizationQR — вычисляет QR-разложение общей матрицы размера m на n: A = Q * R (LAPACK-функция GEQRF).
    • FactorizationQRNonNeg — вычисляет QR-разложение общей матрицы размера m на n: A = Q * R, где R — верхнетреугольная матрица с неотрицательными элементами на диагонали (LAPACK-функция GEQRFP).
    • FactorizationQRPivot — вычисляет QR-разложение общей матрицы размера m на n с перестановкой столбцов: A * P = Q * R (LAPACK-функция GEQP3).
    • FactorizationLQ — выполняет LQ-разложение общей матрицы размером m на n: A = L * Q (LAPACK-функция GELQF).
    • FactorizationQL — выполняет QL-разложение общей матрицы размером m на n: A = Q * L (LAPACK-функция GEQLF).
    • FactorizationRQ — выполняет RQ-разложение общей матрицы размером m на n: A = R * Q (LAPACK-функция GERQF).
    • FactorizationPLU — вычисляет LU-разложение общей матрицы A размером m на n с использованием частичного выбора ведущего элемента и перестановок строк (LAPACK-функция GETRF).
    • FactorizationPLUGeTrid — вычисляет LU-разложение общей (несимметричной) трехдиагональной матрицы A размером n на n с использованием частичного выбора ведущего элемента и перестановок строк (LAPACK-функция GTTRF).
    • FactorizationLDL — вычисляет разложение для вещественной симметричной или комплексной эрмитовой матрицы A с использованием диагонального выбора ведущего элемента по методу Банча-Кауфмана (LAPACK-функции SYTRF и HETRF).
    • FactorizationLDLSyTridPD — вычисляет разложение симметричной положительно определенной (для вещественных данных) или эрмитовой положительно определенной (для комплексных данных) трехдиагональной матрицы A (LAPACK-функция PTTRF).
    • FactorizationCholesky — вычисляет разложение для вещественной симметричной или комплексной эрмитовой положительно-определенной матрицы A (LAPACK-функция POTRF).
    • FactorizationCholeskySyPS — вычисляет разложение Холецкого с полным выбором ведущего элемента (complete pivoting) для вещественной симметричной (или комплексной эрмитовой) положительно полуопределенной матрицы A размером n на n (LAPACK-функция PSTRF).

  4. Добавлена функция и метод Random для заполнения случайными значениями векторов и матриц. Случайные значения генерируются равномерно в заданном диапазоне.
    static vector vector::Random(
      const ulong   size,       // длина вектора
      const double  min=0.0,    // минимальное значение
      const double  max=1.0     // максимальное значение
       );
    
    static matrix matrix::Random(
      const ulong   rows,       // количество строк
      const ulong   cols        // количество столбцов
      const float   min=0.0,    // минимальное значение
      const float   max=1.0     // максимальное значение
       );
  5. Добавлена поддержка дополнительных псевдонимов целочисленных типов. Это упростит портирование кода из других языков, таких как C и C++.

    Эти алиасы не вводят новые типы, а являются альтернативными именами уже существующих типов в MQL5. Их можно использовать во всех контекстах, где применимы базовые типы.

    • int8_t
    • uint8_t
    • int16_t
    • uint16_t
    • int32_t
    • uint32_t
    • int64_t
    • uint64_t

  6. Добавлены функции для определения цветовой схемы терминала:

    • Новое свойство TERMINAL_COLORTHEME_NAME в перечислении ENUM_TERMINAL_INFO_STRING. Используйте его для запроса типа цветовой схемы при помощи функции TerminalInfoString. Возможные значения: Light и Dark.
    • Новые свойства THEME_COLOR_* в перечислении ENUM_TERMINAL_INFO_INTEGER. Используйте их для получения цветов конкретных элементов интерфейса при помощий фукнции TerminalInfoInteger.

    Для определения факта смены цветовой схемы используйте обработчик OnChartEvent. При смене схемы дважды вызывается событие CHARTEVENT_CHART_CHANGE.

  7. Исправлена ошибка, приводившая к падению MetaEditor при компиляции кода, в котором есть метод Array::Reserve. Метод Reserve не изменяет размер массива, а резервирует место для указанного количества элементов для предотвращения перевыделения памяти при добавлении новых элементов.
  8. Исправлена работа метода Array::Push, добавляющего новые элементы в конец массива. Ошибка возникала для массивов, имеющих резерв в буфере.
  9. Исправлены функции для работы с OpenCL.

MetaTester

  1. Ускорена оптимизация торговых стратегий.
  2. Исправлена ошибка, в некоторых случая приводившая к чрезмерному потреблению оперативной памяти агентами тестирования при выполнении заданий из MQL5 Cloud Network.

Web Terminal

  1. Исправлена опция сохранения пароля в диалоге подключения к счету.
  2. Исправлена работа кнопок для перемещения графика. В некоторых случаях при их использовании график мог исчезать.
  3. Исправлена проверка поля «Отчество» в форме запроса реальных счетов. Теперь оно не является обязательным для заполнения.
  4. Исправлено открытие демо-счетов. В некоторых случаях при открытии счета происходило некорректное перенаправление на сайт брокера.
  5. Исправлено отображение кнопок открытия демонстрационных и реальных счетов. Теперь кнопки скрываются, если соответствующая функция отключена брокером.
  6. Исправлена работа поля «Депозит» в форме открытия демо-счетов.
  7. Исправлено отображение поля «Торговля» в спецификации контракта.
  8. Исправлено поле поиска символов в окне «Обзор рынка». Теперь в нем отображается кнопка «X» для выхода из режима поиска.
  9. Исправлена подсказка для поля, в котором вводится код подтверждения Email, в форме открытия счета.


Обновление будет доступно через систему Live Update.

18 марта 2025
MetaTrader 5 для iPhone/iPad: линейка, текстовые объекты для графиков и таймер бара

В последних версиях мобильного приложения MetaTrader 5 для iOS мы добавили множество удобных функций для графиков, а также сделали несколько важных исправлений для более стабильной работы приложения.

  1. Добавлен текстовый объект для создания собственных подписей на графике. Зайдите в меню объектов графика и нажмите «Добавить текст». Далее введите текст и выберите точку на графике, где он должен быть размещен. У объекта есть две точки — для перемещения и для изменения направления.



    Текстовый объект для создания собственных подписей на графике



    Мы также добавили на график небольшое меню объектов — оно появляется в нижней части сразу после их создания. Теперь для изменения основных свойств вам не нужно переходить в меню объектов.

  2. Добавлен таймер, который показывает время до окончания текущего бара. Он работает на всех таймфреймах, позволяя вам следить за любыми свечами — от минутных до дневных. Функция будет полезна тем трейдерам, чьи стратегии основываются на закрытии или открытии баров.

    Чтобы включить таймер, перейдите в настройки графика. Время будет показываться на вертикальной шкале, под текущей ценой.


    Таймер, который показывает время до окончания текущего бара



  3. Доработан режим перекрестия — теперь его можно использовать как линейку. Включив перекрестие, поместите его на нужную точку, от которой необходимо измерить расстояние. Далее один раз нажмите на точку, до которой нужно измерить расстояние. Разница в ценах, процентах и в количестве баров будет показана в подсказке.


    Доработан режим перекрестия — теперь его можно использовать как линейку



  4. Добавлено отображение тикета позиции в торговой истории.


    Добавлено отображение тикета позиции в торговой истории



  5. Улучшено отображение задержки котировок, если таковая используется для торгового инструмента. Теперь информация указывается на графике, а иконка в «Обзоре рынка» стала более заметной.



    Улучшено отображение задержки котировок



  6. Добавлена поддержка новых провайдеров для встроенной платежной системы.
  7. Добавлено поле для ввода даты рождения при открытии демо-счетов.
  8. Доработаны чаты: исправлено отображение аватарок, добавлен просмотрщик документов, добавлена поддержка изображений *.webp, исправлен поиск.

Установите последнюю версию приложения и расширьте свои торговые возможности:

MetaTrader 5 в App Store
13 декабря 2024
MetaTrader 5 build 4755: общие улучшения

В MetaTrader 5 build 4755 мы исправили ошибку в расчете тройного свопа в тестере стратегий, происходившую при некоторых сочетаниях условий тестирования. Также мы внесли ряд более мелких улучшений и исправлений, чтобы сделать работу платформы еще более стабильной.

6 декабря 2024
MetaTrader 5 build 4730: расширение поддержки OpenBLAS и общая оптимизация работы

Terminal

  1. Изменен расчет стоимости позиций, ордеров и сделок. Теперь она отображается в валюте депозита счета, а не в базовой валюте торгового инструмента:

    Стоимость позиций, ордеров и сделок теперь отображается в валюте депозита счета

  2. Добавлено поле для ввода даты рождения при открытии демо-счетов.

    Добавлено поле для ввода даты рождения при открытии демо-счетов


  3. Исправлено масштабирование индикаторов, отображаемых в подокне графика. Для некоторых осцилляторов минимальное и максимальное значение шкалы могло выбираться некорректно.
  4. Оптимизирована и ускорена распаковка тиковых данных и ценовой истории, что увеличит скорость открытия графиков.
  5. Исправлено редактирование цвета текста в окне создания письма внутренней почты.
  6. Обновлены переводы пользовательского интерфейса.

MQL5

  1. Добавлены новые методы OpenBLAS:

    • EigenSolver2 — вычисление обобщенных собственных значений и собственных векторов для пары обычных квадратных матриц (lapack-функция GGEV).
    • EigenSolverX — вычисление собственных значений и собственных векторов обычной квадратной матрицы в режиме эксперта (Expert mode), то есть с возможностью влиять на алгоритм расчета и возможностью получить сопутствующие расчетные данные (lapack-функция GEEVX).
    • EigenSolver2X — вычисление обобщенных собственных значений и собственных векторов для пары обычных квадратных матриц в режиме эксперта (Expert mode), то есть с возможностью влиять на алгоритм расчета и возможностью получить сопутствующие расчетные данные (lapack-функция GGEVX).
    • EigenSolverShur — вычисление собственных значений, верхнетреугольной матрицы в форме Шура и матрицы векторов Шура (lapack-функция GEES).
    • EigenSolver2Shur — вычисление для пары обычных квадратных матриц обобщенных собственных значений, обобщенных собственных векторов, обобщенных форм Шура и левых и правых векторов Шура (lapack-функция GGES).
    • EigenSolver2Blocked — вычисление обобщенных собственных значений и собственных векторов для пары обычных квадратных матриц при помощи блочного алгоритма (lapack-функция GGEV3).
    • EigenSolver2ShurBlocked — вычисление для пары обычных квадратных матриц обобщенных собственных значений, обобщенных собственных векторов, обобщенных форм Шура и левых и правых векторов Шура при помощи блочного алгоритма (lapack-функция GGES3).
    • EigenSymmetricRobust — вычисление собственных значений и собственных векторов симметричной или эрмитовой (комплексно-сопряженной) матрицы при помощи алгоритма Multiple Relatively Robust Representations, MRRR (lapack-функции SYEVR, HEEVR).
    • EigenSymmetricBisect — вычисление собственных значений и собственных векторов симметричной или эрмитовой (комплексно-сопряженной) матрицы при помощи алгоритма bisection (lapack-функции SYEVX, HEEVX).

  2. Добавлены новые методы для комплексных матриц:

    • TransposeConjugate — для создания сопряженно-транспонированной матрицы.
      matrix<complex<T>> matrix<complex<T>>::TransposeConjugate(void) const;
      Метод возвращает новую сопряженно-транспонированную матрицу, в которой элементы исходной матрицы транспонированы и приведены к их комплексно сопряженным значениям.

      При ошибке возвращается пустая матрица, для получения кода ошибки используйте функцию GetLastError.

    • CompareEqual — абсолютное сравнение двух матриц.
      int matrix<T>::CompareEqual(const matrix<T>& mat) const
      Возвращаемые значения:

      • -1 — если элемент матрицы A меньше соответствующего элемента матрицы B.
      • 0 — если все элементы матриц A и B идентичны.
      • 1 — если элемент матрицы A больше соответствующего элемента матрицы B.

      Метод также может возвращать ошибки при некорректном состоянии входных данных. Для получения кода ошибки используйте функцию GetLastError.

  3. Добавлена поддержка Python вплоть до версии 3.13 для соответствующего пакета интеграции. Для обновления пакета выполните команду:

    pip install --upgrade MetaTrader5

  4. Исправлен пропуск первого события Timer. Ошибка возникала, если таймер включался внутри обработчика OnTimer.

MetaEditor

  • Исправлено вычисление значений для входных переменных при работе под отладчиком. В некоторых случаях вместо значения выводилось сообщение unknown identifier.

Tester

  • Исправлен поиск необходимых кросс-курсов для конвертации валют при тестировании на биржевых инструментах.

Web Terminal

  1. Добавлена поддержка режима исполнения «По запросу» для ордеров большого объема.
  2. Добавлена поддержка расширенного описания для причины отклонения запроса брокером.
  3. Исправлена форма открытия счетов. Теперь набор запрашиваемых данных соответствует настройкам брокера.
  4. Исправлено определение страны при регистрации демо-счета.
  5. Исправлено выравнивание диалога с предупреждением о включении торговли одним кликом.
11 октября 2024
MetaTrader 5 build 4620: исправления ошибок в MQL5 и новые методы OpenBLAS

Terminal

  1. Исправлена ошибка, в результате которой в некоторых случаях запрашивалась неполная тиковая история.
  2. Исправлено автодополнение при выборе символов для языков, отличных от английского. Когда пользователь вводит название символа в поле поиска, система начинает автоматически предлагать подходящие варианты. Теперь поиск работает корректно и регистронезависимо для любых локалей.

MQL5

  1. В документацию MQL5 добавлено описание новых методов OpenBLAS. На данный момент добавлено 15 новых методов для матриц и векторов, работа по наполнению продолжается.
    OpenBLAS — эффективное решение с открытым исходным кодом для высокопроизводительных вычислений, особенно при работе с большими наборами данных.
    Функция Действие

    SingularValueDecompositionDC

    Singular Value Decomposition, алгоритм divide and conquer. Считается наиболее быстрым среди других алгоритмов SVD (lapack-функция GESDD).

    SingularValueDecompositionQR

    Singular Value Decomposition, QR-алгоритм. Считается классическим алгоритмом SVD (lapack-функция GESVD).

    SingularValueDecompositionQRPivot

    Singular Value Decomposition, алгоритм QR with pivoting (lapack-функция GESVDQ).

    SingularValueDecompositionBisect

    Singular Value Decomposition, алгоритм bisection (lapack-функция GESVDX).

    SingularValueDecompositionJacobiHigh

    Singular Value Decomposition, алгоритм Jacobi high level (lapack-функция GEJSV).

    SingularValueDecompositionJacobiLow

    Singular Value Decomposition, алгоритм Jacobi low level (lapack-функция GESVJ). В некоторых случаях вычисляет малые сингулярные значения и их сингулярные векторы гораздо более точно, чем другие подпрограммы SVD.

    SingularValueDecompositionBidiagDC

    Singular Value Decomposition, алгоритм divide and conquer для бидиагональной матрицы (lapack-функция BDSDC).

    SingularValueDecompositionBidiagBisect

    Singular Value Decomposition, алгоритм bisection для бидиагональных матриц (lapack-функция BDSVDX).

    EigenSolver

    Вычисление собственных значений и собственных векторов обычной квадратной матрицы классическим алгоритмом (lapack-функция GEEV).

    EigenSymmetricDC

    Вычисление собственных значений и собственных векторов симметричной или эрмитовой (комплексно-сопряжённой) матрицы при помощи алгоритма divide and conquer (lapack-функции SYEVD, HEEVD).

    SingularSpectrumAnalysisSpectrum

    Функция-метод расчета относительных вкладов спектральных компонент по собственным значениям.

    SingularSpectrumAnalysisForecast

    Функция-метод расчета реконструированных и прогнозируемых данных с использованием спектральных компонент входного временного ряда.

    SingularSpectrumAnalysisReconstructComponents

    Функция-метод расчета реконструированных компонент входного временного ряда и их вклады.

    SingularSpectrumAnalysisReconstructSeries

    Функция-метод расчета реконструированного временного ряда с использованием первых component_count компонент.

  2. Исправлены ошибки при запуске старых версий исполняемых файлов MQL5-программ (.ex5 файлы), в которых используются методы matrix::CopyRates. Такие ошибки не возникали в файлах, скомпилированных после установки необходимых обновлений.
  3. Исправлена проверка типов объектов, разрешенных в union.

MetaTester

  • Исправлены падения, возникающие в некоторых случаях при деинициализации пользовательских индикаторов.

4 октября 2024
MetaTrader 5 build 4585: улучшения в работе

Terminal

  • Исправлены падения, возникавшие в некоторых случаях при остановке профилировки MQL5-программ.

MetaEditor

MetaTester

  • Исправлены падения, возникавшие в некоторых случаях при повторном запуске одиночного прохода тестирования.
27 сентября 2024
MetaTrader 5 build 4570: улучшения веб-версии и интеграция с OpenBLAS в MQL5

Terminal

  1. Ограничен доступ к MQL5-функциям для торговли и получения истории при наличии подписки на сигнал на счете.

    При обнаружении подписки на счете (не имеет значения, включено ли копирование в текущем терминале) запрещается вызов любых торговых функций MQL5: получение открытых ордеров и позиций, получение истории, выполнение торговых операций. Соответствующее предупреждение выводится в журнал:
    'XXX': signal subscription detected, trading and history access functions in MQL5 and Python disabled
    Ограничения распространяются и на вызовы торговых функций Python: positions_total, positions_get, orders_total, orders_get, history_orders_total, history_orders_get, history_deals_total, history_deals_get, order_check, order_send.

    Если счет отписывается от сигнала или вы подключаетесь к другому счету, который не подписан на сигнал, ограничение снимается и в журнал выводится сообщение:
    'XXX': no signal subscription detected, trading and history access functions in MQL5 and Python enabled
    При наличии ограничения на счете функции MQL5 будут возвращать следующие коды ответа:

    • OrderSend, OrderSendAsync — RET_REQUEST_AT_DISABLED_CLIENT
    • OrdersTotal, PositionsTotal — 0
    • PositionGetSymbol, PositionSelect, PositionSelectByTicket, PositionGetTicket — ERR_MQLAPI_TRADE_POSITION_NOT_FOUND
    • OrderGetTicket, OrderSelect — ERR_MQLAPI_TRADE_POSITION_NOT_FOUND
    • HistorySelect — возвращает ERR_MQLAPI_TRADE_DEAL_NOT_FOUND

  2. Исправлен, оптимизирован и значительно ускорен запрос тиковой истории и ее экспорт в файлы CSV\HTML.
  3. Добавлена поддержка Microsoft Edge WebView2 для отображения HTML-страниц в торговой платформе под macOS. По сравнению с устаревшим MSHTML новый компонент существенно расширяет возможности для отображения веб-контента, предоставляя доступ к современным технологиям. Переход на WebView2 позволил улучшить внешний вид разделов «Маркет», «Сигналы», «VPS» и т.д., увеличить их производительность и создать более отзывчивые интерфейсы.

  4. Исправлено контекстное меню в окне отправки письма через встроенную почту.
  5. Исправлена фильтрация в диалоге выбора торговых инструментов. Теперь для скрытия истекших инструментов необязательно сначала вводить их имя в строке поиска.
  6. Исправлен расчет ожидаемого гарантийного обеспечения (маржинальных требований) в окне спецификации контракта. Ошибка возникала для инструментов типа Exchange Stocks и Bonds.
  7. Доработана функция массового закрытия торговых позиций для счетов с FIFO. Теперь для них не показываются несовместимые типы операций: закрытие всех прибыльных/убыточных позиций, позиций в одном направлении и встречных позиций.
  8. Исправлена ошибка, из-за которой пользователи не могли выставить разнонаправленные отложенные ордера на счетах, где закрытие позиций происходит по правилу FIFO.
  9. Исправлен расчет ликвидационной стоимости торгового счета при наличии позиций по инструментам с типом Exchange Futures.
  10. Исправлен расчет плавающей прибыли для позиций по инструментам с типом Exchange Bonds и Exchange MOEX Bonds.
  11. Отключена функция автоматического создания демонстрационного счета при запуске платформы, если в ней нет ранее добавленных счетов.
  12. Улучшен контроль вводимого имени и email при регистрации счетов.
  13. Исправлен расчет маржи для захеджированных позиций. Ошибка могла проявляться в некоторых случаях при использовании плавающей маржи на счете (зависит от объема/стоимости позиций на счету).
  14. Исправлено обновление состояния кнопки «Далее» в диалоге открытия демо-счета. После ввода кода подтверждения телефона или почты кнопка могла оставаться неактивной.
  15. Обновлены переводы пользовательского интерфейса.

MQL5

  1. Добавлена штатная интеграция с библиотекой матричных вычислений OpenBLAS.

    OpenBLAS — это высокопроизводительная библиотека линейной алгебры с открытым исходным кодом, реализующая BLAS (Basic Linear Algebra Subprograms) и некоторые функции LAPACK. OpenBLAS нацелен на повышение производительности вычислений, особенно в операциях с матрицами и векторными вычислениями, которые важны в научных и инженерных задачах, таких как машинное обучение, численные методы и симуляции.

    Основные особенности OpenBLAS:

    • Поддержка многопоточности: OpenBLAS может эффективно использовать несколько процессорных ядер для параллельных вычислений, что значительно ускоряет выполнение операций на многопроцессорных системах.
    • Оптимизация под архитектуры процессоров: OpenBLAS включает оптимизированные сборки для различных процессоров, таких как Intel, AMD, ARM и других. Библиотека автоматически определяет характеристики процессора (наборы поддерживаемых инструкций AVX/AVX2/AVX512), и выбирает наиболее подходящие реализации функций.
    • Поддержка широкого спектра операций BLAS: OpenBLAS реализует основные функции BLAS, такие как операции с векторами (например, векторное сложение и скалярное произведение), матрицами (умножение) и векторно-матричные операции.
    • Совместимость с LAPACK: библиотека поддерживает ряд функций LAPACK (Linear Algebra PACKage), которые нужны для более сложных операций линейной алгебры, таких как решения систем линейных уравнений, вычисление собственных значений матриц и другие.
    • Высокая производительность: по сравнению с другими библиотеками BLAS, OpenBLAS часто показывает лучшие результаты благодаря ручной оптимизации под конкретные процессорные архитектуры.

    OpenBLAS широко используется в приложениях, связанных с численными вычислениями, таких как:

    • Обучение нейронных сетей и другие задачи машинного обучения.
    • Научные вычисления (например, моделирование физических процессов).
    • Обработка больших объемов данных и их анализ.

    На данный момент в MQL5 доступны следующие методы:

    Сингулярное разложение:

    • SingularValueDecompositionDC — алгоритм divide and conquer. Считается наиболее быстрым среди других алгоритмов SVD (lapack-функция GESDD).
    • SingularValueDecompositionQR — алгоритм QR алгоритм. Считается классическим алгоритмом SVD (lapack-функция GESVD).
    • SingularValueDecompositionQRPivot — алгоритм QR with pivoting (lapack-функция GESVDQ).
    • SingularValueDecompositionBisect — алгоритм bisection (lapack-функция GESVDX).
    • SingularValueDecompositionJacobiHigh — алгоритм Jacobi high level (lapack-функция GEJSV).
    • SingularValueDecompositionJacobiLow — алгоритм Jacobi low level (lapack-функция GESVJ). В некоторых случаях вычисляет малые сингулярные значения и их сингулярные векторы гораздо более точно, чем другие подпрограммы SVD.
    • SingularValueDecompositionBidiagDC — алгоритм divide and conquer для бидиагональных матриц (lapack-функция BDSVDX).
    • SingularValueDecompositionBidiagBisect — алгоритм bisection для бидиагональных матриц (lapack-функция BDSVDX).

    Методы Eigen:

    • EigenSolver — вычисление собственных значений и собственных векторов обычной квадратной матрицы классическим алгоритмом (lapack-функция GEEV).
    • EigenSymmetricDC — вычисление собственных значений и собственных векторов симметричной или эрмитовой (комплексно-сопряженной) матрицы при помощи алгоритма divide and conquer (lapack-функции SYEVD, HEEVD).

    Подробная документация станет доступна в ближайшее время.

  2. Добавлено значение SYMBOL_SWAP_MODE_CURRENCY_PROFIT в перечисление ENUM_SYMBOL_SWAP_MODE. Если функция SymbolInfoInteger возвращает такое значение, значит свопы на счете начисляются в деньгах в валюте расчета прибыли.
  3. Расширена поддержка ONNX Runtime. Добавлены новые типы операций машинного обучения, что позволяет запускать более сложные нейромодели.
  4. Продолжается переход на более эффективный компилятор MQL5. Он уже используется для части функций. Переход позволит использовать новые оптимизации и увеличить скорость исполнения программ.
  5. Добавлены новые типы данных, необходимые для поддержки библиотеки OpenBLAS:

    • complexf — комплексное число с данными float
    • vectorcf — вектор, содержащий элементы типа complexf
    • matrixcf — матрица, содержащая элементы типа complexf

  6. Улучшена работа WebRequest при работе с веб-сайтами, которые нарушают правила формирования URL, имеют ошибки в редиректах или большие списки альтернативных имен DNS.
  7. Исправлено одновременное присваивание нескольким переменным типа matrix или vector.

MetaEditor

  1. Обновлены доступные модели для AI Assistant. Теперь вместо GPT-3.5 Turbo используется более современная GPT-4o mini. Также добавлена модель 01-mini.
  2. Исправлена ошибка в отладчике, из-за которой в некоторых случаях значения переменных не обновлялись в окне наблюдения.
  3. Обновлены переводы пользовательского интерфейса.

MetaTester

  1. Исправлено сохранение коэффициентов маржи в пользовательских настройках символа.
  2. Исправлены утечки памяти, происходившие в некоторых случаях между проходами тестирования.

MetaTrader 5 Web Terminal

  1. Добавлен режим «Перекрестие» для просмотра точных значений и измерения расстояний на графике.

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


    Добавлен режим «Перекрестие» для просмотра точных значений и измерения расстояний на графике


    Вы также можете использовать горячие клавиши: средняя кнопка мыши — для включения перекрестия, Esc или правая кнопка мыши — для отключения.

  2. Добавлено представление графика в виде простой линии, построенной по ценам закрытия баров:


    Добавлено представление графика в виде простой линии, построенной по ценам закрытия баров


  3. Добавлена возможность показать дополнительные колонки в «Обзоре рынка» в мобильном представлении. Для настройки перейдите в табличный режим и нажмите «...»:


    Дополнительные колонки в «Обзоре рынка» в мобильном представлении


  4. Добавлены горячие клавиши:

    • Home — прокрутка к началу графика (самой ранней дате)
    • End — прокрутка к концу графика (самой поздней дате)
    • Page Up — прокрутка графика на один экран назад
    • Page Down — прокрутка графика на один экран вперед

  5. Усилена безопасность хранения данных для подключения к счету.
  6. Улучшены прокрутка, перемещение и масштабирование графиков.
  7. Ускорена первоначальная загрузка веб-платформы на странице.
  8. Оптимизирована загрузка баров.
  9. Исправлен расчет плавающей прибыли для позиций по инструментам с типом Exchange Bonds и Exchange MOEX Bonds.
  10. Исправлен ввод объема в панели быстрой торговли на графике.
  11. Исправлена ошибка обновления объемов заявок в стакане цен. В некоторых случаях значения могли обновляться с задержкой.
  12. Исправлена проверка на минимально допустимый объем торговой операции при выставлении ордеров.
  13. Исправлен расчет маржи для захеджированных позиций. Ошибка могла проявляться в некоторых случаях при использовании плавающей маржи на счете (зависит от объема/стоимости позиций на счету).
  14. Исправлена ошибка, из-за которой кнопки Buy и Sell на панели быстрой торговли могли быть неактивными до изменения объема.
21 июня 2024
MetaTrader 5 build 4410: улучшения в работе
MetaTrader 5 build 4410: улучшения в работе

Terminal

  • Исправлено падение терминала, происходившее в некоторых случаях при запуске тестирования.

MQL5

Web Terminal

  1. Исправлена проверка совместимости браузера с веб-терминалом. В некоторых случаях пользователи могли получать ошибочное сообщение, что их браузер не поддерживается.
  2. Исправлено открытие демо-счетов.
  3. Мелкие исправления и улучшения.

Обновление доступно через систему Live Update.

MetaTrader 5 Android

  1. Полностью обновлен интерфейс для планшетной версий приложения. Теперь в нем используется современный дизайн, уже проверенный на iOS и веб версиях платформы. Основные разделы теперь расположены в нижней части экрана, а команды для работы с графиком — в левой.


    Полностью обновлен интерфейс для планшетной версий приложения


  2. Добавлено контекстное меню в разделе истории позиций, позволяющее быстро перейти к торговому диалогу или графику соответствующего символа.
  3. Скрыта команда перехода к торговому диалогу для неторгуемых символов.
  4. Исправлена работа с сервером MetaQuotes-Demo.

Обновите ваши мобильные приложения на билд 4360 через Google Play, Huawei AppGallery или скачайте файл APK.

7 июня 2024
MetaTrader 5 build 4380: улучшения в работе

Добавлена горячая клавиша Alt+X для вызова списка экспертов, исправлены ошибки в MetaTester при установке свойств графического объекта «Рисунок». Также запрещено подключение агентов тестирования к MQL5 Cloud Network в виртуальных средах и при отсутствии поддержки AVX у процессора.

Terminal

  1. Исправлены ошибки, в некоторых случаях приводившие к нарушению работы системы обновления Live Update.
  2. Добавлена горячая клавиша Alt+X для вызова списка экспертов.
  3. Исправления по крешлогам.

MetaTester

  1. Исправлены ошибки выставления некоторых свойств у графического объекта «Рисунок».
  2. Запрещено подключение агентов тестирования к MQL5 Cloud Network при работе в виртуальных средах и при отсутствии поддержки набора инструкций AVX у процессора.

Web Terminal

  1. Исправлена ошибка в работе панели быстрой торговли на графике.
  2. Исправлен диалог предупреждения, открываемый при включении панели быстрой торговли на графике.
31 мая 2024
MetaTrader 5 build 4350: больше аналитических объектов в веб-платформе и стартовая страница в MetaEditor

MetaEditor

  1. Добавлена стартовая страница, которая поможет вам начать свой путь в алгоритмическом трейдинге и разработке торговых приложений.


    Добавлена стартовая страница


    Материалы для новичков
    Раздел «Знакомство» подробно расскажет об обучающих материалах, доступных на MQL5.com: полная документация языка, книги, статьи, форум разработчиков, а также библиотека готовых кодов. Здесь же вы познакомитесь с сервисами, где вы можете применить и монетизировать свои знания: маркет приложений, фриланс-биржа и торговые сигналы.

    В разделах документации и книг вы найдете более подробное описание доступных обучающих материалов.

    Полезные функции для тех, кто уже занимается разработкой
    В разделе «Что нового» мы собрали максимум информации, которая нужна разработчику, чтобы держать руку на пульсе:


    Здесь же есть список последних открытых файлов для быстрого доступа.


    Полезные функции для тех, кто уже занимается разработкой


    Если вы уже активно продаете свои приложения в Маркете, отчет «Мои продажи» поможет оценить ваши успехи. Вам доступны:

    • Общая статистика продаж и скачиваний по времени.
    • География продаж, чтобы понимать, где ваши разработки наиболее популярны. Это может подсказать идеи для дальнейшего развития проекта, например, локализации на определенные языки или запуска рекламы в определенном регионе.
    • Данные о наиболее популярных продуктах по количеству продаж и сумме дохода. График можно фильтровать по типу лицензии: полная или аренда на определенный срок. Здесь же представлен график изменения цены на продукт. Все это поможет лучше понимать ваших покупателей.
    • Детальная статистика скачивания и продаж по каждому продукту.


    Мои продажи

  2. Улучшен встроенный поиск. Теперь верхняя поисковая строка используется только для поиска текста в текущем документе или в локальных файлах. Для глобального поиска по учебным материалам и кодам используйте отдельный раздел в «Инструментах».


    Улучшен встроенный поиск

  3. Для AI Assistant добавлена поддержка GPT-4o — новейшей модели ChatGPT. Теперь вы можете использовать ее для автоматического дополнения кода и получения подсказок. Выбрать новую модель можно в настройках MetaEditor.


    Для AI Assistant добавлена поддержка GPT-4o — новейшей модели ChatGPT

  4. Обновлены переводы пользовательского интерфейса.

Terminal

  1. Увеличена точность отображения расчетной цены в спецификации торгового инструмента.
  2. Добавлена горячая клавиша Alt+X для вызова списка экспертов.
  3. Исправлен расчет показателей MFE и MAE в торговом отчете.
  4. Исправлено сохранение и восстановление настроек фильтрации экономического календаря по стране и валюте.
  5. Исправлено применение шаблонов к графикам. Теперь, если для графика включено отображение торговой истории, соответствующие объекты не будут исчезать после применения шаблона.
  6. Исправлена ошибка в работе доски опционов. В некоторых случаях при добавлении символов платформа могла зависать.
  7. Исправлена ошибка в диалоге редактирования позиций. В некоторых случаях вместо текущих значений Стоп Лосс и Тейк Профит в соответствующие поля могли подставляться некорректные уровни.
  8. Обновлены переводы пользовательского интерфейса.

MQL5

  1. Оптимизирована и значительно ускорена работа функции ArrayResize. В некоторых случаях ускорение работы может достигать 40%.
  2. Обновлена поддержка ONNX.
  3. Исправлен вызов функции MessageBox в программах-сервисах. Независимо от того, какую кнопку пользователь нажимал в диалоге, функция возвращала нулевое значение.
  4. Исправлена ошибка, в некоторых случаях приводившая к неполной инициализации MQL5-программ.
  5. Исправлена ошибка парсинга некоторых макросов. Ошибка возникала при использовании большого количества констант.


MetaTrader 5 Web Terminal

  1. Расширен набор доступных аналитических объектов. Теперь вы можете использовать «линейку» для измерения времени и цен, фигуры (прямоугольник, эллипс, треугольник, круг), а также добавлять любые подписи на график. Все объекты доступны на левой панели:


    Расширен набор доступных аналитических объектов

  2. Добавлена возможность переименования объектов.
  3. Улучшена интеграция с экономическим календарем. Оптимизирован и ускорен запрос данных.
  4. Ускорена работа графиков.
  5. Ускорены запуск приложения и подключение к торговому счету.
  6. Исправлена работа настройки, управляющей отображением торговых операций на графике.
  7. Исправлено отображение маржинальных требований в спецификации контракта.
  8. Исправлено отображение состояния счета в разделе истории. Проблема возникала на устройствах с узким экраном.
  9. Исправлено отображение стакана цен.
22 марта 2024
MetaTrader 5 build 4260: общие улучшения

Terminal

  1. Исправлена ошибка подписки на бесплатные продукты в сервисе «Подписки». В некоторых случаях соответствующая кнопка могла отсутствовать в диалоге.
  2. Обновлены переводы пользовательского интерфейса.

MQL5

  1. Расширена поддержка событий клавиатуры:

    • Добавлено событие CHARTEVENT_KEYUP для обработчика OnChartEvent. Оно позволяет отслеживать, когда пользователь отпускает клавишу на клавиатуре.
    • Добавлена обработка «Мертвых» клавиш (Dead keys) — это клавиши, позволяющие изменить вид следующего вводимого символа. Например, в греческой раскладке для установки ударений над гласными ά, έ, ύ и т.д. требуется нажать клавишу «;», а затем ввести букву. Теперь нажатие таких клавиш можно отслеживать при помощи функции TranslateKey.
    • Доработаны функции TranslateKey и TerminalInfoInteger. Теперь при получении событий CHARTEVENT_KEYUP или CHARTEVENT_KEYDOWN в OnChartEvent вы можете получить полное состояние клавиатуры на момент возникновения события. Например, если пользователь нажал клавишу Z, вы сможете узнать, была ли в тот момент нажата клавиша Ctrl или Shift. Для остальных событий функции будут работать как раньше — возвращать состояние клавиатуры на текущий момент.

  2. Обновлена библиотека Alglib. В связи с обновлением изменены следующие методы в классах CMatrixDouble и CMatrixComplex:
    vector<double/complex> operator[](const int i) const;
    vector<double/complex> operator[](const ulong i) const;
    Теперь вместо них используется один метод с константным возвращаемым значением:
    const vector<double/complex> operator[](const ulong i) const;
    Внесенная правка позволит отловить некорректное использование результата по месту: в новой версии Alglib код mat[row][col]=x работает не так, как в старой. Ранее это была запись в матрицу, а теперь — запись во временный объект vector<double/complex>, который после записи сразу же уничтожается.

    Добавление const к возвращаемому значению делает невозможным использование записи mat[row][col]=x. Поскольку mat[row] теперь возвращает константный вектор, попытка перезаписать его элемент через mat[row][col] приведет к ошибке компиляции.

  3. Исправлена ошибка, в некоторых случаях приводившая к некорректной работе функций ChartGet*.

MetaEditor

  1. Добавлен поиск по книге «Нейросети в алготрейдинге на MQL5». Теперь он объединен в одном разделе с ранее вышедшей книгой «Программирование на MQL5 для трейдеров».


    Добавлен поиск по недавно вышедшей книге «Нейросети в алготрейдинге на MQL5»


Tester

  1. Исправлена оптимизация на большом количестве удаленных агентов. В некоторых случаях ошибка могла приводить к чрезмерной нагрузке на CPU.


MetaTrader 5 Web Terminal

  1. Исправлено выставление лимитных ордеров для инструментов с биржевым исполнением. Теперь при изменении цены выставляемого ордера относительно текущей (выше или ниже) предлагаемый тип ордера не будет изменяться с Buy Limit на Sell Limit и обратно, как это происходит для инструментов остальных типов. Таким образом, пользователь при необходимости сможет выставлять ордера Buy Limit выше рынка и Sell Limit ниже рынка, чтобы гарантированно ограничить цену сделки.
  2. Исправлено отображение счетчиков выбранных символов в «Обзоре рынка».
7 марта 2024
MetaTrader 5 build 4230: больше встроенных приложений и расширение поддержки ONNX

Terminal

  1. Добавлено 28 новых советников и 12 новых индикаторов в стандартную поставку платформы. Приложения доступны в разделах «Советники\Free Robots» и «Индикаторы\Free Indicators» в Навигаторе. Для каждого из них доступен исходный код с подробными комментариями, что поможет вам в изучении языка MQL5.

    В роботах реализованы торговые стратегии на основе технических индикаторов и свечных паттернов, таких как 3 Black Crows – 3 White Soldiers, Bullish Engulfing – Bearish Engulfing, Bullish Harami – Bearish Harami и другие. Новые индикаторы – это реализация популярных каналов: Camarilla, DeMark, Donchian, Fibonacci, Keltner и других.


    Добавлено 28 новых советников и 12 новых индикатров в стандартную поставкку платформы


  2. Идет подготовка к запуску подписок на рыночные данные Nasdaq. Прямо из платформы трейдеры смогут получить доступ к котировкам в реальном времени и глубокой ценовой истории по сотням финансовых инструментов с одной из крупнейших бирж. Для этого нужен лишь демо-счет на сервере MetaQuotes-Demo и аккаунт MQL5.community.


    Подписка на рыночные данные Nasdaq


    Оформив подписку, просто добавьте соответствующие инструменты в «Обзор рынка» и приступайте к работе. Вы сможете открывать по ним графики, анализировать их при помощи любых объектов и индикаторов, а также использовать данные для проверки торговых стратегий в тестере. Доступ ко всей информации осуществляется штатно, как для обычных финансовых инструментов, с которыми вы работаете у брокера.

  3. Доработан раздел маржи в спецификации инструмента. Теперь в нем показываются и коэффициенты маржи для каждого типа инструмента, и итоговые рассчитанные значения маржи.


    Доработан раздел маржи в спецификации инструмента


    Также исправлены ошибки в отображении маржи для некоторых типов инструментов.

  4. Добавлена ссылка на Telegram-канал MQL5 в меню «Справка». В канале регулярно публикуются интересные материалы для разработчиков: обзоры новых статей по программированию и бесплатных роботов и индикаторов из библиотеки кодов. Подписывайтесь на канал, чтобы не пропустить важную информацию.


    Добавлена ссылка на Telegram канал MQL5 в меню «Справка»


  5. Добавлена поддержка параметра ShutdownTerminal в секции [StartUp] пользовательских конфигурационных файлов. Используйте этот параметр, чтобы запускать платформу для выполнения одноразовых задач при помощи скриптов. Например, у вас есть скрипт, который делает скриншот графика. Вы создаете конфигурационный файл, который запускает этот скрипт вместе с платформой. Если добавить в него ShutdownTerminal со значением «Yes», платформа будет автоматически выключаться сразу после завершения работы скрипта.
  6. Усилена защита сетевых протоколов и продуктов в Маркете.
  7. Отключена поддержка сервиса «Сигналы» для демо-счетов. Для получения расширенной статистики по вашим тренировочным счетам используйте новый торговый отчет. Он предоставляет массу показателей по прибыльности и рискованности вашей стратегии, содержит графики прироста, баланс и эквити, диаграммы распределения сделок по направлению и инструментам и многое другое.
  8. Исправлено отображение ссылок на соглашения с брокером в меню «Справка».
  9. Улучшен выбор наилучшего сервера при аренде VPS.
  10. Исправлено обновление страницы подписок при переключении между разделами в «Навигаторе».
  11. Исправлено обновление списка соглашений при открытии предварительного счета.
  12. Обновлены переводы пользовательского интерфейса.

MQL5

  1. Добавлено свойство MQL_STARTED_FROM_CONFIG в перечисление ENUM_MQL_INFO_INTEGER. Возвращает true, если скрипт/эксперт запущен из секции StartUp конфигурационного файла. Это означает, что данный скрипт/эксперт был прописан в конфигурационном файле, с которым запущен терминал.
  2. Продолжается работа над расширением поддержки моделей ONNX.

    В задачах машинного обучения не всегда нужна большая точность вычислений. Для ускорения расчетов некоторые модели используют типы данных с меньшей точностью, такие как Float16 и даже Float8. Чтобы пользователи могли подавать такие данные на вход моделей, в MQL5 добавлены следующие функции:
    bool ArrayToFP16(ushort &dst_array[],const float &src_array[],ENUM_FLOAT16_FORMAT fmt);
    bool ArrayToFP16(ushort &dst_array[],const double &src_array[],ENUM_FLOAT16_FORMAT fmt);
    bool ArrayToFP8(uchar &dst_array[],const float &src_array[],ENUM_FLOAT8_FORMAT fmt);
    bool ArrayToFP8(uchar &dst_array[],const double &src_array[],ENUM_FLOAT8_FORMAT fmt);
    
    bool ArrayFromFP16(float &dst_array[],const ushort &src_array[],ENUM_FLOAT16_FORMAT fmt);
    bool ArrayFromFP16(double &dst_array[],const ushort &src_array[],ENUM_FLOAT16_FORMAT fmt);
    bool ArrayFromFP8(float &dst_array[],const uchar &src_array[],ENUM_FLOAT8_FORMAT fmt);
    bool ArrayFromFP8(double &dst_array[],const uchar &src_array[],ENUM_FLOAT8_FORMAT fmt);
    Поскольку форматы вещественных чисел для 16 и 8 бит могут отличаться, в параметре fmt в функциях конверсии необходимо указывать, какой именно формат числа требуется обработать. Для 16-битных версий используется новое перечисление NUM_FLOAT16_FORMAT, которое на данный момент имеет следующие значения:

    • FLOAT_FP16 — стандартный 16-битный формат, так же известный как half.
    • FLOAT_BFP16 — специальный формат brain float point.

    Для 8-битных версий используется новое перечисление ENUM_FLOAT8_FORMAT, которое на данный момент имеет следующие значения:

    • FLOAT_FP8_E4M3FN — 8-битное число с плавающей точкой, 4 бита порядок и 3 бита мантисса. Обычно используется как коэффициенты.
    • FLOAT_FP8_E4M3FNUZ — 8-битное число с плавающей точкой, 4 бит порядок и 3 бита мантисса. Поддерживает NaN, не поддерживается отрицательный ноль и Inf. Обычно используется как коэффициенты.
    • FLOAT_FP8_E5M2FN — 8-битное число с плавающей точкой, 5 бит порядок и 2 бита мантисса. Поддерживает NaN и Inf. Обычно используется для градиентов.
    • FLOAT_FP8_E5M2FNUZ — 8-битное число с плавающей точкой, 5 бит порядок и 2 бита мантисса. Поддерживает NaN и Inf, не поддерживает отрицательный ноль. Также используется для градиентов.

  3. Добавлены новые методы матриц и векторов, используемые в машинном обучении:

    • PrecisionRecall — вычисляет значения для построения кривой precision-recall. Данный метод, как и метод ClassificationScore, применяется к вектору истинных значений.
    • ReceiverOperatingCharacteristic — вычисляет значения для построения кривой Receiver Operating Characteristic (ROC). Данный метод, как и метод ClassificationScore, применяется к вектору истинных значений.

  4. ONNX Runtime обновлено до версии 1.17. Подробности релиза доступны в GitHub.
  5. Пакет для интеграции с Python обновлен до версии 5.0.4200, добавлена поддержка Python 3.12. Обновите свой пакет командой "pip install --upgrade MetaTrader5", чтобы получить последние изменения.
  6. Добавлено значение DEAL_REASON_CORPORATE_ACTION в перечисление ENUM_DEAL_REASON — сделка проведена в результате корпоративного действия: объединения или переименования бумаги, переноса клиента на другой счет и т.д.
  7. Добавлено поддержка сравнения комплексных векторов и матриц для метода Compare. Сравнение заключается в оценке расстояния между комплексными числами. Расстояние рассчитывается по следующей формуле sqrt(pow(r1-r2, 2) + pow(i1-i2, 2) и является действительным числом, которое уже можно сравнивать с эпсилоном.
  8. Исправлено преобразование переменных типа color в текст в формате RGB.
  9. Исправлен возврат результата получения собственных векторов в методе Eig в случае комплексного собственного значения. Добавлена перегрузка метода для комплексного решения.
  10. Исправлена работа функции OrderCalcMargin для некоторых случаев.

MetaEditor

  1. Добавлена ссылка на недавно вышедшую книгу «Программирование на MQL5 для трейдеров» в меню Справка\MQL5.community. Также книга добавлена в поисковую систему, вы можете находить в ней нужные материалы прямо из MetaEditor:


    Добавлен поиск по книге «Программирование на MQL5 для трейдеров»



  2. Доработан встроенный поиск:

    • Раздел результатов поиска в окне «Инструменты» разделен на две вкладки: «Поиск» — для результатов поиска онлайн (документация, статьи, книга и т.д.), «Поиск в файлах» — для локальных результатов.
    • В раздел результатов добавлена отдельная поисковая строка. Вы можете использовать ее вместо поисковой строки в основной панели инструментов MetaEditor.

  3. Добавлена поддержка режимов AVX, AVX2 и AVX512 при компиляции программ из командной строки. Для этого добавьте в команду один из ключей: /avx, /avx2 или /avx512.
  4. Движок SQLite для работы с базами данных обновлен до версии 3.45.
  5. Отключена поддержка Internet Explorer. Теперь для отображения HTML-страниц используется только Microsoft Edge WebView2. По сравнению с устаревшим MSHTML новый компонент существенно расширяет возможности для отображения веб-контента, предоставляя доступ к современным технологиям. Переход на WebView2 позволит улучшить внешний вид некоторых разделов MetaEditor, увеличить их производительность, создать более отзывчивые интерфейсы.
  6. Исправлено зависание, происходившее в редких случаях при автодополнении функций.

Tester

  1. Исправлен расчет тройного свопа в случае, если день начала теста приходится на день тройного свопа.

MetaTrader 5 Web Terminal

Улучшено отображение маржевых требований в спецификации контракта. Теперь помимо коэффициентов и исходных параметров для расчета отображается итоговое значение маржи. Если сумма залога зависит от объема позиции, в диалоге будут показаны соответствующие уровни.


Улучшено отображение маржевых требований в спецификации контракта


Маржа рассчитывается с учетом цены инструмента на момент открытия окна спецификации и не изменяется в реальном времени. Соответственно, значения следует воспринимать как ориентировочные. Для пересчета значений по текущим ценам переоткройте спецификацию инструмента.

18 января 2024
MetaTrader 5 build 4150: экспорт торгового отчета и новые методы машинного обучения в MQL5

Terminal

  1. Добавлен экспорт торгового отчета в файл HTML и PDF. Теперь вы можете легко поделиться своими торговыми достижениями с коллегами или инвесторами. Для экспорта воспользуйтесь меню в самом отчете или меню «Файл».


    Экспорт торгового отчета в файл HTML и PDF


  2. Добавлена возможность сохранить текущее состояние окна «Обзор рынка» в файл CSV. Для этого нажмите «Экспорт» в контекстном меню. В файле сохранятся значения выбранных показателей на момент экспорта. Чтобы выгрузить больше данных, включите дополнительные колонки через контекстное меню.


    Экспорт состояния «Обзора рынка»


  3. Улучшено отображение маржевых требований в спецификации контракта. Теперь вместо коэффициентов и исходных параметров для расчета отображается итоговое значение маржи. Если сумма залога зависит от объема позиции, в диалоге будут показаны соответствующие уровни.


    Улучшено отображение маржевых требований в спецификации контракта


    Маржа рассчитывается с учетом цены инструмента на момент открытия окна спецификации и не изменяется в реальном времени. Соответственно, значения следует воспринимать как ориентировочные. Для пересчета значений по текущим ценам переоткройте спецификацию инструмента.

  4. Отключена поддержка сервиса "Сигналы" для демо-счетов. Для получения расширенной статистики по вашим тренировочным счетам используйте новый торговый отчет. Он предоставляет массу показателей по прибыльности и рискованности вашей стратегии, содержит графики прироста, баланс и эквити, диаграммы распределения сделок по направлению и инструментам и многое другое.
  5. Исправлен показ потенциальной прибыли/убытка при редактировании Тейк Профита и Стоп Лосса для ордеров Stop Limit.
  6. Внесены многочисленные исправления и доработки в платежную систему.
  7. Исправлена проверка дубликатов при загрузке набора инструментов в «Обзор рынка» из файла *.set.
  8. Исправлена работа веб-инсталлятора для Parallels. Теперь при использовании этой системы виртуализации на macOS с процессорами M1/M2/M3 платформа будет устанавливаться корректно.
  9. Обновлены переводы пользовательского интерфейса.
  10. Исправления по крешлогам.

MQL5

  1. Добавлены новые методы для работы с матрицами и векторами. Они используются в машинном обучении.

    • ConfusionMatrix — вычисляет матрицу ошибок. Метод применяется к вектору предсказанных значений.
    • ConfusionMatrixMultilabel — вычисляет матрицу ошибок для каждой метки. Метод применяется к вектору предсказанных значений.
    • ClassificationMetric — вычисляет классификационную метрику для оценки качества предсказанных данных по отношению к истинным данным. Метод применяется к вектору предсказанных значений.
    • ClassificationScore — вычисляет классификационную метрику для оценки качества предсказанных данных по отношению к истинным данным.
     
  2. Исправлено сохранение данных в текстовый файл формата UTF-8 при помощи функции FileWrite.
  3. Отключены и объявлены устаревшими функции Signal*. Теперь они будут возвращать пустые наборы сигналов.

MetaEditor

  1. Увеличена частота сэмплирования при профилировании. Теперь состояние приложения снимается 10000 раз в секунду, что позволяет замерять скорость исполнения функций гораздо точнее.
  2. Обновлены доступные модели в инструменте автоматического дополнения кода AI Assistant. Добавлена модель ChatGPT-4 Turbo, убраны устаревшие реализации.
  3. Исправлены ошибки при замене слов в выделенном фрагменте текста.

Tester

  1. Исправлено зависание форвардного тестирования. Проблема могла возникать в режиме генетической оптимизации.
  2. Оптимизирована и значительно ускорена работа с торговой историей из MQL5-программ.
  3. Исправлен расчет прибыли по операциям закрытия встречной. Ошибка могла возникать для торговых инструментов, которые не являются основным инструментом тестирования.

Web Terminal

  1. Исправлено обновление свойств торгового инструмента при их изменении на стороне брокера.
  2. Исправлено отображение тела свечи на графике. Тело могло быть не видно, если оно имело малый размер.
  3. Исправлена работа поля «Страна» в форме открытия счета.
20 октября 2023
MetaTrader 5 build 4040: Улучшения и исправления

Terminal

  1. Улучшен новый торговый отчет. Исправлено отображение первого значения на графике прироста, а также расчет просадки.

    Улучшен новый торговый отчет


  2. При открытии счета каждый трейдер получает несколько сообщений через встроенную почту. Помимо данных для подключения в них можно найти множество полезной информации о возможностях платформы и встроенных сервисах. Мы актуализировали и дополнили эти письма, перевели их на 50 языков, а также полностью обновили дизайн.
  3. Оптимизированы страницы пополнения и снятия средств со счета.
  4. Исправлена ошибка изменения объема при выставлении нового ордера. При некоторых сочетаниях настроек торгового инструмента поле было недоступно для редактирования.
  5. Исправлено отображение ссылок на соглашения с брокером в диалоге открытия демо-счета.
  6. Обновлены переводы пользовательского интерфейса.

MQL5

  1. Исправлена ошибка, в некоторых случаях приводившая к падению MQL5-программы при запуске платформы.

MetaTrader 5 Web Terminal

  1. Исправлено отображение Стоп Лоссов и Тейк Профитов в торговой истории.
  2. Расширен вывод в журнал. Теперь в него будут выводиться сообщения об успешных и неудавшихся подключениях.
  3. Исправлена работа контекстного меню в "Обзоре рынка".
  4. Исправлено отображение уведомления о результатах операций при торговле из стакана цен.
  5. Исправлена ошибка, из-за которой подокно индикатора могло удаляться с графика при вызове торгового диалога.
  6. Исправлено перетаскивание торговых уровней на графике в случае, когда они отображаются поверх аналитических объектов.
29 сентября 2023
MetaTrader 5 build 4000: Улучшения в торговом отчете и веб-терминале

Terminal

  1. Добавлено отображение помесячного прироста в деньгах в новом торговом отчете. Чтобы посмотреть показатели, перейдите в отчет "Summary" и выберите режим "Balance".


    Помесячный прирост в деньгах в новом торговом отчете


  2. Исправлено и улучшено отображение нового торгового отчета.
  3. ONNX Runtime обновлено до версии 1.16. Подробности релиза доступны в GitHub.
  4. Обновлены переводы пользовательского интерфейса.

MetaTrader 5 Web Terminal

  1. Исправлено отображение диалогов смены пароля и открытия счета.
  2. Исправлена ошибка отображения Стоп Лосс и Тейк Профита в истории, возникавшая после их модификации.
  3. Добавлена возможность прокрутки в диалоге предупреждения о рисках.
  4. Обновлены переводы пользовательского интерфейса.
  5. Внесены различные улучшения и исправления.
21 сентября 2023
MetaTrader 5 build 3980: Улучшения и исправления

Terminal

  1. Улучшен новый торговый отчет. Исправлено отображение итогового значения свопов, а также графика прибыли по символам.
  2. Оптимизированы страницы пополнения и снятия средств со счета. Подробнее о новой интеграции платформы с платежными системами читайте в предыдущей новости о билде 3950.
  3. Оптимизирован пересчет финансовых операций во всей платформе, включая тестер стратегий. Теперь показатели прибыли, маржи и многие другие параметры рассчитываются быстрее.
  4. Обновлены переводы пользовательского интерфейса.

MQL5

  1. Добавлены методы Conjugate для типов complex, vector<complex> и matrix<complex>. Они выполняют сопряжение для комплексных чисел.
    //+------------------------------------------------------------------+
    //| Script program start function                                    |
    //+------------------------------------------------------------------+
    void OnStart()
      {
       complex a=1+1i;
       complex b=a.Conjugate();
       Print(a, "  ", b);
       /*
       (1,1)  (1,-1)
       */
    
       vectorc va= {0.1+0.1i, 0.2+0.2i, 0.3+0.3i};
       vectorc vb=va.Conjugate();
       Print(va, "  ", vb);
       /*
       [(0.1,0.1),(0.2,0.2),(0.3,0.3)]  [(0.1,-0.1),(0.2,-0.2),(0.3,-0.3)]
       */
    
       matrixc ma(2, 3);
       ma.Row(va, 0);
       ma.Row(vb, 1);
       matrixc mb=ma.Conjugate();
       Print(ma);
       Print(mb);
       /*
       [[(0.1,0.1),(0.2,0.2),(0.3,0.3)]
        [(0.1,-0.1),(0.2,-0.2),(0.3,-0.3)]]
    
       [[(0.1,-0.1),(0.2,-0.2),(0.3,-0.3)]
        [(0.1,0.1),(0.2,0.2),(0.3,0.3)]]
       */
       
       ma=mb.Transpose().Conjugate();
       Print(ma);
       /*
       [[(0.1,0.1),(0.1,-0.1)]
        [(0.2,0.2),(0.2,-0.2)]
        [(0.3,0.3),(0.3,-0.3)]]
       */
      }
  2. Добавлена обработка выхода ONNX-модели типа Sequence of maps.

    Для моделей ONNX, которые в выходном слое отдают последовательности Map (ONNX_TYPE_SEQUENCE of ONNX_TYPE_MAP), в качестве выходного параметра следует передавать динамический или фиксированный массив структур. Первые два поля этой структуры должны соответствовать типам ключей и значений ONNX_TYPE_MAP и являться фиксированными или динамическими массивами.

    Рассмотрим модель iris.onnx, созданную следующим скриптом на Python:
    from sys import argv
    data_path=argv[0]
    last_index=data_path.rfind("\\")+1
    data_path=data_path[0:last_index]
    
    from sklearn.datasets import load_iris
    iris_dataset = load_iris()
    from sklearn.model_selection import train_test_split
    X_train, X_test, y_train, y_test = train_test_split(iris_dataset['data'], iris_dataset['target'], random_state=0)
    from sklearn.neighbors import KNeighborsClassifier
    knn = KNeighborsClassifier(n_neighbors=1)
    knn.fit(X_train, y_train)
    
    #  Convert into ONNX format
    from skl2onnx import convert_sklearn
    from skl2onnx.common.data_types import FloatTensorType
    initial_type = [('float_input', FloatTensorType([None, 4]))]
    onx = convert_sklearn(knn, initial_types=initial_type)
    path = data_path+"iris.onnx"
    with open(path, "wb") as f:
        f.write(onx.SerializeToString())
    Откройте созданный onnx-файл в MetaEditor:

    Просмотр ONNX-модели в MetaEditor


    В качестве выхода "output_probability" отдается последовательность из Map, ключ которой имеет тип INT64 (что соответствует типу long языка MQL5) и значение типа float. Для получения данных с этого выхода объявим следующую структуру:
    struct MyMap
      {
       long              key[];
       float             value[];
      };
    Здесь мы использовали динамические массивы с соответствующими типами. В данном случае можно использовать фиксированные массивы, поскольку для данной модели Map всегда содержит 3 пары ключ+значение.

    Поскольку возвращается последовательность из Map, в качестве параметра для приема данных с выхода output_probability следует передать массив таких структур — динамический или фиксированный, исходя из свойств конкретной модели. Например:
    //--- объявим массив для приема данных с выходного слоя output_probability
    MyMap output_probability[];
    
    ...
    
    //--- выполнение модели
    OnnxRun(model,ONNX_DEBUG_LOGS,float_input,output_label,output_probability);

MetaEditor

  1. Исправлено отображение типа выходных параметров в просмотрщике моделей ONNX.

Web Terminal

  1. Добавлен раздел связи с брокером в основное меню.
  2. Добавлена обработка ошибки авторизации при помощи SSL-сертификата. Этот вид авторизации не поддерживается в веб-терминале, вместо него может быть включена авторизация при помощи одноразовых паролей.
  3. Исправлена ссылка на скачивание десктопной версии платформы в основном меню.
  4. Изменен диалог управления счетами. Если у брокера недоступно открытие демонстрационных или реальных счетов, соответствующий пункт меню скрывается.
предыдущая12345678910111213141516