Скорость ядра бэктестинга, управляемого событиями

В настоящее время я разрабатываю механизм обратного тестирования, управляемый событиями, в Python. Я хотел бы иметь представление о том, насколько быстрым должен быть высокоскоростной механизм обратного тестирования, особенно в Python. Прямо сейчас я могу воспроизвести один год данных 1-минутного бара примерно за 10 часов. Можно ли сказать, что скорость сейчас приемлема?

Я знаю, что на Github есть какой-то движок для обратного тестирования с открытым исходным кодом, например Pipline. Я действительно не знаю, управляется ли он событиями, потому что я не играл с ним раньше.

У кого-нибудь есть хорошее представление о том, насколько быстрым должен быть механизм тестирования на основе событий хорошего качества? Спасибо большое за вашу помощь.


person SimonZ    schedule 24.08.2016    source источник
comment
Почему бы просто не использовать pandas (даже если это будет векторизовано, а не управляемо событиями). Есть ли веская причина создавать новый движок с нуля? Что касается вопроса.. Он слишком широк, единственный способ измерить скорость - это сравнить его с другими альтернативами (такими как панды или конвейер).   -  person Imanol Luengo    schedule 24.08.2016
comment
Спасибо за ответ. Причина использования среды, управляемой событиями, заключается в том, что вы можете легко переключаться с моделирования на производство. Панды великолепны. Я использовал множество функций Pandas в своем движке, чтобы ускорить процесс.   -  person SimonZ    schedule 25.08.2016


Ответы (1)


Это ужасно медленно. Я запускаю ретроспективное тестирование на 350 000+ минимальных барах, включая несколько генераций сигналов, оптимизацию портфеля, ребалансировку и алгоритм приоритета исполнения, примерно за 40 минут. Чистый питон, без панд, джитов и цитонов.

ИМО, это будет во многом зависеть от уровня сложности и сложности многих ваших движущихся частей.

person Samuel Utomo    schedule 21.04.2018
comment
Это звучит невероятно реалистично. В тот момент, когда есть подключение к базе данных и обучение в реальном времени (машинное обучение), это время взрывается. Люди должны быть реалистами. Результаты обычно приходят медленнее, чем обычные векторизованные бэктесты. - person Kivo360; 03.09.2019