Автономный ИИ-агент для торговли на российском фондовом рынке. Агент использует архитектуру ReAct (Reasoning + Acting): анализирует рыночные данные, новости и интернет, затем самостоятельно принимает торговые решения.
Подробный разбор архитектуры и результатов — в статье на Хабре:
Анатомия ИИ-трейдера: как создать своего автономного ИИ-агента и зарабатывать на бирже
Агент торгует 10 голубыми фишками российского рынка (SBER, GAZP, YDEX, MTSS, X5, AFLT, ALRS, RSTI, SMLT, DVMP) раз в день — под конец вечерней сессии MOEX.
Инструменты агента:
get_price— исторические OHLCV-данные и текущие котировки через Finam TradeAPIget_news— новостной поток из RSS Финамаsearch— поиск через Tavily (отчётность, новости компаний, макро)bash_python— выполнение Python-кода для вычислений и технического анализаbuy/sell— выставление рыночных ордеров через Finam API
Текущие позиции портфеля и котировки инжектируются в системный промпт перед каждым запуском.
# Установить зависимости
uv sync
# Запустить агента
uv run python src/main.pyЗапуск по расписанию (cron) — каждый будний день в 18:00:
0 18 * * 1-5 uv run python /path/to/src/main.pyСкопируйте .env.example в .env и заполните:
# Finam TradeAPI (рыночные данные) — https://tradeapi.finam.ru/docs/tokens/
FINAM_API_KEY=
FINAM_ACCOUNT_ID=
# Финам Арена (торговые операции)
FINAM_ARENA_API_KEY=
FINAM_ARENA_ACCOUNT_ID=
FINAM_ARENA_URL=
# Tavily — https://tavily.com/
TAVILY_API_KEY=
# LLM через OpenRouter — https://openrouter.ai/
OPENROUTER_API_KEY=
PROVIDER=openai
MODEL=gpt-5.2«Финам» проводит конкурс алготрейдеров — Финам Арена. Каждый участник получает под управление 3 000 000 ₽ на конкурсном счёте для торговли на реальных рыночных котировках через Finam Trade API.
Авторы трёх лучших стратегий получают по 100 000 ₽ на брокерский счёт. Победившие стратегии попадают на сервис «Финам Автоследование» для привлечения реальных инвесторов.
Ключевые даты:
- Регистрация: 14 мая — 1 июля 2026 г.
- Старт торгов: 1 июня 2026 г. в 10:00
- Окончание торгов: 31 июля 2026 г. в 22:00
В этом репозитории уже реализован клиент для конкурсного API (src/trade/arena/) — он используется агентом как основной торговый бэкенд. Для подключения заполните FINAM_ARENA_* переменные в .env (см. раздел Настройка выше). Зарегистрироваться можно на странице конкурса.
# Все тесты
uv run pytest
# Один файл
uv run pytest tests/tools/test_trade.py
# Один тест
uv run pytest tests/tools/test_trade.py::test_buyТесты в tests/trade/ и tests/tools/test_price.py обращаются к реальному Finam API и требуют валидных credentials в .env. Торговые тесты используют MockArenaClient из tests/mock_arena_client.py.