Выпущена обновленная версия платформы MetaTrader 5:
- Terminal: Теперь вы можете выносить графики финансовых инструментов за пределы окна торгового терминала.
Это удобно при работе с несколькими мониторами. Например, на одном можно расположить основное окно платформы и следить за состоянием счета, а на другом — графики для оценки ситуации на рынке. Чтобы отделить график от терминала, отключите опцию «Закреплен» в его контекстном меню. После этого расположите график на нужном мониторе.
Чтобы вам не приходилось переключаться между мониторами для нанесения аналитических объектов или индикаторов, у открепленных графиков предусмотрена отдельная панель инструментов. Чтобы изменить набор команд или скрыть панель инструментов, воспользуйтесь ее контекстным меню. - Terminal: Полностью обновлены встроенные чаты. Теперь они поддерживают групповые диалоги и каналы. Вы можете вести закрытые обсуждения с группой людей в едином пространстве, не переключаясь между разными диалогами, создавать тематические каналы по интересам и языкам. Общаться с коллегами и друзьями на MQL5.community можно не заходя на сайт.
Каждый групповой чат и канал может быть публичным или приватным. Автор сам решает, можно ли к ним присоединяться свободно или только по приглашению. Также в каналы и чаты можно назначать модераторов для дополнительного контроля общения. - Terminal: Добавлена поддержка объемов повышенной точности для торговли криптовалютами. Теперь минимально возможный объем торговых операций составляет 0.00000001 лота. В стакан цен, ленту сделок и другие элементы интерфейса добавлена возможность отображения объемов с точностью до 8 знаков после запятой.
Минимальный объем и шаг его изменения зависят от настроек финансового инструмента на стороне брокера. - Terminal: В окно «Инструменты» добавлена вкладка статей, опубликованных на MQL5.community. Более 600 подробных материалов о разработке торговых стратегий на MQL5 теперь доступны прямо в терминале. Новые статьи выходят каждую неделю.
- Terminal: Добавлена поддержка расширенной авторизациис использованием сертификатов при работе под Wine.
- Terminal: Исправлено отображение стакана цен при ограничении его глубины одним уровнем.
- Terminal: На панель инструментов «Стандартная» добавлена команда «Сохранить как рисунок». Делать снимки графиков и делиться ими в сообществе стало еще легче.
- Terminal: Исправлено применение сдвига времени при импорте баров и тиков. Ранее в некоторых случаях сдвиг не применялся.
- Terminal: Исправлено подвисание терминала при большом количестве новостей экономического календаря.
- MQL5: Добавлена нативная поддержка .NET библиотек с «умным» импортом функций. Теперь библиотеки .NET можно использовать без написания специальных оберток — MetaEditor берет это на себя.
Для работы с функциями .NET библиотеки достаточно импортировать саму DLL без указания конкретных функций. MetaEditor автоматически импортирует все функции, с которыми возможна работа. - MQL5: В стандартную библиотеку добавлена поддержка работы с функциями WinAPI. Теперь для использования функций операционной системы в MQL5-программе нет необходимости вручную импортировать библиотеки и описывать сигнатуры функций. Достаточно подключить заголовочный файл из каталога MQL5\Include\WinAPI.
Функции WinAPI сгруппированы в отдельных файлах по назначению:- libloaderapi.mqh — работа с ресурсами
- memoryapi.mqh — работа с памятью
- processenv.mqh — работа с окружением
- processthreadsapi.mqh — работа с процессами
- securitybaseapi.mqh — работа с системой безопасности ОС
- sysinfoapi.mqh — получение системной информации
- winbase.mqh — общие функции
- windef.mqh — константы, структуры и перечисления
- wingdi.mqh — работа с графическими объектами
- winnt.mqh — работа с исключениями
- winreg.mqh — работа с реестром
- winuser.mqh — управление окнами и интерфейсом
- errhandlingapi.mqh — обработка ошибок
- fileapi.mqh — работа с файлами
- handleapi.mqh — работа с хэндлами
- winapi.mqh — подключение всех функций (заголовочных файлов WinAPI)
- MQL5: Добавлена поддержка спецификаторов inline, __inline, __forceinline при синтаксическом анализе кода. Наличие этих спецификаторов в коде не будет вызывать ошибки, но и не будет влиять на компиляцию. На данный момент это позволит легче переносить С++ код в MQL5.
- MQL5: Проведена существенная оптимизация исполнения MQL5-программ. В некоторых случаях прирост производительности может достигать 10%. Чтобы получить прирост скорости, перекомпилируйте ваши программы в новой версии MetaEditor.
К сожалению, дополнительная оптимизация привела к потере совместимости новых программ с предыдущими версиями терминала. Все программы, скомпилированные в MetaEditor версии 1912 и выше, не будут запускаться в терминалах версии ниже 1912. При этом программы, скомпилированные ранее в предыдущих версиях MetaEditor, будут в работать в новых терминалах. - MQL5: Проведена большая работа по оптимизации множества функций MQL5.
- MQL5: Добавлены новые свойства для прикрепления/открепления графиков от основного окна терминала и управления их положением.
В перечисление ENUM_CHART_PROPERTY_INTEGERдобавлены:- CHART_IS_DOCKED — окно графика закреплено. Если установить значение false, то график можно перетащить за пределы терминала.
- CHART_FLOAT_LEFT — левая координата открепленного графика относительно виртуального экрана.
- CHART_FLOAT_TOP — верхняя координата открепленного графика относительно виртуального экрана.
- CHART_FLOAT_RIGHT — правая координата открепленного графика относительно виртуального экрана.
- CHART_FLOAT_BOTTOM — нижняя координата открепленного графика относительно виртуального экрана.
В перечисление ENUM_TERMINAL_INFO_INTEGERдобавлены:- TERMINAL_SCREEN_LEFT — левая координата виртуального экрана. Виртуальным экраном является прямоугольник, охватывающий все мониторы. Если в системе имеются два монитора и их порядок задан справа налево, то левая координата виртуального экрана может оказаться на границе двух мониторов.
- TERMINAL_SCREEN_TOP — верхняя координата виртуального экрана.
- TERMINAL_SCREEN_WIDTH — ширина терминала.
- TERMINAL_SCREEN_HEIGHT — высота терминала.
- TERMINAL_LEFT — левая координата терминала относительно виртуального экрана.
- TERMINAL_TOP — верхняя координата терминала относительно виртуального экрана.
- TERMINAL_RIGHT — правая координата терминала относительно виртуального экрана.
- TERMINAL_BOTTOM — нижняя координата терминала относительно виртуального экрана.
- MQL5: Добавлено поле volume_real в структуры MqlTick и MqlBookInfo. Оно предназначено для работы с объемом повышенной точности. Значение volume_real имеет больший приоритет по сравнению с volume. Сервер будет использовать именно это значение, если оно указано.
MQL5: В перечисление ENUM_SYMBOL_INFO_DOUBLEдобавлены новые свойства:- SYMBOL_VOLUME_REAL — объем последней совершенной сделки;
- SYMBOL_VOLUMEHIGH_REAL — максимальное значение объема совершенной сделки за текущие сутки;
- SYMBOL_VOLUMELOW_REAL — минимальное значение объема совершенной сделки за текущие сутки.
Для получения этих свойств используйте функцию SymbolInfoDouble. - MQL5: В перечисление ENUM_MQL_INFO_INTEGERдобавлено свойство MQL_FORWARD — признак того, что программа находится в режиме форвард-тестирования.
- MQL5: Для структур добавлено свойство pack( integer_value ). Оно позволяет задать выравнивание расположения полей внутри структуры, это бывает необходимо при работе с DLL. Для integer_value возможны значения 1, 2, 4, 8 и 16.
Если свойство не определено, по умолчанию используется вырванивание в 1 байт — pack(1). - MQL5: Ослаблены требования к приведению перечислений. При неявном приведении компилятор автоматически подставит значение правильного перечисления и выведет предупреждение.
- MQL5: Исправлены ошибки компиляции шаблонных функций. Теперь при использовании перегруженных шаблонных функций инстанцируется только нужная перегрузка, а не все имеющиеся.
- MQL5: Оптимизированы некоторые случаи доступа к тиковой истории через функции CopyTicks*.
- MQL5: Добавлена новая функция TesterStop, которая позволяет досрочно завершить тестирование/проход оптимизации. При ее вызове вся накопленная торговая статистика и результат OnTesterпередаются в клиентский терминал как при штатном заврешении тестирования/оптимизации.
- MQL5: Добавлено новое свойство для пользовательских индикаторов #property tester_everytick_calculate. Оно используется в тестере стратегий и позволяет принудительно влючить расчет индикаторов на каждом тике.
- Tester: Теперь при невизуальном тестировании/оптимизации все используемые индикаторы (стандартные и пользовательские) рассчитываются только по запросу данных. Исключение составляют индикаторы, содержащие вызовы функции EventChartCustomи использующие обработчик OnTimer. Ранее в тестере стратегий при приходе любого тика (даже от чужого инструмента) все индикаторы рассчитывались безусловно. Нововведение позволило существенно ускорить тестирование и оптимизацию.
Чтобы принудительно включить расчет индикаторов на каждом тике, добавьте для программы свойство #property tester_everytick_calculate.
Индикаторы, скомпилированные предыдущими версиями компилятора, будут рассчитываться как раньше — на каждом тике. - Tester: Исправлен учет точности валюты депозита при тестировании/оптимизации и формировании соответствующих отчетов.
- Tester: Оптимизирована и ускорена работа тестера стратегий.
- Tester: Исправлен ряд ошибок тестирования и оптимизации.
- MetaEditor: Исправлен поиск слова целиком. Теперь при поиске знак подчеркивания учитывается как обычный символ, а не разделитель слов.
- Обновлена документация.
Обновление доступно через систему Live Update и на сайте https://www.metatrader5.com