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

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

7 марта 2024

MetaTrader 5 build 4230: больше встроенных приложений и расширение поддержки ONNX

Terminal

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

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

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


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

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


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

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

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


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

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

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


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

MQL5

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

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

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

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

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

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

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

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

MetaEditor

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

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


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

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

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

Tester

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

MetaTrader 5 Web Terminal

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


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


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

29 февраля 2024

Встречайте книгу «Нейросети в алготрейдинге на MQL5»

Мы выпустили книгу «Нейросети в алготрейдинге на MQL5». Это учебное пособие по использованию искусственного интеллекта при создании торговых роботов в платформе MetaTrader 5. Автор книги — Дмитрий Гизлык, профессионал в области нейросетей, написавший около сотни обучающих статей на эту тематику. Теперь при поддержке MetaQuotes все его ценные знания удобно собраны в одну книгу. Вы последовательно познакомитесь с основами нейросетей и возможностями их применения в алготрейдинге. По мере продвижения вы создадите и обучите собственный искусственный интеллект, постепенно дополняя его новыми функциями.

Встречайте книгу «Нейросети в алготрейдинге на MQL5»


Книга доступна онлайн всем желающим в разделе «Учебник по нейросетям» на сайте MQL5 Algo Trading community. Она состоит из семи частей:

  • Глава 1 вводит вас в мир искусственного интеллекта, обучая основам построения нейронных сетей и их ключевым компонентам, таким как функции активации и методы инициализации весов.
  • Глава 2 раскрывает возможности MetaTrader 5, детально описывая, как использовать инструменты платформы для создания мощных алготрейдинговых стратегий.
  • Глава 3 посвящена пошаговой разработке вашей первой модели нейронной сети на MQL5, начиная от подготовки данных до реализации и тестирования модели.
  • Глава 4 глубоко погружается в изучение базовых типов нейронных слоев, включая сверточные и рекуррентные нейронные сети, их реализацию и тестирование.
  • Глава 5 знакомит с механизмами внимания, включая Self-Attention и Multi-Head Self-Attention, представляя передовые методы анализа данных.
  • Глава 6 объясняет архитектурные решения для повышения сходимости моделей, такие как пакетная нормализация и Dropout.
  • Глава 7 завершает книгу, предлагая методы проверки торговых стратегий с использованием разработанных моделей нейронных сетей в реальных торговых условиях на MetaTrader 5.

Книга предназначена для продвинутых пользователей, уже знакомых с написанием программ на MQL5 и Python. Если вы только начинаете свой путь в алготрейдинге, прочитайте сначала книгу «Программирование на MQL5 для трейдеров» и ознакомьтесь с документацией языка.


18 января 2024

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

Terminal

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


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


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


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


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


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


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

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

MQL5

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

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

MetaEditor

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

Tester

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

Web Terminal

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

15 декабря 2023

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

Мы выпустили наиболее полное учебное пособие по программированию на MQL5. Книга написана опытным алготрейдером Станиславом Коротким при поддержке MetaQuotes.

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

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

Книга доступна онлайн всем желающим в разделе «Учебник» на сайте MQL5.community. Она состоит из семи частей:

  1. Знакомство c языком и средой разработки — базовые принципы программирования на MQL5 в обзорном режиме, а также знакомство со средой разработки для MQL5 — редактором и компилятор MetaEditor.
  2. Основы программирования — основные понятия, такие как типы, инструкции, операторы, выражения, переменные, блоки кода, структура программ и их применении для написания MQL-программ в процедурном стиле.
  3. Объектно-Ориентированное Программирование — несмотря на схожесть с другими языками с поддержкой парадигмы ООП (в особенности с C++), MQL5 все же имеет отличительные черты, знания о которых пригодятся всем читателям.
  4. Общеупотребительные функции — общеупотребительные встроенные функции, которые пригодятся в любой программе.
  5. Создание прикладных программ — архитектурные особенности MQL-программ и их специализация по типам для выполнения различных трейдерских задач, таких как технический анализ с помощью индикаторов, управление графиками и их разметка с наложением графических объектов и т.д.
  6. Автоматизация торговли — анализ торгового окружения и автоматизации торговли с помощью роботов.
  7. Расширенные средства языка — набор специализированных API, облегчающих интеграцию MQL5 со смежными технологиями, такими как базы данных, обмен данными по сети, OpenCL, Python и другими.

Книга содержит множество примеров исходного кода. Работая с ними по учебнику в собственном редакторе, вы будете сразу же видеть результаты исполнения программы в платформе. Исходные коды доступны в публичном проекте \MQL5\Shared Projects\MQL5Book, а также в библиотеке исходных кодов.

Начните изучение MQL5 прямо сейчас и откройте для себя мир профессионального алготрейдинга. Полученные знания помогу воплотить ваши идеи в жизнь. Вы также сможете применить их в коммерческой среде — разрабатывая и продавая приложения через Маркет и выполняя заказы через Фриланс.


Читать книгу

9 ноября 2023

Скачивайте MetaTrader 5 для macOS и Linux

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

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

Ссылки на установщики доступны на сайте https://www.metatrader5.com, а также в меню «Справка» торговой платформы:

Ссылки на скачивание в меню платформы


Для macOS: проверьте версию Wine

Недавно мы полностью обновили установочный пакет для macOS, внеся в него множество улучшений. Если вы уже используете MetaTrader в этой системе, проверьте текущую версию Wine — она выводится в журнал терминала при запуске:

LP 0 15:56:29.402 Terminal MetaTrader 5 x64 build 4050 started for MetaQuotes Software Corp.
PF 0 15:56:29.403 Terminal Windows 10 build 18362 on Wine 8.0.1 Darwin 23.0.0, 12 x Intel Core i7-8750H  @ 2.20GHz, AVX2, 11 / 15 Gb memory, 65 / 233 Gb disk, admin, GMT+2

Если у вас Wine версии ниже 8.0.1, мы настоятельно рекомендуем удалить старую платформу вместе с префиксом Wine, в котором она установлена. Саму платформу можно удалить как обычно, перенеся ее из раздела «Приложения» в корзину. Удалить префикс Wine можно через Finder. Выберите меню «Переход \ Переход к папке» и введите название каталога — ~/Library/Application Support/. Перейдя в него, удалите следующие папки, в зависимости от того, какая версия MetaTrader установлена:

~/Library/Application Support/Metatrader 5
~/Library/Application Support/net.metaquotes.wine.metatrader5
~/Library/Application Support/Metatrader 4
~/Library/Application Support/net.metaquotes.wine.metatrader4

После удаления установите терминал заново при помощи наших инсталляторов.

  • В процессе вам будет предложено установить дополнительные пакеты Wine (Mono, Gecko), согласитесь — они нужны для работы.
  • Минимальные версии macOS: Big Sur для MetaTrader 4 и Mojave для MetaTrader 5


Больше нет необходимости разбираться с установкой вручную или использовать сторонние решения. Установите платформу в пару кликов и приступайте к торговле:

8 ноября 2023

MetaTrader 5 для iPhone/iPad: групповые операции, 21 таймфрейм и торговые уведомления

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

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

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


    Массовое закрытие позиций и удаление ордеров


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


    Торговые уведомления


  3. Прибыль/убыток для стоп-уровней. Теперь при перемещении Тейк Профита и Стоп Лосса на графике, вы сразу увидите потенциальную прибыль/убыток, который вы получите, если уровень сработает. Значения отображаются в пунктах и деньгах.


    Прибыль/убыток для стоп-уровней


  4. Улучшения торговой панели. Теперь в настройках приложения вы можете изменить положение торговой панели: над или под графиком. Также было увеличено расстояние между кнопками изменения объема и кнопками Buy и Sell, чтобы избежать случайной отправки ордеров.


    Улучшения торговой панели


  5. Количество таймфреймов увеличилось до 21. Мы добавили 12 дополнительных минутных и часовых таймфреймов, чтобы дать вам еще больше возможностей для анализа цен. Раскройте меню таймфреймов над графиком и перейдите в настройки. Выберите нужные периоды долгим нажатием, чтобы добавить их на панель быстрого доступа.


    Количество таймфреймов увеличилось до 21


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


    Расширенная настройка торговых уровней


  7. Блокировка экрана. Теперь вы можете установить ПИН-код или использовать Face ID/Touch ID, чтобы ограничить доступ посторонних лиц к приложению. Если ваш iPhone или iPad окажется в руках другого человека, вы можете быть уверены в безопасности своего торгового счета. Для активации функции включите "Блокировку экрана" в окне "Настройки/О программе" и задайте четырехзначную комбинацию цифр. Если приложение будет оставаться скрытым более минуты, для его открытия понадобится ввести код или авторизоваться через Face ID/Touch ID.


    Блокировка экрана


  8. Улучшения в чате. Во встроенном мессенджере, позволяющем переписываться с участниками MQL5.community, появилось множество новых функций:

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



    Улучшения в чате


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


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

MetaTrader 5 в App Store
MetaTrader 5 в App Store

6 ноября 2023

MetaTrader 5 для Android: новые функции для торговли и аналитики

За последние полгода в мобильное приложение MetaTrader 5 для Android было добавлено огромное количество новых функций: быстрая торговля с графика, дополнительные таймфреймы, визуальное представление истории сделок и многое другое. Ниже расскажем о них подробнее.

  1. Торговля одним кликом с графика. Теперь для совершения сделки достаточно открыть специальную панели и нажать Buy или Sell. Увидев удачный момент, вы можете моментально войти в рынок, не теряя драгоценное время на переключение вкладок.


    Торговля одним кликом с графика


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

  2. Выставление отложенных ордеров с графика. Теперь ордера можно выставлять в визуальном режиме — просто перемещая их на нужный уровень на графике. Нажмите кнопку на верхней панели, выберите тип ордера, задайте цену и нажмите стрелочку для подтверждения параметров. Это значительно быстрее и удобнее, чем задавать параметры в торговом диалоге. К ордеру можно сразу прикрепить Стоп Лосс и Тейк Профит. Аналогичным образом можно изменить любой существующий ордер — просто нажмите на его уровень и задайте новые параметры.


    Выставление отложенных ордеров с графика


  3. Управление позициями и ордерами с графика. Выберите уровень позиции или ордера на графике, и в нижней части графика появится панель управления. С помощью нее вы можете закрывать позиции и удалять ордера, а также добавлять и удалять для них Стоп Лоссы и Тейк Профиты. При перемещении стоп-уровней вы сразу увидите потенциальную прибыль/убыток в пунктах и деньгах.


    Закрытие позиций и удаление отложенных ордеров с графика


  4. Торговая история на графике. Теперь вы можете визуально оценить свои входы и выходы из рынка. Достаточно включить показ истории в настройках приложения, и все сделки отобразятся на графике в виде стрелочек. Направление сделок определяется цветом: синие — Buy, красные — Sell. Сделки входа и выхода из рынка соединяются пунктирными линиями. Помимо этого, в настройках графика можно включить отображение открытых позиций и активных отложенных ордеров.


    Торговая история на графике


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

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


    Массовое закрытие позиций и удаление ордеров


  6. Адаптивное редактирование объемов сделки. Теперь кнопки для изменения объемов в торговом диалоге автоматически подстраиваются под текущее значение объема. Чем оно больше, тем на большее количество единиц вы сможете его изменить каждым нажатием на кнопку.


    Адаптивное редактирование объемов сделки


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


    Количество таймфреймов увеличилось до 21


  8. Копирование аналитических объектов на графике. Новая функция поможет быстрее наносить разметку. Вызовите меню объекта долгим нажатием на нем и выберите "Копировать":


    Копирование аналитических объектов на графике


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


    Улучшенный сдвиг правой границы графика


  10. Подключение к счету по QR-коду. Теперь для переноса счета из десктопной платформы или с другого устройства достаточно просто отсканировать QR-код. Он будет моментально подключен, без необходимости ввода логина и пароля. Для получения QR-кода для счета нажмите на соответствующую иконку в его свойствах.


    Подключение к счету по QR-коду


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


    Обновленные цветовые схемеы


  12. Ссылки на нормативные документы брокера. Теперь получить всю необходимую правовую информацию со стороны можно прямо в мобильном приложении в разделе свойств счета. Доступность ссылок зависит от брокера.
  13. Адаптация под арабский и персидский языки. Мы внесли множество улучшений, чтобы интерфейс приложения корректно отображался на языках с направлением письма справа налево.
  14. Множество улучшений и исправлений. За полгода в приложение было внесено сотни улучшений, чтобы обеспечить стабильную и быструю работу.


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

MetaTrader 5 в Google Play
MetaTrader 5 в Huawei App Gallery
Файл APK
Google Play Huawei App Gallery Файл APK

20 октября 2023

MetaTrader 5 build 4040: Улучшения и исправления

Terminal

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

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


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

MQL5

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

MetaTrader 5 Web Terminal

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

29 сентября 2023

MetaTrader 5 build 4000: Улучшения в торговом отчете и веб-терминале

Terminal

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


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


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

MetaTrader 5 Web Terminal

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

21 сентября 2023

MetaTrader 5 build 3980: Улучшения и исправления

Terminal

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

MQL5

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

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

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

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


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

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

MetaEditor

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

MetaTrader 5 Web Terminal build 3980

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

14 сентября 2023

MetaTrader 5 build 3950: Снятие/пополнение в терминале и обновленный торговый отчет
  1. Добавлена поддержка балансовых операций снятия и пополнения торгового счета непосредственно в клиентском терминале.

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

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

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

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

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






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

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

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

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

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

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

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

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


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

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

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

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

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

    MQL5

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

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

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


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

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

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

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

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

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

    MetaEditor

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

    Tester

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

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

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


    MetaTrader 5 Web Terminal build 3950

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

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

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

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

    8. Исправлена ошибка остановки тиков при закрытии всех ордеров/сделок.
    9. Исправлен показ событий Экономического календаря — в некоторых случаях они не отображались на графике, несмотря на включенную опцию.
    10. Исправлена ошибка, когда сбрасывались индикаторы при смене символа на графике.
    11. Исправлена ошибка в форме открытия реального аккаунта при подтверждении телефона/email.
    12. Добавлены и исправлены переводы.

8 июня 2023

MetaTrader 5 build 3800: ордера Book or Cancel, помощь AI при написании кода и расширенная поддержка ONNX

Terminal

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


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


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

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

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

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

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


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


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


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


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


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

MQL5

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


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


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

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

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

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

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

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

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

MetaEditor

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


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


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

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


    Настройки Copilot


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

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

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

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

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

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


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


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

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


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


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

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

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

Tester

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

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

Web Terminal

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

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


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

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

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

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

MQL5.community

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

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


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


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


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


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

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

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


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


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

24 марта 2023

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

Terminal

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

MQL5

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

Web Terminal

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

17 марта 2023

MetaTrader 5 build 3640: веб-терминал на 11 языках

Web Terminal

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


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


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

MQL5

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

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

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

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

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

MetaEditor

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

Terminal

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

10 марта 2023

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

Terminal

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

MQL5

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

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

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


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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    COPY_RATES_VOLUME_REAL|COPY_RATES_TIME|COPY_RATES_CLOSE

    Пример

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

MetaEditor

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


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


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

Tester

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

MetaTrader 5 Web Terminal build 3620

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


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


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


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


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

6 марта 2023

MetaTrader 5 для iPhone/iPad: улучшение торговых и аналитических функций графиков
  1. Добавлена возможность выставлять стоп и стоп-лимитные ордера с графика.

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


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


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


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


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


    https://www.metatrader5.com/c/17/1/chart-shift.png


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

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


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


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


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


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


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


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


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


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


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

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

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


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


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

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


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


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

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

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

16 декабря 2022

MetaTrader 5 build 3550: улучшения и исправления

Terminal

  1. Terminal: Обновлены переводы пользовательского интерфейса.
  2. Исправления по крешлогам.

Web Terminal

9 декабря 2022

MetaTrader 5 build 3540: 2FA/TOTP аутентификация и улучшенный Обзор рынка в веб-терминале

Web Terminal

  1. Добавлена поддержка 2FA/TOTP-аутентификации с помощью Google Authenticator и других подобных приложений.

    Использование двухфакторной аутентификации позволяет дополнительно защитить ваш торговый аккаунт от неавторизованного доступа даже в случае утечки логина и постоянного пароля к нему. Существует множество мобильных приложений, которые позволяют проводить двухэтапную аутентификацию с помощью алгоритма Time-based One-time Password Algorithm (TOTP). Среди наиболее известных Google Authenticator, Microsoft Authenticator, LastPass Authenticator и Authy. Теперь в клиентском терминале MetaTrader 5 можно авторизоваться с помощью одноразовых паролей, получаемых из таких Authenticator-приложений.

    Чтобы включить двухэтапную аутентификацию, сначала авторизуйтесь в веб-терминале MetaTrader 5 обычным способом. Затем нажмите на свой счет в меню и выберите "Enable 2FA/TOTP " в открывшемся диалоге. Запустите Authenticator на мобильном телефоне, нажмите в нем кнопку "+" для добавления вашего торгового счета и отсканируйте QR-код из терминала. Введите полученный код в поле "One-time password" и нажмите кнопку "Enable 2FA" — секрет для вашего счета будет добавлен на торговом сервере брокера.


    Добавлена поддержка 2FA/TOTP-аутентификации с помощью Google Authenticator и других подобных приложений


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


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


    В диалоге с QR-кодом для привязки к генератору также отображается резервный код — сохраните его в безопасном месте. Если вы потеряете доступ к привязанному устройству, он позволит заново добавить счет в приложение Authenticator.

    Если вы решите удалить сохраненный секрет из приложения Authenticator, предварительно отключите использование 2FA/TOTP-аутентификации, используя соответствующую команду в меню счета. Если 2FA/TOTP-аутентификация недоступна на вашем счете, попросите брокера включить эту опцию.

  2. Расширено количество информации, отображаемой в Market Watch. Теперь помимо текущих цен Bid/Ask и процента изменения цены вы можете посмотреть:

    • Максимальную и минимальную цену Bid/Ask за текущую торговую сессию
    • Цены открытия текущей и закрытия предыдущей торговой сессии

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


    Дополнительная информация в Обзоре рынка


  3. Добавлен показ уведомления о рисках при включении соответствующей настройки на стороне брокера. Некоторые регуляторы требуют, чтобы трейдер прочел и принял уведомление перед тем, как приступить к торговле.
  4. Исправлено отображение верхней панели инструментов на моделях iPhone с "челкой" в верхней части экрана. В некоторых случаях она могла закрывать кнопки на панели.
  5. Исправлено отображение итоговых финансовых показателей счета (прибыль, эквити и т.д.) в браузере Google Chrome. В некоторых случаях значения могли не обновляться.

Terminal

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

MQL5

  1. В класс COpenCL стандартной библиотеки добавлены новые методы:

    • BufferFromMatrix — заполнение буфера устройства данными из матрицы
    • BufferToMatrix — чтение данных из буфера устройства в матрицу
    • ContextCreate — создание контекста устройства (первая часть метода Initialize)
    • ProgramCreate — создание программы на основе исходного кода OpenCL (вторая часть метода Initialize)
    • ContextClean — освобождение всех данных, принадлежащих контексту устройства (аналог метода Shutdown, но без удаления контекста)
    • GetDeviceInfoInteger — получение целочисленного свойства устройства
    • GetKernelInfoInteger — получение целочисленного свойства кернела
    • GetDeviceInfo — получение любого одиночного целочисленного свойства устройства, не присутствующего в перечислении ENUM_OPENCL_PROPERTY_INTEGER

    Пример использования GetDeviceInfo:
    long preferred_workgroup_size_multiple=OpenCL.GetDeviceInfo(0x1067);
  2. Добавлены значения TERMINAL_CPU_NAME и TERMINAL_OS_VERSION в перечисление ENUM_TERMINAL_INFO_STRING. Они позволяют получить наименование процессора и операционной системы пользователя.
    void OnStart()
      {
       string cpu,os;
    //---
       cpu=TerminalInfoString(TERMINAL_CPU_NAME);
       os=TerminalInfoString(TERMINAL_OS_VERSION);
       PrintFormat("CPU: %s, OS: %s",cpu,os);
      }
    
    Результат:
    CPU: Intel Xeon  E5-2630 v4 @ 2.20GHz, OS: Windows 10 build 19045
  3. Исправлена работа параметра "table_or_sql" в функциях DatabasePrint и DatabaseExport. Теперь в нем можно передавать имя таблицы, а не только SQL-запрос.

MetaEditor

  1. Исправлена проверка на максимальное количество столбцов в базе данных, которые могут быть отображены. Теперь отобразить можно до 64 колонок.
  2. Исправлена работа точек останова в коротких конструкциях вида IF[ if(cond) break; ].

25 ноября 2022

MetaTrader 5 build 3520: добавлена 2FA/TOTP аутентификация с помощью Google Authenticator

Terminal

  1. Добавлена поддержка 2FA/TOTP-аутентификации с помощью Google Authenticator и других подобных приложений.

    Использование двухфакторной аутентификации позволяет дополнительно защитить ваш торговый аккаунт от неавторизованного доступа даже в случае утечки логина и постоянного пароля к нему. Существует множество мобильных приложений, которые позволяют проводить двухэтапную аутентификацию с помощью алгоритма Time-based One-time Password Algorithm (TOTP). Среди наиболее известных Google Authenticator, Microsoft Authenticator, LastPass Authenticator и Authy. Теперь в клиентском терминале MetaTrader 5 можно авторизоваться с помощью одноразовых паролей, получаемых из таких Authenticator-приложений.

    Чтобы включить двухэтапную аутентификацию, сначала авторизуйтесь в клиентском терминале MetaTrader 5 обычным способом. Затем правой кнопкой по торговому счету вызовите меню и выполните команду "Разрешить 2FA/TOTP". Запустите Authenticator на мобильном телефоне, нажмите в нем кнопку "+" для добавления вашего торгового счета и отсканируйте QR-код из терминала. Введите полученный код в поле "One-time password" и нажмите кнопку "Enable 2FA" — секрет для вашего счета будет добавлен на торговом сервере брокера.


    Добавлена поддержка 2FA/TOTP-аутентификации с помощью Google Authenticator и других подобных приложений

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



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

    Если вы решите удалить сохраненный секрет из приложения Authenticator, предварительно отключите использование 2FA/TOTP-аутентификации, используя соответствующую команду контекстного меню счета. Если 2FA/TOTP-аутентификация недоступна на вашем счете, попросите брокера включить эту опцию.

MQL5

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

  2. Для получения информации о последней ошибке OpenCL в перечисления добавлены новые значения, которые позволяют получить код ошибки и текстовое описание.
    1. В перечисление ENUM_OPENCL_PROPERTY_INTEGER добавлено значение CL_LAST_ERROR (код 4094) 

      Для получения последней ошибки OpenCL через CLGetInfoInteger параметр handle игнорируется, то есть не имеет значения. Описание ошибок: https://registry.khronos.org/OpenCL/specs/3.0-unified/html/OpenCL_API.html#CL_SUCCESS.
      Для неизвестного кода ошибки вернётся строка "unknown OpenCL error N", где вместо N будет код ошибки.

      Пример:
      //--- первый параметр handle игнорируется при получении кода последней ошибки
      int code = (int)CLGetInfoInteger(0,CL_LAST_ERROR);

    2. В перечисление ENUM_OPENCL_PROPERTY_STRING добавлено значение CL_ERROR_DESCRIPTION (4093).
      Текстовое описание ошибки OpenCL можно получить с помощью CLGetInfoString. Описание ошибок: https://registry.khronos.org/OpenCL/specs/3.0-unified/html/OpenCL_API.html#CL_SUCCESS.

      При использовании CL_ERROR_DESCRIPTION в качестве параметра handle в CLGetInfoString следует передать код ошибки. Если вместо кода ошибки передать CL_LAST_ERROR, то функция вернёт описание последней ошибки.

      Пример:
      //--- получить код последней OpenCL ошибки
      int    code = (int)CLGetInfoInteger(0,CL_LAST_ERROR);
      string desc; // для получения текстового описания ошибки
      
      //--- используем код ошибки для получения текстового описания ошибки
      if(!CLGetInfoString(code,CL_ERROR_DESCRIPTION,desc))
         desc = "cannot get OpenCL error description, " + (string)GetLastError();
      Print(desc);
      
      
      //--- чтобы получить описание последней OpenCL ошибки без предварительного получения кода, нужно передать CL_LAST_ERROR  
      if(!CLGetInfoString(CL_LAST_ERROR,CL_ERROR_DESCRIPTION, desc))
         desc = "cannot get OpenCL error description, " + (string)GetLastError();
      Print(desc);
      Пока в качестве описания ошибки отдаётся имя внутреннего перечисления, расшифровку которого можно посмотреть на странице https://registry.khronos.org/OpenCL/specs/3.0-unified/html/OpenCL_API.html#CL_SUCCESS. Например, если получено значение CL_INVALID_KERNEL_ARGS, описание для него "Returned when enqueuing a kernel when some kernel arguments have not been set or are invalid."

  3. Исправлена работа метода matrix::MatMul. При работе с матрицами большого размера на некоторых размерах терминал аварийно завершал работу.

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

18 ноября 2022

MetaTrader 5 build 3510: улучшения веб-терминала

MetaTrader 5 WebTerminal

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

    В мобильной версии в раздел торговой истории добавлена сортировка операций и фильтрация по глубине


    Операции можно отcортировать по основным параметрам: дате, тикету, символу, объему и т.д.

  2. Улучшен доступ к информации о ваших торговых счетах.

    • В десктопной версии данные текущего счета в меню-бутерброде теперь кликабельны. Нажав на счет, вы перейдете к просмотру его деталей.
    • В мобильной версии отображение текущего счета добавлено в разделе "Settings". Нажав на счет, вы перейдете к просмотру его деталей.


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

  3. Исправлено отображение типа счета в окне управления счетами.
  4. Исправлено отображение эквити и свободной маржи после обновления страницы с веб-терминалом в мобильных браузерах.
  5. Исправлено отображение нижней панели в мобильном браузере Firefox.

Terminal

  1. Terminal: Исправлена ошибка в расчете графиков баланса и эквити в торговом отчете.

MQL5

  1. Изменилось поведение typename(expr). Теперь функция отдает полный тип с модификаторами и размерностями (для массивов):
    class A
      {
      };
    
    void OnStart(void)
      {
       const A *const arr[][2][3]={};
       Print(typename(arr));
      }
    
    Результат:
    "class A const * const [][2][3]"

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