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

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

30 июля 2026
Новая версия платформы MetaTrader 5 build 6090: общие улучшения

Terminal

  1. Расширен набор методов MCP, которые может использовать AI Assistant. В частности, теперь он может добавлять индикаторы на график, а также получать список доступных индикаторов с их параметрами.
  2. Исправлены ошибки и улучшена работа встроенного AI Assistant.
  3. Отключена работа AI Assistant под Windows 7, эта версия операционной системы устарела и не поддерживает все необходимые функции.
  4. Исправлена поддержка Windows 7. Если у вас не запускается предыдущая версия платформы, не удаляйте ее, а просто переустановите новую версию поверх. Все настройки при этом сохранятся.
  5. Исправлено отображение витрины сигналов.
  6. Обновлен пакет интеграции с Python. Для установки обновления выполните команду:
     pip install --upgrade MetaTrader5 
    
  7. Обновлены переводы интерфейса.

Web Terminal

  • Исправлено отображение стакана цен.
23 июля 2026
MetaTrader 5 build 6060: Интеграция с ИИ, Passkey и удобная работа с кодом в MetaEditor

Terminal

  1. Представляем встроенную поддержку Model Context Protocol (MCP) и агентного искусственного интеллекта. Она открывает совершенно новый сценарий работы с торговой платформой: торгуйте, анализируйте стратегии и рынки, разрабатывайте и тестируйте советников с помощью ИИ.


    Что такое MCP

    Model Context Protocol (MCP) — это открытый стандарт взаимодействия приложений с ИИ-агентами. В отличие от привычных чат-ботов, агент способен самостоятельно выполнять сложные задачи, разбивая их на последовательность действий и используя возможности подключенных приложений.

    Благодаря встроенной поддержке MCP терминал MetaTrader 5 становится полноценным источником данных и торговых функций для современных ИИ-агентов. Они могут получать рыночную информацию, анализировать графики, работать с торговым окружением и выполнять необходимые операции через стандартный интерфейс MCP.

    Кроме встроенного помощника, вы сможете использовать и внешние агентные системы, поддерживающие MCP, включая OpenAI Codex, Claude Code и другие совместимые решения.


    Настройка не требуется

    Для доступа к функциям ИИ достаточно войти в платформу под своей учетной записью MQL5.community — всем пользователям станет доступен бесплатный тариф MQL5 Lite. После обновления необходимые настройки будут выполнены автоматически: в качестве провайдера будет выбран MQL5.community, для него будет добавлен ключ API.

    При желании можно использовать собственные API-ключи OpenAI, Anthropic, Gemini, DeepSeek, Ollama и других сервисов, выбирая нужную модель прямо в настройках терминала:


    Настройки ИИ


    Настройки ИИ синхронизируются между торговым терминалом и MetaEditor.


    AI Assistant в MetaTrader 5

    ИИ-помощник в MetaTrader 5 помогает анализировать рынок. Он может объяснить текущую ситуацию по инструменту, проанализировать открытые позиции, изучить историю торговли, ответить на вопросы о финансовых инструментах и последних рыночных событиях.


    Поручите ИИ проанализировать вашу торговлю


    Примеры запросов ассистенту:

    • Проанализируй текущую ситуацию по EURUSD на таймфрейме H1. Определи тренд, ближайшие уровни поддержки и сопротивления и объясни, что происходит на рынке.
    • Проанализируй мои открытые позиции. Какие сделки выглядят наиболее рискованными и почему?
    • Проанализируй историю моих сделок за последние три месяца. Найди наиболее прибыльные сделки и подскажи, что можно улучшить в торговой стратегии.
    • Просканируй все инструменты из «Обзора рынка» и найди, где сейчас формируется пробой важного уровня или сильный тренд.
    Рекомендации ИИ носят информационный характер и не являются инвестиционными советами. Используйте их как дополнительный инструмент анализа и всегда принимайте торговые решения на основе собственной оценки рынка.
    Безопасность работы контролируется настройками. Вы можете явно разрешить или запретить торговые операции через ИИ или включить режим ручного подтверждения. Помимо этого, отдельной настройкой контролируется доступ ИИ к сетевым запросам и операциям командной строки.


    AI Assistant в MetaEditor

    AI Assistant в MetaEditor стал полноценным помощником разработчика. Он способен:

    • Создавать новые программы на MQL5
    • Анализировать существующий код
    • Искать ошибки и предлагать исправления
    • Объяснять работу сложных алгоритмов
    • Помогать с рефакторингом и доработкой проектов

    Для вызова агента используйте меню «Файл», панель инструментов, а также контекстное меню в Навигаторе. Далее просто опишите задачу на естественном языке.


    Поручите ИИ написать для вас скрипт


    Примеры запросов ассистенту:

    • Напиши советник, который открывает позицию при пересечении двух скользящих средних (EMA 20 и EMA 50), использует Stop Loss 500 пунктов, Take Profit 1000 пунктов и риск 1% от депозита.
    • Проанализируй этот код MQL5, найди возможные ошибки, объясни причины и предложи исправленную версию.
    • Оптимизируй этот индикатор, чтобы уменьшить количество вычислений и ускорить его работу без изменения логики.
    • Перепиши этот советник с MQL4 на MQL5, используя современные возможности языка и стандартной библиотеки.
    • Объясни, как работает этот эксперт. Опиши его торговую логику, используемые индикаторы, условия входа и выхода, а также потенциальные недостатки стратегии.

    Чем подробнее будет описание задачи, тем точнее и полезнее окажется результат.

    История запросов доступна во вкладке «Чаты» в Навигаторе.

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


    Как включить и использовать

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


    Создание Passkey


    Сохранить Passkey можно двумя способами:

    • На мобильном устройстве — наведите камеру смартфона на QR-код, который отобразится в терминале, и выберите «Сохранить Passkey» на мобильном устройстве.
    • На аппаратном ключе безопасности (Security Key) — подключите совместимый FIDO2-ключ к компьютеру и следуйте инструкциям на экране.
    Для использования Passkey на мобильном устройстве компьютер должен поддерживать Bluetooth. Он используется для проверки физической близости вашего устройства к компьютеру. Это сделано для безопасности, чтобы злоумышленник не мог удаленно войти в ваш аккаунт, прислав вам QR-код.
    После регистрации Passkey он будет запрашиваться при каждом подключении к счету после ввода логина и пароля:

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

    При необходимости зарегистрированный Passkey можно удалить. Для этого выберите «Менеджер Passkey» в контекстном меню счета в окне «Навигатор». При следующем подключении к счету терминал предложит создать новый Passkey.


    Управление Passkey


  3. Добавлена поддержка новых уровней доступа к счету:

    • Торговый — разрешает торговлю, но запрещает смену паролей, ввод и вывод средств.
    • Финансовый — разрешает пополнение счета, вывод средств и переводы между счетами, но запрещает торговлю и смену паролей.

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


    Добавлена поддержка новых уровней доступа к счету


  4. Исправлена инициализация диалога торговли для инструментов с «Немедленным исполнением». Диалог мог открываться пустым, если ранее введенное значение объема превышало порог, при котором торговля переходит в режим «Исполнение по запросу».
  5. Исправлен расчет графического объекта «Канал регрессии».
  6. Убрана поддержка публикации торговых отчетов по FTP. Эта функция устарела и практически не используется.
  7. Добавлена поддержка горячих клавиш: Ctrl+Tab и Shift+Tab для последовательного переключения между разделами, Alt+Right/Left для переключения на следующую/предыдущую просмотренную страницу.
  8. Обновлены переводы пользовательского интерфейса.

MQL5

  1. Оптимизирована и значительно ускорена работа функции вывода текста TextOut. В некоторых случаях достигается ускорение 3 раза по сравнению с предыдущей версией.
  2. Добавлена функция SymbolInfoCommissions для получения данных о комиссиях торгового инструмента 
    int  SymbolInfoCommissions(
       string           name,              // имя символа
       MqlCommission&   commissions[]      // массив правил комиссии
       );
    Каждый элемент массива commissions описывает отдельное правило начисления комиссии. Общие условия применения комиссии задаются полями структуры MqlCommission, а конкретные значения и диапазоны комиссии — массивом уровней tiers.

  3. Добавлен метод для анализа структурных свойств матриц MatrixInfo. Он анализирует содержимое матрицы, определяет ее структурный тип (симметричная, эрмитовая, треугольная, ленточная и т.д.) и заполняет структуру MqlMatrixInfo.

  4. Добавлены методы матриц и векторов:

    • Write — анализирует содержимое матрицы, определяет ее структурный тип (симметричная, эрмитова, треугольная, ленточная и т.д.) и записывает матрицу в открытый файл в соответствии с выбранным способом хранения.
    • Read — читает из файла матрицу, записанную в него методом Write.
    • WriteBin — записывает матрицу в файл в соответствии с ее размером и типом.
    • ReadBin — читает из файла матрицу, записанную в него методом WriteBin.

  5. Добавлены методы ортогонального разложения матриц:

    • FactorizationQRTallSkinny — вычисляет блочное QR-разложение высокой узкой матрицы размера m на n (m>n): A = Q * R. Функция LAPACK LATSQR.
    • FactorizationLQShortWide — вычисляет блочное LQ-разложение низкой широкой матрицы размера m на n (m<n): A = L * Q. Функция LAPACK LASWLQ.
    • FactorizationRZ — приводит действительную или комплексную верхнетрапециевидную матрицу A размера M на N (M<=N) к верхнетреугольному виду с помощью ортогональных преобразований. Функция LAPACK TZRZF.
    • FactorizationQR2 — вычисляет обобщенное QR-разложение двух матриц: A размера n на m и B размера n на p: A = Q * R, B = Q * T * Z. Функция LAPACK GGQRF.
    • FactorizationRQ2 — вычисляет обобщенное RQ-разложение матрицы A размера m на n и матрицы B размера p на n: A = R * Q, B = Z * T * Q. Функция LAPACK GGRQF.

  6. Добавлен метод SylvesterEquation. Он решает уравнение Сильвестра для вещественных или комплексных квадратных матриц: A*X + X*B = scale*C где A — общая матрица размера m на m, а B — общая матрица размера n на n. Используются LAPACK-функции GEES и TRSYL.

  7. Добавлен метод LeastSquaresGaussMarkov2. Решает общую задачу линейной модели Гаусса–Маркова: минимизирует норму ∣∣y∣∣2 при ограничении d=A⋅x+B⋅y, используя обобщенное QR-разложение матриц A и B. Используется LAPACK-функция GGGLM.

  8. Добавлены методы BLAS Level 3:

    • BlasL3LACRM — умножает комплексную матрицу на квадратную вещественную матрицу.
    • BlasL3LARCM — умножает квадратную вещественную матрицу на комплексную матрицу.

  9. Исправлена ошибка в расчете квантилей t-распределения в статистической библиотеке MQL5.
  10. Исправлена установка предопределенной переменной _StopFlag для индикаторов.
  11. Добавлено формирование события CHARTEVENT_CHART_CHANGE при изменении свойств CHART_PRICE_MIN и CHART_PRICE_MAX у графика. Для получения события используйте обработчик OnChartEvent.
  12. Исправлено применение таймаута, указываемого при вызове WebRequest.
  13. Исправлена работа функции ObjectGetValueByTime для графических объектов OBJ_REGRESSION и OBJ_STDDEVCHANNEL.
  14. Добавлено значение MQL_LAST_OPENBLAS_ERROR в перечисление ENUM_MQL_INFO_INTEGER.

    Большинство LAPACK-функций библиотеки OpenBLAS используют целочисленный параметр info для возврата статуса завершения функции или подпрограммы: успешно ли она отработала, были ли обнаружены ошибки во входных параметрах или возникли численные проблемы. Константа MQL_LAST_OPENBLAS_ERROR содержит значение info после последнего неудачного выполнения функции OpenBLAS.

MetaEditor

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


    Добавлена функция сворачивания кода


    Для включения/отключения функции используйте новую опцию в настройках:


    Включение и отключение функции сворачивания кода


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


    Добавлена подсветка совпадений при выделении слова


  3. Исправлены ошибки отображения файлов *.md файлов.
  4. Добавлена поддержка UTF-8 для проектов *.mqproj. Теперь именно эта кодировка будет использоваться при сохранении таких файлов.
  5. Изменена кодировка, в которой сохраняются файлы *.mq5, *.mqh. Теперь используется UTF-8 без BOM. 
  6. Исправлена подсветка исходного кода. Для некоторых идентификаторов языка MQL5 могли использоваться некорректные цвета.
  7. Исправлено сохранение и загрузка координат открепленных окон.
  8. Исправлена обработка горячих клавиш в открепленных окнах.

Tester

  1. Исправлено применение пользовательского спреда в режиме тестирования «Только цены открытия».
  2. Исправлен расчет свопов в процентах.
  3. Исправлено отображение параметров тестирования, которые не могут участвовать в оптимизации (например, строковые параметры). Теперь для них будет отображаться пустой серый квадрат, означающий, что параметр не включен и не может быть выбран.
  4. Исправлено отображение цвета clrNONE в параметрах MQL5-программы при тестировании.
  5. Исправлено применение пользовательских настроек маржи.

Web Terminal

  • Улучшена работа на устройствах с сенсорными экранами.
24 апреля 2026
Новая версия платформы MetaTrader 5 build 5830: общие улучшения

Terminal

  1. Доработана встроенная справка:

    • Оптимизированы цвета в темной схеме для улучшения читаемости.
    • Оптимизирован размер бокового меню с оглавлением.
    • Добавлена возможность открепления окна справки в MetaEditor.
    • Добавлена возможность копирования текста из справки через контекстное меню и Ctrl+C.
    • Добавлена возможность изменять масштаб текста: зажмите Ctrl и прокрутите колесо мыши или воспользуйтесь контекстным меню.
    • Добавлена поддержка навигации между ранее просмотренными разделами при помощи клавиш Alt+Стрелка вправо/влево.
    • Добавлена возможность распечатать страницу при помощи Ctrl+P.

  2. Оптимизировано отображение некоторых элементов интерфейса в темной теме: строка OHLC, кнопки сворачивания и разворачивания графиков, входные параметры в тестере стратегий.
  3. Исправлено сохранение состояния опции «Использовать системные цвета» в Обзоре рынка. Она могла сбрасываться при перезапуске приложения.
16 апреля 2026
Новая версия платформы MetaTrader 5 build 5800: Улучшенный торговый диалог и удобная работа с CSV в MetaEditor

Terminal

  1. Мы начали глобальное обновление торгового диалога, чтобы сделать его более удобным и функциональным.

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


    В будущих версиях мы планируем добавить больше функций для выставления стоп-уровней и контроля рисков.


    Новый торговый диалог



  2. Обновлена встроенная справка. Теперь вместо устаревшего формата CHM используется современный веб-движок. Вместе с переходом мы также обновили стили справки на более современные и улучшили интерактивность. 

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


    Обновлена встроенная справка



  3. Исправлено обновление библиотек ONNX и OpenBLAS. Теперь при обновлении самой платформы новые версии компонентов корректно проверяются и скачиваются при необходимости.
  4. Исправлено отображение метки, которая фиксирует позицию графика.
  5. Исправлен расчет просадки по балансу в торговом отчете. Ранее в ней могли ошибочно учитываться операции вывода средств.
  6. Доработана темная схема интерфейса. Мы изменили некоторые цвета для повышения контрастности.
  7. Исправлено сохранение настроек подключения через прокси-сервер. Также расширено журналирование подключения: при первом использовании прокси за текущую сессию в журнал выводится сообщение вида:
    connecting through HTTP proxy [server]:[port]
  8. Обновлен перевод интерфейса на узбекский язык. Теперь для него используется латиница.

MQL5

  1. Добавлены новые методы OpenBLAS для L1‑фильтрации тренда. Она позволяет быстро и воспроизводимо выделять трендовую компоненту во временных рядах.

    Для чего это

    • Кусочно-линейный тренд вместо «гладкого» сглаживания: L1‑фильтр подавляет шум и краткосрочные колебания, но при этом не размывает смену режимов — тренд строится как набор линейных сегментов.
    • Автоматическое выявление точек излома: места, где меняется наклон тренда, определяются естественным образом (за счет разреженности вторых разностей), что удобно для финансовых рядов.
    • Нормализация параметра регуляризации через λmax: теперь параметр λ можно задавать в относительных единицах (как долю от λmax). Это упрощает перенос настроек между символами, таймфреймами и разной длиной истории.

    Новые методы

    • L1TrendFilterLambdaMax — вычисляет максимальное значение регуляризации λmax, при котором решение становится строго линейным (глобальный тренд). Возвращает true/false, λmax выдается через выходной параметр.
    • L1TrendFilter — рассчитывает L1‑тренд для заданного λ. Поддерживает режим relative=true, когда λ задается в диапазоне [0…1] как доля от λmax.

  2. Исправлен запрос данных через CopyRates. Теперь при запросе данных за пределами истории функция возвращает корректный код ошибки: -1.
  3. Расширена поддержка CUDA для моделей ONNX. На данный момент можно использовать следующие архитектуры:

    • Turing: Nvidia 1660, RTX 2080/2070/2060, T4, Quadro RTX
    • Ampere: A100, RTX 3090/3080/3070
    • Ada Lovelace: RTX 4090/4080/4070, L40, L4
    • Hopper: H100, H200
    • Blackwell: B100, B200, B20, RTX 5090/5080/5070

  4. Улучшена работа WebRequest для долгих запросов с заголовком Keep-Alive.

MetaEditor

  1. Добавлена возможность просматривать файлы CSV в виде таблицы.

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

    В качестве разделителя данных могут быть использованы любые символы, включая «,», «;», «табуляцию» и «пробел». Если автоматическое определение сработает некорректно, вы можете задать разделитель вручную.


    Добавлена возможность просматривать файлы CSV в виде таблицы


  2. Доработана установка режима компиляции по умолчанию. Если ваш процессор поддерживает набор инструкций AVX2, редактор автоматически устанавливает соответствующий режим компиляции приложений MQL5. Это позволит автоматически получать наилучшую скорость исполнения.
  3. Обновлен формат записи файлов исходного кода, используемый по умолчанию. Теперь редактор сохраняет файлы в UTF-8 без заголовка BOM. Это необходимо для корректного отображения файлов в MQL5 Algo Forge.
  4. Исправлена ошибка repository not owned by current user, которая могла возникать при использовании облачного хранилища MQL5 Algo Forge.

Signals

  • Устранена задержка при копировании сигналов в случаях, когда на счете подписчика отсутствует курс для расчета коэффициента копирования.

    При расчете объема копируемых сделок система в том числе учитывает соотношение баланса на счете подписчика и провайдера. Если их валюта депозита отличается, система использует соответствующий валютный курс для конвертации. Если такой курс отсутствует, система вынужденно считает, что баланс у обеих сторон одинаковый и выводит в журнал соответствующее предупреждение:
    no conversion rate for the deposit currency of provider and subscriber
    Ранее после такого сообщения пользователи могли наблюдать некоторую задержку при копировании сделки. Теперь это проблема устранена.

Tester

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

MetaTrader 5 Web Terminal

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


27 февраля 2026
Новая версия платформы MetaTrader 5 build 5660: улучшения и исправления

В этой версии улучшена работа с прокси-серверами. Мы доработали поддержку протоколов HTTP и SOCKS5, что снизит вероятность появления ошибок подключения. Устаревший протокол SOCKS4 больше не поддерживается.

Также изменился порядок работы с библиотекой линейной алгебры OpenBLAS. Теперь ее реализация вынесена в отдельный файл openblas.dll.

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

20 февраля 2026
Новая версия платформы MetaTrader 5 build 5640: Улучшения темной темы и Markdown в MetaEditor

Terminal

  1. Улучшена темная тема интерфейса для всех компонентов: торгового терминала, MetaEditor и тестера стратегий. В частности, мы обновили общий цвет фона, цвет вкладок и скроллеров, чтобы вы могли работать с платформой комфортнее.


    Улучшена темная тема интерфейса


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


    Обновлены фундаментальные данные


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

MQL5

  1. Добавлена функция Color2PRGB. Она преобразует тип color в тип uint для получения PRGB-представления цвета. PRGB формат цвета используется при создании графического ресурса, вывода текста и в классе стандартной библиотеки CCanvas.
  2. Добавлен метод NormalizeDouble для векторов и матриц. Он работает аналогично стандартному методу, который применяется для значений типа double. Для комплексных чисел реальная и мнимая части нормализуются по отдельности. Метод полезен в случаях, когда в векторах и матрицах предполагается хранить ценовые данные.
  3. Доработан компилятор:

    • Исправлен вызов через указатель функции, возвращающей объект.
    • Добавлены предупреждения для больших или отрицательных констант в сдвигах.
    • Исправлена ошибка в методе matrix<T>::Swap(array<T>&).
    • Исправлен парсинг кода, использующего неявные объекты классов.

MetaEditor

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

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


    Добавлено отображение и редактирование файлов Markdown


  2. Исправлена работа с файлами проектов *.mqproj, имеющими кодировку UTF-8 c BOM.
  3. Исправлена работа автоматического отображения локальных переменных. Теперь их значения нельзя удалять в списке наблюдаемых выражений.

Tester

  1. Исправлены ошибки синхронизации исторических данных, возникавшие при тестировании на торговых инструментах с валютой маржи отличной от валюты депозита счета. Например, при тестировании на паре CHFJPY с валютой депозита USD или EUR. Теперь в таких случая тестер корректно загружает необходимые кросс-курсы с сервера брокера.
29 января 2026
Новая версия платформы MetaTrader 5 build 5572: Улучшения в ONNX и отображении графиков

Terminal

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



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


  9. Исправлено дублирование торговых инструментов в подсказке, отображаемой при поиске инструментов в «Обзоре рынка».
  10. Исправлено отображение шрифтов Windings на графике.
  11. Исправлено отображение индикаторов в виде разноцветных свечей (DRAW_COLOR_CANDLES) и разноцветных линий (DRAW_COLOR_LINE).
  12. Добавлен вывод сообщения в журнал о том, что сервер брокера имеет устаревшую версию. Если сервер имеет версию ниже 5200, выпущенную полгода назад, вы увидите предупреждение:
    outdated server build - must be at least 5200, contact your broker please
    Сообщение выводится для информации и не влияет на возможность подключения к серверу.
  13. Обновлены переводы пользовательского интерфейса.

MQL5

  1. Изменен порядок установки библиотеки ONNX. Теперь она загружается при первом запуске MQL5-программы, использующей ONNX, а не вместе с платформой. Обновление библиотеки происходит автоматически.
  2. Добавлена поддержка CUDA для ONNX. Если ваша видеокарта поддерживает соответствующую технологию, это существенно ускорит инференс моделей. Настоятельно рекомендуем обновить драйверы NVIDIA для улучшения стабильности и повышения производительности.

    Разрешениями на использование CUDA можно управлять в настройках платформы: 


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


  3. Обновлены флаги в перечислении ENUM_ONNX_FLAGS. Они используются при создании и выполнении моделей ONNX:

    Работа с логами
    Вместо устаревшего флага ONNX_DEBUG_LOGS для работы с логами теперь используются:

    • ONNX_LOGLEVEL_VERBOSE — выводить все сообщения.
    • ONNX_LOGLEVEL_INFO — выводить информационные сообщения, а также предупреждения и ошибки. Заменяет устаревший флаг ONNX_DEBUG_LOGS.
    • ONNX_LOGLEVEL_WARNING — выводить предупреждения и ошибки. Используется по умолчанию.
    • ONNX_LOGLEVEL_ERROR — выводить только ошибки.

    Управление CUDA и GPU
    Флаг ONNX_CUDA_DISABLE удален. Вместо него используйте новый ONNX_USE_CPU_ONLY. Если он включен, для работы с моделями будет использоваться только процессор.

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

    • ONNX_GPU_DEVICE_0
    • ONNX_GPU_DEVICE_1
    • ONNX_GPU_DEVICE_2
    • ONNX_GPU_DEVICE_3
    • ONNX_GPU_DEVICE_4
    • ONNX_GPU_DEVICE_5
    • ONNX_GPU_DEVICE_6
    • ONNX_GPU_DEVICE_7

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

    Профилирование моделей
    Добавлен флаг ONNX_ENABLE_PROFILING, включающий профилирование модели ONNX.

    При запуске модели с включенным флагом в папке /MQL5/Files/OnnxProfileReports/ будет создан файл с именем [название файла EX5]_[дата]_[время].json, содержащий отчет профилирования.

  4. Увеличен лимит для файлов, которые могут быть включены в программу в виде ресурса. Теперь он составляет 1 ГБ. Это позволяет включать в проекты большие модели ONNX. 
  5. Улучшена стабильность при работе с OpenCL.
  6. Добавлен метод ReplaceToZero. Он заменяет малые значения в матрице/векторе нулевыми значениями и возвращает количество замененных элементов.
  7. Добавлены новые методы OpenBLAS:

    • FactorizationLDLComplexSyRaw — вычисляет разложение комплексной матрицы с использованием диагонального выбора ведущего элемента по методу Банча-Кауфмана.
    • LDLComplexSyLinearEquationsSolution — решает систему линейных уравнений A * X = B с комплексной симметричной неопределенной матрицей, используя разложение A = U**T * D * U or A = L * D * L**T, рассчитанное методом FactorizationLDLComplexSyRaw с несколькими правыми частями.
    • LDLComplexSyInverse — вычисляет обратную матрицу для комплексной симметричной неопределенной матрицы с использованием разложения A = U**T * D * U or A = L * D * L**T, рассчитанного методом FactorizationLDLComplexSyRaw.
    • LDLComplexSyCondNumReciprocal — оценивает обратное число обусловленности для комплексной симметричной неопределенной матрицы, используя разложение LDLT, рассчитанное методом FactorizationLDLComplexSyRaw.

  8. Добавлена функция ColorToPRGB. Она преобразует тип color в тип uint для получения PRGB-представления цвета. Такой формат используется при создании графического ресурса, вывода текста и в классе стандартной библиотеки CCanvas при работе с цветом COLOR_FORMAT_ARGB_RAW.
    uint  ColorToPRGB(
       color  clr,          // преобразуемый цвет в формате color
       uchar  alpha=255     // альфа-канал, управляющий прозрачностью цвета
    );
    PRGB цвет вычисляется по формуле:
    R = R * A / 255
    G = G * A / 255
    B = B * A / 255
    A = A
  9. Исправлена программная установка текста для объектов OBJ_LABEL, OBJ_TEXT, OBJ_BUTTON и OBJ_EDIT. В некоторых случаях заданный текст мог не отображаться.
  10. Исправлена установка цвета для графических объектов при помощи ObjectSetInteger. Значения clrNONE могло не учитываться.
  11. Исправлено зависание функции Bars при отсутствии ценовой истории на сервере.
  12. Исправлен поиск глобальных переменных в области видимости. Ошибка не позволяла использовать внутри namespace переменные с теми же именами, что у переменных на глобальном уровне.
  13. Исправлена работа с атрибутом final. Теперь при попытке переопределить функцию, помеченную как final, компилятор будет выдавать соответствующую ошибку.
  14. Исправлено ложное предупреждение компилятора, возникавшее при использовании предобъявлений функций в подключаемых файлах *.mqh без директивы #import. Теперь компилятор корректно обрабатывает такие объявления и не требует #import, если функции не являются импортируемыми из DLL.

    Пример

    Файл utils.mqh: 
    // Предобъявление функции
    double CalcLot(double risk, double stop);
    Файл expert.mq5:
    #include "utils.mqh"
    
    double CalcLot(double risk, double stop)
      {   
       return risk / stop;
      }
    Ранее компилятор мог выдавать предупреждение о том, что для функции CalcLot в файле utils.mqh отсутствует директива #import, несмотря на то что функция является пользовательской и реализована в коде проекта. Теперь такой код компилируется без предупреждений. Директива #import требуется только для функций, действительно импортируемых из внешних DLL. 

MetaEditor

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


Tester

  1. Исправлена остановка тестирования для зацикленных экспертов. Теперь даже при наличии бесконечного цикла процесс будет моментально останавливаться при нажатии кнопки «Стоп».
  2. Исправлен вызов функции EventChartCustom при визуальном тестировании. Ранее событие ошибочно отправлялось дважды.
  3. Исправлена проверка уровня заморозки (SYMBOL_TRADE_FREEZE_LEVEL) при удалении только что установленных отложенных ордеров.
  4. Исправлен экспорт данных форвард-тестирования. При экспорте данных теста, в котором не использовался форвард-режим, могли сохраняться данные предыдущих форвард-тестов.

WebTerminal

  1. Добавлено отображение приблизительного размера прибыли/убытка в деньгах при выставлении Стоп Лосса и Тейк Профита на графике.


    Добавлено отображение приблизительного размера прибыли/убытка в деньгах


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

13 ноября 2025
Новая версия платформы MetaTrader 5 build 5430: Улучшенные графики на движке Blend2D

Terminal

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

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

    Аппаратное ускорение и оптимизация под современные CPU
    Blend2D оптимизирован под современные наборы инструкций (SSE, AVX), что значительно повышает скорость визуализации по сравнению с GDI, который не использует такие возможности.

    Четкая и плавная графика
    Благодаря продвинутым алгоритмам антиалиасинга и точной работе с цветами Blend2D обеспечивает более гладкие линии, мягкие переходы и визуально чистые графики — особенно заметно при масштабировании и работе с высокими разрешениями (HiDPI, 4K).

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

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


    Теперь для отрисовки графиков используется новое графическое ядро Blend2D


MQL5

  1. Добавлены методы матриц, выполняющие вычисления второго уровня линейной алгебры (матрица-вектор) BLAS Level 2:

    • BlasL2GeMV — произведение матрицы на вектор.
    • BlasL2GeR — ранговое обновление (ранг 1).
    • BlasL2GeRC — вариант для комплексных матриц с сопряжением.
    • BlasL2SyMV — произведение симметричной матрицы на вектор.
    • BlasL2SyR — обновление матрицы ранга 1.
    • BlasL2SyR2 — обновление матрицы ранга 2.
    • BlasL2HeMV — произведение Эрмитовой матрицы на вектор.
    • BlasL2HeR — обновление Эрмитовой матрицы ранга 1.
    • BlasL2HeR2 — обновление Эрмитовой матрицы ранга 2.
    • BlasL2TrMV — произведение треугольной матрицы на вектор.

  2. Добавлены методы матриц, выполняющие вычисления третьего уровня линейной алгебры (матрица-матрица) BLAS Level 3:

    • BlasL3GeMM — произведение обычных матриц.
    • BlasL3SyMM — произведение матриц, где матрица A является симметричной.
    • BlasL3HeMM — произведение матриц, где матрица A является Эрмитовой.
    • BlasL3TrMM — произведение матриц, где матрица A является треугольной.
    • BlasL3SyRK — обновление симметричной матрицы ранга k.
    • BlasL3HeRK — обновление Эрмитовой матрицы ранга k.
    • BlasL3SyR2K — обновление симметричной матрицы ранга 2k.
    • BlasL3HeR2K  — обновление Эрмитовой матрицы ранга 2k.

  3. Исправлена ошибка WebRequest, приводившая в некоторых случая к разрыву соединения к с удаленным хостом.
  4. Исправлено падение, возникавшее в редких случаях при отсутствии инициализации переменных.
  5. Исправлено падение, возникавшее в редких случаях при использовании функции IntegerToString.

Tester

  1. Исправлено дублирование пользовательских событий при вызове EventChartCustom во время визуального тестирования.
  2. Исправлено поведение IsStopped при принудительной остановке тестирования.

WebTerminal

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


    Переключайте режим отображения объема в стакане цен


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

16 октября 2025
Новая версия платформы MetaTrader 5 build 5370: улучшения в веб-версии

Web Terminal

  1. Добавлено отображение дат начала и окончания обращения в спецификацию инструмента:


    Дата начала и окончания обращения


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


    Котировки с задержкой


  3. Исправлено отображение меню для переключения таймфреймов. Проблема возникала в горизонтальном режиме просмотра на мобильных устройствах.
  4. Исправлено отображение доступных типов счетов в окне открытия демонстрационного счета.
  5. Исправлена локализация окна подключения к торговому счету. Некоторые пункты могли отображаться только на английском языке.
3 октября 2025
MetaTrader 5 build 5326: улучшения и исправления

Terminal

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

MQL5

  • Исправлена ошибка в генерации неявного конструктора и оператора копирования для структур и классов. В некоторых случаях она могла приводить к критическому завершению работы MQL-программы.
25 сентября 2025
Новая версия платформы MetaTrader 5 build 5320: сервисы в Библиотеке кодов и удобная работа с input в MQL5
Билд 5320 — это последнее обновление с поддержкой Windows 7, Windows 8, Windows 8.1, Windows Server 2008. Начиная со следующей версии, десктопные платформы, работающие на указанных операционных системах, обновляться не будут. Исключение — платформы, работающие под Wine.


Terminal

  1. Добавлена поддержка MQL5-программ типа «Сервис» в библиотеке кодов.

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

    Теперь для таких программ есть отдельная категория. Разработчики могут делиться своими кодами в CodeBase:


    Делитесь кодами в библиотеке


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


    Скачивайте коды прямо из платформы


  2. Исправлена ошибка, из-за которой файлы удаленных (закрытых) графиков перемещались в неправильный каталог. Из-за этого пользователи не могли восстанавливать такие графики через меню «Файл \ Открыть удаленный».
  3. Обновлены переводы пользовательского интерфейса.

MQL5

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

    Вместо устаревшего синтаксиса:
    input int InpVar;  /*visible name*/ // some comment
    Следует использовать:
    input(name="visible name") int InpVar;  // some comment
    Отображаемое имя переменной задается в параметре name. В качестве значения принимается только строковой литерал.

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

  2. Исправлена ошибка, из-за которой компилятор мог некорректно выводить сообщение «function must have a body».

MetaEditor

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

Tester

  • Исправлена ошибка тестирования индикаторов. Процесс мог не запускаться, если имя индикатора совпадает с именем шаблона графика.

Web Terminal

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

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

Terminal

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

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

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

MQL5

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

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

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

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


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

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

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

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

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

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

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

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

MetaEditor

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

Algo Forge

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

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

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

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

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

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


Web Terminal

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

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

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

Terminal

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


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


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

MQL5

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

MetaEditor

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

Tester

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

Web Terminal

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

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

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


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


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

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

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

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


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


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


    График Heikin Ashi


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


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


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


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


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

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



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

Terminal

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

MQL5

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

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

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

MetaEditor

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

MetaEditor

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

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

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




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




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




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




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

Terminal

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




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

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




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

MQL5

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

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

    Как влияет ddof:

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

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

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

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

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

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

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

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

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

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

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

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

MetaTester

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

Web Terminal

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


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

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

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

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



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



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

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

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


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



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


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



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


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



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



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



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

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

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

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

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

Terminal

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

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

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

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


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

MQL5

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

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

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

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

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

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

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

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

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

    pip install --upgrade MetaTrader5

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

MetaEditor

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

Tester

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

Web Terminal

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

Terminal

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

MQL5

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

    SingularValueDecompositionDC

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

    SingularValueDecompositionQR

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

    SingularValueDecompositionQRPivot

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

    SingularValueDecompositionBisect

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

    SingularValueDecompositionJacobiHigh

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

    SingularValueDecompositionJacobiLow

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

    SingularValueDecompositionBidiagDC

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

    SingularValueDecompositionBidiagBisect

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

    EigenSolver

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

    EigenSymmetricDC

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

    SingularSpectrumAnalysisSpectrum

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

    SingularSpectrumAnalysisForecast

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

    SingularSpectrumAnalysisReconstructComponents

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

    SingularSpectrumAnalysisReconstructSeries

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

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

MetaTester

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

предыдущая1234567891011121314