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


Добрый день!

001.png

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

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

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

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

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



Спасибо:


Mikhail Sukhov

Фотография
Дата: 14.01.2019
Ответить


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

Replikant

Фотография
Дата: 14.01.2019
Ответить


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

Replikant

Фотография
Дата: 17.01.2019
Ответить


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

Mikhail Sukhov

Фотография
Дата: 17.01.2019
Ответить


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

Support

Фотография
Дата: 05.02.2019
Ответить


Добрый день

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

931d39b9ce024c05fff0f481fa34a7b3.png

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

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

Replikant

Фотография
Дата: 05.02.2019
Ответить


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

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


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy