MetaTrader 5 build 4570: улучшения веб-версии и интеграция с OpenBLAS в MQL5

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

27 сентября 2024

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. Добавлен режим «Перекрестие» для просмотра точных значений и измерения расстояний на графике.

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


    /c/17/1/web-terminal-crosshair.png


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

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


    /c/17/1/web-terminal-line-chart.png


  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 на панели быстрой торговли могли быть неактивными до изменения объема.