MetaTrader 5 build 2815: Доступ к стакану цен из Python, улучшения в отладчике и профилировщике
Диспетчер задач — это система мониторинга ресурсов, потребляемых платформой. В нем вы можете видеть, сколько памяти потребляют графики, сколько ресурсов процессора используется советниками и т.д. Если что-то замедляет скорость работы вашей платформы, вы легко сможете обнаружить и устранить проблему
26 февраля 2021
Terminal
Добавлена возможность получения данных стакана цен через Python API.
Три новые функции позволят легко и быстро получить данные для
статистических вычислений и машинного обучения при помощи огромного
количества готовых библиотек Python.
market_book_add — производит подписку терминала MetaTrader 5 на получение событий об изменениях в стакане по указанному символу.
market_book_get — возвращает кортеж из BookInfo, содержащий записи стакана цен указанного символа.
market_book_release — отменяет подписку терминала MetaTrader 5 на получение событий об изменениях в стакане по указанному символу.
Максимальная длина Push-сообщений увеличена с 256 до 1024 символов. Теперь вы можете отправлять гораздо больше информации на мобильные устройства из своих MQL5-программ.
Добавлена предварительная версия "Диспетчера задач", вызываемого по клавише F2.
Диспетчер задач — это система мониторинга ресурсов, потребляемых
платформой. В нем вы можете видеть, сколько памяти потребляют графики,
сколько ресурсов процессора используется советниками и т.д. Если что-то
замедляет скорость работы вашей платформы, вы легко сможете обнаружить и
устранить проблему.
Доработан сервис "Подписки". Для торговых инструментов, чьи данные передаются с задержкой, добавлена специальная индикация:
Символы в "Обзоре рынка" помечаются иконкой часов, во всплывающей подсказке отображается значение задержки
На графиках выводится уведомление о задержке данных
Исправлено отображение списка подписок при отсутствии подключения к торговому счету.
Исправлена работа ссылок в письмах и новостях. Теперь они открываются в
браузере по умолчанию. Ранее для этого использовался только Internet
Explorer.
Исправлены подключения из функции WebRequest к хостам с IPv6-адресами и защитой Cloudflare.
Улучшена работа платформы под Wine и MacOS/Crossover, включая версии под macOS Big Sur с процессором M1.
MQL5
Исправлена ошибка в функции ArrayPrint. Ранее в некоторых случаях функция могла не выводить массив.
Оптимизированы файловые операции, выполняемые при помощи функций File*. Теперь чтение и запись файлов осуществляется значительно быстрее.
Снято ограничение, по которому требовалось указывать размер для второй,
третьей и четвертой размерностей динамического массива, когда он
используется в качестве параметра функции. Это повысит возможности
повторного использования и гибкость кода.
void func(int &arr[ ][ ][ ][ ])
{
}
Исправлена ошибка в работе функции ArrayBsearch. При двоичном поиске значения в отсортированном массиве функция могла некорректно возвращать индекс найденного элемента.
MetaEditor
Продолжаются работы по глобальному обновлению отладчика.
При выводе массивов в окно наблюдения учитывается их сортировка, заданная функцией ArraySetAsSeries.
Добавлена поддержка локальных статических переменных.
Исправлено отображение значения указанного элемента массива.
Исправлена обработка static-полей классов.
Множество других исправлений для более точной и надежной отладки.
Добавлена опция "Включить оптимизацию при профилировании".
Чтобы увеличить объем детализации отчета о профилировании, можно
отключать режим оптимизации кода. Без оптимизации скорость кода может
упасть кратно, но взамен можно увидеть более обширное покрытие кода. При
использовании учитывайте, что узкие места кода будут неточными. Если вам нужен более щадящий режим профилирования, отключите опцию "Использовать инлайнинг при профилировании".
Если
в проекте оптимизация отключена, то новая опция игнорируется — для
профилировки оптимизация всегда выключена (в том числе инлайнинг).
Если в проекте оптимизация включена, то при компиляции под профилировку новая опция будет учитываться.
Добавлено журналирование при отладке и профилировке. При запуске в
журнал выводятся параметры окружения, а при остановке — статистика по
собранным данным.
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)