AVIN (от лат. Ars Vincere - искусство побеждать) — это кросплатформенная трейдинговая система, написана на Rust, с GUI на Iced.
- data: Загрузка и просмотр исторических данных. Пока только с Московской биржи.
- core: Cлой абстракций для высокоуровневой работы с данными на "трейдерском языке": ордер, график, бар, таймфрейм... Интуитивные интерфейсы.
- extra: Продвинутые абстракции (экстремум, тренд...), и место для пользовательских структур.
- analytic: Инструменты статистического анализа исторических данных.
- tester: Простой бэк-тестер.
- trader: Модуль управления роботами. Пока доступно подключение только к Тинькофф брокеру (Т-банк).
- terminal: Простой терминал для ручной торговли, на всякий случай.
- report: Построение отчетов.
- informer: Уведомления в telegram.
- gui: Утилиты для просмотра результатов тестов и др.
Каждый алготрейдер, так или иначе, решает для себя задачи: получения и обновления исторических данных, проверки торговых гипотез, коннекторы к брокерам и логику управления торговыми стратегиями. На разработку подобных велосипедов уходит от пары месяцев до нескольких лет, смотря как делать.
Хорошо бы в мире быть бесплатному открытому проекту, который развивается сообществом и предоставляет такой базовый инструментарий для алготрейдера. В идеале должен получиться этакий фреймворк для трейдера, чтобы можно было сосредоточиться на анализе данных и разработке стратегий, а не служебном коде.
Архитектура системы подразумевает 2 части:
- Базовая - собственно этот репозитарий.
- Пользовательская - торговые стратегии, аналитика и расширения функциональности, которые каждый делает для себя.
Я ищу единомышленников. Чтобы вместе пить хеннеси и трахать телочек
зарабатывать на бирже.
Открытость проекта - это отчасти выражение благодарности open-source сообществу, которое дало мне очень многое, попытка в свою очередь вернуть что-то полезное. Отчасти это маркетинговый ход - я делаю первый шаг, показывая что я могу, и что уже сделано.
На данном этапе я открыт к общению с каждым заинтересованным. Не зависимо от опыта и знаний. Главное - желание развиваться в сфере алготрейдинга, программирования, математики и машинного обучения. Узкому кругу лиц я готов показать свою "пользовательскую" часть: наработки по анализу данных и готовые рабочие стратегии - с целью переопыления идеями и дальнейшей совместной разработки. Пиши.
let contact = email || telegram;
В 2023-2024г был сделан прототип на Python, с GUI на PyQt6. Кодовая база составила 40к строк. Стало понятно:
- Все это и очень хорошо, и нужно, и работает. И дальше хочется развивать.
- Python не достаточно производительности для реал-тайм работы с тиками, стаканом и SuperCandles от Московской биржи.
Можно было делать вставки на Си, или использовать Cython для критических участков. Но в марте 2025 был выбран долгий и сложный путь - переписать все на Rust. Это даст бОльшую надежность кода и лучшую производительность. В перспективе библиотека может использоваться и для создания HFT стратегий.
Программа на этапе активной разработки. Пока работоспособна только "для себя", нет документации, часто меняются интерфейсы. На сегодня (2025-05-16) переписано около 50% python кода.
Система разрабатывается без особого внимания к тому "как этим будут пользоваться другие". Во-первых, все еще сто раз изменится, на данном этапе нет смысла фиксировать API, поддерживать обратную совместимость, это мой первый проект на Rust, поэтому неизбежно огромное количество говнокода. Во-вторых, пока я единственный полльзователь. Если этот проект кого-то заинтересует, тогда и будет обратная совместимость, обобщенные решения, настройки в вынесенных конфигурационных файлах и тп.
- Clone this repository
git clone --depth=1 https://github.com/arsvincere/avin-rs.git