Обсуждение статьи "Создание и тестирование пользовательских символов в MetaTrader 5" - страница 2

 
Rashid Umarov:

Согласно логам, валюта депозита = USD, тестирование идет на символе EURCHF.  Тестеру для расчета маржи необходимы котировки EURUSD или USDEUR.

Он их ищет среди доступных символов и находит EURUSD, происходит закачивание и синхронизация

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

 
fxsaber:

 А от названия кастомного символа ничего не должно зависеть уж точно.

Читайте внимательно статью

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

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

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

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

 
Rashid Umarov:

Читайте внимательно статью

На это обратил внимание сразу при первом прочтении статьи. Для тестера понятия "Базовая валюта символа", "Валюта маржи символа" и "Валюта прибыли символа" пустой звук?

Мне захотелось протеститировать XXXYY-кастомный символ - да, именно с таким названием. Это клон EURUSD-символа. Т.е. все валюты символа заданы четко.

И что теперь должен быть отказ в тестировании на основании лишь того, что название не по душе?!

Все настройки символа содержатся в его свойствах, а не в названии.

Как заставить EURCHF_custom символ воспринимать свои четко заданные настройки, а не игнорировать их, смотря только на название?

Изменил Способ расчета с Forex на Futures, результат

2017.09.05 11:25:03.448 Tester  EURCHF_custom: history data begins from 2017.07.26 00:00
2017.09.05 11:25:03.448 Tester  EURUSD: history data begins from 1981.01.02 00:00
2017.09.05 11:25:03.548 Tester  USDCHF: preliminary downloading of M1 history started
2017.09.05 11:25:05.472 Tester  USDCHF: 20% history downloaded
2017.09.05 11:25:07.102 Tester  USDCHF: 31% history downloaded
2017.09.05 11:25:08.023 Tester  USDCHF: 40% history downloaded
2017.09.05 11:25:09.761 Tester  USDCHF: 54% history downloaded
2017.09.05 11:25:10.576 Tester  USDCHF: 61% history downloaded
2017.09.05 11:25:12.310 Tester  USDCHF: 75% history downloaded
2017.09.05 11:25:13.128 Tester  USDCHF: 82% history downloaded
2017.09.05 11:25:14.871 Tester  USDCHF: 95% history downloaded
2017.09.05 11:25:15.685 Tester  USDCHF: preliminary downloading of M1 history completed in 0:12.231
2017.09.05 11:25:15.685 Tester  USDCHF: history data begins from 2015.12.14 00:00
2017.09.05 11:25:15.685 Core 1  agent process started

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

 
Многие настройки исполнения зависят от Пользовательской группы символа. Как ее задать?
 

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Библиотеки: Symbol

fxsaber, 2017.09.20 07:31

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


Возможно, нужно запрещать Маркет-советникам бэктест на кастомных символах...

 

Если нужно создать полную интерактивную копию символа, то пробрасывать тики через CustomTicksAdd нужно только через индикаторы (не пропускают тики)?

Сервисы будут пропускать тики, как и советники?

 
Не хватает такого функционала
// Пробрасывает стакан, вызывая BookEvent-событие на кастомном символе
bool  CustomMarketBookSet( 
   const string        symbol,     // символ 
   const MqlBookInfo&  book[]      // ссылка на массив
   );
Формирую синтетические стаканы. Хочется работать с ними, как с обычными.
 

Форекс это хорошо, но я так и не понял, как заставить тестер работать с фьючерсом Si на MOEX!?

Историю и настройки инструмента скопировал с оригинала, а на выходе пустой выхлоп.

Вот так выглядит лог - не знаю, как его интерпритировать

2017.10.14 21:23:55.365 2017.10.01 00:00:00   Si-12.17_custom has type Exchange Execution. The execution policy is set - Return
2017.10.14 21:23:55.368 Si-12.17_custom,M5: history cache allocated for 133714 bars and contains 1131 bars from 2017.09.21 10:00 to 2017.09.29 23:45
2017.10.14 21:23:55.368 Si-12.17_custom,M5: history begins from 2017.09.21 10:00
2017.10.14 21:23:55.372 Si-12.17_custom,Daily: history cache allocated for 464 bars and contains 7 bars from 2017.09.21 00:00 to 2017.09.29 00:00
2017.10.14 21:23:55.372 Si-12.17_custom,Daily: history begins from 2017.09.21 00:00
2017.10.14 21:23:55.375 Si-12.17_custom,H1: history cache allocated for 11142 bars and contains 98 bars from 2017.09.21 10:00 to 2017.09.29 23:00
2017.10.14 21:23:55.376 Si-12.17_custom,H1: history begins from 2017.09.21 10:00
2017.10.14 21:23:55.377 BR Splice: symbol to be synchronized
2017.10.14 21:23:55.377 BR Splice: symbol synchronized, 3624 bytes of symbol info received
2017.10.14 21:23:55.377 BR Splice: history synchronization started
2017.10.14 21:23:55.379 BR Splice: load 33 bytes of history data to synchronize in 0:00:00.000
2017.10.14 21:23:55.379 BR Splice: history synchronized from 2015.01.05 to 2017.10.13
2017.10.14 21:23:55.538 BR Splice,Daily: history cache allocated for 464 bars and contains 440 bars from 2016.01.04 00:00 to 2017.09.29 00:00
2017.10.14 21:23:55.539 BR Splice,Daily: history begins from 2016.01.04 00:00
2017.10.14 21:23:55.661 Si-12.17_custom,H4: history cache allocated for 2785 bars and contains 28 bars from 2017.09.21 08:00 to 2017.09.29 20:00
2017.10.14 21:23:55.661 Si-12.17_custom,H4: history begins from 2017.09.21 08:00
2017.10.14 21:23:55.856 BR Splice,H4: history cache allocated for 2785 bars and contains 1759 bars from 2016.01.04 08:00 to 2017.09.29 20:00
2017.10.14 21:23:55.856 BR Splice,H4: history begins from 2016.01.04 08:00
 

Приветствую!
Делаю синтетический индекс на основе линейной свёртки нескольких инструментов. (SYMBOL1*X1+SYMBOL2*X2+....SYMBOLn*Xn).
Планировал визуализировать через индикатор, но наткнулся на пользовательские символы, полагаю, это будет куда удобнее для восприятия.
Делаю через тиковые функции (CustomTicksUpdate).

Не получается заставить пользовательский символ "тикать", нет ли где-нибудь примера реализации данной задачи именно через тиковые данные?

Я делаю очень просто: Создал символ, и дальше в скрипте

   MqlTick tick[];
   ArrayResize(tick, 1);
   tick[0].ask=indexAsk;
   tick[0].bid=indexBid;
   tick[0].flags=TICK_FLAG_BID|TICK_FLAG_ASK;
//---
   CustomTicksUpdate("ARBINDEX",tick);

Где indexAsk и indexBid мои расчётные цены. 
Я полагал, что запускай я этот скрипт на любом инструменте несколько раз, я буду формировать уже какую-то историю котировок на моём символе, но там "Ожидание обновления".
Мой билд: 1643
Буду благодарен за помощь.

 
bistreevseh:

Мой билд: 1643

Берите 1653 (там существенные изменения по данной теме) и, если не получится, напишите здесь.

Причина обращения: