Новая версия платформы MetaTrader 5 build 2340: Управление настройками счета в тестере и расширение интеграции с Python

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
MetaQuotes
Модератор
216360
MetaQuotes  

В пятницу 21 февраля 2020 года будет выпущена обновленная версия платформы MetaTrader 5. Обновление содержит следующие изменения:

  1. MetaEditor: Добавлена возможность удобной работы с SQLite базами данных.

    В предыдущем обновлении платформы мы добавили поддержку работы с базами данных SQLite прямо из MQL5. Теперь основные функции стали доступны и через пользовательский интерфейс MetaEditor:

    • Создание и подключение к базам данных
    • Просмотр таблиц и быстрый запрос данных
    • Составление и выполнение SQL-запросов, откат изменений

    Как это работает
    Для быстрого создания баз данных воспользуйтесь "Мастером MQL5". Здесь вы можете сразу создать первую таблицу и определить список ее полей.




    Создав базу, вы перейдете в новый раздел "Навигатора". Из него происходит вся работа с данными.

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

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



    Более подробно о работе с базами данных в MetaTrader 5 читайте в статье "SQLite: нативная работа с базами данных на SQL в MQL5".

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

    • Теперь их можно удобно создавать через "Мастер MQL5", сразу включая в код зависимости от необходимых библиотек.
    • В навигаторе для них добавлены специальные иконки, в редакторе — подсветка синтаксиса.
    • При запуске скрипта через MetaEditor сообщения из консоли Python (stdout, stderr) выводятся в раздел "Ошибки".




    Для запуска скрипта в редакторе нажмите "Компилировать":





    Для работы с Python не забудьте указать путь к нему в разделе "Настройки / Компиляторы" в MetaEditor. А для работы с библиотекой MetaTrader 5 установите ее командой:
    pip install MetaTrader5
    Подробнее об интеграции с Python читайте в документации.

  3. MQL5: Полностью переработана интеграция с Python. Добавлено множество новых функций и изменено именование команд.

    Новое именование команд
    Имеющиеся команды были переименованы:
    MT5Initialize       -> initialize
    MT5Shutdown         -> shutdown
    MT5TerminalInfo     -> terminal_info
    MT5Version          -> version
    MT5CopyRatesFrom    -> copy_rates_from
    MT5CopyRatesFromPos -> copy_rates_from_pos
    MT5CopyRatesRange   -> copy_rates_range
    MT5CopyTicksFrom    -> copy_ticks_from
    MT5CopyTicksRange   -> copy_tick_range

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

    • account_info() — получение информации о текущем счете. Аналог AccountInfoInteger , AcountInfoDouble и AccountInfoString.
    • positions_total() — получение количества открытых позиций. Аналог PositionsTotal.
    • positions_get(symbol, ticket) — получение открытых позиций по символу или тикету.
    • orders_total() — получение количества ордеров. Аналог OrdersTotal.
    • orders_get(symbol, ticket) — получение открытых ордеров по символу или тикету.
    • history_orders_total(from, to) — получение количества ордеров в истории в заданном промежутке времени.
    • history_orders_get(from, to, position, ticket) — получение ордеров из истории в заданном промежутке по тикету или с фильтрацией по позиции.
    • history_deals_total() — получение количества сделок в истории. Аналог HistoryDealsTotal.
    • history_deals_get(from, to, position, ticket) — получение сделок из истории в заданном промежутке по тикету или с фильтрацией по позиции.
    • symbol_info(symbol) — получение информации о финансовом инструменте. Аналог SymbolInfoInteger, SymbolInfoDouble, SymbolInfoString.
    • symbol_info_tick(symbol) — получение последнего тика по символу. Аналог SymbolInfoTick.
    • symbol_select(symbol, enable) — включение/выключение символа в "Обзоре рынка". Аналог SymbolSelect.
    • order_check(request) — проверка маржи для ордера. Аналог OrderCheck.
    • order_send(request) — отправка ордера на сервер. Аналог OrderSend.
    • order_calc_margin(action, symbol, volume, price) — расчет маржи для ордера. Аналог OrderCalcMargin.
    • order_calc_profit(action, symbol, volume, price_open, price_close) — расчет прибыли. Аналог OrderCalcProfit.

    Запуск скриптов Python на графиках
    Теперь скрипты на Python можно запускать прямо на графиках в платформе, аналогично обычным MQL5-программам. В "Навигаторе" они будут отображаться специальными иконками.



    Сообщения скрипта будут выводиться в раздел "Инструменты / Эксперты". Если в скрипте используется библиотека MetaTrader 5, то он сможет получать информацию об инструменте, счете и торговать.

    Python-скрипты можно запускать на одном и том же графике параллельно с другими MQL5-скриптами и советниками. Для остановки скрипта, если его исполнение зациклено, просто удалите его с графика.

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




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

  4. MQL5: Значительно ускорен повторный запуск MQL5-программ и повторное создание пользовательских индикаторов из MQL5-программ. В некоторых случаях скорость повысилась в сотни раз.
  5. MQL5: Добавлены функции для работы с базами данных:

    DatabaseImport
    Импортирует в таблицу данные из файла.
    long  DatabaseImport(
       int           database,          // хендл базы данных, полученный в DatabaseOpen
       const string  table,             // имя таблицы для вставки данных
       const string  filename,          // имя файла для импорта данных
       uint          flags,             // комбинация флагов
       const string  separator,         // разделитель данных 
       ulong         skip_rows,         // сколько первых строк пропустить 
       const string  skip_comments      // строка символов, которые определяют комментарии
       );

    DatabaseExport
    Экспортирует таблицу или результат выполнения SQL-запроса в CSV-файл. Файл создается в кодировке UTF-8.
    long  DatabaseExport( 
       int           database,           // хендл базы данных, полученный в DatabaseOpen 
       const string  table_or_sql,       // имя таблицы или SQL-запрос 
       const string  filename,           // имя CSV-файла для экспорта данных 
       uint          flags,              // комбинация флагов 
       const string  separator           // разделитель данных в CSV-файле 
       );

    DatabasePrint
    Печатает таблицу или результат выполнения SQL-запроса в журнал экспертов.
    long  DatabasePrint(
       int           database,          // хендл базы данных, полученный в DatabaseOpen
       const string  table_or_sql,      // таблица или SQL-запрос
       uint          flags              // комбинация флагов
       );

  6. MQL5: Добавлена функция FileSelectDialog, которая вызывает системный диалог создания/открытия файла или папки.
    int  FileSelectDialog(
       string   caption,              // заголовок окна
       string   initial_dir,          // начальная папка
       string   filter,               // фильтр расширений
       uint     flags,                // комбинация флагов
       string&  filenames[],          // массив с именами файлов
       string   default_filename      // имя файла по умолчанию
       );
    Новая функция позволит реализовать удобное взаимодействие пользователя с MQL5-программой.

  7. MQL5: В перечисление ENUM_DEAL_PROPERTY_DOUBLE добавлено значение DEAL_FEE — оплата за проведение сделки. Фактически, это отдельный вид комиссии, которая может взиматься брокером.

  8. Tester: Добавлена возможность задавать собственные настройки торгового счета при тестировании стратегий — торговые ограничения, настройки маржи и комиссии. Таким образом, вы получаете еще больше возможностей для моделирования различных торговых условий у брокеров.




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


    Маржа
    Здесь вы можете полностью контролировать, как будет резервироваться маржа и какая система учета позиций будет использована при тестировании:

    • Управление рисками — модель управления рисками: внебиржевые и биржевые, с неттингом и хеджингом. Подробная информация о них доступна в справке.
    • Уровень "Margin call" — уровень средств на счете, при достижении которого он переходит в состояние Margin call.
    • Уровень "Stop out" — уровень средств, при достижении которого на счете принудительно снимаются ордера и закрываются торговые позиции. Оба уровня можно указывать в деньгах и в процентах. В первом случае уровни определяются как значение показателя "Средства" на счету. При выборе опции "В процентах" уровни определяются как значение показателя "Уровень маржи" на счету (Средства/Маржа*100).
    • Нереализованная — в данном поле указывается, каким образом будет учитываться текущая незафиксированная прибыль/убыток в свободной марже:
      • Не использовать нереализованную прибыль/убыток — не учитывать открытые позиции при расчете.
      • Использовать нереализованную прибыль/убыток — использовать при расчете убыток и прибыль по открытым позициям.
      • Использовать нереализованную прибыль — использовать только прибыль.
      • Использовать нереализованный убыток — использовать только убыток.
    • Дневная фиксированная — в данном поле указывается, каким образом будет учитываться прибыль/убыток, зафиксированный трейдером в течение торгового дня, в свободной марже:
      • Использовать дневную фиксированную прибыль/убыток — учитывать прибыль и убыток, зафиксированные в течение торгового дня, в свободной марже.
      • Использовать дневной фиксированный убыток — учитывать только убыток, зафиксированный в течение торгового дня, в свободной марже. В течение дня накопленная прибыль фиксируется в отдельном поле счета ("Заблокировано"). По окончании торгового дня накопленная прибыль освобождается (обнуляется) и отражается на балансе счета (учитывается в свободной марже).
    • Освобождать накопленную прибыль в конце дня — данная опция доступна только при включении опции "Использовать дневной фиксированный убыток". Если она включена, то в конце торгового дня прибыль, накопленная в течение дня, будет освобождаться и записываться на баланс (а соответственно учитываться в свободной марже). В ином случае — не будет.


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

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



  9. Tester: Оптимизирована и значительно ускорена работа в режиме "Сканирование рынка", когда производится несколько проходов тестирования по всем символам из "Обзора рынка".
  10. Tester: При расчете прибыли в пипсах теперь учитывается размер сделки или позиции. Ранее расчет велся без учета объема — как для одного лота.
  11. Tester: Улучшено управление графиком результатов оптимизации. При увеличении масштаба обычного графика оптимизации появилась возможность его прокручивать. Двойной клик на точке графика теперь выделяет соответствующий результат в таблице проходов.
  12. MetaEditor: Добавлен показ файлов баз данных SQLite (*.db;*.sdb;*.sqlite;*.db3;*.s3db;*.sqlite3) в "Навигаторе".
  13. MetaEditor: Исправлены ошибки при сохранении свойств проекта.
  14. Обновлена документация.

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

fxsaber
16759
fxsaber  

Если в такой ситуации (только три exe-файла и MQL5.zip) запустить terminal64.exe, то zip-файл будет удален.

Несколько раз так потерял подготовленные данные для воспроизведения трудно-уловимого бага.

Строка для поиска: Uluchshenie 006.
SeriousRacoon
1080
SeriousRacoon  

DirectX есть, базы данных есть, теперь давайте воткнём в пятёрку окошко с порн-хабом.

Между тем, есть баг, который тянется ооооч давно - это баг именно пятёрки. Если какое-то значение гистограммы в индикаторе очень мало, оно просто не отображается - на гистограмме пустая дырка, причём это зависит от высоты окна индикатора (дырка моргает при изменении высоты). Можно проверить на штатном osma. Что интересно, в 4 этого бага нет, любое самое малое значение отображается высотой в 1 пиксель.

fxsaber
16759
fxsaber  

MetaQuotes:

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

Хотелось бы иметь режим "без ограничений". Чтобы не было никаких проверок - ради ускорения. При исследованиях очень востребовано.

Tester: При расчете прибыли в пипсах теперь учитывается размер сделки или позиции. Ранее расчет велся без учета объема — как для одного лота.

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

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

Удобно!

Строка для поиска: Uluchshenie 007.

Vladimir Perervenko
4892
Vladimir Perervenko  

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

Очень жаль, что отказано во внедрении R.

Удачи в дальнейшей работе.

fxsaber
16759
fxsaber  

Будут ли настройки исполнения отложенных ордеров и TP-уровней? Имеется в виду вопрос скольжений. И проверка исполнения лимитного ордера на том же тике, на котором он установлен.

Сейчас HFT очень трудно тестить.

Igor Makanu
9539
Igor Makanu  

нововведения хорошие, но нужно как то в справке в одном разделе - тестер? указать, что не будет работать в тестере стратегий

очень много новых возможностей, но найти инфу, что не работает в тестере - сейчас это уже труд

Vladimir Pastushak
90763
Vladimir Pastushak  
MetaQuotes:

В пятницу 21 февраля 2020 года будет выпущена обновленная версия платформы MetaTrader 5. Обновление содержит следующие изменения:

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

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

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

Лучше бы партнерку вернули в маркет, обещали несколько лет назад....

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

Artyom Trishkin
Модератор
52897
Artyom Trishkin  

Ну перевести-то можно было и по-русски:


Внизу кнопки "Импорт" и почему-то "Экспортировать", которое не влезает в кнопку. Тогда уж "Экспорт" - влезет, да и созвучно импорту...

Ну или "Импортировать" и "Экспортировать" и ширину кнопок увеличить.

Надписи в выпадающем меню не помещаются в размер:


Чтобы всё это влезло, нужно растянуть окно шире одного экрана:


по причине, что ширина столбцов не настраивается вручную, а растягивается автоматически пропорционально ширине окна.

Valentin Dobroletov
679
Valentin Dobroletov  

А на биржевых данных работает комиссия? 

Ставлю такие настройки, не работает. Кто может подсказать, что не так делаю?

вкладка "Общие"


вкладка "комиссии" без галки


вкладка "комиссии" с галкой


отчет


fxsaber
16759
fxsaber  
Valentin Dobroletov:

Ставлю такие настройки, не работает. Кто может подсказать, что не так делаю?

Нулевые поля не заполнены. Зайдите на любой демо-счет с комиссией и посмотрите, чему соответствуют эти поля.

Конечно, их перевод далек от быстрого понимания.

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий