Сравнение производительности. Взята боевая ТС, которая состоит из нескольких независимых ТС (по мэджику отличаются).
Замеряем скорость Тестера и 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-Тестера, как обычный скрипт.
Выводы:
Код в Терминале почти всегда выполняется медленнее, чем на Агенте (до 50%).
На маркетах MT5-Тестер теперь ни капли не уступает надстройке в виде Virtual.
На лимитниках MT5-Тестер уступает надстройке в виде Virtual до 15%. Это вполне объяснимо, так что норм.
Советник не мой, поэтому прямо сравнивать не корректно. Думаю, логика отличается существенно.
Ну и лимитники все же - это бОльшая нагрузка на проверки Тестером (видно, что 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.
Получается, что тейки срабатывают все время с отрицательным проскальзыванием.
На биржевых кастомных символах тейки акцептируются по last-цене, а исполняются по bid/ask.
Например, тейк для BUY-позиции стоит на уровне 1.09801. Приходит такой тик bid/ask/last = 1.09799/1.09802/1.09801. Он срабатывает, т.к. last-цена каснулась, но при этом срабатывает по цене bid, что хуже last.
Получается, что тейки срабатывают все время с отрицательным проскальзыванием.
Это специально в кастомном символе сделаны сразу три цены? Или такое бывает, что транслируются все цены, даже если график строится по ценам Last? В этом случае Bid тоже может транслироваться в не кастомном символе? Просто интересно. Если такое есть, то некоторые свои коды мне нужно подправить.
Это специально в кастомном символе сделаны сразу три цены?
На биржевом символе маркет-ордера срабатывают по ласту. Все открытые позиции в конце прохода принудительно закрываются Тестером маркет-ордерами - по ластам. И если там ноль, то будет "кочерга". Чтобы не было кочерги, прописываю ласты средним значением между bid и ask.
Последнее обновление. Тестер откровенно кривой. После проведения оптимизации при попытке запустить тестирование с визуализацией - ЗАВИСАЕТ визуализация. Приходится перезагружать . Но если это как то можно было терпеть (сопровождая нецензурными выражениями), то в какой то момент тестирование вообще перестало запускаться. Оказалось, что в окне "символ" исчезли все символы выбранные в обзоре рынка. Все Финиш !!! Не помогают никакие пляски с бубном (и перезагрузка и даже переустановка МТ5).
Провожу много оптимизаций разных советников (автоматически перебираются по заданному списку). Затем смотрю их кеши.
Заметил текущее неудобство
чтобы посмотреть предыдущие кеши, нужно каждый раз выбирать сначала соответствующий советник. А список последних оптимизаций, проведенных в самом Тестере, недоступен.
Было бы значительно дружелюбнее, если в состоянии, как на скрине, в отмеченной области выпадал список последних оптимизаций Тестера с названиями советников в них. Разумно?
KENT3004: Последнее обновление. Тестер откровенно кривой. После проведения оптимизации при попытке запустить тестирование с визуализацией - ЗАВИСАЕТ визуализация. Приходится перезагружать . Но если это как то можно было терпеть (сопровождая нецензурными выражениями), то в какой то момент тестирование вообще перестало запускаться. Оказалось, что в окне "символ" исчезли все символы выбранные в обзоре рынка. Все Финиш !!! Не помогают никакие пляски с бубном (и перезагрузка и даже переустановка МТ5).
Если переустановка операционной системы не поможет, то советую поменять компьютер. Ну, или хотя-бы прокладку.
Сравнение производительности. Взята боевая ТС, которая состоит из нескольких независимых ТС (по мэджику отличаются).
Замеряем скорость Тестера и Virtual в зависимости от количества ТС и реализации на маркетах или на лимитниках (тейках) на Hedge-настройках.
ТС гонится на кастомном символе по реальным тикам в режиме пипсов с одним включенным Агентом полным перебором из четырех проходов, RAM-Drive. Время берется наименьшее из проходов.
market-orders
limit-orders
market-orders
limit-orders
market-orders
limit-orders
Virtual-Script - это запуск скрипта-Тестера на чарте. Т.е. выполняется вне MT5-Тестера, как обычный скрипт.
Выводы:
Почему такая разница между маркетами и лимитками?
Почему такая разница между маркетами и лимитками?
Советник не мой, поэтому прямо сравнивать не корректно. Думаю, логика отличается существенно.
Ну и лимитники все же - это бОльшая нагрузка на проверки Тестером (видно, что 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.
Получается, что тейки срабатывают все время с отрицательным проскальзыванием.
На биржевых кастомных символах тейки акцептируются по last-цене, а исполняются по bid/ask.
Например, тейк для BUY-позиции стоит на уровне 1.09801. Приходит такой тик bid/ask/last = 1.09799/1.09802/1.09801. Он срабатывает, т.к. last-цена каснулась, но при этом срабатывает по цене bid, что хуже last.
Получается, что тейки срабатывают все время с отрицательным проскальзыванием.
Это специально в кастомном символе сделаны сразу три цены? Или такое бывает, что транслируются все цены, даже если график строится по ценам Last? В этом случае Bid тоже может транслироваться в не кастомном символе? Просто интересно. Если такое есть, то некоторые свои коды мне нужно подправить.
Это специально в кастомном символе сделаны сразу три цены?
На биржевом символе маркет-ордера срабатывают по ласту. Все открытые позиции в конце прохода принудительно закрываются Тестером маркет-ордерами - по ластам. И если там ноль, то будет "кочерга". Чтобы не было кочерги, прописываю ласты средним значением между bid и ask.
Провожу много оптимизаций разных советников (автоматически перебираются по заданному списку). Затем смотрю их кеши.
Заметил текущее неудобство
чтобы посмотреть предыдущие кеши, нужно каждый раз выбирать сначала соответствующий советник. А список последних оптимизаций, проведенных в самом Тестере, недоступен.
Было бы значительно дружелюбнее, если в состоянии, как на скрине, в отмеченной области выпадал список последних оптимизаций Тестера с названиями советников в них. Разумно?
Последнее обновление. Тестер откровенно кривой. После проведения оптимизации при попытке запустить тестирование с визуализацией - ЗАВИСАЕТ визуализация. Приходится перезагружать . Но если это как то можно было терпеть (сопровождая нецензурными выражениями), то в какой то момент тестирование вообще перестало запускаться. Оказалось, что в окне "символ" исчезли все символы выбранные в обзоре рынка. Все Финиш !!! Не помогают никакие пляски с бубном (и перезагрузка и даже переустановка МТ5).
Если переустановка операционной системы не поможет, то советую поменять компьютер. Ну, или хотя-бы прокладку.
Если переустановка операционной системы не поможет, то советую поменять компьютер. Ну, или хотя-бы прокладку.