Создание и тестирование кастомных инструментов в MetaTrader 5 build 1640
Мы выпустили очень большое обновление платформы MetaTrader 5 и приглашаем всех попробовать ее.
Скачать бесплатный терминал можно по с https://www.metatrader5.com, обновиться с сервера брокера или MetaQuotes-Demo.
Что нового:
Terminal: Добавлена возможность создавать собственные финансовые инструменты. Теперь вы можете создать любой инструмент, задать для него всевозможные настройки, импортировать в него свои ценовые данные и просматривать по нему графики.
Создание пользовательского символа
Откройте окно управления символами через контекстное меню «Обзора рынка» и нажмите «Создать символ»:
Для настройки доступно множество параметров. Их список и описание можно посмотреть в документации. Вы можете быстро настроить собственный инструмент — скопируйте параметры из любого схожего инструмента, а затем измените то, что вам нужно. Для этого выберите имеющийся инструмент в поле «Скопировать из».
Имя пользовательского символа не должно пересекаться с именами символов, транслируемых брокерами. Если вы подключитесь к серверу, и на нем окажется символ, совпадающий с пользовательским, то пользовательский символ будет удален.
Здесь же присутствуют команды импорта и экспорта настроек. Вы можете легко обмениваться пользовательскими символами друг с другом или переносить символы между своими терминалами. Настройки экспортируются в текстовые файлы формата JSON.
Управление пользовательскими символами
Все символы отображаются в отдельной группе Custom. Чтобы изменить или удалить символ, воспользуйтесь контекстным меню в списке:
Импорт ценовой истории
Вы можете импортировать ценовые данные в собственный символ из любого текстового файла. Выберите символ, а затем перейдите на вкладку «Бары».
В диалоге импорта укажите путь к файлу с данными и задайте настройки:
Разделитель — разделитель элементов в текстовом файле.
Пропуск столбцов и строк — количество колонок (слева направо) и строк (сверху вниз), которое необходимо пропустить при импорте.
Сдвиг — сдвиг времени по часам. Эта опция используется при импортировании данных, сохраненных в другом часовом поясе.
Только выделенные — эта опция позволяет импортировать только выделенные в окне просмотра строки. Строки можно выделить с помощью мыши, удерживая клавиши «Ctrl» или «Shift».
Файл с минутными барами должен иметь формат: Дата Время Open High Low Close ТиковыйОбъем Объем Спред. Например:
2016.06.27 00:01:00 1.10024 1.10136 1.10024 1.10070 18 54000000 44
2016.06.27 00:02:00 1.10070 1.10165 1.10070 1.10165 32 55575000 46
2016.06.27 00:03:00 1.10166 1.10166 1.10136 1.10163 13 13000000 46
2016.06.27 00:04:00 1.10163 1.10204 1.10155 1.10160 23 51000000 41Для собственного символа вы можете использовать данные любого существующего инструмента. Экспортируйте их (эта возможность была добавлена в предыдущей версии платформы), при необходимости модифицируйте, а затем импортируйте обратно.
В MetaTrader 5 ценовая история хранится в виде минутных баров. Все остальные таймфреймы создаются на их основе. При импорте вы можете использовать данные и с более высоких таймфреймов, но следует учитывать, что графики более низких таймфреймов при этом будут иметь пропуски. Например, при импорте часовых данных на минутном графике вы увидите по одному бару на каждый час.
Ценовые данные пользовательских символов сохраняются в отдельном каталоге Custom (вне каталогов данных конкретных торговых серверов): C:\Users\[windows account]\AppData\Roaming\MetaQuotes\Terminal\[instance id]\bases\Custom
Использование собственных символов
Использование собственных символов практически не отличается от тех, что предоставляет брокер. Они также показываются в окне «Обзор рынка», по ним можно открывать графики, на которые можно накладывать индикаторы и аналитические объекты. При этом по пользовательским символам нельзя торговать.
Тестирование стратегий на собственных символах
Созданные собственные символы можно использовать для проверки торговых роботов и индикаторов в тестере стратегий.
Это позволяет проводить оптимизацию стратегий даже для тех финансовых инструментов, которые недоступны в данный момент у брокера. Достаточно лишь правильно произвести импорт истории и настроить свойства пользовательского символа.
При расчете маржи и прибыли тестер стратегий автоматически использует доступные кросс-курсы. Например, мы создали собственный символ AUDCAD.custom с типом расчета маржи Forex, и валюта нашего счета — USD.
Тогда на основе имени форексного инструмента тестер ищет необходимые символы в следующем порядке:
сначала ищутся символы вида AUDUSD.custom (для расчёта маржи) и USDCAD.custom (для расчёта прибыли по сделкам)
затем, если какого-то из этих инструментов нет, ищется первый символ, который соответствует по имени необходимым валютным парам — AUDUSD и USDCAD соответственно. Например, найдены AUDUSD.b и NZDUSD.b — значит, именно курсы этих инструментов будут использоваться при расчетах маржи и прибыли.
Для инструментов с остальными типами расчета маржи (CFD, Futures, Stock Exchange) необходимо наличие валютной пары для пересчета валюты инструмента в валюту депозита. Например, мы создали собственный символ с валютой прибыли и валютой маржи, выраженными в британских функтах (GBP), а валютой депозита является швейцарский франк (CHF).
Тогда поиск инструментов для тестирования ведется в следующем порядке:
Проверяется наличие торгового инструмента, соответствующего валютной паре GBPCHF (GBP vs CHF).
Если он отсутствует, то ищется первый торговый инструмент, который соответствует по имени валютной паре GBPCHF, например GBPCHF.b или GBPCHF.def.
При тестировании на собственных инструментах убедитесь, что на торговом счете доступны все необходимые валютные пары для расчетов. В противном случае расчет финансовых результатов и залоговых требований при тестировании будет невозможен.
Больше возможностей в следующих версиях платформы
Работа над собственными инструментами еще не завершена, и в следующих версиях платформы появятся новые функции. Вы сможете импортировать историю в пользовательские символы прямо из экспертов, а также транслировать по ним данные (вбрасывать котировки) в режиме реального времени.
Terminal: Добавлена фильтрация ленты сделок по объему.
Из ленты можно скрыть сделки с объемом меньше указанного. Таким образом, в ленте останутся только крупные сделки, оказывающие наибольшее влияние рынок.
Дважды нажмите на первой строке ленты сделок, укажите минимальный объем в лотах, а затем нажмите на любой другой области стакана цен. Сделки будут отфильтрованы, а текущее значение фильтра появится в заголовке колонки объема.
Задать минимальный объем можно также через контекстное меню ленты сделок.
Terminal: Добавлена возможность привязки стакана цен к активному графику. Каждый раз, когда вы будете переключаться к просмотру графика какого-либо финансового инструмента, в стакане цен будет автоматически включаться точно такой же инструмент.
Вам не придется отдельно открывать стакан цен для каждого нового символа.
Terminal: Исправлено обновление панелей инструментов после сворачивания и разворачивания окна терминала.
Terminal: Исправлено формирование торговой истории позиций при пересечении тикетов сделок и позиций.
MQL5: Добавлена возможность профилирования MQL5-программ на ценовой истории. Это позволит быстро проверять производительность программ без ожидания новых тиков.
При профилировании на реальных данных программа запускается на обычном графике в терминале. Многие программы, в особенности индикаторы, осуществляют какие-либо расчеты только при приходе нового тика (OnTick, OnCalculate).
Таким образом, для оценки производительности приходится ждать поступления новых тиков в режиме реального времени. При тестировании на исторических данных вы сразу сможете дать нужную нагрузку на программу. Профилирование запустится в тестере стратегий в визуальном режиме, и вы сразу получите множество событий прихода нового тика.
MQL5: Добавлена поддержка Объединения (union). Это особый тип данных, который состоит из нескольких переменных, разделяющих одну и ту же область памяти. Следовательно, объединение обеспечивает возможность интерпретации одной и той же последовательности битов двумя (или более) различными способами.
Объявление объединения начинается с ключевого слова union.
union LongDouble
{
long long_value;
double double_value;
};
В отличие от структуры, разные члены объединения относятся к одному и тому же участку памяти. В данном примере объявлено объединение LongDouble, в котором значение типа long и значение типа double разделяют одну и ту же область памяти.
Важно понимать — невозможно сделать так, чтобы это объединение хранило одновременно целочисленное значение long и вещественное double (как это было бы в структуре), поскольку переменные long_value и double_value накладываются (в памяти) друг на друга.
Но зато MQL5-программа в любой момент может обрабатывать информацию, содержащуюся в этом объединении, как целочисленное значение (long) или как вещественное (double). Следовательно, объединение позволяет получить два (или больше) варианта представления одной и той же последовательности данных.
При объявлении объединения компилятор автоматически выделяет область памяти, достаточную для хранения в объединении переменных самого большого по объему типа. Для доступа к элементу объединения используется тот же синтаксис, как и для структур – оператор «точка».
MQL5: Добавлена автоматическая генерация неявного оператора копирования для объектов структур и классов. Теперь компилятор автоматически создает операторы копирования, что позволяет писать для объектов простые записи вида b=a.
В неявном операторе осуществляется почленное копирование объектов.
Если член является объектом, вызывается соответствующий для этого объекта оператор копирования.
Если член является массивом объектов, то перед вызовом соответствующего оператора копирования для каждого элемента принимающий массив увеличивается или уменьшается до нужного размера через ArrayResize.
Если член является массивом простых типов, для копирования используется функция ArrayCopy.
Если член является указателем на объект, копируется сам указатель, а не объект, на который он указывает.
При необходимости можно переопределить поведение и вместо неявного оператора копирования создать собственный вариант с помощью перегрузки.
MQL5: Оптимизировано использование памяти при обращении к ценовой истории из экспертов при помощи Copy* функций. При работе с большими объемами данных потребление памяти будет снижено многократно.
MQL5: Теперь функция TimeToStruct возвращает булево значение, позволяя проверять успешность конвертации datetime в MqlDateTime.
MQL5: Добавлен запрет на использование функций FileWriteStruct и FileReadStruct для структур, содержащих строки, динамические массивы, объекты и указатели.
MQL5: Добавлены коды ответа:
TRADE_RETCODE_REJECT_CANCEL — запрос на активацию отложенного ордера отклонен, а сам ордер отменен
TRADE_RETCODE_LONG_ONLY — запрос отклонен, так как на символе установлено правило «Разрешены только длинные позиции»
TRADE_RETCODE_SHORT_ONLY — запрос отклонен, так как на символе установлено правило «Разрешены только короткие позиции»
TRADE_RETCODE_CLOSE_ONLY — запрос отклонен, так как на символе установлено правило «Разрешено только закрывать существующие позиции»
MQL5: Добавлено новое значение, возвращаемое функцией SymbolInfoInteger c параметром SYMBOL_ORDER_MODE. SYMBOL_ORDER_CLOSEBY — флаг возможности выставления ордеров на закрытие позиции встречной (Close By).
MQL5: В перечисление ENUM_SYMBOL_INFO_INTEGER добавлено булево свойство SYMBOL_CUSTOM. Оно позволяет узнать, является ли символ пользовательским. Для получения свойства используйте функцию SymbolInfoInteger.
MQL5: Добавлена возможность получения причины создания ордера, сделки и позиции.
Новые свойства
Signals: Исправлено открытие сигнала с сайта при отсутствии подключения торговым счетом.
Tester: Оптимизирована и значительно ускорена работа с историей ордеров и сделок. При работе с большим объемом данных (десятки тысяч записей в истории и более) скорость работы увеличится многократно.
Tester: Исправлено вычисление времени удержания позиции в отчёте тестирования.
MetaEditor: В отладчике исправлено отображение содержимого статических массивов-членов класса.
MetaEditor: Добавлен список точек останова в отлаживаемой программе. Для перехода к нему используйте контекстное меню вкладки «Отладка»:
Для перехода к любой из точек дважды нажмите на ней.
Приветствую! Когда для фьючерсов будет удалено отображение клиринговых сделок на графике и попадание их в историю сделок? Это захломляет график, сбивает работу робота при переносе в безубыток и т.д. и т.п. В квике все плохо, но это работает как надо.
Все отсальное устраивает. По сравнению с Квиком — космос. Новые фишки тоже пригодятся.
MetaQuotes Software, Сегодня все увидел! В версии 1643 на графике перестали отображаться клиринговые сделки. На самом деле уже давно пытаюсь решить этот вопрос через поддержку MQ, пробовал даже «шантажировать» брокеров (БКС и Открытие), что если исправят/не исправят фишки с клиринговыми сделками открою/закрою счет. Эффекта — ноль! Сюда написал просто так, уехал в командировку, приехал — все (ну не совсем конечно все :)) сделано! Спасибо 3 раза!!! Странно, что кроме меня никто не интересуется вопросом. Либо никто на нашем рынке не торгует фьючерсами через MT5, либо это им не мешает. Не очень понимаю. Я больше 10 лет пользовался только квиком. Полгода назад открыл экспериментальный счет в Открытии (дают доступ через MT5). Сейчас лишний раз квик даже включать не хочу.
Теперь парус слов про «не совсем все». С графиком теперь все отлично (еще раз СПАСИБО!!!). Но клиринговые сделки по прежнему попадают в историю сделок. В таблице истории их можно убрать, но если сформировать отчет (отчеты тоже отличные) они там будут. Из-за этого искажается статистика. В моем случае всего реальных сделок было около 26, а в отчете их 126. Кол-во сделок искажает статистику: прибыль на сделку, профит фактор, мат. ожидание, % приб/уб сделок и т.д.
Также есть подозрение, что если клиринговые сделки попадают в историю, то и эксперт (робот) будет принимать их за реальные сделки и на каждом клиринге будет пересчитывать SL, TP и т.д. Пока не проверял.
Извиняюсь за хамство, но если это возможно хотелось бы чтобы это тоже поправили :)
Честно говоря странно, что до сих пор все трейдуны не перешли на MT5. Еще раз повторюсь — по сравнению с квиком это космос!
Влад Маркин, в статистических отчетах тоже попробуем поправить.
В роботах доступна причина выставления каждой операции, так что легко распознать клиринговые сделки. Посмотрите в документации, пожалуйста: www.mql5.com/ru/docs
спасибо за хорошие новости.
Надеюсь что когда допилите датафиды то ещё сделаете нормальные шаблоны в визарде именно для них, для синтетики итд.
И вообще хотелось бы больше мощи от визарда, раз уж вы так против кубиков.
kofesutra, разработчики Wine после наших багрепортов пофиксили ошибку в отладочных регистрах под x64. Это не наша ошибка была.
Вот их новости:
Wine 2.13 is now available as the latest bi-weekly development release leading up to the eventual release of Wine 3.0 around year's end. Changes with Wine 2.13 include updating Unicode data to Unicode 10.0, nicer looking default mouse cursors are now used, support for persistent connections in WinHTTP, WebServices message framing protocol support, improved metafile support in GDI Plus, debug register support in x86-64 exception handling, and DirectWrite anti-aliasing improvements.
Пока можете перенести 32 битные exe файлы, чтобы работать в Wine. Надеемся, что с новой версией Wine будет доступна нормальная 64 битная версия.
MetaQuotes Software, попробовал с wine 2.13 (оказывается 21 числа вышел) — обновления МТ5 приходят, но при перезапуске МТ падает с ошибкой :(
х32 не имею, так что пока жду и надеюсь сидя на старом билде 1495 :(
Вопрос к MetaQuotes — у брокера БКС при подключении метатрейдера в квике нельзя выставлять заявки на облигациии. Причем ОФЗ в метатрейдере видны и заявки(которые однако можно выставить по телефону) и сама позиция.
На мой вопрос — сделают ли возможность в метатрейдере выставлять заявки по облигациям (хотя ОФЗ) или возможность в квике из выставлять — они переадресовывают к разработчику метатрейдера…
Пожалуйста сделайте возможность переименовывать символы прямо в списке, что бы контракт на золото
можно было просто назвать GOLD для удобности и тд. а не имя контракта… или даже на русском написать ЗОЛОТО — август… и понимать что и где если контрактов много разных ..
в истории и открытых сделках конечно хранить всё как есть на самом деле ...
разрешите отключать столбы bid\ask
оставлять лишь «последняя»
===== Торговля -
разрешите отключать столбик «тикет»(просто номера ордеров не несущие никакой ценной инфы) и цену-2 — т.е. текущую
цену… — если нужно её я как бы на графике смогу увидеть…или в списке символов... а так лишнее место… (кому нужно для
скриншотов например — включат)
АвтоВАЗ сразу два раза поднимет цены на Лады в ближайшие месяцы. Они взлетят минимум на 50 тысяч рублей уже в декабре 2024 года и еще на 50 тысяч в январе 2025 года. Отмечается, что повышение утильсбо...
Курок Плотный, там ЦФА будут. Криптой с 2017 года занимается Росфинмониторинг. Готовится законодательство по регулированию криптобирж в России. ЦБ РФ не занимается этим вопросом. Фьючерс на крипту ...
alexandrstroys1, почему вы привязались к размеру купона и требуете привести пример обязательно выше 20 чтобы был купон? Размер купона не значит вообще ничего. Вы же понимаете что купон 20р при цене...
Британия играет ключевую роль в гибридной войне против РФ.
Эти разговоры не столько смешны, сколько опасны… Гниль русофобская как раз и сосредоточена в складках скукоженной британской империи. А ...
Антон Михеев, 50% полной доходности в офз за два года это втб по 110 рублей от текущих. Если по результатам 25 года распределяют дивиденды 200 млрд например с доходностью 12% то капитализация втб в...
Все отсальное устраивает. По сравнению с Квиком — космос. Новые фишки тоже пригодятся.
Самим не нравится.
Есть специальный удобный режим отчета по позициям, где все промежуточные операции сворачиваются и сделки превращаются в одну строку «Вход — Выход»:
Будет доступно в очередной бете через неделю на MetaQuotes-Demo.
Теперь парус слов про «не совсем все». С графиком теперь все отлично (еще раз СПАСИБО!!!). Но клиринговые сделки по прежнему попадают в историю сделок. В таблице истории их можно убрать, но если сформировать отчет (отчеты тоже отличные) они там будут. Из-за этого искажается статистика. В моем случае всего реальных сделок было около 26, а в отчете их 126. Кол-во сделок искажает статистику: прибыль на сделку, профит фактор, мат. ожидание, % приб/уб сделок и т.д.
Также есть подозрение, что если клиринговые сделки попадают в историю, то и эксперт (робот) будет принимать их за реальные сделки и на каждом клиринге будет пересчитывать SL, TP и т.д. Пока не проверял.
Извиняюсь за хамство, но если это возможно хотелось бы чтобы это тоже поправили :)
Честно говоря странно, что до сих пор все трейдуны не перешли на MT5. Еще раз повторюсь — по сравнению с квиком это космос!
В роботах доступна причина выставления каждой операции, так что легко распознать клиринговые сделки. Посмотрите в документации, пожалуйста: www.mql5.com/ru/docs
Можно будет писать свои кастомные датафиды данными из других источников. Также будет открыта настройка расчетных формул для кастомных символов.
Легко будет создать синтетические показатели типа EUR-BACKET=(EURUSD*0.35+EURGBP*0.45)/EURCHF без программирования.
Надеюсь что когда допилите датафиды то ещё сделаете нормальные шаблоны в визарде именно для них, для синтетики итд.
И вообще хотелось бы больше мощи от визарда, раз уж вы так против кубиков.
Вот их новости:
Wine 2.13 is now available as the latest bi-weekly development release leading up to the eventual release of Wine 3.0 around year's end. Changes with Wine 2.13 include updating Unicode data to Unicode 10.0, nicer looking default mouse cursors are now used, support for persistent connections in WinHTTP, WebServices message framing protocol support, improved metafile support in GDI Plus, debug register support in x86-64 exception handling, and DirectWrite anti-aliasing improvements.
Пока можете перенести 32 битные exe файлы, чтобы работать в Wine. Надеемся, что с новой версией Wine будет доступна нормальная 64 битная версия.
х32 не имею, так что пока жду и надеюсь сидя на старом билде 1495 :(
Еще не успели.
когда тиковый таймфрейм сделаете?
На мой вопрос — сделают ли возможность в метатрейдере выставлять заявки по облигациям (хотя ОФЗ) или возможность в квике из выставлять — они переадресовывают к разработчику метатрейдера…
___
Пожалуйста сделайте возможность переименовывать
символы прямо в списке, что бы контракт на золото
можно было просто назвать GOLD для удобности и тд. а не имя контракта… или даже на русском написать ЗОЛОТО — август… и понимать что и где если контрактов много разных ..
в истории и открытых сделках конечно хранить
всё как есть на самом деле ...
__
___
Обзор рынка -
разрешите отключать столбы bid\ask
оставлять лишь «последняя»
=====
Торговля -
разрешите отключать столбик «тикет»(просто номера ордеров не несущие никакой ценной инфы) и цену-2 — т.е. текущую
цену… — если нужно её я как бы на графике смогу увидеть…или в списке символов... а так лишнее место… (кому нужно для
скриншотов например — включат)
===
Добавьте если можно параметр! -
Прибыль в %ентах от баланса депозита
(в отображении)
----------
Столбик "ПРИБЫЛЬ при ТП" -
те общий подсчёт прибыли в случае
срабатывания у всех открытых
позиций уровня ТП