Разработал платформу для исследования и бэктестинга алгоритмических стратегий парного трейдинга (quant dev направление).
Парный трейдинг - две акции или инструмента, которые обычно движутся вместе. Когда их цены расходятся, стратегия открывает противоположные позиции — на одну покупку, на другую продажу — и зарабатывает, когда цены снова сходятся.
- Работает независимо от того, растёт или падает рынок
- Снижает риски за счёт балансировки позиций
Исследовательский блок
- Сбор и агрегация исторических котировок (от бирж через вебсокет и запросами из различных источников)
- Поиск коинтегрированных пар (ADF test, p-value фильтрация)
- Расчёт rolling z-score спреда
- Генерация торговых сигналов
- Бэктест с расчётом PnL, нормализацией позиций и управлением риском
- Форвард-тестирование стратегий на данных, не использованных в обучении, для проверки устойчивости сигналов
- Конструктор ботов и стратегий
Архитектура и инфраструктура
- Django как основной backend
- Использование Django signals для реактивной обработки событий (запуск расчётов, обновление статусов задач)
- Redis для кеширования результатов расчётов и ускорения повторных запросов
- RabbitMQ для организации очередей задач и асинхронной обработки
- Многопоточность (threading / async) для параллельного получения данных из внешних API
- Многопроцессность (multiprocessing) для CPU-интенсивных расчётов (коинтеграция, статистические тесты, бэктест)
Архитектура разделяет I/O-bound и CPU-bound нагрузки, что позволяет эффективно масштабировать систему и работать с большим количеством инструментов.
Платформа ориентирована на разработку и тестирование рыночно-нейтральных стратегий с возможностью дальнейшей интеграции в production-алгоритмы.