Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
А мне интересно, зачем кастомные символы нужны?
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
АЛЬТЕРНАТИВНЫЕ ПРОГРАММЫ ТЕСТИРОВАНИЯ MQL5?
fxsaber, 2016.12.16 15:50
Некоторые вещи реализованы в этой ветке.
В MT5-тестере, как правило (форекс, например), лимитные ордера имеют положительное проскальзывание, что приводит к самообману (иногда даже в виде тестерных граалей на реальных тиках!)
Но есть возможность обойти эту особенность Тестера. Ниже подробная инструкция, как это сделать.
1. Если исходный символ (открытого графика) не кастомный или счет хеджевый, запустить на графике символа этот скрипт
2. Если счет хеджевый (присутствует слово Hedge в заголовке окна Терминала), зайти на любой неттинговый счет (например, MetaQuotes-Demo) и перезагрузить Терминал.
3. На текущем чарте запустить уже этот скрипт
4. Выбираем в Тестере полученный кастомный символ
Теперь лимитные ордера скользить не будут!
Выше причина, почему биржевой кастомный символ - это хорошо. Однако, если требуется реализовать это
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Пиши и зарабатывай на MQL5
fxsaber, 2018.09.10 14:25
"Критерии для принудительного обрыва прохода Оптимизации".
Вызываем ExpertRemove, когда настало соответствующее событие. Тем самым значительно ускоряем Оптимизацию.
Особенно актуально для кастомных символов, т.к. там сделки совершаются и при отрицательном балансе.
то простым ExpertRemove не обойтись, т.к. идет принудительное закрытие текущих позиций по нулевой last-цене в случае, если по ней нет данных в кастомных символах (чаще всего).
Поэтому, чтобы все же выйти из бэктеста без кочерги, нужно перед ExpertRemove сделать следующее
Заметьте, что закрытие на текущем тике будет только на неттинге (где и реализуется исходная задача убрать проскальзывания лимитных ордеров), т.к.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Библиотеки: Symbol
fxsaber, 2018.04.06 16:43
лимитные ордера по текущей цене на биржевых символах Неттинг-счетов будут исполняться (и в Тестере) сразу, не дожидаясь следующего тика.
Обратите внимание, важен не просто биржевой символ, но и неттинговый счет. Например, можно взять MOEX-символ на Hedge-MQ-Demo, но он не будет исполняться так (и в Тестере), как на том же Netting-MQ-Demo.
Это одна из причин, почему бэктесты на тех же полностью идентичных MOEX-символах могут отличаться, в зависимости от типа счета.
Поэтому иногда нужно дожидаться следующего тика.
Вот такие пляски.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Библиотеки: Symbol
fxsaber, 2018.04.07 22:37
Итог
По реальным тикам количество тиков уменьшилось в 16 раз (самый легкий фильтр), скорость Оптимизации выросла в 14 раз, качество не пострадало совсем (анализ, что сюда не вошел). Конечно, подобное можно проделать только при написании ТС определенным образом. В частности, с отсутствием анализа баров.
Предыдущее бесплатное универсальное ускорение давало рост лишь в два раза. Текущее - тоже бесплатное (качество не страдает), но менее универсальное. Однако, отдача более, чем на порядок. Теперь Оптимизирую ТС только так. Не ошибся.
Раз тема касается ускорения, то вот еще один рецепт ускорения
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Ошибки, баги, вопросы
fxsaber, 2018.09.11 17:15
Tester папку перенес на 5Gb RAMDisk и в MT5-директории выполнил
Теперь SSD спит спокойно, Оптимизация стала в ~1.5 раза (на глаз) быстрее, бесплатно!
Заодно SSD не убивается.
простым ExpertRemove не обойтись, т.к. идет принудительное закрытие текущих позиций по нулевой last-цене в случае, если по ней нет данных в кастомных символах (чаще всего).
Вот такие пляски.
Костыли еще и в другом
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Ошибки, баги, вопросы
fxsaber, 2018.09.12 18:30
На видео
биржевой инструмент на реальных тиках. Бары строятся по Bid, ласт-данных нет, открыта BUY-позиция. Хорошо видно, что текущая цена закрытия позиции
равна постоянно нулю, несмотря на то, что Bid вовсю меняется. Как объяснить Тестеру, что биржевой символ должен закрывать BUY-позицию по Bid? Сейчас даже эквити не вычисляется.
Поэтому пока единственное решение - ласты делать (Bid+Ask)/2.
Раз тема касается ускорения
Проход Тестера "по реальным тикам" за три месяца (8 млн тиков) занимает 100 мс (4000 OrderSend, 800 сделок + логика EA). Рецепт - кастомные символы.
Спасибо за код. На его основе наваял кое-что себе... Правда немного подправил метод клонирования, чтобы можно было загружать какой-то определённый участок истории. Иначе, если тиков очень много, то отъедает много оперативки.
немного подправил метод клонирования, чтобы можно было загружать какой-то определённый участок истории. Иначе, если тиков очень много, то отъедает много оперативки.
Обновил с учетом Вашего замечания, Спасибо.
Ещё создал себе 2 метода, позволяющие загрузить кастомную историю из файла . Допустим, есть 2 файла с тиками и минутками. Стоит задача подгрузить их в базу тиков и котировок выбранного символа.
Ещё создал себе 2 метода, позволяющие загрузить кастомную историю из файла . Допустим, есть 2 файла с тиками и минутками. Стоит задача подгрузить их в базу тиков и котировок выбранного символа.
Так формат не определен же в общем случае.
Так формат не определен же в общем случае.
Да, но над этим нужно подумать. Но у меня есть архивы тиков с заданным форматом, под него пока и сделал. Достаточно простой: <DATE> ,<TIME> ,<BID>,<ASK>.