Скорость бэктестинга.


Скорость бэктестинга.
Atom
1/14/2019


Добрый день!

001.png

Сделал небольшой рисёч скорости тестирования. Везде один и тот же тикер, один и тот же диапазон дат, но разные форматы данных, разные тайм-фреймы и разный тип диска. В нижней таблице за 1 взял самый быстрый вариант, остальные от него посчитал.

Напрашивается ряд выводов и вопросов).

Выводы: SSD вроде дает небольшой прирост скорости. Bin быстрее csv. Что-то TF не особо влияет на скорость вычислений, хотя кол-во обрабатываемых свечей может различаться драматически.

Вопросы: Так выглядит, что используемая система хранения (1 день - один файл) является узким местом (потому что кол-во файлов в данном случае одинаково что при 5-минутном что при дневном тайм-фрейме. Да, может такое хранение где-то оправдано. Но для тестов скорость вычислений критический момент. Собственно, вопрос: можно ли как-то дать бэктестеру на вход готовый объект в оперативке или ссылку на файл где в одном файле вся история по одной связке тикер-TF?

Для сравнения, в Wealth-Lab скорость бэктеста была примерно обратно пропорциональна кол-ву свечей - т.е. на дневках тесты летали, на 5-минутках, минутках - понятно, все было ощутимо медленней.
001.png 73 KB (654)



Thanks:


Mikhail Sukhov

Avatar
Date: 1/14/2019
Reply


Интересный рисерч. В Шелле делали? Может пришлете архив с данными для прогона на SMA?
Thanks:

Replikant

Avatar
Date: 1/14/2019
Reply


Да, на свежем Shell немодифицированном, на встроенной SMA стратегии, данные приложил.
Desktop.zip 3 MB (241)
Thanks:

Replikant

Avatar
Date: 1/17/2019
Reply


По этой теме что-то сможете ответить?) - Важный момент).
Thanks:

Mikhail Sukhov

Avatar
Date: 1/17/2019
Reply


Сможем. Как будет ответ напишу.
Thanks:

Support

Avatar
Date: 2/5/2019
Reply


Добрый день

Возьмите, пожалуйста, обновленную версию Shell. В него добавлены расширенные настройки для эмулятора. Для ускорения тестирования необходимо изменить параметр Interval.

931d39b9ce024c05fff0f481fa34a7b3.png

Для ТФ-зависимых стратегий данный параметр можно устанавливать равный тайм-фрейму. Для дневного ТФ лучше его установить в 1 час или 1 день. Интервал влияет на генерацию событий изменения времени (от чего исполняются заявка или изменяется стакан). Так как свечные данные зависят только от сделок, стаканам и заявкам нужны дополнительные данные для обновления. Этими данными выступают события изменения времени.

Скорость тестирование на ваших данных (диапазон 3 года) при интервале 1 день на нашей конфигурации составляет примерно 2-3 секунды.
Thanks:

Replikant

Avatar
Date: 2/5/2019
Reply


Ребята, круто, спасибо!

По первым прикидкам прирост кратный, хороший, чуть позже подробней погоняю тесты + надо ещё убедиться, что сами результаты прогона не изменились от прироста скорости)).
Thanks:


Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy