MetaTrader 5 build 2815: Доступ к стакану цен из Python, улучшения в отладчике и профилировщике

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

26 февраля 2021

Terminal

  1. Добавлена возможность получения данных стакана цен через Python API.
    Три новые функции позволят легко и быстро получить данные для статистических вычислений и машинного обучения при помощи огромного количества готовых библиотек Python.
    • market_book_add — производит подписку терминала MetaTrader 5 на получение событий об изменениях в стакане по указанному символу.
    • market_book_get — возвращает кортеж из BookInfo, содержащий записи стакана цен указанного символа.
    • market_book_release — отменяет подписку терминала MetaTrader 5 на получение событий об изменениях в стакане по указанному символу.

  2. Максимальная длина Push-сообщений увеличена с 256 до 1024 символов. Теперь вы можете отправлять гораздо больше информации на мобильные устройства из своих MQL5-программ.
  3. Добавлена предварительная версия "Диспетчера задач", вызываемого по клавише F2.
    Диспетчер задач — это система мониторинга ресурсов, потребляемых платформой. В нем вы можете видеть, сколько памяти потребляют графики, сколько ресурсов процессора используется советниками и т.д. Если что-то замедляет скорость работы вашей платформы, вы легко сможете обнаружить и устранить проблему.




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




  5. Исправлено отображение списка подписок при отсутствии подключения к торговому счету.
  6. Исправлена работа ссылок в письмах и новостях. Теперь они открываются в браузере по умолчанию. Ранее для этого использовался только Internet Explorer.
  7. Исправлены подключения из функции WebRequest к хостам с IPv6-адресами и защитой Cloudflare.
  8. Улучшен функционал и отзывчивость VPS сервиса.
  9. Улучшена работа платформы под Wine и MacOS/Crossover, включая версии под macOS Big Sur с процессором M1.

MQL5

  1. Исправлена ошибка в функции ArrayPrint. Ранее в некоторых случаях функция могла не выводить массив.
  2. Оптимизированы файловые операции, выполняемые при помощи функций File*. Теперь чтение и запись файлов осуществляется значительно быстрее.
  3. Снято ограничение, по которому требовалось указывать размер для второй, третьей и четвертой размерностей динамического массива, когда он используется в качестве параметра функции. Это повысит возможности повторного использования и гибкость кода.
    void func(int &arr[ ][ ][ ][ ])
      {
      }
  4.  Исправлена ошибка в работе функции ArrayBsearch. При двоичном поиске значения в отсортированном массиве функция могла некорректно возвращать индекс найденного элемента.

MetaEditor

  1. Продолжаются работы по глобальному обновлению отладчика.
    • При выводе массивов в окно наблюдения учитывается их сортировка, заданная функцией ArraySetAsSeries.
    • Добавлена поддержка локальных статических переменных.
    • Исправлено отображение значения указанного элемента массива.
    • Исправлена обработка static-полей классов.
    • Множество других исправлений для более точной и надежной отладки.

  2. Добавлена опция "Включить оптимизацию при профилировании".
    Чтобы увеличить объем детализации отчета о профилировании, можно отключать режим оптимизации кода. Без оптимизации скорость кода может упасть кратно, но взамен можно увидеть более обширное покрытие кода. При использовании учитывайте, что узкие места кода будут неточными.
    Если вам нужен более щадящий режим профилирования, отключите опцию "Использовать инлайнинг при профилировании".



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

  3. Добавлено журналирование при отладке и профилировке. При запуске в журнал выводятся параметры окружения, а при остановке — статистика по собранным данным.
    MQL5 profiler    starting 'ExpertMACD.ex5' on history with parameters:
    MQL5 profiler       symbol: 'EURUSD'
    MQL5 profiler       period: 'H1'
    MQL5 profiler       date from: '2021.01.01'
    MQL5 profiler       date to: '2021.02.22'
    MQL5 profiler       ticks mode: 'every tick'
    MQL5 profiler       execution delay: 0 ms
    MQL5 profiler       deposit: 10000
    MQL5 profiler       currency: 'USD'
    MQL5 profiler       leverage: 1:100
    MQL5 profiler       profit in pips: NO
    MQL5 profiler    profile data received (4640 bytes)
    MQL5 profiler    758 total measurements, 0/0 errors, 470 kb of stack memory analyzed
    MQL5 profiler    7782 total function frames found (1929 mql5 code, 342 built-in, 1403 other, 4108 system)

Tester

  1. Исправлена установка неторговых часов в расширенных настройках тестирования.

Обновлена документация