Библиотека для трейдинга: начало
Запуск Open-Source проекта: Clojure библиотека для алготрейдинга с нуля
Запуск open-source taljure
Этим и начинаю цикл статей, в котором с чистого листа буду разрабатывать open-source библиотеку для алгоритмического трейдинга. Цель — создать инструмент, который будет максимально кложур-френдли, прозрачным в работе и полезным как для изучения основ алготрейдинга, так и для использования в более серьезных проектах.
Зачем это нужно?
Существует множество готовых решений, но они часто представляют собой обертки над ta-lib, написанным на C++. Мне же хотелось создать что-то на Clojure — языке, где мощь в обработке данных и многопоточности идеально подходит для финансовых вычислений. Я хочу:
Глубже разобраться в индикаторах: Не просто использовать ta-lib, а понять, как работают SMA, EMA, RSI и другие метрики «под капотом».
Сделать Clojure-way библиотеку: Иммутабельные данные, чистые функции, последовательности — все это идеально ложится на концепцию обработки временных рядов.
Предложить альтернативу: Сообществу трейдеров-разработчиков, интересующихся Clojure, не хватает своих, идиоматических инструментов.
Технический стек и философия
Проект будет строго придерживаться принципов простоты и прозрачности:
Чистый Clojure: Никаких фреймворков. Только язык и его стандартная библиотека.
Docker-окружение: Чтобы у любого желающего не возникло проблем с запуском, вся разработка будет вестись в изолированном контейнере. deps.edn + docker-compose — наш выбор.
Тесты с первого дня: Каждый индикатор будет покрыт тестами, чтобы можно было быть уверенным в корректности расчетов.
Промышленный подход: Библиотека с первого дня будет оформлена как настоящий open-source проект: с качественным README, документацией, лицензией и примерами использования.
О чем будем говорить в следующих статьях
В этом посте я лишь намечаю контуры проекта. В следующих выпусках мы детально разберем каждый этап:
настроим идеальное окружение для Clojure-разработки с помощью Docker;
разберем deps.edn: какие зависимости нам понадобятся и зачем;
напишем свои первые индикаторы (SMA, EMA) и тесты к ним;
сравним наши расчеты с эталонными реализациями;
собирем библиотеку и пробуем подключить ее к «боевому» проекту;
документируем код и публикуем первую версию на Clojars.
Этот проект — эксперимент и образовательный путь. Приглашаю всех заинтересованных присоединиться: следить за циклом статей, предлагать идеи или даже контрибьютить в репозитории.
Исходный код будет доступен на GitFlic (можно участвовать).
Что вы думаете о такой идее? Какие индикаторы или функционал вам было бы интересно увидеть в первую очередь? Делитесь мыслями в комментариях!