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

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

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. Изменен диалог управления счетами. Если у брокера недоступно открытие демонстрационных или реальных счетов, соответствующий пункт меню скрывается.
14 сентября 2023
MetaTrader 5 build 3950: Снятие/пополнение в терминале и обновленный торговый отчет
  1. Добавлена поддержка балансовых операций снятия и пополнения торгового счета непосредственно в клиентском терминале.

    Мы добавили интеграцию наиболее популярных платежных систем прямо в платформу MetaTrader 5, что позволяет брокерам предоставить трейдерам новый уровень сервиса. При вводе или пополнении просто выберите наиболее подходящий для вас способ и проведите транзакцию. Для удобства трейдеров можно сохранять выбранные карты, чтобы не вводить каждый раз данные карты. При этом брокер не хранит у себя платежные реквизиты и номера карт. Все введенные при оплате пользователем данные отправляются через защищенные каналы на проверку той платежной системе, которую вы выбрали для проведения оплаты.

    Новый функционал предоставляет трейдерам возможность управлять денежными средствами в один клик, не покидая клиентский терминал.

    Пополнение и снятие средств со счета прямо в платформе

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

    Чтобы посмотреть статистику по торговле, нажмите "Отчеты" в меню "Вид".






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

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


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

  3. Добавлено использование AVX2-инструкций в тех случаях, когда они поддерживаются процессором. Это позволит более эффективно использовать возможности процессора, на котором запускается терминал. Теперь при установке или обновлении терминал сам будет определять архитектуру процессора и устанавливать версию, оптимальную под данный процессор. При запуске терминал пишет в лог сообщение (AVX/AVX2), в котором показывает, под какой набор инструкций собран терминал.
    Terminal	MetaTrader 5 x64 build 3914 started for MetaQuotes Software Corp.
    Terminal	Windows 10 build 19045, 20 x Intel Xeon  E5-2630 v4 @ 2.20GHz, AVX, 41 / 63 Gb memory, 58 / 280 Gb disk, UAC, GMT+2
    

    Advanced Vector Extensions (AVX) — расширение системы команд x86 для микропроцессоров Intel и AMD, предложено еще в 2008. Дальнейшее развитие привело к появлению AVX2 и AVX-512 (2013).

  4. В дополнение к двум версиям терминалов MetaTrader 5 на X64 и AVX, мы выпустили третью версию десктопного терминала, скомпилированную с прямой поддержкой AVX2-команд. При этом ONNX-модели теперь также могут работать с поддержкой AVX2-команд.
  5. Добавлено отображение ссылок на необходимые нормативные документы брокера. Получить всю необходимую правовую информацию со стороны брокера теперь можно прямо в клиентском терминале в меню Help / Terms & Conditions.

    Ссылки на нормативные документы брокера

  6. Исправлена работа 2FA-авторизации при ее совместном использовании с расширенной авторизацией при помощи сертификатов.
  7. Исправлено отображение писем внутренней почты при работе в MacOS.
  8. Исправлено отображение окна Сигналов при работе в Wine.
  9. Выпущены новые инсталляторы МТ4/MT5-терминалов для Linux.
  10. В меню Help добавлены команды для перехода на страницы скачивания Linux и Mac-версий терминала. Для удобства трейдеров мы создали специальный раздел сайта, где представлены варианты торгового терминала под все платформы и для торговли в браузере.

    Ссылки для скачивания Linux и Mac-версий платформы

  11. Исправлена вставка картинок в письма внутренней почты.
  12. Выпущены новые инсталляторы терминала MetaTrader 5 для Mac с поддержкой процессоров M1/M2. В связи с переходом на Wine 8.0.1 мы настоятельно рекомендуем удалить старые версии и инсталлировать новые. При использовании старых версий Wine < 8.0.0 в логе терминала выводится сообщение о необходимости обновления.
  13. Добавлен показ "VPS Hosting Speed Up" в меню сканирования сети с указанием пинга до вашего торгового сервера. Это позволит наглядно увидеть, как уменьшатся ваши сетевые задержки при аренде встроенного VPS.


    Добавлен показ "VPS Hosting Speed Up" в меню сканирования сети с указанием пинга до вашего торгового сервера

  14. Усилены требования на минимальную сложность паролей, а именно:

    • длина пароля — не меньше 8 символов
    • пароль должен содержать не менее 1 символа в верхнем и нижнем регистре, не менее 1 цифры и не менее 1 спецсимвола.

  15. Кликабельные ссылки в логах терминала. Теперь при двойном клике на строках с https ссылками происходит переход в браузер с открытием ссылок.
  16. Исправлен поиск торговых инструментов в Обзоре рынка. Теперь символ в первую очередь ищется по имени, а затем — по остальным полям: описание, ISIN и т.д.
  17. Исправлен учет прибыли по сделкам при расчете баланса в отчетах по торговой истории счета. В некоторых случая при расчете не учитывался тип инструмента.
  18. VPS Hosting

    1. Можно отсылать и запускать EX5-программы, скомпилированные под набор команд x64/AVX/AVX2. Программы под AVX512 на встроенном VPS не поддерживаются.
    2. Количество локаций для аренды встроенного VPS увеличено до 27. Теперь выбор наиболее близкого сервера стал еще шире.

    MQL5

    1. Добавлено управление настройками компиляции, в том числе выбор расширенных наборов инструкций процессора — AVX, AVX2, AVX512, FMA3.

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

      Мы также добавили возможность выбирать, с каким типом инструкций необходимо скомилировать программу MQL5. При этом можно указывать как общие настройки для одиночных программ в Настройках MetaEditor, так и применять персональные настройки для проектов:


      Настройки компиляции в MetaEditor

    2. В методы матриц и векторов добавлены перечисления ENUM_AVERAGE_MODE и ENUM_CLASSIFICATION_METRIC.
    3. Добавлен метод Set для векторов.
    4. Переделана инициализация OpenCL - теперь он инициализируется по первому фактическому использованию, а не по загрузке MQL5-программы, содержащей функции OpenCL.
    5. Исправлена ошибка при вызове функции SocketIsConnected.
    6. Исправлена задержка вызова метода OnDeinit при выгрузке кастомных индикаторов.
    7. Исправлена ошибка компилятора, из-за которой неверно вычислялась длина строки в свойстве indicator_label, что приводило к неправильному показу тултипов для графических объектов.
    8. Исправлено использование многострочного комментария в теле макроса. Пример макроса, на котором возникала ошибка:
      #define MACRO1 /*
      #define MACRO2 */
      void OnStart()
      {
      #ifdef MACRO2
          Print( 2 );
      #else
          Print( 1 );
      #endif
      }
    9. Исправлен порядок параметров функции MathAtan2. Теперь порядок соответствует аналогичной функции в C++.
    10. В перечисление ENUM_TERMINAL_INFO_STRING добавлено новое значение TERMINAL_CPU_ARCHITECTURE. Также добавлен макрос  __CPU_ARCHITECTURE__ — получение архитектуры CPU компьютера, на котором работает терминал. Пример использования:
      void OnStart()
        {
         Print("CPU name:         ",TerminalInfoString(TERMINAL_CPU_NAME));
         Print("CPU cores:        ",TerminalInfoInteger(TERMINAL_CPU_CORES));
         Print("CPU architecture: ",TerminalInfoString(TERMINAL_CPU_ARCHITECTURE));  
         Print("");
         Print("EX5 architecture: ",__CPU_ARCHITECTURE__);                            
        }
      
      CPU name:         12th Gen Intel Core i9-12900K
      CPU cores:        24
      CPU architecture: AVX2 + FMA3
      
      EX5 architecture: AVX

    11. Изменено поведение модификатора extern. Теперь объявление переменной с модификатором extern является предъобъявлением переменной.

      Новые ограничения:
      1. Предъобъявление переменной не должно содержать инициализации. Например, при компиляции следующего кода получим ошибку "X - extern variable initialization is not allowed":
        extern int X=0;
        
        void OnStart()
          {
          }

      2. Переменная extern должна быть объявлена в программе без ключевого слова extern. Например, при компиляции следующего кода получим ошибку "unresolved extern variable X":
        extern int X;
        
        void OnStart()
          {
          }

      3. При использовании extern важно следить за порядком инициализации, т.к. доступ к переменной можно получить до её инициалиазции. Например, следущий код выведет в журнал "Y=0 X=5", т.к. инициализация переменной Y происходит до инициализации переменной X:
        extern int X;
        int        Y=X;
        
        void OnStart(void)
          {
           Print("Y=",Y," X=",X);
          }
          
        int X=_Digits;

    MetaEditor

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

    Tester

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

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

    Исправления по крешлогам.


    MetaTrader 5 Web Terminal build 3950

    1. В настройки графика добавлен показ цены Ask.

      В настройки графика добавлен показ цены Ask

    2. Ускорена первоначальная загрузка терминала.
    3. Добавлена возможность менять пароль.
    4. Добавлена возможность удаления и сохранения пароля.
    5. Добавлен кастомный период для показа торговой истории.
    6. Исправлена ошибка при принудительной смене пароля.
    7. Исправлен расчёт вычисления diff — дистанции между ценой открытия и уровнями TP/SL.

      Исправлен расчёт вычисления diff — дистанции между ценов открытия и уровнями TP/SL

    8. Исправлена ошибка остановки тиков при закрытии всех ордеров/сделок.
    9. Исправлен показ событий Экономического календаря — в некоторых случаях они не отображались на графике, несмотря на включенную опцию.
    10. Исправлена ошибка, когда сбрасывались индикаторы при смене символа на графике.
    11. Исправлена ошибка в форме открытия реального аккаунта при подтверждении телефона/email.
    12. Добавлены и исправлены переводы.
8 июня 2023
MetaTrader 5 build 3800: ордера Book or Cancel, помощь AI при написании кода и расширенная поддержка ONNX

Terminal

  1. Добавлена поддержка новой политики исполнения ордеров — Пассивная / Book or Cancel (BOC).


    Новая политика исполнения ордеров — Пассивная / Book or Cancel


    Политика BOC означает, что ордер может быть только выставлен в стакан цен. Если ордер может быть исполнен немедленно при выставлении, он снимается. Фактически с такой политикой гарантируется, что цена выставленного ордера будет хуже текущего рынка. BOC используется для реализации пассивной торговли, чтобы ордер гарантированно не был исполнен сразу при выставлении и не повлиял на текущую ликвидность. Поддерживается только для лимитных и стоп-лимитных ордеров и только в режиме биржевого исполнения.

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

  2. Платформа переходит на использование компонента Microsoft Edge WebView2 для отображения HTML-страниц.

    По сравнению с устаревшим MSHTML новый компонент существенно расширяет возможности для отображения веб-контента, предоставляя доступ к современным технологиям. Переход на WebView2 позволит улучшить внешний вид некоторых разделов платформы, увеличить их производительность, создать более отзывчивые интерфейсы. В частности, это коснется разделов "Маркет", "Сигналы" и "VPS".
    Полноценная поддержка WebView2 появилась только в Windows 10. Мы рекомендуем всем пользователям по возможности переходить на последние версии операционной системы. При работе под Windows 7 и Wine платформа продолжит использовать устаревший компонент MSHTML, и новые функции в них не будут доступны. Также мы настоятельно рекомендуем устанавливать все доступные обновления операционной системы. Сейчас минимальной рекомендуемой версией является Windows 10 21H2 (build 19044 от ноября 2021).

  3. Улучшена система безопасности в Маркете. Теперь для запуска продукта пользователь должен быть авторизован в платформе своим MQL5-аккаунтом, через который продукт был приобретен. Аккаунт должен быть указан в разделе "Сервис \ Настройки \ Сообщество":


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


    Если аккаунт не указан или указан неверный аккаунт, продукт не запустится, а в журнале платформы появится сообщение вида:
    'ProductName' requires active MQL5 account in Tools->Options->Community
  4. Добавлена команда "Обзор" в контекстное меню раздела истории. Она позволяет открыть торговый отчет по счету:


    Команда для перехода к торговому отчету


  5. Исправлены ошибки отображения диалога двухфакторной авторизации. При наличии в терминале нескольких счетов с одинаковым номером у разных брокеров в форме подключения к счету могло не отображаться поле для ввода одноразового пароля.
  6. Ускорена отрисовка индикаторов со стилем отображения DRAW_COLOR_CANDLES.
  7. Исправлены ошибки построения торгового отчета. В некоторых случаях значения прибыли и эквити на графиках могли отображаться некорректно.
  8. Добавлено отображение показателя "Издержки" в торговом отчете. Он показывает сумму издержек по сделке относительно текущей средней цены инструмента (mid-point spread cost). Фактически это сумма, которую трейдер теряет на спреде при торговле. Доступность этого показателя зависит от брокера.
  9. Обновлены переводы пользовательского интерфейса.
  10. Улучшена стабильность при работе под Wine, в особенности — в системах macOS. Рекомендуем полностью удалить старые терминалы и установить их заново:


  11. Ускорена установка и скачивание обновлений, а также улучшен учет доступности AVX на компьютере пользователя при выборе дистрибутива.
  12. Включена поддержка TLS 1.3 в веб-протоколах. TLS 1.0 отключен как устаревший и небезопасный.
  13. Исправлен учет агентской комиссии в отчетах по торговой истории. Соответствующие операции могли не учитываться при подсчете итоговой прибыли.
  14. Исправлена ошибка, приводившая к невозможности изменить сервер в диалоге подключения к счету. Проблема возникала при наличии в терминале нескольких счетов с одинаковым номером у разных брокеров.
Инсталляторы переводятся на работу только с 64-битными версиями платформы. Поддержка 32-битных версий завершается. Ранее установленные 32-битные версии платформы будут работать до 1 января 2024 года.

MQL5

  1. Добавлено новое значение STAT_COMPLEX_CRITERION в перечисление ENUM_STATISTICS. Оно позволяет получить значение комплексного критерия, рассчитанного в результате оптимизации.
  2. Доработан метод RegressionMetric, используемый для расчета регрессионной метрики по переданной матрице или вектору. Добавлены параметры vector_true и matrix_true для передачи истинных значений, по которым оценивается качество предсказанных данных.
    double vector::RegressionMetric(
       const vector& vector_true,            // истинные значения
       const ENUM_REGRESSION_METRIC  metric  // метрика
       );
     
    double matrix::RegressionMetric(
       const matrix& matrix_true,            // истинные значения
       const ENUM_REGRESSION_METRIC metric   // метрика
       );
     
    vector matrix::RegressionMetric(
       const matrix& matrix_true,            // истинные значения
       const ENUM_REGRESSION_METRIC metric,  // метрика
       const int                      axis   // ось
       );
  3. Добавлен метод LinearRegression. Он возвращает вектор/матрицу с рассчитанными значениями линейной регрессии для переданного вектора/матрицы.
    vector vector::LinearRegression();
     
    matrix matrix::LinearRegression(
       ENUM_MATRIX_AXIS axis=AXIS_NONE       // ось, вдоль которой считается регрессия 
       );
    Пример:
    vector vector_a;
    //--- заполним вектор ценами
    vector_a.CopyRates(_Symbol,_Period,COPY_RATES_CLOSE,1,100);
    //--- получим линейную регрессию
    vector vector_r=vector_a.LinearRegression();
    Визуализация результата в виде графика:


    Визуализация результата, возвращенного методом LinearRegression


  4. Добавлен метод HasNan — возвращает количество NaN значений в матрице/векторе.
    ulong vector::HasNan();
    ulong matrix::HasNan();
    Методы Compare и CompareByDigits при сравнении соответствующей пары элементов, имеющих значения NaN, считают эти элементы равными, тогда как при обычном сравнении чисел с плавающей точкой NaN != NaN.

  5. Изменена структура OnnxTypeInfo, используемая для работы с моделями ONNX (Open Neural Network Exchange):

    struct OnnxTypeInfo
      {
       ENUM_ONNX_TYPE       type;            // тип параметра
       OnnxTensorTypeInfo   tensor;          // описание тензора
       OnnxMapTypeInfo      map;             // описание карты
       OnnxSequenceTypeInfo sequence;        // описание последовательности
      };

    Теперь тип данных в ней указывается при помощи новых подструктур:

    • OnnxTensorTypeInfo — тензор
    • OnnxMapTypeInfo — карта
    • OnnxSequenceTypeInfo — последовательность

    struct OnnxTensorTypeInfo
      {
       ENUM_ONNX_DATATYPE   data_type;       // тип данных в тензоре
       long                 dimensions[];    // количество элементов
      };
    
    struct OnnxMapTypeInfo
      {
       ENUM_ONNX_DATA_TYPE  key_type;        // тип ключа
       OnnxTypeInfo         type_info;       // тип значения
      };
    
    struct OnnxSequenceTypeInfo
      {
       OnnxTypeInfo         type_info;       // тип данных в последовательности
      };
    В зависимости от OnnxTypeInfo::type (ONNX_TYPE_TENSOR, ONNX_TYPE_MAP или ONNX_TYPE_SEQUENCE) заполняется соответствующая подструктура.

  6. Доработана поддержка моделей ONNX.
  7. Добавлены методы CopyIndicatorBuffer, позволяющие получить данные буфера индикатора в вектор.
    bool vector<T>::CopyIndicatorBuffer(long indicator_handle,ulong buffer_index,ulong start_pos,ulong count);
    bool vector<T>::CopyIndicatorBuffer(long indicator_handle,ulong buffer_index,datetime start_time,ulong count);
    bool vector<T>::CopyIndicatorBuffer(long indicator_handle,ulong buffer_index,datetime start_time,datetime stop_time);
  8. Исправлена работа с массивами с двумя и более измерениями в методах FrameAdd и FrameNext.
  9. Исправлена работа метода CRedBlackTree::Remove в стандартной библиотеке.
  10. Внесены исправления в библиотеку нечеткой логики Fuzzy.

MetaEditor

  1. Добавлена интеграция с AI Assistant — продвинутым инструментом для автоматического дополнения кода. Его работа основывается на моделях OpenAI. Вы вводите комментарий или часть функции, отправляете запрос (промпт), нейросеть анализирует его и предлагает вам варианты кода для реализации вашей идеи.

    В зависимости от типа файла, в котором вы работаете, в начало каждого промпта автоматически добавляется строка "MQL5 language", "Python language" или "C++ language". Так нейросеть будет выдавать результат на нужном языке.

    В данный момент AI Assistant работает бесплатно, его не нужно отдельно включать. В разделе Сервис \ Настройки \ AI Assistant доступно несколько настроек:


    Настройки AI Assistant


    Настройки оплаты:

    • Использовать MQL5-аккаунт — в данный момент этот режим работает бесплатно. В последующем вы сможете оплачивать подписку напрямую с баланса вашего аккаунта MQL5.
    • Использовать ключ OpenAI — если вы уже оплатили подписку и у вас есть ключ, можете использовать его.

    Настройки запросов:

    • Модель — нейросеть, которая будет обрабатывать ваши запросы. На данный момент доступны text-davinci-003 и gpt-3.5-turbo. В последующем будет добавлена поддержка gpt-4.
    • Максимум токенов — количество единиц текста, которое модель может возвращать в ответ на промпт.
    • Вариативность — влияет на то, насколько строго нейросеть будет придерживаться промпта. Чем больше значение, тем более случайным может быть результат. В моделях OpenAI соответствует параметру temperature.

  2. Добавлена возможность просматривать свойства моделей ONNX.

    Теперь прямо в редакторе можно в удобном виде посмотреть содержимое файла *.onnx. Чтобы посмотреть, как это выглядит, найдите проект ONNX.Price.Prediction в разделе "Инструменты \ Публичные проекты", а затем нажмите "Присоединиться" в контекстном меню. Проект загрузится на компьютер и появится в Навигаторе.


    Открывайте модели ONNX прямо в MetaEditor


  3. Добавлена возможность визуализации моделей машинного обучения и нейронных сетей через Netron. Этот просмотрщик поддерживает множество популярных моделей: ONNX, TensorFlow Lite, Caffe, Keras, ncnn и т.д.

    Для просмотра модели выберите ее файл в Навигаторе и нажмите "Открыть в Netron". Если эта утилита еще не установлена, будет открыта ее страница на GitHub, откуда вы можете скачать установочный файл для своей операционной системы. Например, Netron-Setup-X.X.X.exe — для Windows. После установки программы модель сразу же будет открываться на просмотр из Навигатора.


    Визуализируйте модели машинного обучения через Netron


    Поддерживаемые форматы:

    • armnn, caffemodel, circle, ckpt, cmf, dlc, dnn, h5, har, hd5, hdf5, hn, keras, kmodel,
    • lite, mar, meta, mge, mlmodel, mlnet, mlpackage, mnn, model, nb, ngf, nn, nnp,
    • om, onnx, ort, paddle, param, pb, pbtxt, pdiparams, pdmodel, pdopt, pdparams, prototxt, pt, pth, ptl,
    • rknn, t7, tfl, tflite, tmfile, tm, tnnproto, torchscript, uff, xmodel

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

Tester

  1. Исправлен расчет показателя "Средняя убыточная сделка" в отчете тестирования. Ранее в расчете могли ошибочно учитываться сделки входа, если за них взималась комиссия.
  2. Доработана настройка пользовательских комиссий в тестере стратегий. Чтобы задать символ, теперь достаточно указать только его название, а не путь целиком.
  3. Обновлены иконки в тестере стратегий. Новые метафоры и современный вид облегчат восприятие информации.

Исправления по крешлогам.

Web Terminal

  1. Доработан раздел торговой истории:

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


    Обновленный раздел торговой истории

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

    • На графике отложенные ордера теперь отображаются серым цветом, а позиции окрашиваются по направлению: красным на продажу, синим на покупку. При большом количестве операций график не будет выглядеть перегруженным.
    • При просмотре/редактировании позиции подсвечивается только она и ее уровни, все остальные позиции и ордера становятся серыми, а их уровни скрываются с ценовой шкалы. Работать с операциями на графике станет удобнее.
    • Стоп Лоссы теперь показываются не красным, а оранжевым цветом, чтобы не путать их с позициями на продажу.
    • Доработаны иконки, которыми показываются моменты закрытия позиций на графике. Если позиция закрыта по Тейк Профиту, иконка будет зеленой, если по Стоп Лоссу — красной.

  4. Добавлен перевод интерфейса на арабский, болгарский, вьетнамский, греческий, индонезийский, малайский, нидерландский, персидский, польский, тайский, украинский и хинди. Теперь веб-терминал доступен уже на 24 языках.
  5. Исправлен перевод на турецкий язык.
  6. Исправлена модификация и удаление отложенных ордеров в мобильной версии веб-терминала.
  7. Исправлена подсказка о закрытом рынке, отображаемая на графике.
  8. Исправлено отображение прибыли на кнопке закрытия позиции в торговом диалоге. Ошибка возникала при частичном закрытии.
  9. Исправлено отображение торговых уведомлений на графике.
  10. Исправлено изменение объема при помощи стрелок в стакане цен.
  11. Исправлена ошибка, в некоторых случаях приводившая к сбросу настроек индикаторов на графике.
  12. Исправлена проверка имени пользователя при открытии новых счетов. Ранее наличие апострофа в имени считалось ошибкой.
  13. Исправлена обработка реквотов. В некоторых случаях диалог с предложением новых цен мог не отображаться.
  14. Исправлено отображение индикатора Ichimoku Kinko Hyo. Теперь линии Chikou-span, Up kumo и Down kumo отображаются с корректным смещением.
  15. Исправлена проверка начальной маржи при открытии нового ордера. Ошибка возникала при использовании хеджинговой системы учета позиций.
  16. Исправлена прокрутка в окне спецификации контракта.

MQL5.community

  1. Полностью обновлен сайт сети распределенных вычислений MQL5 Cloud Network — https://cloud.mql5.com.

    Узнайте, как использовать мощности тысяч компьютеров по всему миру для оптимизации своих торговых стратегий. Благодаря MQL5 Cloud Network даже самые долгие и тяжелые расчеты можно выполнить в считанные минуты. Здесь же вы узнаете, как стать участником сети и зарабатывать на предоставлении своих вычислительных ресурсов.


    Посетите обновленный сайт MQL5 Cloud Network


  2. Улучшен раздел скриншотов для продуктов в Маркете. Теперь авторы могут загружать иллюстрации размером до 1920*1800 пикселей, что позволит лучше демонстрировать работу приложений. Помимо этого, обновлена галерея скриншотов. В удобной карусели показываются миниатюры изображений, а по клику на них можно открыть полноразмерные картинки.


    Улучшенный раздел скриншотов в Маркете


  3. Улучшен раздел Фриланс. Теперь при размещении первых заказов пользователи будут получать больше подсказок:

    • Примеры технического задания и напоминание о необходимости его прикрепить
    • Инструкции по прохождению шагов
    • Советы по использованию шаблонов

    Все это поможет не запутаться в процессе и получить желаемый результат.


    Фриланс стал более дружелюбным


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

24 марта 2023
MetaTrader 5 build 3660: Улучшения и исправления

Terminal

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

MQL5

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

Web Terminal

  1. Добавлен перевод пользовательского интерфейса на португальский. Теперь веб-терминал доступен на 12 языках.
  2. Исправлен диалог добавления индикатора Standard Deviation.
  3. Мелкие исправления и улучшения.
17 марта 2023
MetaTrader 5 build 3640: веб-терминал на 11 языках

Web Terminal

  1. Добавлены переводы интерфейса на 10 широко используемых языков: русский, французский, немецкий, итальянский, японский, корейский, испанский, турецкий, китайский упрощенный и традиционный. В ближайших версиях этот список будет расширяться и дальше. Для переключения интерфейса на свой язык воспользуйтесь меню:


    Интерфейс веб-терминала доступен на 11 языках


  2. Оптимизирован механизм подключения к торговому серверу.

MQL5

  1. MQL5: Добавлены флаги COPY_TICKS_VERTICAL и COPY_RATES_VERTICAL для методов CopyTicks, CopyTicksRange и CopyRates соответственно.

    По умолчанию копирование тиков и серий в матрицу производится вдоль горизонтальной оси, то есть данные добавляются справа в конец строки. В задачах запуска обученной ONNX модели такую матрицу приходится транспонировать для подачи входных данных:

    const long   ExtOutputShape[] = {1,1};    // форма выходных данных модели
    const long   ExtInputShape [] = {1,10,4}; // форма входных данных модели
    #resource "Python/model.onnx" as uchar ExtModel[]// модель в виде ресурса
    //+------------------------------------------------------------------+
    //| Script program start function                                    |
    //+------------------------------------------------------------------+
    int OnStart(void)
      {
       matrix rates;
    //--- получаем 10 баров
       if(!rates.CopyRates("EURUSD",PERIOD_H1,COPY_RATES_OHLC,2,10))
          return(-1);
    //--- подаем на вход набор векторов OHLC
       matrix x_norm=rates.Transpose();
       vector m=x_norm.Mean(0);               
       vector s=x_norm.Std(0);
       matrix mm(10,4);
       matrix ms(10,4);

    Теперь достаточно при вызове метода указать дополнительный флаг COPY_RATES_VERTICAL (COPY_TICKS_VERTICAL для тиков), чтобы избавиться от лишней операции трансформации данных:

    //+------------------------------------------------------------------+
    //| Script program start function                                    |
    //+------------------------------------------------------------------+
    int OnStart(void)
      {
       matrix rates;
    //--- получаем 10 баров
       if(!rates.CopyRates("EURUSD",PERIOD_H1,COPY_RATES_OHLC|COPY_RATES_VERTICAL,2,10))
          return(-1);
    //--- подаем на вход набор векторов OHLC
  2. Добавлено значение CHART_SHOW_TRADE_HISTORY в перечисление ENUM_CHART_PROPERTY_INTEGER. Свойство управляет отображением сделок из торговой истории на графике. Для получения и установки свойства используйте функции ChartGetInteger и ChartSetInteger. Подробнее об отображении сделок на графике читайте в документации платформы.

MetaEditor

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

Terminal

  • Исправления по крешлогам.
10 марта 2023
MetaTrader 5 build 3620: улучшения веб-терминала, поддержка ONNX и ускоренное умножение матриц в MQL5

Terminal

  1. Исправлена ошибка при подсчете итоговой прибыли в торговом отчете.
  2. Обновлены фундаментальные данные по торговым инструментам, доступные через Обзор рынка.
  3. Исправлен запуск торговой платформы под Wine 7.0.1 при работе в Linux-системах.
  4. Исправлено добавление символов в Обзор рынка через строку поиска. Символ, найденный по описанию, было невозможно добавить в список кликом мыши на его строке.

MQL5

  1. Добавлена поддержка работы с моделями ONNX (Open Neural Network Exchange).

    ONNX — открытая библиотека для построения нейронных сетей глубокого обучения. Этот формат поддерживается множеством платформ, включая Chainer, Caffee2 и PyTorch. Создав ONNX модель при помощи специализированных инструментов, вы можете интегрировать ее в свою MQL5-программу и использовать для принятия торговых решений.

    Описание всех поддерживаемых функций доступно в документации. Пример работы с тестовой моделью доступен в публичных проектах в MetaEditor. Найдите проект ONNX.Price.Prediction в разделе "Инструменты \ Публичные проекты", а затем нажмите "Присоединиться" в контекстном меню. Проект загрузится на компьютер и появится в Навигаторе:


    Пример работы с ONNX моделю в публичных проектах


    Скомпилируйте проект и запустите его на EURUSD H1, чтобы посмотреть результат.

    Помимо готовой модели и MQL5-кода для ее запуска, в проекте также доступен Python скрипт PricePredictionTraining.py. Он показывает, как самостоятельно создать модель ONNX. Для работы скрипта установите на свой компьютер Python, а также необходимые модули из командной строки:

    python.exe -m pip install --upgrade pip
    python -m pip install --upgrade tensorflow
    python -m pip install --upgrade pandas
    python -m pip install --upgrade scikit-learn
    python -m pip install --upgrade matplotlib
    python -m pip install --upgrade tqdm
    python -m pip install --upgrade metatrader5
    python -m pip install --upgrade onnx==1.12
    python -m pip install --upgrade tf2onnx
    Подробные инструкции по работе с ONNX доступны в документации.

  2. Добавлена поддержка нового алгоритма умножения матриц General Matrix Multiplication (GeMM). Он позволяет значительно ускорить вычисления на большинстве процессоров за счет распараллеливания задач и более правильного использования кэшей L1/L2/L3. Скорость вычисления при этом сравнима с такими известными пакетами, как Math Kernel Library (MKL) и OpenBLAS. В ближайшее время мы опубликуем подробные сравнительные тесты.

    Новый алгоритм на данный момент поддерживается в методе matrix::GeMM. Если ваш процессор поддерживает инструкции AVX и FMA (большинство процессоров, выпущенных после 2013 года), алгоритм будет задействован автоматически.

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

    Матрицы и векторы передаются в DLL в виде указателя на буфер. Например, для передачи матрицы типа float, соответствующий параметр экспортируемой из DLL-функции должен принимать указатель на буфер с типом float. Пример:

    MQL5
    #import "mmlib.dll"
    bool sgemm(uint flags,matrix<float> &C,const matrix<float> &A,const matrix<float> &B,ulong M,ulong N,ulong K,float alpha,float beta);
    #import
    C++
    extern "C" __declspec(dllexport) bool sgemm(UINT flags,float *C,const float *A,const float *B,UINT64 M,UINT64 N,UINT64 K,float alpha,float beta)
    Для правильной обработки матриц и векторов, кроме их буферов, следует передавать их размеры.

  4. Добавлена новая функция CopySeries для копирования синхронизированных таймсерий из MqlRates в отдельные массивы.

    Функция CopySeries позволяет за один раз получать только нужные таймсерии в разные указанные массивы, при этом они все синхронизированы между собой. Это означает, что все значения в полученных массивах по конкретному индексу N будут принадлежать одному и тому же бару на указанной паре символ/таймфрейм. В этом случае не требуется заботиться о том, чтобы все полученные таймсерии были синхронизированы по времени открытия бара.

    В отличие от CopyRates, которая возвращает полный набор таймсерий в виде массива MQLRates, функция CopySeries позволяет программисту получать только нужные таймсерии на основе комбинации флагов, указывающих тип запрашиваемых таймсерий. При этом порядок массивов, передаваемых в функцию, должен соответствовать порядку полей в структуре MqlRates:

    struct MqlRates
      {
       datetime time;         // время начала периода
       double   open;         // цена открытия
       double   high;         // наивысшая цена за период
       double   low;          // наименьшая цена за период
       double   close;        // цена закрытия
       long     tick_volume;  // тиковый объем
       int      spread;       // спред
       long     real_volume;  // биржевой объем
      }

    Таким образом, если необходимо получить значения таймсерий time, close и real_volume для последних 100 баров текущего символа/таймфрейма, вызов должен быть следующим:

    datetime  time[];
    double    close[];
    long      volume[];
    CopySeries(NULL,0,0,100,COPY_RATES_TIME|COPY_RATES_CLOSE|COPY_RATES_VOLUME_REAL,time,close,volume);
    

    При этом важен порядок массивов "time, close, volume" — он должен соответствовать порядку полей в структуре MqlRates. А вот порядок значений в маске rates_mask значения не имеет, маска могла быть такой :

    COPY_RATES_VOLUME_REAL|COPY_RATES_TIME|COPY_RATES_CLOSE

    Пример

    //--- input parameters
    input datetime InpDateFrom=D'2022.01.01 00:00:00';
    input datetime InpDateTo  =D'2023.01.01 00:00:00';
    input uint     InpCount   =20;
    //+------------------------------------------------------------------+
    //| Script program start function                                    |
    //+------------------------------------------------------------------+
    void OnStart(void)
      {
    //--- массивы для получения таймсерий из ценовой структуры Rates
       double   open[];
       double   close[];
       float    closef[];
       datetime time1[], time2[];
    //---запросим цены закрытия в массив типа double
       ResetLastError();
       int res1=CopySeries(NULL, PERIOD_CURRENT, 0, InpCount,
                           COPY_RATES_TIME|COPY_RATES_CLOSE, time1, close);
       PrintFormat("1. CopySeries  returns %d values. Error code=%d", res1, GetLastError());
       ArrayPrint(close);
       
    
    //--- теперь запросим еще цены открытия, а цены закрытия в массив типа float
       ResetLastError();
       int res2=CopySeries(NULL, PERIOD_CURRENT, 0, InpCount,
                           COPY_RATES_TIME|COPY_RATES_CLOSE|COPY_RATES_OPEN, time2, open, closef);
       PrintFormat("2. CopySeries  returns %d values. Error code=%d", res2, GetLastError());
       ArrayPrint(closef);
    //--- сравним полученные данные
       if((res1==res2) && (time1[0]==time2[0]))
         {
          Print("  | Time             |    Open      | Close double | Close float |");
          for(int i=0; i<10; i++)
            {
             PrintFormat("%d | %s |   %.5f    |   %.5f    |   %.5f   |",
                         i, TimeToString(time1[i]), open[i], close[i], closef[i]);
            }
         }
    /*  Результат
            1. CopySeries  returns 0 values. Error code=0
            [ 0] 1.06722 1.06733 1.06653 1.06520 1.06573 1.06649 1.06694 1.06675 1.06684 1.06604
            [10] 1.06514 1.06557 1.06456 1.06481 1.06414 1.06394 1.06364 1.06386 1.06239 1.06247
            2. CopySeries  returns 0 values. Error code=0
            [ 0] 1.06722 1.06733 1.06653 1.06520 1.06573 1.06649 1.06694 1.06675 1.06684 1.06604
            [10] 1.06514 1.06557 1.06456 1.06481 1.06414 1.06394 1.06364 1.06386 1.06239 1.06247
              | Time             |    Open      | Close double | Close float |
            0 | 2023.03.01 17:00 |   1.06660    |   1.06722    |   1.06722   |
            1 | 2023.03.01 18:00 |   1.06722    |   1.06733    |   1.06733   |
            2 | 2023.03.01 19:00 |   1.06734    |   1.06653    |   1.06653   |
            3 | 2023.03.01 20:00 |   1.06654    |   1.06520    |   1.06520   |
            4 | 2023.03.01 21:00 |   1.06520    |   1.06573    |   1.06573   |
            5 | 2023.03.01 22:00 |   1.06572    |   1.06649    |   1.06649   |
            6 | 2023.03.01 23:00 |   1.06649    |   1.06694    |   1.06694   |
            7 | 2023.03.02 00:00 |   1.06683    |   1.06675    |   1.06675   |
            8 | 2023.03.02 01:00 |   1.06675    |   1.06684    |   1.06684   |
            9 | 2023.03.02 02:00 |   1.06687    |   1.06604    |   1.06604   |
    */
      }
  5. Исправлена ошибка, в редких случаях приводившая к получению некорректного тикета ордера после отправки запроса функцией OrderSend. Ошибка могла возникать при параллельной торговле на одном счете через разные платформы.
  6. Исправлена ошибка импорта EX5-библиотек. Она возникала, если имя импортируемой библиотеки совпадало с именем файла, в который она импортируется.

MetaEditor

  1.  Добавлена рассылка Push-уведомлений участникам групповых проектов. Теперь каждый участник всегда будет в курсе любых изменений в файлах или настройках проекта. Для получения уведомлений укажите свой MetaQuotes ID в разделе "Настройки \ Безопасность" вашего профиля MQL5.community.


    Push-уведомления об изменениях в проекте


  2. Обновлены иконки файлов в Навигаторе. Новые более простые метафоры облегчат восприятие информации.

Tester

  1. Исправлена ошибка, приводившая к обрезанию входного строкового параметра, если в нем присутствовал символ "|".

MetaTrader 5 Web Terminal build 3620

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


    Новые цветовые схемы для веб-терминала


  2. Переработано окно спецификации торгового инструмента. Все данные перекомпонованы в компактные логические блоки для более удобного просмотра.


    Обновленное окно спецификации торгового инструмента


  3. Исправлено открытие реальных счетов через веб-терминал. В некоторых случаях после заполнения регистрационной формы сервер мог возвращать ошибку.
  4. Исправлена ошибка в торговом диалоге. Если пользователь открывал диалог модификации позиции, а затем закрывал позицию кнопкой "X" в окне инструментов, содержимое диалога не сбрасывалось. Теперь в этом случае диалог будет автоматически возвращаться в режим выставления нового ордера.
  5. Исправлено отображение поля Server в диалоге управления счетами.
  6. Исправлено отображение текущего таймфрейма на панели инструментов.
  7. Исправлено отображение объема в количестве единиц базового актива в торговом диалоге.
  8. Исправлена модификация уровней "Стоп Лосс" и "Тейк Профит". В некоторых случаях модификация одного значения могла приводить к сбросу второго.
  9. Исправлено отображение предупреждения о рисках инвестора.
6 марта 2023
MetaTrader 5 для iPhone/iPad: улучшение торговых и аналитических функций графиков
  1. Добавлена возможность выставлять стоп и стоп-лимитные ордера с графика.

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


    Выставляйте стоп и стоп-лимитные ордера с графика


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


    Управляйте позициями и ордерами с графика


  3. Улучшена функция сдвига правой границы ценового графика. Теперь для изменения сдвига достаточно прокрутить график к последней цене до появления вертикального разделителя. Далее потяните за треугольник у нижней шкалы графика:


    Изменяйте отступ графика, потянув за треугольник у нижней шкалы


  4. Добавлена возможность копировать аналитические объекты на графике. Это поможет быстрее наносить разметку. Вызовите меню объекта долгим нажатием на нем и выберите "Копировать":

    Создавайте копии аналитических объектов


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


    Управляйте отображением индикаторов на разных таймфреймах


  6. Добавлено отображение комиссий по инструменту в окне спецификации.


    Узнайте размер комиссии в спецификации инструмента


  7. Добавлена ссылка на восстановление пароля к счету. Доступ можно восстановить только через брокера, у которого был открыт счет. Ссылка покажет контактные данные, по которым можно обратиться за помощью.


    Помощь при восстановлении пароля


  8. Добавлена возможность поделиться ссылкой на канал в сообществе MQL5.community.


    Делитесь ссылкой на свой канал через приложение


  9. Улучшен пользовательский опыт при подключении к счету с ограниченной торговлей.

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

    Теперь в таких случаях в разделе "Торговля" будет выводиться серая кнопка выставления нового ордера. При нажатии на нее пользователь увидит соответствующую информацию и рекомендации.


    Помощь пользователю при ограниченной торговле


  10. Улучшена работа с SSL-сертификатами, используемыми при расширенной аутентификации.

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


    Улучшена работа с SSL-сертификатами


    Также появилась возможность импорта сертификата из файла PFX. Для этого достаточно сохранить его в приложении "Файлы", а затем воспользоваться функцией импорта в стартовом диалоге.

    Помимо этого, появилась возможность экспортировать сертификаты в файлы, чтобы использовать их на других устройствах. Для этого перейдите в раздел "Настройки \ Сертификаты" и нажмите "Экспорт" в меню сертификата.

  11. Построение ценовых графиков переведено на Metal — последнее поколение графического API, используемого в устройствах от Apple. Это существенно увеличит производительность при отображении графиков, индикаторов и объектов.
  12. Исправлена подстановка уровней Стоп Лосс и Тейк Профит в стакане цен. Теперь для счетов, работающих в режиме FIFO, значения стоп-уровней будут автоматически устанавливаться в соответствии со стоп-уровнями уже открытых позиций по тому же инструменту. Это необходимо для соблюдения правила FIFO.
  13. Исправлено реквотирование. При получении реквота пользователю дается короткое время на решение, принимать новые цены или нет. При отсутствии решения запрос автоматически отклоняется, а окно реквота закрывается.
  14. Исправлено отображение времени в разделе "График" при использовании темной темы интерфейса.
предыдущая12345678910111213