Переработана система быстрой торговли:
При включенном режиме "One-Click Trading" диалог торговли закрывается сразу после успешной операции, в случае ошибки диалог отображает причину ошибки.
При включенном режиме "One-Click Trading" команда "Close Position" в контекстном меню позиции приводит к немедленному закрытию позиции без дополнительного показа торгового диалога. В списке открытых ордеров и позиций добавлена возможность снятия SL-TP одним кликом.
Для торговых уровней на чарте добавлено контекстное меню с возможностью управления уровнем непосредственно с чарта.
При включенном режиме "One-Click Trading" перетаскивание торговых уровней ордеров и позиций приводит к немедленной модификации соответствующего ордера или стопа без дополнительного показа торгового диалога.
При двойном клике на торговом уровне отображается диалог модификации ордера или позиции.
Переработано контекстное меню торговли на чарте, установка лимитных ордеров вынесена в основное меню, добавлена возможность установки алертов непосредственно с чарта.
В окне "Обзор рынка" убрана вкладка "Торговля". Теперь в ней нет необходимости, так как любые торговые операции можно выполнять непосредственно на чарте.
Стакан цен заменен на скальперский стакан цен - с ориентацией на минимальное время для совершения торговой операции. При включенном режиме "One-Click Trading" все торговые операции совершаются немедленно без дополнительного показа торгового диалога:
Исправлена ошибка при изменении вертикального масштаба на чарте у инструментов с заданным размером тика.
Добавлена вкладка с показом сайта технической поддержки брокерской компании.
Изменен алгоритм масштабирования в тиковом чарте торгового диалога - теперь масштаб подбирается таким образом, чтобы отображать на графике уровень торгового ордера и стопов.
Исправлено многократное обновление окна "Навигатор" при компиляции каталога в MetaEditor.
Исправлена ошибка, приводившая к изменению значения в поле ввода цены ордера при переключении между режимами модификации и выставления нового ордера в торговом диалоге.
Trading Signals
Добавлено предупреждение о нехватке средств при попытке подписки на платные сигналы.
MQL5 Market
Добавлена возможность загружать бесплатные приложения из MQL5 Market без наличия регистрации на MQL5.
Добавлены новые коды возврата при совершении торговых операций:
Внесены изменения в класс CTrade в стандартной библиотеке.
Стандартная библиотека. Добавлены классы диаграмм:
Примеры использования классов добавлены в каталог MQL5\Scripts\Examples\Canvas\Charts.
Исправления по крешлогам.
Обновлена документация.
Автоматическое обновление доступно через систему LiveUpdate.
Скачать торговый терминал MetaTrader 5 можно по ссылке: https://download.mql5.com/cdn/web/metaquotes.software.corp/mt5/mt5setup.exe?utm_source=www.metatrader5.com
Trading Signals
В диалог подписки на сигнал добавлено детальное предупреждение о различии настроек торговых инструментов у источника и подписчика сигнала. Тем самым уменьшается вероятность подписки на сигнал, несовместимый с торговым счётом подписчика.
Расширено перечисление ENUM_ORDER_STATE - состояния торговых ордеров. Добавлены значения ORDER_STATE_REQUEST_ADD, ORDER_STATE_REQUEST_MODIFY, ORDER_STATE_REQUEST_CANCEL.
Добавлены новые свойства позиции (перечисление ENUM_POSITION_PROPERTY_INTEGER):
В стандартную библиотеку добавлены свойства CPositionInfo::TimeMsc, CPositionInfo::TimeUpdate, CPositionInfo::TimeUpdateMsc.
Добавлены новые свойства ордера (перечисление ENUM_ORDER_PROPERTY_INTEGER):
В стандартную библиотеку добавлены свойства COrderInfo::TimeSetupMsc, COrderInfo::TimeDoneMsc, CHistoryOrderInfo::TimeSetupMsc, CHistoryOrderInfo::TimeDoneMsc.
Добавлено новое свойство сделки(перечисление ENUM_DEAL_PROPERTY_INTEGER):
В стандартную библиотеку добавлено свойство CDealInfo::TimeMsc.
На панель инструментов и в меню добавлены команды навигации Navigate Forward/Navigate Backward.
Добавлена автоматическая активация MQL5.Storage - при отсутствии логина и пароля для MQL5-аккаунта и пустой базе MQL5.Storage в контекстном меню навигатора показывается команда активации:
Исправления по крешлогам.
Обновлена документация.
Автоматическое обновление доступно через систему LiveUpdate.
Скачать торговый терминал MetaTrader 5 можно по ссылке: https://download.mql5.com/cdn/web/metaquotes.software.corp/mt5/mt5setup.exe?utm_source=www.metatrader5.com
Trading Signals
Исправления по крешлогам.
Обновлена документация.
Автоматическое обновление доступно через систему LiveUpdate.
Скачать торговый терминал MetaTrader 5 можно по ссылке: https://download.mql5.com/cdn/web/metaquotes.software.corp/mt5/mt5setup.exe?utm_source=www.metatrader5.com
Добавлена панель быстрой торговли с чарта:
Для показа/скрытия панели быстрой торговли на чарте используется значок в левом верхнем углу или команда контекстного меню.
Добавлено автоматическое отображение торговых транзакций на чартах:
Trading Signals
В витрину сигналов добавлена команда обновления списка доступных сигналов:
Исправления по крешлогам.
Обновлена документация.
Автоматическое обновление доступно через систему LiveUpdate.
Скачать торговый терминал MetaTrader 5 можно по ссылке: https://download.mql5.com/cdn/web/metaquotes.software.corp/mt5/mt5setup.exe?utm_source=www.metatrader5.com
Для торговых инструментов с фиксированным шагом цены (фьючерсы), шкала графика строится кратной шагу цены торгового инструмента
Trading Signals
При нажатии кнопки "Visualize" клиентский терминал автоматически загружает торговую историю сигнала, открывает соответствующие чарты и отображает сделки сигнала в виде графических объектов аналогично тому, как это делается для истории торгового счёта клиентского терминала.
Изменён алгоритм вычисления объёма копируемой сделки при разных маржинальных плечах у источника сигнала и подписчика:
Текущая схема:Объём сделки изменяется прямо пропорционально соотношению плеча источника сигнала и подписчика. Т.е. если источник сигнала с плечом 1:100 открывает сделку на 1 лот, то при 100% копировании и совпадающими по размеру и валюте депозитами подписчик с плечом 1:500 откроет сделку на 5 лотов, а подписчик с плечом 1:10 откроет сделку на 0.1 лота.
Новая схема:Если плечо подписчика больше плеча источника сигнала, то оно не влияет на объём копируемой сделки, в противном случае объём сделки изменяется прямо пропорционально соотношению плеча источника сигнала и подписчика.
Т.е. если источник сигнала с плечом 1:100 открывает сделку на 1 лот, то при 100% копировании и совпадающими по размеру и валюте депозитами подписчик с плечом 1:500 откроет сделку на 1 лот, а подписчик с плечом 1:10 откроет сделку на 0.1 лота.
MQL5 Market
Добавлены функции TextOut, TextSetFont, TextGetSize:
Функция TextOut выводит текст в пользовательский массив (буфер) и возвращает результат успешности этой операции. Данный массив предназначается для создания графического ресурса.
bool TextOut( const string text, // выводимый текст int x, // координатa X int y, // координатa Y uint anchor, // способ привязки uint &data[], // буфер для вывода uint width, // ширина буфера в точках uint height, // высота буфера в точках uint color, // цвет текста ENUM_COLOR_FORMAT color_format // формат цвета для вывода );
Функция TextSetFont устанавливает шрифт для вывода текста методами рисования и возвращает результат успешности этой операции.
bool TextSetFont(
const string name, // имя шрифта или путь к файлу шрифта на диске
uint size, // размер шрифта
uint flags, // комбинация флагов
int orientation=0 // наклон текста
);
Функция TextGetSize возвращает ширину и высоту строки при текущих настройках шрифта.
bool TextGetSize( const string text, // строка текста uint& width, // ширина буфера в точках uint& height // высота буфера в точках );
Исправления по крешлогам.
Обновлена документация.
Автоматическое обновление доступно через систему LiveUpdate.
Скачать торговый терминал MetaTrader 5 можно по ссылке: https://download.mql5.com/cdn/web/metaquotes.software.corp/mt5/mt5setup.exe?utm_source=www.metatrader5.com
Trading Signals
В витрине сигналов добавлена фильтрация по возрасту сигнала и типу счёта-источника сигнала. Добавлена цветовая подсветка сигналов по типу счёта-источника сигнала:
Также добавлена команда быстрого поиска описания сигнала, на который подписан аккаунт - "My Subscription".
Добавлена функция продления подписки. Расширена информация о текущей подписке.
MQL5 Market
int ArrayCompare(const void &src1[],const void &src2[],uint start1=0,uint start2=0,uint count=WHOLE_ARRAY);
Сравниваются массивы простых типов или пользовательских структур, не имеющих сложных объектов (строк, динамических массивов, классов или других структур, содержащих сложные объекты). Функция работает только с массивами одинаковых типов src1 и src2. При сравнении массивов разных типов, например scr1 - char и scr2 - uchar, произойдет ошибка компиляции 302 "type mismatch".
Изменена система оценки производительности OpenCL: при обнаружении изменений в конфигурации устройств(а) OpenCL (в том числе - при первом запуске) терминал проводит тест, определяющий производительность устройств(а), сохраняя информацию в реестре.
Для автоматического выбора наиболее производительного устройства следует вызывать функцию создания OpenCL-контекста, указав в качестве номера устройства CL_USE_ANY.
Результаты основной оптимизации и форвардной оптимизации разнесены по разным вкладкам окна тестера. Это позволит проще ориентироваться в результатах форвардной оптимизации.
Настройки форвард-тестирования теперь распространяются и на запуск одиночного прогона тестирования.
Полученные два набора результатов - от даты начала до форвард-даты и от форвард-даты до даты конца (вместо одного набора результатов от даты начала до даты конца) - точно повторяют соответствующие строки в результатах оптимизации с включённым форвардным периодом. В режиме визуализации данная возможность пока не работает.
Исправления по крешлогам.
Обновлена документация.
Автоматическое обновление доступно через систему LiveUpdate.
Скачать торговый терминал MetaTrader 5 можно по ссылке: https://download.mql5.com/cdn/web/metaquotes.software.corp/mt5/mt5setup.exe?utm_source=www.metatrader5.com
Trading Signals:
Изменён принцип показа списка сигналов. Теперь по умолчанию показываются сигналы, установленные на сервере брокера, которому соответствует терминал. При отсутствии сигналов показываются сигналы, установленные на демонстрационном сервере компании MetaQuotes. Для просмотра полного списка сигналов нужно выбрать опцию "Full Signal List" в контекстном меню сигналов.
Исправления по крешлогам.
Обновлена документация.
Автоматическое обновление доступно через систему LiveUpdate.
Скачать торговый терминал MetaTrader 5 можно по ссылке: https://download.mql5.com/cdn/web/metaquotes.software.corp/mt5/mt5setup.exe?utm_source=www.metatrader5.com
В описании сигнала добавлен показ открытых ордеров и позиций сигнала.
Добавлен диалог согласия с синхронизацией позиций счёта подписчика с позициями сигнала при положительной плавающей прибыли сигнала:
По умолчанию, после подписки на сигнал, синхронизация производится только в том случае, если плавающая прибыль у счёта-источника сигнала не положительна. Это сделано для того, чтобы гарантировать, что подписчик сигнала при синхронизации позиций войдёт в рынок по цене не хуже, чем у источника сигнала. Поэтому перед началом синхронизации трейдеру показывается соответствующий диалог в котором он может выбрать принудительную синхронизацию позиций с сигналом, несмотря на положительную плавающую прибыль.
Добавлен диалог автоматического закрытия позиций и ордеров счёта подписчика перед синхронизацией с позициями и ордерами сигнала:
Перед синхронизацией счёта подписчика необходимо предварительно закрыть ордера и позиции, открытые вручную или другими сигналами. При обнаружении открытых позиций, не принадлежащих сигналу, на который производится подписка, или обнаружении отложенных ордеров клиентский терминал предлагает автоматически снять все отложенные ордера и закрыть позиции по текущей цене. При этом трейдер может отказаться от автоматического закрытия и сделать необходимые действия самостоятельно.
template<typename T> // В < > указываются параметры шаблона через запятую, не более 8. T ArrayMax(const T &data[],const T defval) // В качестве параметра может выступать только тип { T result=defval; uint size =ArraySize(data); //--- for(uint i=0;i<size;i++) { if(result<data[i]) { result=data[i]; } } //--- return(result); }Следует помнить, что автоматическое приведение параметров при вызове шаблонной функции недопустимо. Поэтому следует явно указывать тип параметра. Например, при вызове функции ArrayMax для массива типа char и CHAR_MIN в качестве defval, следует явно указать тип второго параметра как char:
char a[]; Print(ArrayMax(a,CHAR_MIN)); // ошибка, невозможно применить шаблон, т.к. T может быть или char или int Print(ArrayMax(a,(char)CHAR_MIN)); // ошибки нет, параметр шаблона T может быть только charКоличество параметров шаблона ограничено, их не должно быть более 8. Подстановка шаблонов в код производится только по параметрам вызова, явная типизация шаблона не поддерживается.
Print(ArrayMax<char>(a,CHAR_MIN)); // Явная типизация шаблона пока не доступна!
Исправления по крешлогам.
Обновлена документация.
Автоматическое обновление доступно через систему LiveUpdate.
Скачать торговый терминал MetaTrader 5 можно по ссылке: https://download.mql5.com/cdn/web/metaquotes.software.corp/mt5/mt5setup.exe?utm_source=www.metatrader5.com
Исправления по крешлогам.
Обновлена документация.
Автоматическое обновление доступно через систему LiveUpdate.
Скачать торговый терминал MetaTrader 5 можно по ссылке: https://download.mql5.com/cdn/web/metaquotes.software.corp/mt5/mt5setup.exe?utm_source=www.metatrader5.com
При этом клиентский терминал будет осуществлять копирование торговых сигналов с минимальными задержками в соответствии с установленными настройками сигнала.
Одновременно один торговый счёт на торговом сервере брокера может быть подписан только на один Источник сигналов, для смены Источника необходимо отказаться от предыдущей подписки.
Перед началом копирования Сигнала осуществляется начальная синхронизация позиций клиента и Источника сигнала. Обязательным условием является отсутствие на клиентском счёте Подписчика ордеров и позиций, открытых самим клиентом или по Сигналу другого Источника. Кроме того, начальная синхронизация осуществляется только в том случае, если совокупная плавающая прибыль Источника сигнала не положительна. Таким образом, Подписчик войдёт в рынок по цене не хуже той, по которой вошёл Источник сигнала.При синхронизации осуществляется открытие у клиента позиций аналогичных по направлению и торговому инструменту с Источником сигналов. При этом объём открываемой позиции выбирается в соответствии с настройками управления средствами, для открытия позиций используются рыночные ордера с проскальзыванием, установленным в настройках. Кроме того, осуществляется копирование уровней SL и TP. Копирование отложенных ордеров не производится.
Дальнейшее копирование Сигнала осуществляется только после успешной синхронизации, результаты синхронизации пишутся в журнал терминала с пометкой "Signal".
После успешной начальной синхронизации производится копирование вновь возникающих сделок, совершённых на счёте Источника сигналов, путём совершения аналогичных сделок на клиентском счёте Подписчика с использованием рыночных ордеров. Объём и проскальзывание рыночного ордера устанавливаются в соответствии с настройками. Также копируется изменение уровней SL и TP у открытых позиций. Все действия по копированию сигнала отражаются в журнале терминала с пометкой "Signal".
Копирование сигналов не предусматривает возможность параллельной торговли вручную или экспертом, результаты копирования сигнала после подобного вмешательства неопределенны.
В случае возникновения ошибки при копировании сигнала - потере связи, ошибки выставления ордера и т.д. - осуществляется повторная синхронизация счёта с Источником сигналов.
В настройках сигнала указывается метод управления средствами - алгоритм выбора объёма сделок по отношению к объёму сделок сигнала:
Торговые операции осуществляются с с допустимым проскальзыванием, задаваемым параметром "Slippage", значение этого параметра выражается в спредах торгового инструмента.
Копирование сигнала будет автоматически приостановлено при падении уровня Equity ниже уровня, указанного в настройках, при этом все ранее открытые позиции будут закрыты.
Исправления по крешлогам.
Обновлена документация.
Автоматическое обновление доступно через систему LiveUpdate.
Скачать торговый терминал MetaTrader 5 можно по ссылке: https://download.mql5.com/cdn/web/metaquotes.software.corp/mt5/mt5setup.exe?utm_source=www.metatrader5.com
Добавлено быстрое закрытие позиции и удаление ордеров одним кликом мыши.
Для закрытия позиции или снятия отложенного ордера достаточно нажать крестик в колонке "Profit" списка ордеров и позиций.
В случае, если в настройках терминала включена опция "One-click trading", то позиция будет немедленно закрыта по текущей цене (ордер снят). В случае если опция выключена или быстрое закрытие невозможно (например, для торговых инструментов с типом исполнения Request Execution), будет показан стандартный диалог закрытия позиции (снятия ордера).
Для совместных проектов в каталоге MQL5 предназначена папка Projects. В Навигаторе она отображается синим цветом.
Несмотря на то, что папка Projects располагается внутри MQL5, в хранилище проекты расположены отдельно от личного каталога пользователя (https://storage.mql5.com/svn/Personal/<MQL5.community account>/MQL5).
Все проекты хранятся в отдельном разделе https://storage.mql5.com/svn/Projects/
Проектом считается каталог верхнего уровня в папке Projects. Соответственно, для создания проекта необходимо создать новую папку в разделе Projects при помощи команды "Новая папка", выбрать ее и в контекстном меню выполнить команду "Создать проект".
После этого проект будет создан. Сообщения об успешном создании проекта будут выведены в журнал MetaEditor.
Доступ к каждому из проектов настраивается только автором проекта (пользователем, который его создал).
Для того чтобы начать совместную работу над проектом, необходимо разрешить другим пользователям доступ к нему - достаточно выполнить команду "Добавить разрешение" в контекстном меню созданной папки проекта и добавить нового пользователя, указав его логин в MQL5.community.
Для загрузки доступных проектов достаточно выполнить команду "Извлечь" в контекстном меню папки "Projects". После этого проекты будут загружены из хранилища. В дальнейшем работа с ними осуществляется как с обычными файлами, привязанными к хранилищу MQL5 Storage.
Исправления по крешлогам.
Обновлена документация.
Автоматическое обновление доступно через систему LiveUpdate.
Скачать торговый терминал MetaTrader 5 можно по ссылке: https://download.mql5.com/cdn/web/metaquotes.software.corp/mt5/mt5setup.exe?utm_source=www.metatrader5.com
Исправления по крешлогам.
Обновлена документация.
Автоматическое обновление доступно через систему LiveUpdate.
Скачать торговый терминал MetaTrader 5 можно по ссылке: https://download.mql5.com/cdn/web/metaquotes.software.corp/mt5/mt5setup.exe?utm_source=www.metatrader5.com
В структуру MqlTradeResult добавлено поле request_id - уникальный
идентификатор торгового запроса терминала в течение сетевой сессии.
Данное
поле заполняется клиентским терминалом при успешной отправке торгового
запроса серверу. В дальнейшем это поле заполняется в параметре result в
точке входа OnTradeTransaction. Таким образом обеспечивается возможность
однозначного сопоставления вызова функций OrderSend и OrderSendAsync с
получением результатов торгового запроса в точке входа
OnTradeTransaction.
Обновлена документация.
Автоматическое обновление доступно через систему LiveUpdate.
Скачать торговый терминал MetaTrader 5 можно по ссылке: https://download.mql5.com/cdn/web/metaquotes.software.corp/mt5/mt5setup.exe?utm_source=www.metatrader5.com
MQL5: Добавлена точка входа OnTradeTransaction - получение информации о торговых транзакциях, происходящих с торговым счётом.
void OnTradeTransaction(const MqlTradeTransaction& trans,const MqlTradeRequest& request,const MqlTradeResult& result)
Данная точка входа вызывается для передачи в MQL5-программу информации о торговых транзакциях, происходящих с торговым счётом:
Клиентский терминал хранит историю торговых транзакций и при наличии точки входа последовательно передаёт их эксперту. История ограничена по длине 1024 транзакциями и очищается при следующем подключении.
Следует иметь в виду, что обработка транзакций в терминале ведётся независимо от обработки транзакций в MQL5-программе, т.е., например, пока эксперт обрабатывает транзакцию добавления нового ордера, параллельно с этим терминал может получить транзакцию об удалении соответствующего ордера и перенесении его в историю.
MQL5: Расширен набор значений перечисления "типы сделок" ENUM_DEAL_TYPE, добавлены значения:
Класс CCanvas обеспечивает возможности реализации произвольной графики на пользовательских объектах типа "Bitmap" и "Bitmap Label". Фактически эти объекты становятся поверхностью рисования, на которой может быть нарисовано любое изображение. Таким образом появляется возможность создания собственных графических построений, не связанных с готовыми графическими объектами терминала.
Класс реализует функции рисования линий, окружностей, прямоугольников, полигонов, их заливки, заливки произвольной области заданным цветом. Кроме того, в дистрибутив клиентского терминала добавлен пример использования этого класса CanvasSample (MQL5\Scripts\Examples\Canvas\CanvasSample.mq5).
Добавлено сохранение промежуточных данных генетической оптимизации - после остановки оптимизации и последующем запуске оптимизация будет начата не с начала, а с места остановки.
Исправления по крешлогам.
Обновлена документация.
Автоматическое обновление доступно через систему LiveUpdate.
Скачать торговый терминал MetaTrader 5 можно по ссылке: https://download.mql5.com/cdn/web/metaquotes.software.corp/mt5/mt5setup.exe?utm_source=www.metatrader5.com
Торговый терминал поддерживает отправку уведомлений о различных событиях на мобильные устройства под управлением операционных систем iOS и Android при помощи Push-сообщений. Благодаря этой функции трейдер всегда в курсе происходящего.
Push-уведомления представляют собой короткие сообщения длиной не более 255 символов. Такие уведомления доставляются немедленно и не теряются в пути.
Push-уведомления из клиентского терминала могут быть отосланы двумя путями:
Через MQL5-приложение
В языке MQL5 доступна специальная функция SendNotification, позволяющая MQL5-программе отсылать push-сообщения на MetaQuotes ID, указанный в настройках терминала.
Через функцию сигналов
Торговый терминал позволяет создавать сигналы, предназначенные для оповещения о событиях на рынке. Работа с ними осуществляется на вкладке "Алерты" окна "Инструменты". Одним из видов оповещения о событиях является отсылка push-уведомления.
Чтобы разрешить клиентскому терминалу отсылать сообщения, включите опцию "Разрешить Push-уведомления".
Далее укажите один или несколько MetaQuotes ID, разделенных запятыми. Чтобы узнать свой MetaQuotes ID, откройте мобильную версию терминала и перейдите на страницу Настройки -> Сообщения. Так выглядит данная страница в мобильном терминале для iPhone:
Для того чтобы проверить отсылку сообщений, нажмите кнопку "Тест". При успешной отправке вы увидите соответствующее сообщение, а на ваше мобильное устройство придет тестовое уведомление.
В панели инструментов клиентского терминала добавлена кнопка-ссылка на сайт MQL5.community.
В настройках терминала вкладки "Charts" и "Objects" объединены в общую вкладку
32-битная версия терминала скомпилирована с возможностью расширения доступного виртуального адресного пространства. Объём доступной памяти расширяется с 2 Gb:
Добавлен показ размеров графических объектов "Label" и "Bitmap Label" в диалоге их свойств:
Добавлена функции ResourceCreate - для загрузки ресурса из файла или для создания изображения:
Создание ресурса из файла:
bool ResourceCreate( const string resource_name, // имя ресурса const string path // относительный путь к файлу );Создание изображения на основе массива пикселей:
bool ResourceCreate( const string resource_name, // имя ресурса const color& data[], // набор данных в виде массива uint img_width, // ширина создаваемой картинки-ресурса uint img_height, // высота создаваемой картинки-ресурса uint data_xoffset, // смещение левого верхнего угла создаваемой картинки по горизонтали вправо uint data_yoffset, // смещение левого верхнего угла создаваемой картинки по вертикали вниз uint data_width, // общая ширина изображения на основе набора данных ENUM_COLOR_FORMAT color_format // способ обработки цвета );
Первый вариант функции позволяет загружать из файлов картинки и звуки, второй вариант предназначен только для динамического создания изображений. Картинки должны быть в формате BMP с глубиной цвета 24 или 32 бита, звуки могут быть только в формате WAV. Размер ресурса не должен превышать 16 Mb.
Добавлена возможность тестирования индикаторов, в том числе скачанных из MQL5 Market:
Таким образом появилась возможность оценить поведение индикатора в процессе изменения истории
Добавлена поддержка использования OpenCL-программ в агентах тестирования.
Программы на OpenCL предназначены для выполнения вычислений на видеокартах с поддержкой стандарта OpenCL 1.1 или выше. Современные видеокарты содержат сотни небольших специализированных процессоров, которые могут одновременно выполнять простые математические операции над входящими потоками данных. Язык OpenCL берёт на себя организацию таких параллельных вычислений и позволяет добиться огромного ускорения для некоторого класса задач.
Исправления в отчётах результатов тестирования:
Добавлена поддержка компиляции С++ файлов (*.cpp) при наличии на компьютере Microsoft Visual Studio 2008/2010/Express.
Таким образом, появляется возможность отлаживать и модифицировать собственные DLL, написанные на С++, прямо в MetaEditor.
Добавлена возможность автоматического добавления в MQL5-файл экспортируемые функции DLL путём перетаскивания DLL на открытый файл исходного кода MQL5:
Исправления по крешлогам.
Обновлена документация.
Автоматическое обновление доступно через систему LiveUpdate.
Скачать торговый терминал MetaTrader 5 можно по ссылке: https://download.mql5.com/cdn/web/metaquotes.software.corp/mt5/mt5setup.exe?utm_source=www.metatrader5.com
Добавлен глобальный поиск по клиентскому терминалу и MQL5.com.
Поиск в клиентском терминале позволяет быстро находить необходимую информацию во всех разделах клиентского терминала, Code Base и MQL5.com. Используется регистронезависимый поиск подстроки в строке. Поиск осуществляется в разделах, указанных пользователем в настройках:
Контекстное меню вкладки результатов поиска содержит дополнительные команды в зависимости от типа результата:
Добавлен асинхронный метод отправки торговых запросов OrderSendAsync.
Использование этой функции позволяет сократить время выставления торговых запросов и особенно сократить время выставления массовых запросов, поскольку для выставления нового запроса нет необходимости ожидать результатов предыдущего. В силу своей асинхронной природы данная функция не подходит для выставления рыночных заявок по инструментам с режимом исполнения Request Execution.
Функция осуществляет первичную проверку заявки на стороне клиентского терминала и постановку запроса в очередь отсылки на торговый сервер без ожидания результатов отсылки и получения подтверждения от сервера.
В случае необходимости отслеживание результатов работы функции на сервере осуществляется экспертом обработкой события OnTrade.
Международный идентификационный код ценной бумаги (англ. International Securities Identification Number, общепринятое сокращение — ISIN) — 12-разрядный буквенно-цифровой код, однозначно идентифицирующий ценную бумагу.
Наличие данного свойства символа определяется на стороне торгового сервера.
Maximum Favorable Excursion (MFE) - это максимальный размер потенциальной прибыли, наблюдаемый во время удержания позиции.
MFE-Profit Correlation - cвязь между результатами позиций и MFE. Каждая позиция в период между открытием и закрытием достигала максимальной прибыли и максимального убытка. MFE показывает прибыль в благоприятном направлении движения цены. Каждой закрытой позиции соответствует результат этой позиции и два показателя - MFE и MAE. Таким образом мы можем нанести каждую позицию на плоскость, где по оси Х откладываем MFE, а по оси Y - результат позиции. Чем ближе результат позиции к значению MFE, тем максимально полно было использовано движение цены в благоприятном направлении. Прямая линия на графике показывает аппроксимацию функцией Profit=A*MFE+B. Показатель Correlation(Profits,MFE) позволяет оценить связь между полученными прибылями/убытками и MFE. Чем ближе к 1 это значение, тем лучше позиции укладываются на прямую аппроксимации. Чем ближе к нулю - тем менее значима связь. MFE более всего характеризует способность реализовывать потенциальную прибыль.
График распределения MFE-Profits - на диаграмме точками нанесены позиции на плоскости MFE (ось X) - Profits (ось Y). Значения обеих осей даны в валюте депозита. Таким образом, мы видим для каждой позиции не только значение полученной прибыли с учетом свопов по оси Y, но и максимально возможную прибыль за время жизни позиции. Это позволяет оценить насколько хорошо защищается бумажная (нереализованная) прибыль. Хотя само распределение точек на плоскости уже дает достаточно хорошую картину торговой системы, для более объективной оценки показана линейная регрессия, являющаяся аппроксимацией по методу наименьших квадратов. В идеале прямая должна идти под углом 45 градусов.
Maximum Adverse Excursion (MAE) - максимальный потенциальной убыток, наблюдаемый во время удержания позиции.
MAE-Profit Correlation - связь между результатами позиций и MAE. MAE - Maximum Adverse Excursion. Каждая позиция в период между открытием и закрытием достигала максимальной прибыли и максимального убытка. MAE показывает убыток в неблагоприятном направлении движения цены. Каждой закрытой позиции соответствует результат этой позиции и два показателя - MFE и MAE. Таким образом мы можем нанести каждую позицию на плоскость, где по оси Х откладываем MAE, а по оси Y - результат позиции. Чем ближе результат позиции к значению MAE, тем максимально полно было произведена защита от движения цены в неблагоприятном направлении. Прямая линия на графике показывает аппроксимацию функцией Profit=A*MAE+B. Показатель Correlation(Profits,MAE) позволяет оценить связь между полученными прибылями/убытками и MAE. Чем ближе к 1 это значение, тем лучше позиции укладываются на прямую аппроксимации. Чем ближе к нулю - тем менее значима связь. MAE характеризует полученную просадку в течение жизни позиции и лучше всего характеризует использование защитного Stop Loss.
График распределения MAE-Profits - точками нанесены позиции на плоскости MAE (ось X) - Profits (ось Y). Значения обеих осей даны в валюте депозита. Таким образом, мы видим для каждой позиции не только значение полученной прибыли с учетом свопов по оси Y, но и максимально просадку за время жизни позиции. Это позволяет оценить позиции на предмет пересиживания просадок. Хотя само распределение точек на плоскости уже дает достаточно хорошую картину торговой системы, для более объективной оценки показана линейная регрессия, являющаяся аппроксимацией по методу наименьших квадратов. Чем меньше позиций с большим отрицательным значением X (MAE), тем лучше. Позволяет также принять решение на основе графического анализа о максимальном терпимом убытке, после которого вероятность получения прибыли очень мала (если анализ проводится по одной валюте и в пунктах).
Добавлены новые команды управления хранением исходных файлов, делающие использование MQL5 Storage более удобным:
Откат к ревизии (Revert to revision) - выбранные файлы безусловно заменяются на файлы из указанной ревизии. Все изменения, внесённые в выбранные файлы, исчезают.
Исправления по крешлогам.
Обновлена документация.
Автоматическое обновление доступно через систему LiveUpdate.
Скачать торговый терминал MetaTrader 5 можно по ссылке: https://download.mql5.com/cdn/web/metaquotes.software.corp/mt5/mt5setup.exe?utm_source=www.metatrader5.com
В настоящее время с помощью свойства OBJPROP_HIDDEN, выставляемого только из MQL5-программ, графические объекты разделены на созданные вручную и автоматические. По умолчанию в списке объектов показываются только созданные вручную. Это повышает удобство работы, так как в большинстве случаев для объектов, созданных программным путем, не требуется управление из интерфейса клиентского терминала. Чтобы увидеть все объекты, нужно нажать на кнопку "List All".
В новом билде программно созданные объекты не будут удаляться по команде "Удалить последний (Backspace)".
Это предотвратит случайное удаление интерфейсных объектов. Удалить их можно будет программно или через окно "Список объектов (Ctrl+B)".
Добавлено отображение начала и конца торговли по символу в диалоге настроек символа:
Перегрузка операций позволяет описывать и применять к созданным программистом типам данных операции, по смыслу эквивалентные уже имеющимся в языке. Например, перегрузка оператора "[]" позволяет реализовать класс с поведением массива, а перегрузка арифметических операторов позволяет реализовать классы для работы с комплексными числами. В описанных случаях перегрузка операций позволяет использовать привычный синтаксис и избежать создания множества функций вида ComplexPlusComplex, IntegerPlusComplex, ComplexMinusFloat и т.д.
Кроме того, поддержка перегрузки операторов в MQL5 обеспечивает совместимость с языками программирования общего назначения (в частности с языком С++), облегчая перенос ранее написанного кода (программных библиотек) на MQL5.
Статические поля и методы является собственностью класса, поэтому для доступа к статическим полям не требуется создавать экземпляры соответствующего класса. Наличие статических полей и методов в языке увеличивает его гибкость и выразительность. Например, с помощью этих методов легко реализовать контроль за числом экземпляров (объектов) данного класса.
Также как и поддержка перегрузки операторов, поддержка статических полей и структур в MQL5 обеспечивает совместимость с языками программирования общего назначения (в частности с языком С++), облегчая перенос ранее написанного кода (программных библиотек) на MQL5.
Расширен набор характеристик в результатах тестирования - добавлены новые характеристики и диаграммы:
Ранее, если до времени удаления отложенного ордера оставалось менее 5 минут, при попытке корректной модификации ордера возвращалась некорректная ошибка TRADE_RETCODE_INVALID_EXPIRATION.
При запуске эксперта в тестере стратегий можно создать собственный массив данных на основе простых типов или простых структур. Этот набор данных можно сохранить с помощью функции FrameAdd() в специальной структуре, называемой фрейм (кадр). Каждый агент при оптимизации эксперта может посылать в терминал серию фреймов. Все полученные фреймы в порядке поступления от агентов записываются в *.MQD файл в папку каталог_терминала/MQL5/Files/Tester по имени эксперта.
В результате проведённых работ оптимизирована передача фреймов от тестера клиентскому терминалу и увеличена скорость доступа к полученным фреймам из эксперта в точках входа OnTesterPass.
Убрана подсветка текущей строки по умолчанию. Ранее при начальной установке MetaEditor подсветка текущей строки по умолчанию была включена.
В мастер создания эксперта MQL5 Wizard добавлена поддержка точек входа OnTester*
Данные точки входа являются обработчиками событий, которые автоматически генерируются тестером стратегий при тестировании (OnTester) и оптимизации (OnTesterInit, OnTesterPass, OnTesterDeinit) эксперта. Использование этих функций в эксперте предназначено для реализации пользовательской обработки результатов тестирования и оптимизации.
Для облегчения написания кода в MetaEditor предусмотрена возможность вставки сниппетов — небольших шаблонных фрагментов исходного кода, описывающих ту или иную конструкцию языка MQL5. Вставка сниппета инициализируется написанием ключевого слова. После набора ключевого слова курсор изменяется на "Возможна вставка сниппета". После этого необходимо нажать клавишу "Tab". Более подробно о работе со сниппетами можно ознакомиться в справке MetaEditor.
Ключевыми словами для точек входа OnTester, OnTesterInit, OnTesterPass и OnTesterDeinit будут служить слова OnTester, OnTesterInit, OnTesterPass и OnTesterDeinit.
Для удобства разработки программ в MetaEditor предусмотрены различные средства, от автоподстановок названий и подсказок к функциям до закладок и горячих клавиш - MetaAssist. Эти средства позволяют ускорить процесс написания кода, делают перемещение по нему более удобным и помогают предотвратить появление ошибок.
Добавлено окно отображение отличий между локальным файлом исходного текста и версией в MQL5 Storage:
Исправления по крешлогам.
Обновлена документация.
Автоматическое обновление доступно через систему LiveUpdate.
Скачать торговый терминал MetaTrader 5 можно по ссылке: https://download.mql5.com/cdn/web/metaquotes.software.corp/mt5/mt5setup.exe?utm_source=www.metatrader5.com
Добавлен режим отображения "в деньгах" объемов для форексных инструментов в стакане. Новый режим позволяет видеть заявки как в привычных лотах, так и в котируемой валюте.
Добавлены новые методы FrameAdd, FrameFirst, FrameNext и FrameInputs, позволяющие агентам тестирования передавать собственные кастомные фреймы данных в терминал, а терминалу их вычитывать.
Новые методы позволяют реализовать распределенные вычисления с получением результатов в любом удобном виде, а не только в виде одного или нескольких числовых показателей. Возможность подключить MQL5 Cloud Network позволит решать любые распределенные задачи на MQL5, необязательно связанные с финансовыми рынками.
Добавлены новые точки входа OnTesterInit, OnTesterDeinit и OnTesterPass. Для эксперта с указанными точками входа при оптимизации в терминале создается график, на который данный эксперт прикрепляется. В тот момент, когда от агентов тестирования приходит новый фрейм данных, происходит вызов OnTesterPass, в котором можно считывать и анализировать полученные данные.
Более подробное описание можно найти в документации.
Добавлен новый метод ResourceCreate, позволяющий создать ресурс картинки в памяти на основе массива описания пикселей. Созданный ресурс можно назначать графическим объектам Bitmap и Bitmap Label.
Более подробное описание можно найти в документации.
Добавлены новые свойства TERMINAL_MEMORY_PHYSICAL, TERMINAL_MEMORY_TOTAL, TERMINAL_MEMORY_AVAILABLE, TERMINAL_MEMORY_USED, TERMINAL_X64, TERMINAL_OPENCL_SUPPORT, TERMINAL_DISK_SPACE, TERMINAL_CPU для TerminalInfoInteger.
Новые свойства дают MQL5-программам возможность анализировать собственное окружение, в котором они запущены, и на основе этого принимать решения об использовании тех или иных ресурсов. Эти свойства будут полезны сложным экспертам, потребляющим большое количество ресурсов. Теперь при оптимизации в MQL5 Cloud Network эксперта, использующего большое количества памяти, в нем можно реализовать проверки в OnInit доступной памяти на агенте и в случае ее потенциальной нехватки не начинать процесс тестирования. Также для упрощения доступа к новым свойствам добавлен класс CTerminalInfo.
Более подробное описание можно найти в документации.
В журнале изменений MQL5 Storage добавлена возможность сделать откат к указанной ревизии.
Исправления по сообщениям на форуме и крешлогам.
Обновлена документация.
Автоматическое обновление доступно через систему LiveUpdate.
Скачать торговый терминал MetaTrader 5 можно по ссылке: https://download.mql5.com/cdn/web/metaquotes.software.corp/mt5/mt5setup.exe?utm_source=www.metatrader5.com
Исправления по крешлогам.
Обновлена документация.
Автоматическое обновление доступно через систему LiveUpdate.
Скачать торговый терминал MetaTrader 5 можно по ссылке: https://download.mql5.com/cdn/web/metaquotes.software.corp/mt5/mt5setup.exe?utm_source=www.metatrader5.com
Исправления по сообщениям на форуме и крешлогам.
Обновлена документация.
Автоматическое обновление доступно через систему LiveUpdate.
Скачать торговый терминал MetaTrader 5 можно по ссылке: https://download.mql5.com/cdn/web/metaquotes.software.corp/mt5/mt5setup.exe?utm_source=www.metatrader5.com