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.ltd/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.ltd/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.ltd/mt5/mt5setup.exe?utm_source=www.metatrader5.com
Скачать терминал MetaTrader 5 для iPhone можно по ссылке: https://download.mql5.com/cdn/mobile/mt5/ios?hl=ru&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.ltd/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.ltd/mt5/mt5setup.exe?utm_source=www.metatrader5.com
Исправления по крешлогам.
Обновлена документация.
Автоматическое обновление доступно через систему LiveUpdate.
Скачать торговый терминал MetaTrader 5 можно по ссылке: https://download.mql5.com/cdn/web/metaquotes.ltd/mt5/mt5setup.exe?utm_source=www.metatrader5.com
Исправления по сообщениям на форуме и крешлогам.
Обновлена документация.
Автоматическое обновление доступно через систему LiveUpdate.
Скачать торговый терминал MetaTrader 5 можно по ссылке: https://download.mql5.com/cdn/web/metaquotes.ltd/mt5/mt5setup.exe?utm_source=www.metatrader5.com
Скачать терминал MetaTrader 5 для Android можно по ссылке: https://download.mql5.com/cdn/mobile/mt5/android?hl=ru&utm_source=www.metatrader5.com
Исправления по сообщениям на форуме и крешлогам.
Обновлена документация.
Автоматическое обновление доступно через систему LiveUpdate.
Скачать торговый терминал MetaTrader 5 можно по ссылке: https://download.mql5.com/cdn/web/metaquotes.ltd/mt5/mt5setup.exe?utm_source=www.metatrader5.com
Исправления по сообщениям на форуме и крешлогам.
Обновлена документация.
Автоматическое обновление доступно через систему LiveUpdate.
Скачать торговый терминал MetaTrader 5 можно по ссылке: https://download.mql5.com/cdn/web/metaquotes.ltd/mt5/mt5setup.exe?utm_source=www.metatrader5.com
Исправления по сообщениям на форуме и крешлогам.
Обновлена документация.
Автоматическое обновление доступно через систему LiveUpdate.
Скачать торговый терминал MetaTrader 5 можно по ссылке: https://download.mql5.com/cdn/web/metaquotes.ltd/mt5/mt5setup.exe?utm_source=www.metatrader5.com
Исправления по сообщениям на форуме и крешлогам.
Обновлена документация.
Автоматическое обновление доступно через систему LiveUpdate.
Скачать торговый терминал MetaTrader 5 можно по ссылке: https://download.mql5.com/cdn/web/metaquotes.ltd/mt5/mt5setup.exe?utm_source=www.metatrader5.com
Исправления по сообщениям на форуме и крешлогам.
Обновлена документация.
Автоматическое обновление доступно через систему LiveUpdate.
Скачать торговый терминал MetaTrader 5 можно по ссылке: https://download.mql5.com/cdn/web/metaquotes.ltd/mt5/mt5setup.exe?utm_source=www.metatrader5.com
Исправления по сообщениям на форуме и крешлогам.
Обновлена документация.
Автоматическое обновление доступно через систему LiveUpdate.
Скачать торговый терминал MetaTrader 5 можно по ссылке: https://download.mql5.com/cdn/web/metaquotes.ltd/mt5/mt5setup.exe?utm_source=www.metatrader5.com
Скачать терминал MetaTrader 5 для iPhone можно по ссылке: https://download.mql5.com/cdn/mobile/mt5/ios?hl=ru&utm_source=www.metatrader5.com
Исправления по сообщениям на форуме и крешлогам.
Обновлена документация.
Автоматическое обновление доступно через систему LiveUpdate.
Скачать торговый терминал MetaTrader 5 можно по ссылке: https://download.mql5.com/cdn/web/metaquotes.ltd/mt5/mt5setup.exe?utm_source=www.metatrader5.com
Автоматическое обновление доступно через систему LiveUpdate.
Скачать торговый терминал MetaTrader 5 можно по ссылке: https://download.mql5.com/cdn/web/metaquotes.ltd/mt5/mt5setup.exe?utm_source=www.metatrader5.com
Автоматическое обновление доступно через систему LiveUpdate.
Скачать торговый терминал MetaTrader 5 можно по ссылке: https://download.mql5.com/cdn/web/metaquotes.ltd/mt5/mt5setup.exe?utm_source=www.metatrader5.com
Скачать терминал MetaTrader 5 для Android можно по ссылке: https://download.mql5.com/cdn/mobile/mt5/android?hl=ru&utm_source=www.metatrader5.com