Бета-версия платформы MetaTrader 5 build 1995: Экономический календарь, MQL5-программы в виде сервисов и API для языка R
Спасибо за проделанную работу, приятно, что некоторые мои пожелания были учтены!
Однако, очень настораживает идея увеличения числа пакетов на оптимизацию и тут же запрет остановки работы агентов! Иногда реально нужно срочно освободить ресурсы, особенно при длительной оптимизации на локальном компьютере, а потом возобновить работу. Логичней было бы завершить текущий проход, а оставшиеся задания перераздать другим агентам, хотя бы для своей сети.
А обратной связи от R в терминал не планируется?
- ERR_NETSOCKET_INVALIDHANDLE (5270) — в функцию передан неверный хэндл сокета
- ERR_NETSOCKET_TOO_MANY_OPENED (5271) — открыто слишком много сокетов (максимум 128)
- ERR_NETSOCKET_CANNOT_CONNECT (5272) — ошибка соединения с удаленным хостом
- ERR_NETSOCKET_IO_ERROR (5273) — ошибка отправки/получения данных из сокета
- ERR_NETSOCKET_HANDSHAKE_FAILED (5274) — ошибка установления защищенного соединения (TLS Handshake)
- ERR_NETSOCKET_NO_CERTIFICATE (5272) — отсутствуют данные о сертификате, которым защищено подключение
Опечатка в коде ошибки.
MetaQuotes Software Corp.:
Terminal: Добавлен новый тип MQL5-программ — Сервисы. Они позволяют создавать собственные источники ценовых данных для терминала — передавать цены от внешних систем в режиме реального времени так, как это делают торговые серверы брокеров.
Сервисы имеют одну точку входа OnStart, аналогично скриптам. В ней вы можете организовать бесконечный цикл получения и обработки данных при помощи сетевых функций.
Как избежать пропуска тиков?
MetaQuotes Software Corp.:
Terminal: История торгового счета может быть представлена в виде позиций — платформа собирает данные по сделкам, относящимся к позиции (открытие, наращивание, частичное и полное закрытие), и группирует эти данные в единую запись. Это позволяет легко посмотреть время открытия и закрытия позиции, ее объем, цену и суммарный результат. Теперь это представление доступно и в отчетах по истории, экспортируемых в файлы.
Просьба задержать выход билда на пять минут - добавить миллисекунды в отчет. Именно по миллисекундам можно анализировать, например, на каком тике в истории тиков произошло интересуемое событие.
25. MQL5: Исправлены ошибки в стандартной библиотеке.
Можно где-то список исправлений увидеть?
MetaQuotes Software Corp.:
MQL5: Добавлены новые функции для работы со строками
StringReserve — резервирует в памяти для строки буфер указанного размера.
StringSetLength — устанавливает для строки указанную длину в символах.
Возможно ли показать иходник внутренней организации строки, чтобы понять, с чем имеем дело?
Чем новые функции отличаются от StringBufferLen и StringInit?
Можно где-то список исправлений увидеть?
Любой Compare-сервис покажет разницу.
Любой Compare-сервис покажет разницу.
В хранилище добавить всю СБ пока не поздно?
В хранилище добавить всю СБ пока не поздно?
Просто скопировать в другую папку, а после обновления (возможно, они уже в 1985 имеются) сравнить.

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
15 февраля 2019 года будет выпущена обновленная версия платформы MetaTrader 5 в бета-режиме. Призываем всех трейдеров присоединиться к тестированию новой версии платформы, чтобы самостоятельно опробовать все ее возможности и помочь разработчикам в исправлении найденных ошибок.
Для обновления на новый 1995 билд платформы MetaTrader 5 достаточно нажать "Помощь \ Проверить обновления десктопа \ Последняя бета-версия":
После окончания данного этапа бета-тестирования будет выпущен финальный билд новой платформы MetaTrader 5.
Обновление содержит следующие изменения:
- Terminal: Полностью обновлен встроенный экономический календарь.

- Terminal: Добавлен новый тип MQL5-программ — Сервисы. Они позволяют
создавать собственные источники ценовых данных для терминала — передавать цены
от внешних систем в режиме реального времени так, как это делают
торговые серверы брокеров.

- Terminal: Добавлена система обучения.

- Terminal: История торгового счета
может быть представлена в виде позиций — платформа собирает данные по
сделкам, относящимся к позиции (открытие, наращивание, частичное и
полное закрытие), и группирует эти данные в единую запись. Это позволяет
легко посмотреть время открытия и закрытия позиции, ее объем, цену и
суммарный результат. Теперь это представление доступно и в отчетах по
истории, экспортируемых в файлы.

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

R CMD INSTALL --build MetaTraderR
На текущий момент для запроса данных доступны следующие команды:
- MT5Initialize
— инициализация и установка соединения с терминалом MetaTrader 5. При
выполнении команды при необходимости происходит запуск терминала.
- MT5Shutdown — деинициализация и разрыв соединения с терминалом MetaTrader 5.
- MT5Version — получение версии терминала MetaTrader 5.
- MT5TerminalInfo — получение состояния и параметров подключения терминала к серверу брокера (номер счета и адрес сервера).
- MT5WaitTerminal — 2-минутное ожидание соединения терминала MetaTrader 5 с сервером брокера.
- MT5CopyTicksFrom(symbol,
from, count, flags) — копирование тиков с указанной даты в указанном
количестве. Дата указывается в миллисекундах с 1970.01.01.
- MT5CopyTicksRange(symbol,
from, to, flags) — копирование тиков из указанного периода дат. Даты
указываются в миллисекундах с 1970.01.01.
- MT5CopyRatesFrom(symbol,
timeframe, from, count) — копирование минутных баров с указанной даты в
указанном количестве. Дата указывается в секундах с 1970.01.01.
- MT5CopyRatesFromPos(symbol, timeframe, start_pos, count) — копирование минутных баров с указанной позиции от последнего бара.
- MT5CopyRatesFromRange(symbol,
timeframe, date_from, date_to) — копирование баров из указанного
периода дат. Даты указываются в секундах с 1970.01.01.
- Terminal: Оптимизирован диалог закрытия торговой позиции встречной. Теперь его работа не замедляется при большом количестве открытых позиций.
- Terminal: Исправлены ошибки расчета синтетических инструментов, приводившие к образованию пропусков данных.
- Terminal: Теперь при удалении пользовательского инструмента удаляются файлы с его тиковой и баровой историей. Это позволяет избежать накапливания неиспользуемых данных на жестком диске.
- MQL5: Исправлена и значительно ускорена работа с тиковой и баровой историей.
- MQL5:
Исправлены и значительно ускорены функции изменения
тиковой и баровой истории у пользовательских торговых инструментов CustomTicks* и CustomRates*.
- MQL5: Добавлены новые функции преобразования данных.
- Добавлена функция MathSwap для смены порядка байт в значении ushort, uint и ulong.
- MQL5: Добавлены сетевые функции для создания TCP-соединений с удаленными хостами через системные сокеты:
- SocketCreate — создает сокет с указанными флагами и возвращает его хэндл
- SocketClose — закрывает сокет
- SocketConnect — выполняет подключение к серверу с контролем таймаута
- SocketIsConnected — проверяет, подключен ли сокет в текущий момент времени
- SocketIsReadable — получает количество байт, которое можно прочитать из сокета
- SocketIsWritable — проверяет, возможна ли запись данных в сокет в текущий момент времени
- SocketTimeouts — устанавливает таймауты получения и отправки данных для системного объекта сокета
- SocketRead — читает данные из сокета
- SocketSend — записывает данные в сокете
- SocketTlsHandshake — инициирует защищенное TLS (SSL)-соединение с указанным хостом по протоколу TLS Handshake
- SocketTlsCertificate — получает данные о сертификате, используемом для защиты сетевого соединения
- SocketTlsRead — читает данные из защищенного TLS-соединения
- SocketTlsReadAvailable — читает все доступные данные из защищенного TLS-соединения
- SocketTlsSend — отправляет данные через защищенное TLS-соединение
Адрес хоста, к которому производится подключение при помощи сетевых функций, должен быть явно добавлен в список разрешенных в настройках терминала.
- ERR_NETSOCKET_INVALIDHANDLE (5270) — в функцию передан неверный хэндл сокета
- ERR_NETSOCKET_TOO_MANY_OPENED (5271) — открыто слишком много сокетов (максимум 128)
- ERR_NETSOCKET_CANNOT_CONNECT (5272) — ошибка соединения с удаленным хостом
- ERR_NETSOCKET_IO_ERROR (5273) — ошибка отправки/получения данных из сокета
- ERR_NETSOCKET_HANDSHAKE_FAILED (5274) — ошибка установления защищенного соединения (TLS Handshake)
- ERR_NETSOCKET_NO_CERTIFICATE (5275) — отсутствуют данные о сертификате, которым защищено подключение
- MQL5: Добавлены
новые функции для работы со строками:
- MQL5: Добавлены новые функции для работы с массивами:
- MQL5: В функции CustomRatesUpdate, CustomRatesReplace, CustomTicksAdd и CustomTicksReplace
добавлен параметр "uint count" для указания количества элементов
передаваемого массива, которые будут использованы. По умолчанию для
параметра используется значение WHOLE_ARRAY. Оно означает, что будет
использован весь массив.
- MQL5: Добавлена функция CustomBookAdd
— передает состояние стакана цен по пользовательскому инструменту.
Функция позволяет транслировать стакан цен так, как если бы он приходил
от сервера брокера.
- MQL5:
Добавлена перегрузка функции CustomSymbolCreate,
позволяющая создать
пользовательский торговый инструмент на основе уже имеющегося. После
создания любое свойство символа можно поменять на нужное значение
соответствующими функциями.
- Обновлена функция StringToTime, преобразующая строку с датой/временем в значение типа datetime. Теперь она поддерживает следующие форматы дат:
- yyyy.mm.dd [hh:mi]
- yyyy.mm.dd [hh:mi:ss]
- yyyymmdd [hh:mi:ss]
- yyyymmdd [hhmiss]
- yyyy/mm/dd [hh:mi:ss]
- yyyy-mm-dd [hh:mi:ss]
- MQL5: В перечисление ENUM_TERMINAL_INFO_INTEGER добавлено свойство TERMINAL_VPS — признак того, что терминал запущен на виртуальном сервере MetaTrader Virtual Hosting
(MetaTrader VPS). Если программа запущена на хостинге, вы можете
отключать все ее визуальные функции, поскольку на виртуальном сервере
отсутствует графический пользовательский интерфейс.
- MQL5: В перечисление ENUM_SYMBOL_INFO_INTEGER добавлено новое свойство SYMBOL_EXIST — признак того, что символ с таким именем существует.
- MQL5: Исправлена типизация при использовании предварительного объявления шаблонной функции.
- MQL5: Добавлена переинициализация индикаторов при смене торгового счета.
- MQL5: Оптимизирована работа функции StringSplit.
- MQL5: Исправлены ошибки в стандартной библиотеке.
- Tester: Добавлена
функция TesterStop
— штатное досрочное завершение работы советника на агенте тестирования.
Теперь вы можете принудительно остановить тестирование при достижении
заданного количества убыточных сделок, заданного уровня просадки или по
любым другим критериям.
- Tester: Отключена возможность тестирования и оптимизации экспертов через MQL5 Cloud Network в режиме использования реальных тиков. Такой режим можно использовать только на локальных агентах и фермах в локальной сети.
- Tester:
Улучшена работа с индикаторами при визуальном тестировании. Теперь
ценовой график и индикаторные линии отрисовываются синхронно даже при максимальной скорости визуализации.
- Tester: Оптимизированы и значительно ускорены тестирование и оптимизация.
- Tester:
Исправлена отладка индикаторов на исторических данных. Теперь функции OnInit и OnDeinit индикаторов можно отлаживать корректно.
- Tester: Ускорен доступ к историческим данным при тестировании мультивалютных экспертов.
- Tester: Исправлены ошибки, приводящие к зависанию визуального тестера при отладке на исторических данных.
- Tester: Ускорен запуск проходов оптимизации при обработке агентом пакета заданий.
- Tester:
Изменена политика раздачи пакетов заданий агентам тестирования. Размер
пакета был увеличен, что привело к значительному снижению накладных
расходов на сетевые операции.
- Tester:
Изменено поведение опции использования локальных, сетевых и облачных
агентов. Теперь при отключении этих опций уже выданные задания
обрабатываются до конца, а новые перестают выдаваться. Ранее эти опции
работали аналогично команде "Отключить", которая останавливала работу
агентов сразу.

- MetaEditor:
Добавлена поддержка не-ANSI символов в отладчике. Теперь наблюдаемые
выражения отображаются корректно, даже если имя переменной указано
кириллицей.
- Добавлен перевод пользовательского интерфейса на Хорватский язык.
- Обновлена документация.
Обновление будет доступно через систему LiveUpdate.Экономический календарь — наша собственная разработка. В нем доступны более 600 показателей и индикаторов 13 крупнейших экономик мира: США, Евросоюза, Японии, Великобритании, Канады, Австралии, Китая и т.д. Все данные собираются в режиме реального времени из открытых источников.
Помимо обновления содержимого, в календаре стали доступны расширенные фильтры событий: по времени, приоритету, валютам и странам.
В ближайшее время появится доступ к данным календаря из MQL5-программ.
В отличие от советников, индикаторов и скриптов, сервисы не привязаны к конкретному графику. Они работают в фоновом режиме и начинают работу автоматически при запуске терминала (если они не были принудительно остановлены).
Для управления сервисами в Навигатор добавлен отдельный подраздел:
Создание сервисов
Для создания шаблона сервиса используйте соответствующий пункт в Мастере MQL5. Сервисы имеют одну точку входа OnStart, аналогично скриптам. В ней вы можете организовать бесконечный цикл получения и обработки данных при помощи сетевых функций.
Запуск сервисов
Для запуска нескольких копий одного советника или индикатора с разными параметрами достаточно наложить его на разные графики. При этом создаются отдельные экземпляры программы, которые работают независимо друг от друга. Сервисы не привязаны к графикам, поэтому для создания их экземпляров предусмотрен отдельный механизм.
Выберите в навигаторе сервис и нажмите "Добавить сервис" в его контекстном меню. Будет открыт стандартный диалог MQL5-программы, где вы можете разрешить/запретить торговлю и доступ к сигналам, а также задать параметры.

Для запуска и остановки экземпляра сервиса используйте его меню. Для управления всеми экземплярами, используйте меню самого сервиса.Теперь новички смогут легко научиться работать с платформой. Мы добавили более 100 интерактивных советов по ее основным функциям.
- Советы не будут отвлекать от работы с платформой — они аккуратно встроены на панель инструментов в виде прогресс-бара.
- Советы показываются только для действий, которые вы еще не выполняли в платформе.
- В
советы встроены интерактивные ссылки для перехода к определенным
элементам интерфейса платформы. Например, прямо из совета можно открыть
торговый диалог или меню с нужной командой.
По мере прохождения обучения и выполнения действий в платформе строка прогресса будет заполняться.Для работы мы подготовили специальный пакет MetaTraderR. В нем содержатся DLL для взаимодействия между R и терминалом MetaTrader 5, документация и вспомогательные r-файлы. Сейчас пакет находится в процессе регистрации в репозитории CRAN, и в ближайшее время станет доступен для скачивания и установки.
Для установки пакета используйте следующую команду:
В будущем список поддерживаемых команд будет расширен.
CharArrayToStruct — копирует массив типа uchar в POD-структуру.
StructToCharArray — копирует POD-структуру в массив типа uchar.
Для работы с сетевыми функциями добавлены новые коды ошибок:
StringReserve — резервирует в памяти для строки буфер указанного размера.
StringSetLength — устанавливает для строки указанную длину в символах.
ArrayRemove — удаляет из массива указанное число элементов, начиная с указанного индекса.
ArrayInsert — вставляет в массив-приемник из массива-источника указанное число элементов, начиная с указанного индекса.
ArrayReverse — разворачивает в массиве указанное число элементов, начиная с указанного индекса.
Имя символа, из которого будут скопированы свойства создаваемого пользовательского символа, указывается в параметре "symbol_origin".
Тестирование, завершенное при помощи этой функции, считается успешным. После ее вызова терминалу передается торговая история, полученная в результате тестирования, а также все торговые статистики.