Создание и тестирование пользовательских символов в MetaTrader 5
Появление пользовательских символов в MetaTrader 5 открывает новые возможности для разработки торговых систем и анализа любых финансовых рынков. Теперь трейдеры могут строить графики и тестировать торговые стратегии на неограниченном количестве финансовых инструментов. Для этого достаточно создать свой собственный символ на основе тиковой или минутной истории, и вы можете тестировать на нем любого торгового робота из Маркета или библиотеки бесплатных кодов.
Создание пользовательского символа
Покажем, как создать свой собственный символ на основе уже существующего в Обзоре рынка. Откройте правой кнопкой мышки окно Символы и выберите тот, на основе которого вы хотите создать свой собственный.
После нажатии кнопки "Создать символ" вам останется только задать имя пользовательского символа и, при необходимости, изменить нужные свойства в Спецификации контракта.
Все пользовательские символы помещаются в дереве Символов в отдельную директорию <Custom> и всегда находятся в своем разделе, независимо от брокера, к которому вы в данный момент подключены. Сами ценовые данные пользовательских символов сохраняются в отдельном каталоге Custom, вне каталогов конкретных торговых серверов:
C:\Users\[windows account]\AppData\Roaming\MetaQuotes\Terminal\[instance id]\bases\Custom
В этом еще один плюс создания собственного символа — вы можете просто копировать нужные вам символы от каждого брокера в свою пользовательскую группу. Удалять пользовательский символ можно только в том случае, если по нему нет открытых графиков и он не присутствует в Обзоре рынка. Одним словом, всё как у настоящих символов.
Настройка собственного символа
Вы можете менять точность котировок, размер контракта, задавать валюты инструмента, способ расчетов и все остальные свойства, которые влияют на результаты тестирования торговой стратегии по пользовательскому символу.
Импорт истории
После создания собственного инструмента необходимо добавить для него историю котировок. Покажем сначала как создать историю на основе уже существующего инструмента. В окне Символы выбираем вкладку Бары или Тики, в зависимости от того, в каком виде мы хотим подготовить историю. Делаем запрос за нужный период и производим Экспорт. Для получения баров необходимо выбрать таймфрейм M1, так как вся история в 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 позволяет тестировать на реальных тиках стратегии, торгующие на многих финансовых инструментах. Воспользуйтесь всеми его преимуществами для тестирования стратегий на собственных символах. Для этого достаточно импортировать качественную минутную (а лучше тиковую) историю и настроить свойства для каждого инструмента, необходимого для детального воссоздания торгового окружения. После этого просто выберите нужного эксперта и задайте настройки тестирования. Всё делается так же, как и с обычными торговыми символами, которые предоставляет ваш брокер.
При этом важно обеспечить для тестера все необходимые символы, которые могут понадобиться для расчета маржинальных требований и прибыли в валюте вашего торгового счета. При расчете маржи и прибыли тестер стратегий автоматически использует доступные кросс-курсы. Например, мы создали собственный символ AUDCAD.custom с типом расчета маржи Forex, и валюта нашего счета — USD. Тогда на основе имени форексного инструмента тестер ищет необходимые символы в следующем порядке:
- сначала ищутся символы вида AUDUSD.custom (для расчёта маржи) и USDCAD.custom (для расчёта прибыли по сделкам)
- затем, если какого-то из этих инструментов нет, ищется первый символ, который соответствует по имени необходимым валютным парам — AUDUSD и USDCAD соответственно. Например, найдены AUDUSD.b и USDCAD.b — значит, именно курсы этих инструментов будут использоваться при расчетах маржи и прибыли.
- Проверяется наличие торгового инструмента, соответствующего валютной паре GBPCHF (GBP vs CHF).
- Если он отсутствует, то ищется первый торговый инструмент, который соответствует по имени валютной паре GBPCHF, например GBPCHF.b или GBPCHF.def.
При тестировании на собственных инструментах убедитесь, что на торговом счете доступны все необходимые валютные пары для расчетов. В противном случае расчет финансовых результатов и залоговых требований при тестировании будет невозможен.
Оптимизация стратегий на пользовательском символе в локальной сети
Для оптимизации торговых стратегий на пользовательских символах можно помимо собственных агентов задействовать агентов из локальной сети и удаленных агентов. Таким образом, вы сможете использовать еще одно преимущество тестера стратегий MetaTrader 5 и сократить время на поиски оптимальных параметров вашей торговой системы.
Использование MQL5 Cloud Network для оптимизации на собственных символах не разрешено. Это связано с тем, что на компьютерах разных трейдеров могут находиться пользовательские символы с одинаковыми именами, но разными ценовыми историями. Это может привести не только к расхождению результатов тестирования между отдельными агентами сети, но и к массовым перезакачкам и синхронизации исторических данных, создавая избыточный интернет-трафик.
Функции для работы с пользовательскими символами
Работать с собственными символами можно и помощью языка MQL5, для этого служат функции из раздела Пользовательские символы. С помощью MQL5-программы можно быстро создавать нужные вам финансовые инструменты с заданными свойствами на основе данных из сторонних источников. Таким образом, вы можете автоматизировать и рутинные операции по сбору и подготовке исторических данных для любых символов, а также создавать свои собственные индексы и другие производные инструменты с возможностью проверки в тестере стратегий MetaTrader 5.
Функция | Действие |
Создает пользовательский символ с указанным именем в указанной группе | |
Удаляет пользовательский символ с указанным именем | |
Устанавливает для пользовательского символа значение свойства целочисленного типа | |
Устанавливает для пользовательского символа значение свойства вещественного типа | |
Устанавливает для пользовательского символа значение свойства строкового типа | |
Устанавливает для пользовательского символа коэффициенты взимания маржи в зависимости от типа и направления ордера | |
Устанавливает время начала и время окончания указанной котировочной сессии для указанных символа и дня недели | |
Устанавливает время начала и время окончания указанной торговой сессии для указанных символа и дня недели | |
Удаляет все бары в указанном временном интервале из ценовой истории пользовательского инструмента | |
Полностью заменяет ценовую историю пользовательского инструмента в указанном временном интервале данными из массива типа MqlRates | |
Добавляет в историю пользовательского инструмента отсутствующие бары и заменяет существующие бары данными из массива типа MqlRates | |
Удаляет все тики в указанном временном интервале из ценовой истории пользовательского инструмента | |
Полностью заменяет ценовую историю пользовательского инструмента в указанном временном интервале данными из массива типа MqlTick |
Тестируйте торговые идеи на любых символах в MetaTrader 5!
Для алготрейдеров платформа MetaTrader 5 предлагает самые широкие возможности. Вот лишь некоторые из них:
- 84 встроенных инструмента технического анализа,
- многопоточный тестер стратегий с подключением 20 000 агентов из MQL5 Cloud Network,
- асинхронные торговые операции в пределах одной (!) миллисекунды на исполнение,
- 4000 бесплатных примеров в исходных кодах,
- MetaEditor с отладкой и профилировкой.
Трейдерам доступны все преимущества терминала MetaTrader 5 даже на тех инструментах, которых еще нет у брокера. Создавайте свои собственные символы и проверяйте торговые стратегии на любых финансовых рынках!
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Прошу пояснить, почему удаляются тики пользовательского символа, записанные с помощью CustomTicksAdd() или CustomTicksReplace(), после перезагрузки терминала.
1881 build, вроде, без этого бага.
1881 build, вроде, без этого бага.
Как раз на 1881 удаляются
Как раз на 1881 удаляются
Не проверял это решение:
Forum on trading, automated trading systems and testing trading strategies
Imported Tick Data is Removed on Start-up
ludoz, 2018.08.04 01:44
For everyone that need a solution, here is one:
Go to the folder where ticks are saved and remove the permissions to delete the folder or the file inside of it.
Problem solved..
Для подобного инструмента есть решения по добавке через "Создание пользовательского символа":
https://www.google.com/finance/quote/TSLA:NASDAQ
и
https://www.google.com/finance/quote/BTC-USD
Благодарю!
Вадим С