← Zurück

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

Добрый день!

001.png

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

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

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

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

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

War dieses Thema hilfreich?

Thema teilen

Kommentare (6)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

Mikhail Sukhov
Mikhail Sukhov

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

Replikant
Replikant Autor

Да, на свежем Shell немодифицированном, на встроенной SMA стратегии, данные приложил.

Replikant
Replikant Autor

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

Mikhail Sukhov
Mikhail Sukhov

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

Support
Support

Добрый день

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

931d39b9ce024c05fff0f481fa34a7b3.png

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

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

Replikant
Replikant Autor

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

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