MetaQuotes Software
MetaQuotes Software Блог компании MetaQuotes Software
05 сентября 2017, 13:01

Создание и тестирование пользовательских символов в MetaTrader 5

У нас хорошая новость — пользовательские/кастомные символы в MetaTrader 5 дали новые возможности для разработки торговых систем и анализа любых финансовых рынков.

Теперь трейдеры могут строить графики и тестировать торговые стратегии на неограниченном количестве финансовых инструментов. Для этого достаточно создать свой собственный символ на основе тиковой или минутной истории, и вы можете тестировать на нем любого торгового робота из Маркета или библиотеки бесплатных кодов.

По сути, целый класс чистых аналитических систем типа AmiBroker, Wealthlab, Multicharts и тд теряют свою привлекательность. Любой анализ теперь можно делать бесплатно. Причем с каждой версией мы расширяем объем функционала и удобства.

Создание пользовательского символа

Покажем, как создать свой собственный символ на основе уже существующего в Обзоре рынка. Откройте правой кнопкой мышки окно Символы и выберите тот, на основе которого вы хотите создать свой собственный.

Создание и тестирование пользовательских символов в MetaTrader 5

После нажатии кнопки «Создать символ» вам останется только задать имя пользовательского символа и, при необходимости, изменить нужные свойства в Спецификации контракта.

Создание и тестирование пользовательских символов в MetaTrader 5

Все пользовательские символы помещаются в дереве Символов в отдельную директорию <Custom> и всегда находятся в своем разделе, независимо от брокера, к которому вы в данный момент подключены.

Сами ценовые данные пользовательских символов сохраняются в отдельном каталоге Custom, вне каталогов конкретных торговых серверов:

C:\Users\[windows account]\AppData\Roaming\MetaQuotes\Terminal\[instance id]\bases\Custom

В этом еще один плюс создания собственного символа — вы можете просто копировать нужные вам символы от каждого брокера в свою пользовательскую группу. Удалять пользовательский символ можно только в том случае, если по нему нет открытых графиков и он не присутствует в Обзоре рынка. Одним словом, всё как у настоящих символов.

 

Настройка собственного символа

Вы можете менять точность котировок, размер контракта, задавать валюты инструмента, способ расчетов и все остальные свойства, которые влияют на результаты тестирования торговой стратегии по пользовательскому символу.

Создание и тестирование пользовательских символов в MetaTrader 5

Импорт истории

После создания собственного инструмента необходимо добавить для него историю котировок. Покажем сначала как создать историю на основе уже существующего инструмента.

В окне Символы выбираем вкладку Бары или Тики, в зависимости от того, в каком виде мы хотим подготовить историю. Делаем запрос за нужный период и производим Экспорт.

Для получения баров необходимо выбрать таймфрейм M1, так как вся история в MetaTrader 5 строится на минутных данных.

Создание и тестирование пользовательских символов в MetaTrader 5

Экспорт производится в виде текстового CSV-файла с именем вида EURUSD_M1_201701020000_201707251825.csv, которое содержит имя символа, название таймфрейма и границы экспортированной истории с точностью до минуты.

Вот как выглядит формат при экспорте баров:

<DATE>	        <TIME>	        <OPEN>	<HIGH>	<LOW>	<CLOSE>	<TICKVOL><VOL>	     <SPREAD>
2017.01.02	00:03:00	1.05141	1.05141	1.05141	1.05141	6	15000000	118
2017.01.02	00:04:00	1.05141	1.05141	1.05141	1.05141	2	5000000	        112
2017.01.02	00:05:00	1.05158	1.05158	1.05148	1.05158	10	17000000	101
2017.01.02	00:06:00	1.05148	1.05158	1.05148	1.05158	7	13000000	101

При экспорте тиковой истории объем CSV-файла существенно возрастает, и его формат содержит уже информацию о каждом тике с точностью до миллисекунды.

На основе этих данных терминал сформирует минутную историю, по которой потом будут строиться все остальные таймфреймы.

<DATE>          <TIME>          <BID>   <ASK>   <LAST>  <VOLUME>
2017.07.03      00:03:47.212    1.14175 1.14210 0.00000 0       
2017.07.03      00:03:47.212    1.14168 1.14206 0.00000 0       
2017.07.03      00:03:47.717    1.14175 1.14206 0.00000 0       
2017.07.03      00:03:54.241    1.14175 1.14205 0.00000 0       
2017.07.03      00:03:57.982    1.14165 1.14201 0.00000 0       
2017.07.03      00:04:07.795    1.14175 1.14201 0.00000 0       
2017.07.03      00:04:55.432    1.14164 1.14200 0.00000 0       
2017.07.03      00:14:33.743    1.14173 1.14203 0.00000 0       
2017.07.03      00:14:33.743    1.14173 1.14201 0.00000 0       
2017.07.03      00:16:44.901    1.14174 1.14195 0.00000 0       

Следовательно, при создании истории для собственного инструмента из каких-либо сторонних источников вам необходимо подготовить данные в соответствии с показанными форматами.

Для импорта истории делаем аналогичные шаги — в папке Custom\<Пользовательская_группа> находим наш пользовательский символ EURUSD_my, переходим на вкладку Тики, выбираем нужный CSV-файл и жмем кнопку «Импортировать тики» (для импорта баров всё аналогично).

Создание и тестирование пользовательских символов в MetaTrader 5

После импорта истории вы можете её редактировать — добавлять, удалять или изменять любые бары и тики.

Созданные пользовательские символы становятся доступными в Обзоре рынка, и по ним можно открывать графики.

Таким образом, на собственных символах можно применить весь богатый арсенал технического анализа терминала MetaTrader 5, включая запуск любых пользовательских индикаторов и аналитических продуктов из Маркета.

Тестирование стратегий на пользовательском символе

Многопоточный тестер стратегий MetaTrader 5 позволяет тестировать на реальных тиках стратегии, торгующие на многих финансовых инструментах. Воспользуйтесь всеми его преимуществами для тестирования стратегий на собственных символах.

Для этого достаточно импортировать качественную минутную (а лучше тиковую) историю и настроить свойства для каждого инструмента, необходимого для детального воссоздания торгового окружения. После этого просто выберите нужного эксперта и задайте настройки тестирования.

Всё делается так же, как и с обычными торговыми символами, которые предоставляет ваш брокер.

Создание и тестирование пользовательских символов в MetaTrader 5

При этом важно обеспечить для тестера все необходимые символы, которые могут понадобиться для расчета маржинальных требований и прибыли в валюте вашего торгового счета.

При расчете маржи и прибыли тестер стратегий автоматически использует доступные кросс-курсы. Например, мы создали собственный символ AUDCAD.custom с типом расчета маржи Forex, и валюта нашего счета — USD.

Тогда на основе имени форексного инструмента тестер ищет необходимые символы в следующем порядке:

  1. сначала ищутся символы вида AUDUSD.custom (для расчёта маржи) и USDCAD.custom (для расчёта прибыли по сделкам)
  2. затем, если какого-то из этих инструментов нет, ищется первый символ, который соответствует по имени необходимым валютным парам  — AUDUSD и USDCAD соответственно. Например, найдены AUDUSD.b и USDCAD.b — значит, именно курсы этих инструментов будут использоваться при расчетах маржи и прибыли.
Для инструментов с остальными типами расчета маржи (CFD, Futures, Stock Exchange) необходимо наличие валютной пары для пересчета валюты инструмента в валюту депозита.

Например, мы создали собственный символ с валютой прибыли и валютой маржи, выраженными в британских функтах (GBP), а валютой депозита является швейцарский франк (CHF).

Тогда поиск инструментов для тестирования ведется в следующем порядке:
  1. Проверяется наличие торгового инструмента, соответствующего валютной паре GBPCHF (GBP vs CHF).
  2. Если он отсутствует, то ищется первый торговый инструмент, который соответствует по имени валютной паре GBPCHF, например GBPCHF.b или GBPCHF.def.

При тестировании на собственных инструментах убедитесь, что на торговом счете доступны все необходимые валютные пары для расчетов.

В противном случае расчет финансовых результатов и залоговых требований при тестировании будет невозможен.

Оптимизация на пользовательском символе в локальной сети

Для оптимизации торговых стратегий на пользовательских символах можно помимо собственных агентов задействовать агентов из локальной сети и удаленных агентов. Таким образом, вы сможете использовать еще одно преимущество тестера стратегий MetaTrader 5 и сократить время на поиски оптимальных параметров вашей торговой системы.

Использование MQL5 Cloud Network для оптимизации на собственных символах не разрешено. Это связано с тем, что на компьютерах разных трейдеров могут находиться пользовательские символы с одинаковыми именами, но разными ценовыми историями.

Это может привести не только к расхождению результатов тестирования между отдельными агентами сети, но и к массовым перезакачкам и синхронизации исторических данных, создавая избыточный интернет-трафик.

Функции для работы с пользовательскими символами

Работать с собственными символами можно и помощью языка MQL5,  для этого служат функции из раздела Пользовательские символы. С помощью MQL5-программы можно быстро создавать нужные вам финансовые инструменты с заданными свойствами на основе данных из сторонних источников.

Таким образом, вы можете автоматизировать и рутинные операции по сбору и подготовке исторических данных для любых символов, а также создавать свои собственные индексы и другие производные инструменты с возможностью проверки в тестере стратегий MetaTrader 5.

Где скачать MetaTrader 5

Получить доступ ко всем возможностями можно за 1 минуту, бесплатно и без регистраций https://www.metatrader5.com/ru/download
53 Комментария
  • Artemunak
    05 сентября 2017, 13:14
    из статьи не понял: если из внешней программы обновлять csv файл то можно торговать по сигналам такого символа? или они только для тестирования?
    и второй вопрос — а обязательно иметь именно минутки если интересует только торговля не ниже часовиков? Если да то это недоработка.  
  • Sergey
    05 сентября 2017, 13:27
    Интересует один брокер, готов предоставить FIX подключение за плату. Можно ли подключаться напрямую к серверу минуя ваш терминал? Или только через брокерские FIX гейты?
  • mr lab
    05 сентября 2017, 14:10
    MetaQuotes Software
    Подскажите
    1. Когда с опционами на счете (фортс) можно будет использовать терминал?
    2. Мув на срочном рынке будет за одну транзакцию?
    3. На срочном рынке у меня стоп сработал однажды по цене в стакане, а не цене сделки. После этого я терминалом не пользовался. Для ММВБ это настраивается? в 19-00 стаканы очищаются, есть шанс вылететь по стопу.
    4. Будет кнопка — удалить все заявки  (все, все по инструменту, для мобильной версии )?

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн