Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
что-то не так работает в режиме OHLC M1
Virtual много сделок пропустил, приатачил отчеты, тест 01.01.2020 - 31.12.2020
Вы совсем не понимаете, результаты каких действий сравниваете.
Что сделал.
По пунктам все должно быть понятно, кроме отличий в п.8. Дело в том, что если у символа история только с НГ, то при всем желании делать бэктест с начала года MT5-Тестер не даст. Тест начнет где-то через неделю после НГ. Связано это с тем, что он умничает: подготавливает несколько тысяч M1-баров в качестве баровой истории.
А вот когда запускаете в Виртуал по тикам из файла, то никто уже не умничает, поэтому тест начинается с НГ. С этим и связано небольшое различие в п.8.
Нельзя было сохранять тики в OHLC M1 режиме. Нужно было взять честно тики (либо скриптом в Терминале, либо в Тестере по реальным тикам), затем их проредить самостоятельно (оставив не более четырех на бар) и только после этого сохранять.
Виртуал отработал на 100% правильно. Однако, есть еще один нюанс. В мат. режиме Тестер может подставлять любые значения в переменные _Symbol, _Digits, _Point и другие свойства символа. Это только на совести MT5-Тестера.
Нельзя было сохранять тики в OHLC M1 режиме. Нужно было взять честно тики (либо скриптом в Терминале, либо в Тестере по реальным тикам), затем их проредить самостоятельно (оставив не более четырех на бар) и только после этого сохранять.
кто ж знал... вернее спиной чуял - дело не ладно! )))
в общем, рабочая идея - нужно брать конкретное время работы ЕА и проредить тики с помощью ThirdPartyTicks https://www.mql5.com/ru/code/20225
это позволит сделать небольшой по размеру файл исторических данных, да и сжать его тоже не проблема - цена + спред, время можно не сохранять, а эмулировать счетчиком при распаковке
но пока вижу, что ускорить тестер с помощью Virtual и манипуляций с историей можно очень и очень значительно
Спасибо!
или получилось или... где то жестко накосячил, очень смущают цифры
оптимизировал 20 000 проходов за период 01.01.2020 - 31.21.2020 такой ЕА:
время оптимизации:
Virtual 20 000 проходов в режиме мат. вычислений 11 мин 09 сек , остальные тесты останавливал через 11 минут
тестер OHLC M1
тестер по реальным тикам:
результаты прогонов, ну как бы сопоставимы, есть отличия, но в пределах ошибки тестирования по барам
ЕА для тестера - сборщик тиков для эмуляции OHLC M1 в Virtual ( запускать в тестере по реальным тикам):
EURUSD_tick.bin https://mega.nz/file/rVsHSQwY#BxO7hFjqFojfLm2TRp3WnwzmSiR2PvQDEgNTKdMLqEA
или получилось или... где то жестко накосячил, очень смущают цифры
Чем хорош MT4-style, что код ТС читается лучше комментариев. Очень просто понять логику.
Вашу ТС можно запускать только на Неттинге. Если делали на Хедже, то на микрофлете это убийца MT5-Тестера (сетки катастрофически влияют на скорость) и Virtual может выйти за пределы массива, хоть и имеется некоторый запас.
Защиту от переполнения специально не делал (если делать, то бесплатная по ресурсам), чтобы человек долго не искал косяк в своей ТС, а сразу смекнул причину.
У Вас бывают закрытия по тейкам. Если хотите положительных проскальзываний, как это делает MT5-Тестер, то нужно прописывать.
Безумно дорогая операция для ежетикового использования. Особенно, если ордер уже в истории. Самое разумное - SELECT_BY_POS.
В Виртуале забыл расскоментировать одну строку. Если вздумаете дальше использовать SELECT_BY_TICKET, то лучше задействовать ее.
// for (int i = this.AmountHistoryOrders - 1; i >= 0; i--) // Чаще ищутся позиции, что закрылись недавно.
Но лучше никогда не использовать в Тестерах какие-либо варианты SELECT_BY_TICKET. Да и для VPS - не лучший вариант.
Этой инфой хорошо бы помочь не только своей ТС, но и Виртуалу. Поэтому нужно прописывать ДО инклуда.
Советник записи тиков не смотрел, как и сгенерированный файл. Саму ТС смотрел только с экрана. Запусков не делал.
В общем, если вопрос в различии скорости на порядок, то были таблицы сравнения.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Библиотеки: Virtual
fxsaber, 2021.01.04 23:21
Если Virtual использовать только, как Тестер выше, то он еще может быть ускорен. Сеточные ТС, конечно, гораздо быстрее в виртуале, чем в штатном Тестере. Но библа под них не затачивалась, т.к. не практикую. Ускоритель сеток теоретически возможен.
мой вопрос, в целом, это изучение возможностей тестера МТ5
@fxsaber спасибо! Virtual - крутая штука!
Hi All,
I read all this thread and maybe I am wrong, but I understood Virtual Tester is working only with the Tester Currency.
Is there a way to make it works on multi-currency mode?
::SymbolInfoTick(symbols [i], tick);
is not retrieving tick for other currency than the one of the Tester.
The bot is working as expected when not using Virtual.mqh library.
and not working at all when using Virtual.mqh library
Is there any chance something like that works? (I did not managed)
I read all this thread and maybe I am wrong, but I understood Virtual Tester is working only with the Tester Currency.
Торговля ведется только по одному символу. Это покрывает 99% задач. Мультисимвольная торговля не реализовывалась, как невостребованная в используемых сценариях.
Only one symbol is traded. This covers 99% of the tasks. Multi-symbol trading was not implemented as unclaimed in the scenarios used.
@fxsaber,
Thanks for your reply. This should be why I didn't manage to make it works! ;-)
Do you plan to add the feature?
Regards,
och
Do you plan to add the feature?
Не планирую, т.к. не вижу, где это могло бы мне пригодиться.
I do not plan, because I do not see where it could be useful to me.
@fxsaber,
Not that much to do, I did it, thanks for reply.