MetaTrader 5 build 2085: Интеграция с Python и массовые улучшения в тестере стратегий

Добавлено API для запроса данных из терминала MetaTrader 5 через приложения, использующие язык Python

12 июня 2019

Terminal

  1. Добавлено API для запроса данных из терминала MetaTrader 5 через приложения, использующие язык Python.

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

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



    Подключение

    1. Скачайте последнюю версию Python со страницы https://www.python.org/downloads/windows
    2. При установке Python отметьте чек-бокс "Add Python X.X to PATH%", чтобы можно было из командной строки запускать скрипты на Python.
    3. Установите модуль MetaTrader5 из командной строки
      pip install MetaTrader5
    4. Добавьте пакеты matplotlib и pytz
      pip install matplotlib
      pip install pytz

    Функции

    • MT5Initialize — устанавливает соединение с терминалом MetaTrader 5
    • MT5Shutdown — закрывает ранее установленное подключение к терминалу MetaTrader 5
    • MT5TerminalInfo — получает состояние и параметры подключенного терминала MetaTrader 5
    • MT5Version — возвращает версию терминала MetaTrader 5
    • MT5WaitForTerminal — ждет пока терминал MetaTrader 5 подключится к торговому серверу
    • MT5CopyRatesFrom — получает бары из терминала MetaTrader 5, начиная с указанной даты
    • MT5CopyRatesFromPos — получает бары из терминала MetaTrader 5, начиная с указанного индекса
    • MT5CopyRatesRange — получает бары в указанном диапазоне дат из терминала MetaTrader 5
    • MT5CopyTicksFrom — получает тики из терминала MetaTrader 5, начиная с указанной даты
    • MT5CopyTicksRange — получает тики за указанный диапазон дат из терминала MetaTrader 5


  2. Оптимизированы разделы "Маркет" и "Сигналы". Теперь витрины продуктов и сигналов работают до семи раз быстрее, делая работу со встроенными торговыми сервисами более комфортной.




  3. Добавлена поддержка "Маркета", "Сигналов" и "Поиска" в Wine. Теперь пользователи Linux и Mac OS имеют доступ к самому большому магазину торговых приложений и сервису автоматического копирования сделок.




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




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

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




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

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

  6. Расширены возможности оплаты сервисов MQL5.community через систему PayPal. Теперь она позволяет совершать покупки одним кликом.

    Как это работает
    В процессе покупки после авторизации своим аккаунтом в PayPal вам будет предложено разрешить дальнейшие платежи нашей компании:





    В случае согласия все последующие покупки вы сможете совершать одним кликом, просто нажимая кнопку ранее сохраненного аккаунта:




    Если вы нажмете "Отменить и вернуться к MetaQuotes Software Corp.", вы продолжите совершать платежи как раньше, авторизуясь в PayPal вручную при каждой покупке.
    Сайт MQL5.com/платформа MetaTrader 5 не хранит ваши платежные реквизиты. Проверку данных в случае пополнения, покупки в Маркете или подписки на Сигнал проводит на своей стороне платежная система.
    Вы всегда можете отказаться от привязки аккаунта PayPal и покупать сервисы в обычном режиме.

  7. Массовые улучшения и оптимизация работы тестера стратегий.

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

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

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

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

    Статистика оптимизации в журнале
    Расширено журналирование процесса оптимизации — выводится более подробная статистика использования MQL5 Cloud Network, факт включения/отключения облачных агентов и т.д.

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

    MQL5 Cloud Network
    Оптимизирована работа облачных агентов тестирования. Теперь задания распределяются более эффективно.

  8. Встроенный календарь включает более 900 показателей по 18 крупнейшим экономикам мира: США, Евросоюзу, Японии, Великобритании и т.д. Все данные собираются в режиме реального времени из первоисточников, позволяя своевременно реагировать на мировую ситуацию и принимать взвешенные торговые решения.

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




    Выберите свою платформу и скачайте приложение Tradays:


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

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

    • Это позволяет избежать расхождения данных.
    • После импорта тиковых данных (при их достаточной полноте) можно не тратить время на импорт баров — терминал рассчитает их сам.

    Изменения касаются как импорта тиков через интерфейс терминала, так и обновления тиков через MQL5-программы при помощи функции CustomTicks*. Любые изменения тиковых данных приводят к пересчету соответствующих минутных баров пользовательского инструмента.

  10. Исправлено обновление информации в "Окне данных" при использовании перекрестия на открепленном графике.
  11. Исправлено сохранение тиковой истории. Ранее при наличии нескольких тиков в одной миллисекунде порядок сохранения тиков мог нарушаться.
  12. Исправлено построение графиков при слишком короткой (менее дня) ценовой истории на сервере.

MQL5

  1. Добавлена поддержка отладки MQL5-сервисов. Теперь вы можете проверять такие программы аналогично советникам и индикаторам.
  2. Добавлены новые типы расчета прибыли и маржи в перечисление ENUM_SYMBOL_CALC_MODE:

    • SYMBOL_CALC_MODE_EXCH_BONDS — расчет для биржевых облигаций.
    • SYMBOL_CALC_MODE_EXCH_STOCKS_MOEX — расчет для акций, торгуемых на Московской Бирже.
    • SYMBOL_CALC_MODE_EXCH_BONDS_MOEX — расчет для облигаций, торгуемых на Московской Бирже.

  3. Добавлена функция TesterDeposit, позволяющая эмулировать операции внесения средств на счет в процессе тестирования. Функция может быть полезна при проверке различных стратегий управления капиталом.
    bool  TesterDeposit(
       double money      // размер вносимой суммы
       );
  4. Теперь во время выполнения метода OnDeinit MQL5-программа не получает никаких событий от терминала. Ранее программы могли не успевать корректно завершить деинициализацию (например, удалить за собой все объекты) из-за получения других событий.
  5. Исправлены ошибки, возникавшие при изменении тиковой истории за текущий день у пользовательских торговых инструментов.
  6. Исправлена ошибка, приводившая к замедлению работы программы при использовании большого количества (десятки тысяч) графических объектов.
  7. Исправлено зависание терминала при частом обращении к торговой истории из MQL5-программ.
  8. Исправлена ошибка в работе функции iBarShift. При флаге "exact=false" и запросе за пределами данных возвращался номер самого старого бара, а не самого нового.

Tester

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

MetaEditor

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

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

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