Полностью заменяет ценовую историю пользовательского инструмента в указанном временном интервале данными из массива типа MqlTick |
Очень дорого в скрипте выходит создание тикового клона старого символа с уже закачанной тиковой историей. CopyTicks работает совсем не мгновенно.
2017.09.04 11:52:40.139 Tester EURCHF_custom: history data begins from 2017.07.25 00:00Добавил истории, бестолку
2017.09.04 11:57:50.498 Tester EURCHF_custom: history data begins from 2017.06.13 00:00
Пробую бэктест (в любом режиме) с 1-го августа, вываливается ошибкаДобавил истории, бестолку
Какой таймфрейм для тестирования задан? Статья Основы тестирования в MetaTrader 5 говорит, что необходимо 100 баров:
Агент тестирования закачивает только недостающую историю с небольшим запасом, чтобы обеспечить необходимые данные на истории для расчета индикаторов на момент начала тестирования. Минимальный объем истории при скачивании с торгового сервера для таймфреймов D1 и меньше составляет один год. Таким образом, если запускается тестирование на интервале 2010.11.01-2010.12.01 (тестирование на интервале в один месяц) с периодом M15 (каждый бар равен 15 минутам), то у терминала будет запрошена история по инструменту за весь 2010 год. Для таймфреймов Weekly будет запрошена история в 100 баров, что составляет примерно два года (в году 52 недели). Для тестирования на месячном таймфрейме Monthly агент запросит историю за 8 лет (12 месяцев * 8 лет = 96 месяцев).
Какой таймфрейм для тестирования задан? Статья Основы тестирования в MetaTrader 5 говорит, что необходимо 100 баров:
M1. Использовал этот скрипт для создания символа.
Помимо EURCHF_custom создал EURUSD_custom. И бэктест по EURCHF пошел, при этом подтягивая данные из EURUSD_custom.
Думал, что после удаления EURUSD_custom бэктест не пойдет, ан нет. Теперь работает.
Зачем нужно было создавать EURUSD_custom, а затем удалять его, чтобы тестер заработал - не ясно.
ЗЫ Баг.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
fxsaber, 2017.09.04 13:54
Считает то правильно новый кросс - не конвертирует прибыль. Да вот только зачем-то тянет за собой мажор, когда он нигде не используется
2017.09.04 14:46:43.062 Core 1 EURCHF_custom: generate 975389 ticks in 0:00:00.063, passed to tester 3210 ticks 2017.09.04 14:46:43.062 Core 1 EURUSD: generate 979976 ticks in 0:00:00.062, passed to tester 8696 ticks
Помимо EURCHF_custom создал EURUSD_custom. И бэктест по EURCHF пошел, при этом подтягивая данные из EURUSD_custom.
Думал, что после удаления EURUSD_custom бэктест не пойдет, ан нет. Теперь работает.
Зачем нужно было создавать EURUSD_custom, а затем удалять его, чтобы тестер заработал - не ясно.
Вы же не приводите всех деталей - валюту счета, валюту прибыли. Раз тестер пытается получить историю по каким-то символам, значит эти символы требуются ему для расчетов.
Вы же не приводите всех деталей - валюту счета, валюту прибыли. Раз тестер пытается получить историю по каким-то символам, значит эти символы требуются ему для расчетов.
Интересно, что настоящий EURCHF валюту прибыли имеет CHF, валюту маржи EUR и базовую валюту EUR.
И получается в тестере какой-то парадокс. Он должен вычислить, сколько EUR (базовая валюта) входит в лот, затем конвертировать это количество в EUR (валюта маржи) - здесь только повезло с коэффициентом (EUR/EUR = 1). После этого Маржу он должен перевести в USD (валюта счета) и посмотреть, хватает ли ее. При вычислении профита, он должен сконвертировать CHF (валюта прибыли) в USD (валюта счета).
Итого, при самом худшем раскладе тестер должен делать аж три конвертации (если соответствующие мажоры имеются). И тянуть, конечно, дополнительно ТРИ мажора к кроссу, по которому идет тест!
Вы тестируете форексные инструменты в режиме именно форекса/кросскурсов. Поэтому требования в рыночному окружению такие же.
В вопросах приводите сразу полные логи, а не вырванные строчки, пожалуйста.
Не понял.
Приложил.
Согласно логам, валюта депозита = USD, тестирование идет на символе EURCHF. Тестеру для расчета маржи необходимы котировки EURUSD или USDEUR.
2017.09.04 15:26:30.999 Tester EURCHF_custom: history data begins from 2017.06.13 00:00 2017.09.04 15:26:31.000 Core 1 agent process started 2017.09.04 15:26:31.442 Core 1 connecting to 127.0.0.1:3000 2017.09.04 15:26:31.442 Core 1 connected 2017.09.04 15:26:31.448 Core 1 authorized (agent build 1653) 2017.09.04 15:26:31.452 Tester EURCHF_custom,M1 (MetaQuotes-Demo): testing of Experts\Test.ex5 from 2017.08.01 00:00 to 2017.08.15 00:00 2017.09.04 15:26:31.468 Core 1 common synchronization completed 2017.09.04 15:26:31.529 Tester quality of analyzed history is 100% 2017.09.04 15:26:31.683 Core 1 MetaTester 5 started on 127.0.0.1:3000 2017.09.04 15:26:31.683 Core 1 initialization finished 2017.09.04 15:26:31.683 Core 1 login (build 1653) 2017.09.04 15:26:31.683 Core 1 38520 bytes of account info loaded 2017.09.04 15:26:31.683 Core 1 1482 bytes of tester parameters loaded 2017.09.04 15:26:31.683 Core 1 2748 bytes of input parameters loaded 2017.09.04 15:26:31.683 Core 1 4356 bytes of symbols list loaded 2017.09.04 15:26:31.683 Core 1 expert file added: Experts\Test.ex5. 446309 bytes loaded 2017.09.04 15:26:31.683 Core 1 initial deposit 10000000.00 USD, leverage 1:500 2017.09.04 15:26:31.683 Core 1 successfully initialized
Он их ищет среди доступных символов и находит EURUSD, происходит закачивание и синхронизация
2017.09.04 15:26:31.683 Core 1 EURUSD: symbol to be synchronized 2017.09.04 15:26:31.683 Core 1 EURUSD: symbol synchronized, 3464 bytes of symbol info received 2017.09.04 15:26:31.683 Core 1 EURUSD: load 27 bytes of history data to synchronize in 0:00:00.000 2017.09.04 15:26:31.683 Core 1 EURUSD: history synchronized from 2016.01.04 to 2017.08.15
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Опубликована статья Создание и тестирование пользовательских символов в MetaTrader 5:
Возможность создавать собственные символы открывает новые горизонты в разработке торговых систем. Теперь трейдеры могут строить графики и тестировать торговые стратегии на неограниченном количестве финансовых инструментов.
Создание пользовательского символа
Покажем, как создать свой собственный символ на основе уже существующего в Обзоре рынка. Откройте правой кнопкой мышки окно Символы и выберите тот, на основе которого вы хотите создать свой собственный.
После нажатии кнопки "Создать символ" вам останется только задать имя пользовательского символа и, при необходимости, изменить нужные свойства в Спецификации контракта.
Все пользовательские символы помещаются в дереве Символов в отдельную директорию <Custom> и всегда находятся в своем разделе, независимо от брокера, к которому вы в данный момент подключены. Сами ценовые данные пользовательских символов сохраняются в отдельном каталоге Custom, вне каталогов конкретных торговых серверов:
C:\Users\[windows account]\AppData\Roaming\MetaQuotes\Terminal\[instance id]\bases\Custom
Автор: MetaQuotes Software Corp.