MetaTrader 5 build 2450: Сервис "Подписки", улучшения в интерфейсе и удобные функции в MetaEditor

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

22 мая 2020

Terminal

  1. Представляем новый сервис — "Подписки". С ним вы сможете легко получить дополнительные услуги, которые помогут вам в трейдинге. Например, вы можете купить подписку на качественные рыночные данные от известных поставщиков, чтобы потом эти данные анализировать и разрабатывать на них свои стратегии. Или же заказать услуги персонального менеджера, который поможет вам освоить основы торговли и разобраться в тонкостях платформы MetaTrader 5.

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

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


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



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

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

    Скоро подписку на рыночные данные можно будет купить, подключившись к MetaQuotes-Demo
    Мы планируем настроить на своем демо-сервере подписки на рыночные данные с множества торговых площадок по всему миру. Всего в несколько кликов вы сможете получить котировки в реальном времени с Nasdaq, CME, NYSE, BOVESPA и многих других бирж, чтобы смотреть по ним графики, анализировать динамику цен с помощью встроенных объектов и индикаторов и разрабатывать свои стратегии. Оплачивать подписки можно будет через аккаунт MQL5.community — аналогично тому, как это происходит для Маркета, Сигналов и Хостинга.

  2. В настройки графиков добавлена опция "Показывать тикер". Она позволяет показать/скрыть строку с названием торгового инструмента, таймфреймом и пользовательским комментарием.


  3. В настройки терминала и в настройки графика добавлена опция "Показывать торговую историю". Функция отображения ваших входов и выходов из рынка на графиках была доступна и ранее, однако для управления ею использовался раздел "Инструменты / История". Теперь показ истории сделок настраивается более гибко и удобно. Вы можете определить настройку сразу для всех графиков или же задавать ее отдельно для каждого.


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


  4. В настройки графика добавлена новая цветовая схема "Цветное на белом".


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


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


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




  8. Теперь в левом верхнем углу графика помимо названия указывается и описание символа, если оно доступно.



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

    Для включения/отключения новых колонок используйте контекстное меню раздела.


    Колонки стоимости позиций и идентификаторов экспертов также добавлены в разделе торговой истории.

    Помимо этого в разделе открытых позиций и истории поле прибыли теперь подсвечивается в зависимости от результата операции.

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

  11. Максимальное число инструментов, которые одновременно можно включить в Обзоре рынка, увеличено до 5000.
  12. Исправлена сортировка списка чатов по дате последнего обновления.
  13. Оптимизирована и значительно ускорена работа с большим количеством торговых инструментов (50 000 и более).
  14. Исправлена ошибка, из-за который нельзя было закрыть позицию, чей текущий объем не соответствовал шагу изменения объема по символу.

MQL5

  1. Оптимизирована и значительно ускорена работа с тиковой историей.
  2. Добавлены новые функции для работы с базами данных:
    • DatabaseReset — сбрасывает запрос в начальное состояние, как после вызова DatabasePrepare. Функция предназначена для многократного исполнения запроса с разными значениями параметров. Например, при массовом добавлении данных в таблицу с помощью команды INSERT для каждой записи необходимо сформировать собственный набор значений каждого поля.
    • DatabaseBind — устанавливает значение параметра в запросе. Функцию следует использовать в случае, когда SQL запрос содержит параметризируемые значения "?" или "?N", где N означает номер параметра (начиная с единицы).
    • DatabaseBindArray — устанавливает массив в качестве значения параметра.
  3. Добавлен флаг FSD_FILE_MUST_EXIST для функции FileSelectDialog. Он указывает, что выбранные файлы должны существовать.
  4. В перечисление ENUM_SYMBOL_INFO_DOUBLE добавлены значения для описания опционов:
    • SYMBOL_PRICE_CHANGE — изменение текущей цены относительно конца предыдущего торгового дня, выраженное в процентах.
    • SYMBOL_PRICE_VOLATILITY — волатильность цены в процентах.
    • SYMBOL_PRICE_THEORETICAL — теоретическая цена опциона.
    • SYMBOL_PRICE_DELTA — дельта опциона/варранта. Показывает, на сколько единиц изменится цена опциона при изменении цены базового актива на 1 единицу.
    • SYMBOL_PRICE_THETA — тета опциона/варранта. Количество пунктов, которое будет терять цена опциона каждый день из-за временного распада, т.е. при приближении даты экспирации.
    • SYMBOL_PRICE_GAMMA — гамма опциона/варранта. Показывает скорость изменения дельты — насколько быстро или медленно меняется опционная премия.
    • SYMBOL_PRICE_VEGA — вега опциона/варранта. Показывает количество пунктов, на которое изменится цена опциона при изменении волатильности на 1%.
    • SYMBOL_PRICE_RHO — ро опциона/варранта. Отражает чувствительность теоретической цены опциона к изменению процентной ставки на 1%.
    • SYMBOL_PRICE_OMEGA — омега опциона/варранта. Эластичность опциона — относительное процентное изменение цены опциона на процентное изменение цены базового актива.
    • SYMBOL_PRICE_SENSITIVITY — чувствительность опциона/варранта.  Показывает, на сколько пунктов должна измениться цена базового актива опциона, чтобы цена опциона изменилась на один пункт.

  5. В функции DatabaseExport добавлен экспорт BLOB-полей в формате HEX.
  6. В перечисление ENUM_CHART_PROPERTY_INTEGER добавлено свойство CHART_SHOW_TICKER — отображение в левом верхнем углу тикера символа. Установка CHART_SHOW_TICKER в значение false одновременно также устанавливает CHART_SHOW_OHLC в значение false и отключает показ OHLC.   
  7. Улучшено качество кода, генерируемого компилятором. Это увеличило скорость его исполнения.
  8. Исправлен ряд ошибок при компиляции и исполнении шаблонных функций и классов. В частности:
    • Ошибка несоответствия приоритетов для вызовов перегруженных шаблонных функций
    • Ошибка при генерации шаблонного метода/класса
    • Ошибка при попытке доступа к internal class для шаблонного параметра шаблонной функции
    • Ошибка генерации кода шаблонного класса при использовании internal class
    • Ошибка при использовании шаблонного объекта B<int> перед B<void*>
    • Ошибка при создании сложных несколько раз обернутых объектов с внутренним типом "С"
    • Ошибка при передаче в качестве const ref template аргумента указателя на функцию
    • Ошибка при передаче internal struct в шаблонную функцию
    • Ошибка несоответствия приоритетов выполнения шаблонных функций
    • Некорректный подсчет скобок в циклах for и do-while
    • Некорректный подсчет фигурных скобок в описании структуры класса
    • Медленная работа при добавлении по одному элементу в массив с помощью ArrayResize
    • Ошибка при выборе подходящей перегруженной функции
  9. Исправлена ошибка, возникавшая в некоторых случаях в функции CustomTicksReplace.
  10. Исправлен выбор периода для отображения истории торговых ордеров. Теперь при задании диапазона используется дата исполнения ордеров, а не дата создания, как это было раньше.

Python

  1. В метод initialize добавлен параметр path —  путь к файлу metatrader.exe или metatrader64.exe. Если путь не указан, модуль попытается найти исполняемый файл самостоятельно.
  2. Добавлены новые методы:
    • symbols_get — получает все финансовые инструменты из терминала MetaTrader 5.
    • symbols_total — получает количество всех финансовых инструментов в терминале MetaTrader 5.

  3. Добавлена возможность фильтрации по группе символов для функций orders_get, positions_get, history_orders_get и history_deals_get. Используйте формы вызова с параметром "group".
  4. В возвращаемом значении order_send и order_check теперь передается полное описание изначального запроса  — в поле "request". Например:
    ...
    comment=Request executed
    request_id=55
    retcode_external=0
    request=TradeRequest(action=1, magic=234000, order=0, symbol='USDJPY', volume=0.1, price=108.018, stoplimit=0.0, ...
        traderequest: action=1
        traderequest: magic=234000
        traderequest: order=0
        traderequest: symbol=USDJPY
        traderequest: volume=0.1
        traderequest: price=108.018
        traderequest: stoplimit=0.0
    ...
  5. Теперь Python-скрипты при запуске на графике получают в качестве аргументов имя символа и период этого графика в минутах.
    import sys
    
    chart_symbol='unknown'
    chart_tf=1
    
    if len(sys.argv) == 3:
        chart_symbol, chart_tf = sys.argv[1:3];
    
    print("Hello world from", chart_symbol, chart_tf)
    
    >> Hello world from T.NYSE 15

MetaEditor

  1. Добавлена команда "Добавить существующую папку". Она позволяет массово добавить в проект все поддерживаемые файлы из выбранного каталога.


  2. Расширены возможности поиска и замены.

    Добавлена возможность расширенного поиска с частичной поддержкой регулярных выражений. Используйте \r, \n, \t для указания в поисковых запросах символов переноса строки и табуляции. Диалоги поиска и замены объединены в один с несколькими вкладками.


    Добавлена отдельная вкладка для поиска по сообществам программистов. Среди них теперь не только MQL5.community, но и GitHub, MSDN и Stack Overflow.


    Результаты поиска по внешним ресурсам также удобно выводятся в окно инструментов MetaEditor:

    Для GitHub сразу же доступна возможность скачать исходные файлы. Загрузка осуществляется в отдельный подкаталог папки "Projects", именуемый в соответствии с названием проекта на GitHub.

    Помимо этого в окно результатов поиска добавлена возможность их сортировки по дате.

  3. Добавлена возможность быстро изменять размер шрифта в окне редактирования кода. Для этого зажмите "Ctrl" и прокрутите колесо мыши.
  4. Добавлена возможность импорта таблиц из CSV файлов в таблицы базы данных. При импорте можно задать параметры:
    • Имя для таблицы в базе данных
    • Автоматическое или ручное определение кодировки файла
    • Тип разделителя данных
    • Пропуск определенного количества строк в начале
    • Префикс комментариев
    • Есть ли в файле названия колонок
    • Как будут определяться переносы строк
    • Добавить данные в новую таблицу или уже имеющуюся
    • Какие кавычки использовать для строк



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



  6. Отключена поддержка MQL4, так как теперь генерируется только 64-битный код.
  7. Исправлена работа сниппета "Class".
  8. Исправлена поддержка абсолютных путей в проектах.

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