Собираем стратегию с помощью ИИ и Финам API
- С помощью связки Cursor, Finam Skill и Trade API можно создать полноценного автоматического торгового робота, который будет зарабатывать на перегретости рынка
- Стратегия идеально подходит для бокового рынка с резкими колебаниями. Она основана на классическом индикаторе RSI и принципе возврата к среднему: бот автоматически покупает актив, когда цена слишком сильно падает (перепроданность), и продает, когда она чрезмерно растет (перекупленность)
- Весь процесс — от пустой папки до работающего алгоритма — занимает всего несколько промптов
Всем привет, я Александр, разработчик Trade API в «Финаме». В прошлой статье мы собрали бота-арбитражника и зарабатывали на арбитраже коинтегрированных (связанных) инструментов. Сегодня рассмотрим торговую стратегию заработка на перегретости рынка — она особенно актуальна, когда рынок в боковике с резкими колебаниями. Соберем автоматического робота на классическом индикаторе RSI с помощью Cursor, подключенного к нему Финам Skill и Trade API.
Весь путь — от пустой папки до бота, который следит за рынком в реальном времени, — займет всего несколько промптов. Приступаем!
Быстрая теория
Кратко опишу теорию. Она нужна, чтобы понимать, на чем вообще основана стратегия. Не переживайте, если сразу все непонятно — когда приступите к практике и начнете реализовывать свою стратегию, понимание будет приходить. Постоянно спрашивайте все непонятные моменты у ИИ.
Итак, RSI (Relative Strength Index, индекс относительной силы) сравнивает, насколько в среднем цена росла и насколько падала за последние 14 свечей.
Формула расчета этого индикатора следующая:
В результате получается число от 0 до 1. Около 0 — в окне почти одни падения, около 1 — почти одни росты, 0.5 — равновесие.
Стратегия RSI 14 с порогами 0.2 / 0.8 торгует на возврат к среднему (mean reversion). Принцип простой: после резкой распродажи цена склонна отскакивать, а после резкого ралли — откатываться. Это тенденция, а не гарантия, но на ней можно построить понятные правила:
- Входим в позицию LONG когда RSI опустился ниже 0.2 — рынок перепродан, покупаем.
- Выходим из позиции LONG когда RSI поднялся выше 0.8 — рынок перекуплен, продаем.
- Между 0.2 и 0.8 ничего не делаем.
Подробный разбор стратегии — расчет средних по Уайлдеру, работа с незакрытой свечой, проверка позиции перед заявкой и полный код на Python и Node.js — в нашем гайде по стратегии RSI 14.
Шаг 1. Устанавливаем Cursor и Финам Skill
Скачиваем Cursor с официального сайта, устанавливаем и авторизуемся. Бесплатного пробного тарифа для стратегии нам хватит.
Создаем пустую папку под проект (например, rsi-bot) и открываем ее в Cursor: File → Open Folder.

Дальше подключим Финам Skill плагин — набор инструкций и скриптов, который учит ИИ-агента работать с Finam Trade API: искать инструменты, загружать свечи, смотреть портфель и писать код на finam-sdk.
Для установки понадобится Node.js — если его у вас еще нет, установите версию LTS с официального сайта. Открываем встроенный терминал Cursor (Terminal → New Terminal) и выполняем следующую команду:
npx skills add <https://github.com/finamweb/finam-trade-api> --skill trade-api

Установщик проведет по шагам:
- Если npx спросит разрешение скачать пакет skills — отвечаем y.
- В списке агентов Cursor уже отмечен — просто жмем Enter.
- Область установки — выбираем Global, чтобы скилл был доступен во всех проектах.
- Способ установки — оставляем Symlink по умолчанию.
- Проверяем сводку и подтверждаем.

После установки открываем новый чат с агентом (или перезапускаем Cursor), чтобы он подхватил скилл. Вызывать его специально не нужно — агент сам подключит скилл, как только в запросе появится что-то про Финам, биржу или торговлю.
Подробнее об установке для других агентов (Claude Code, Qwen Code и Codex), обновлении и удалении скилла, а также о решении типичных проблем читайте в нашем гайде по установке Finam Trade Skill.
Шаг 2. Подключаем токен
Для работы с рыночными данными нужен токен Finam Trade API — получить его можно на странице токенов. Там же можно открыть бесплатный демосчет на две недели — с реальными котировками, но без риска для денег.
Номер счета вводить не нужно: скилл определит его по токену сам. Пишем в чат Cursor:
Подключи токен Finam
Агент создаст в папке проекта файл .env. Открываем его, вставляем токен сразу после TRADE_API_SECRET=, сохраняем и пишем агенту готово — он проверит, что токен на месте.

Никогда не вставляйте токен прямо в чат агента — только в файл .env. Агент читает его оттуда сам и не показывает в переписке.
Проверим, что все работает:
Покажи мой портфель
Если видите баланс и позиции — все готово.
Шаг 3. Бэктест на истории
Прежде чем что-то запускать, проверим стратегию на исторических данных. Формулируем промпт:
Используя finam skill, загрузи часовые свечи GAZP@MISX за последние 90 дней.
Реализуй стратегию RSI 14 (сглаживание по Уайлдеру), только лонг:
вход, когда RSI < 0.2, выход, когда RSI > 0.8. Повторно не входи, пока позиция открыта.
Проведи бэктест и построй график: сверху цена закрытия с точками входа и выхода
и подсветкой периодов в позиции, снизу RSI с уровнями 0.2 и 0.8.
Выведи список сделок, итоговую доходность стратегии и доходность buy & hold.

Агент сам найдет нужный метод (MarketData.Bars), напишет скрипт, установит зависимости, запустит его и, если что-то упадет, — исправит ошибку и запустит снова. Написанный код можно открыть, нажав на файл в ответе агента.
Если видите, что агент делает что-то не то — остановите его кнопкой Stop и новым промптом уточните, как надо.
В итоге получаем такой график:

Стратегия RSI 14 на GAZP — бэктест на часовых свечах за 90 дней, без учета комиссий и проскальзывания
Зеленым подсвечены периоды в позиции. За 90 дней стратегия совершила две сделки, и обе закрыла в плюс:
- 14.08 → 23.09: вход на резкой распродаже по 86,06 ₽, выход по 101,49 ₽ — +17,9%. После входа цена еще около двух недель держалась ниже точки покупки: стратегия не угадывает дно, она лишь фиксирует, что падение было слишком резким.
- 29.09 → 09.10: вход на откате по 94,20 ₽, выход по 101,82 ₽ — +8,1%.
Итого +27,5% против +23,6% у buy & hold. Стратегия выиграла за счет того, что пропустила часть августовского падения. А вот рост в октябре до 111 ₽ она уже не застала: позиция закрылась, а новой перепроданности не случилось.
Одна бумага — это не статистика. Попросим агента прогнать то же самое на других тикерах:
Прогони этот же бэктест на LKOH@MISX и SBER@MISX и сведи результаты в таблицу:
инструмент, число сделок, доходность стратегии, доходность buy & hold.
| Инструмент | Сделок | Стратегия | Buy & Hold |
|---|---|---|---|
| GAZP@MISX | 2 | +27,5% | +23,6% |
| LKOH@MISX | 2 | +21,9% | +31,8% |
| SBER@MISX | 2 | +4,7% | +10,6% |
Картина честная: на растущем рынке стратегия обычно уступает простому удержанию, а на боковике с широкими колебаниями — может его обыграть. Сделки редкие и длинные, и без стоп-лосса позиция может долго висеть в минусе. Поэтому на практике RSI чаще используют как фильтр внутри более крупной системы — с этим тоже можно поэкспериментировать, попросив агента, например, входить только когда цена выше SMA 200.
Шаг 4. Превращаем бэктест в бота
Бэктест показал, как стратегия вела себя в прошлом. Теперь сделаем бота, который считает RSI на живых свечах. Промпт:
Используя finam skill и finam-sdk, напиши бота для этой стратегии RSI 14 (0.2 / 0.8).
- Загрузи историю свечей через Bars, затем подпишись на новые свечи через gRPC-стрим.
- Считай RSI только по закрытым свечам: последнюю незакрытую свечу не учитывай.
- Параметры командной строки: --symbol, --timeframe (по умолчанию M5), --quantity.
- Режим --check: один расчет по истории и выход, без заявок.
- По умолчанию dry-run: сигналы только печатаются в лог, заявки не выставляются.
- Флаг --execute включает настоящие рыночные заявки. Перед заявкой проверяй позицию
на счете: входи только с нуля, продавай не больше, чем есть в позиции.
- Предусмотри реконнект при обрыве стрима и вывод ошибок в консоль.

Сначала — безопасная проверка по истории, она ничего не выставляет и даже не читает счет:
Запусти бота в режиме --check на GAZP@MISX
History check passed: close=110.97 rsi=0.455673 average_gain=0.037075 average_loss=0.044288 signal=none
rsi=0.46 — середина диапазона, рынок ни перепродан, ни перекуплен, сигнала нет. Теперь запускаем потоковый dry-run: бот подписывается на свечи и на каждой закрытой печатает RSI и сигнал. Когда RSI уходит под 0.2, в логе появляется вход (фрагмент для иллюстрации):
Closed bar: close=97.14 rsi=0.237647 signal=none
Closed bar: close=96.10 rsi=0.194634 signal=entry
DRY RUN: entry 1 units of GAZP@MISX
Остановить бота — Ctrl-C. Таймфрейм сильно влияет на частоту сделок: на дневных свечах уровни 0.2 / 0.8 могут не достигаться месяцами, а на 5-минутных сигналы появляются гораздо чаще.
Не хотите генерировать бота с нуля? Наша готовая эталонная реализация на Python и Node.js лежит в репозитории Trade API.
Флаг --execute переключает бота на настоящие заявки. Используйте для этого выделенный некритичный счет или демо-счет: API отдает суммарную позицию по инструменту и не отличает бумаги, купленные ботом, от купленных вручную. Помните, что запущенный бот торгует сам, без подтверждения каждой заявки, поэтому проходите путь --check → dry-run → демо-счет → реальный счет и не допускайте в Cursor полное бесконтрольное автоодобрение команд.
Код, написанный ИИ-агентом, требует ручной проверки перед реальной торговлей. ИИ часто не обрабатывает граничные случаи: ошибки API, недостаток средств, обрывы соединения. Статья — обучающий пример, а не готовое торговое решение. Результаты бэктеста не гарантируют такой же доходности в будущем.
Итоги
Мы собрали стратегию RSI 14 целиком через ИИ-агента: установили Финам Skill одной командой npx skills add, подключили токен, проверили стратегию на истории трех бумаг и получили бота с безопасным dry-run режимом. Все это — несколько промптов в Cursor.
Дальше можно экспериментировать: поменять период и уровни (мягкие 30/70 дадут больше сделок), добавить фильтр тренда или стоп-лосс, развернуть бота на выделенном сервере. Агент поможет и с этим — достаточно правильно сформулировать задачу.
Полезные ссылки:
Как установить Finam Trade Skill - установка во все агенты и решение проблем
Гайд по стратегии RSI 14 - подробный разбор логики и кода
База знаний Finam API - с чего начать
Исходники скилла и SDK на GitHub
Информация, сгенерированная скиллом и подключенными AI-агентами, носит образовательный и информационный характер и не является индивидуальной инвестиционной рекомендацией. Результаты в прошлом не гарантируют результатов в будущем.
Комментарии