Тестер стратегий MetaTrader 5: ошибки, баги, предложения по улучшению работы - страница 13

 

Сравнение производительности. Взята боевая ТС, которая состоит из нескольких независимых ТС (по мэджику отличаются).

Замеряем скорость Тестера и Virtual в зависимости от количества ТС и реализации на маркетах или на лимитниках (тейках) на Hedge-настройках.


ТС гонится на кастомном символе по реальным тикам в режиме пипсов с одним включенным Агентом полным перебором из четырех проходов, RAM-Drive. Время берется наименьшее из проходов.

Количество ТС MT5-Tester
market-orders
MT5-Tester
limit-orders
MT5-Tester+Virtual
market-orders
MT5-Tester+Virtual
limit-orders
Virtual-Script
market-orders
 Virtual-Script
limit-orders
0 00:00.857 00:00.857 00:00.931 00:00.931 00:00.147 00:00.147
1 00:02.689 00:14.677 00:02.728 00:12.053 00:01.886 00:18.826
2 00:06.876 00:42.588 00:06.250 00:38.657 00:06.362 00:55.624
3 00:11.977 01:24.982 00:12.151 01:17.236 00:12.813 01:49.181
4 00:18.925 02:19.222 00:19.649 02:13.381 00:21.891 02:59.191

Virtual-Script - это запуск скрипта-Тестера на чарте. Т.е. выполняется вне MT5-Тестера, как обычный скрипт.


Выводы:

  1. Код в Терминале почти всегда выполняется медленнее, чем на Агенте (до 50%).
  2. На маркетах MT5-Тестер теперь ни капли не уступает надстройке в виде Virtual.
  3. На лимитниках MT5-Тестер уступает надстройке в виде Virtual до 15%. Это вполне объяснимо, так что норм.
С первым пунктом нужно разбираться.
 
fxsaber:
4 00:18.925 02:19.222 00:19.649 02:13.381 00:21.891 02:59.191

Почему такая разница между маркетами и лимитками?

 
Andrey Khatimlianskii:

Почему такая разница между маркетами и лимитками?

Советник не мой, поэтому прямо сравнивать не корректно. Думаю, логика отличается существенно.

Ну и лимитники все же - это бОльшая нагрузка на проверки Тестером (видно, что Virtual так же просел). Так что уступать маркет-логике просто обязан.


Меня озадачило другое. Почему Virtual-Script оказался заметно медленнее MT5-Tester+Virtual. В первом случае это тупой for-цикл по тикам и больше ничего. Получается, что Терминал исполняет код медленнее, чем Агенты.

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


В Virtual работаю с массивом структур. Возможно, будет быстрее, если работать с указателями на объекты классов. Надо пробовать, но список важных тасков и так только растет.

 

На биржевых кастомных символах тейки акцептируются по last-цене, а исполняются по bid/ask.

Например, тейк для BUY-позиции стоит на уровне 1.09801. Приходит такой тик bid/ask/last = 1.09799/1.09802/1.09801. Он срабатывает, т.к. last-цена каснулась, но при этом срабатывает по цене bid, что хуже last.

Получается, что тейки срабатывают все время с отрицательным проскальзыванием.

 
fxsaber:

На биржевых кастомных символах тейки акцептируются по last-цене, а исполняются по bid/ask.

Например, тейк для BUY-позиции стоит на уровне 1.09801. Приходит такой тик bid/ask/last = 1.09799/1.09802/1.09801. Он срабатывает, т.к. last-цена каснулась, но при этом срабатывает по цене bid, что хуже last.

Получается, что тейки срабатывают все время с отрицательным проскальзыванием.

Это специально в кастомном символе сделаны сразу три цены? Или такое бывает, что транслируются все цены, даже если график строится по ценам Last? В этом случае Bid тоже может транслироваться в не кастомном символе? Просто интересно. Если такое есть, то некоторые свои коды мне нужно подправить.

 
Artyom Trishkin:

Это специально в кастомном символе сделаны сразу три цены?

На биржевом символе маркет-ордера срабатывают по ласту. Все открытые позиции в конце прохода принудительно закрываются Тестером маркет-ордерами - по ластам. И если там ноль, то будет "кочерга". Чтобы не было кочерги, прописываю ласты средним значением между bid и ask.

 
Последнее обновление. Тестер откровенно кривой. После проведения оптимизации при попытке запустить тестирование с визуализацией - ЗАВИСАЕТ визуализация. Приходится перезагружать . Но если это как то можно было  терпеть (сопровождая нецензурными выражениями), то в какой то момент тестирование вообще перестало запускаться. Оказалось, что в окне "символ" исчезли все символы выбранные в обзоре рынка. Все Финиш !!! Не помогают никакие пляски  с бубном (и перезагрузка и даже переустановка МТ5).
 

Провожу много оптимизаций разных советников (автоматически перебираются по заданному списку). Затем смотрю их кеши.

Заметил текущее неудобство

чтобы посмотреть предыдущие кеши, нужно каждый раз выбирать сначала соответствующий советник. А список последних оптимизаций, проведенных в самом Тестере, недоступен.


Было бы значительно дружелюбнее, если в состоянии, как на скрине, в отмеченной области выпадал список последних оптимизаций Тестера с названиями советников в них. Разумно?

 
KENT3004:
Последнее обновление. Тестер откровенно кривой. После проведения оптимизации при попытке запустить тестирование с визуализацией - ЗАВИСАЕТ визуализация. Приходится перезагружать . Но если это как то можно было  терпеть (сопровождая нецензурными выражениями), то в какой то момент тестирование вообще перестало запускаться. Оказалось, что в окне "символ" исчезли все символы выбранные в обзоре рынка. Все Финиш !!! Не помогают никакие пляски  с бубном (и перезагрузка и даже переустановка МТ5).

Если переустановка операционной системы не поможет, то советую поменять компьютер. Ну, или хотя-бы прокладку.

 
Alexey Viktorov:

Если переустановка операционной системы не поможет, то советую поменять компьютер. Ну, или хотя-бы прокладку.

Юмор оценен ! А по делу - как вернуть символы в тестер ? Похожая пропажа и зависания подтверждаются несколькими юзерами на других форумах.