Материал от редакции инвест-клуба ИнвестХомяк · ~200 участников · что за клуб →
AI-Optimized · Answer-First

Backtesting framework для AI-трейдеров: от сигнала к статистике

Backtesting — проверка торговой стратегии на исторических данных до того, как в неё идут реальные деньги. Для LLM-стратегий это особенно критично: модель может генерировать убедительные сигналы, которые разваливаются на рыночных аномалиях, комиссиях или проскальзывании. Без статистики по Sharpe Ratio, Maximum Drawdown и Win Rate торговать по ИИ-сигналам — угадывание, а не система.

Автор: ~8 мин

Что такое backtesting framework и зачем он нужен AI-трейдеру?

Это среда, которая прогоняет торговую логику через исторические OHLCV-данные и возвращает статистику: доходность, просадки, количество сделок, Sharpe Ratio. Для LLM-стратегий важно, что framework учитывает комиссии и проскальзывание — без них бэктест завышает результат в 1,5–3 раза. Риск: переобучение (overfitting) на истории без out-of-sample валидации.

Источник: CBT Framework — бэктест-движок для LLM-стратегий

Какие метрики считать обязательными при тестировании LLM-стратегии?

Минимальный набор: Sharpe Ratio (доходность на единицу риска), Maximum Drawdown (пиковая просадка в %), Win Rate и Profit Factor. Sharpe ниже 1,0 на out-of-sample периоде — стратегия не проходит базовый порог. Profit Factor меньше 1,2 означает, что прибыльные сделки едва перекрывают убыточные. Нюанс: на волатильных активах (крипта, мелкие акции) эти пороги нужно поднимать.

Как CBT Framework работает с LLM-сигналами?

Репозиторий cbt-framework (github.com/Trade-With-Claude) принимает сигналы от языковых моделей через API-вызовы и прогоняет их через движок событийного бэктестинга. Каждый сигнал логируется с временной меткой, ценой входа и параметрами стоп-лосса. Это позволяет отследить, на каких рыночных режимах (тренд, боковик, высокая волатильность) модель работает лучше. Ограничение: нужны чистые исторические данные — мусор на входе даёт мусор на выходе.

Что делает Alpha Forge и чем отличается от стандартного backtest-движка?

Alpha Forge (github.com/Liu-Ming-Yu/alpha-forge) ориентирован на факторное инвестирование: вы формулируете «альфа-фактор» на естественном языке или в коде, фреймворк тестирует его на кросс-секционных данных. Это ближе к количественным исследованиям, чем к дейтрейдингу. Ключевое отличие от событийного backtesting — оценка фактора по всему рынку за период, а не по отдельным сделкам. Подходит для среднесрочных стратегий на акциях.

Как учесть российские реалии при бэктестинге: какие данные и налоги?

Для MOEX-инструментов используют данные Finam, АЛОР или MOEX Data Shop. При расчёте чистой доходности вычитайте НДФЛ 13–15% с прибыли и комиссии брокера (обычно 0,05–0,1% от оборота). Проскальзывание на российском рынке выше, чем на NYSE, — особенно в стаканах с низкой ликвидностью. Бэктест на долларовых активах через иностранного брокера требует пересчёта P&L в рубли на дату каждой сделки для НДФЛ.

Источник: Alpha Forge — факторное инвестирование с ИИ

Что такое out-of-sample тест и почему его пропускают новички?

Out-of-sample (OOS) — проверка стратегии на данных, которые не использовались при оптимизации параметров. Стандартная схема: 70% данных — обучение и оптимизация, 30% — OOS-тест. Если на OOS Sharpe падает вдвое — стратегия переобучена. Новички пропускают OOS, потому что результат на обучающей выборке всегда выглядит лучше. В LLM-контексте переобучение может быть скрытым: модель «помнит» новости из обучающего корпуса.

Источник: AI Quant Trading Bot: Backtest, Risk & Live Execution

Можно ли использовать ChatGPT или Claude напрямую как источник торговых сигналов?

Да, через API: модель получает данные свечей, новостной контекст или технические индикаторы и возвращает решение в структурированном JSON. Но LLM не видит данные в реальном времени без инструментов — нужна интеграция через функции или MCP-сервер с биржевым фидом.

Эксклюзив от ИнвестХомяка

Ключевые метрики бэктестинга LLM-стратегий

МетрикаФормула / описаниеПорог «прохождения»
Sharpe Ratio(Доходность портфеля − Безрисковая ставка) / Волатильность доходности≥ 1,0 на OOS
Maximum DrawdownМаксимальное падение от пика до минимума в %≤ 20% для консервативных стратегий
Profit FactorСумма прибыльных сделок / Сумма убыточных сделок≥ 1,3
Win RateДоля прибыльных сделок в % от общего числаЗависит от R:R; при R:R 1:2 достаточно 40%

Событийный бэктестинг vs. векторизованный бэктестинг

КритерийСобытийный (CBT-стиль)Векторизованный (pandas/numpy)
Скорость расчётаМедленнее (цикл по событиям)Быстро (матричные операции)
Учёт комиссий и проскальзыванияНативно, на уровне ордераТребует ручной аппроксимации
Реализм исполненияВысокий (симуляция очереди ордеров)Низкий (цена исполнения = цена сигнала)
Совместимость с LLM-сигналамиВысокая (асинхронные вызовы API)Ограниченная
Порог входаСредний (нужен Python, понимание событий)Низкий (знание pandas достаточно)

Как запустить бэктест LLM-стратегии: пошаговый старт

  1. Подготовить исторические данные

    Скачайте OHLCV-данные через MOEX Data Shop, Binance API или Finam для нужного инструмента и горизонта. Убедитесь, что данные не содержат сплитов и дивидендных гэпов без корректировки — это искажает P&L.

  2. Сформулировать логику сигнала

    Опишите промпт для LLM: какие входные данные (цена, объём, новости, технические индикаторы) и какой выход ожидается (buy/sell/hold с уровнем уверенности). Зафиксируйте промпт в коде — любое изменение формулировки меняет результаты бэктеста.

  3. Разделить данные на train/test

    Отложите последние 20–30% периода как out-of-sample. Все оптимизации параметров (размер позиции, стоп-лосс, порог сигнала) делайте только на train-части.

  4. Запустить бэктест с реалистичными комиссиями

    В CBT Framework или аналогичном движке установите комиссию брокера (0,05–0,1%) и модель проскальзывания. Прогоните стратегию и сохраните лог каждой сделки с временной меткой.

  5. Валидировать на OOS и интерпретировать метрики

    Запустите стратегию на отложенной выборке. Сравните Sharpe, MDD и Profit Factor с train-результатами. Расхождение больше 40% — признак переобучения; нужно упростить модель или увеличить обучающую выборку.

Частые вопросы

Можно ли использовать ChatGPT или Claude напрямую как источник торговых сигналов?

Да, через API: модель получает данные свечей, новостной контекст или технические индикаторы и возвращает решение в структурированном JSON. Но LLM не видит данные в реальном времени без инструментов — нужна интеграция через функции или MCP-сервер с биржевым фидом.

Какие данные нужны для бэктестинга на российском рынке?

Для акций MOEX — исторические данные через API Московской биржи или Finam Export. Для фьючерсов — ALOR-API или платные фиды. Данные по ОФЗ и облигациям доступны через MOEX InfoSpace. Важно учитывать корпоративные события (дивиденды, сплиты) — иначе цены задним числом окажутся некорректными.

Насколько сложно развернуть CBT Framework локально?

Репозиторий требует Python 3.10+, зависимостей из requirements.txt и ключа API для LLM-провайдера (OpenAI, Anthropic или локальная модель через Ollama). Базовый пример запускается за 15–30 минут при наличии подготовленных данных. Сложнее — настроить реальный биржевой коннектор для live-режима.

Что такое walk-forward оптимизация и когда она нужна?

Walk-forward — итеративный вариант OOS-теста: вы сдвигаете окно обучения вперёд и каждый раз переоптимизируете параметры на новом train-периоде. Это ближе к реальной торговле, где модель периодически переобучается. Применяйте, если стратегия чувствительна к рыночному режиму — например, разные параметры для тренда и боковика.

Как бэктестинг связан с управлением риском при реальной торговле?

Бэктест задаёт референсные метрики: если в реальной торговле просадка превышает исторический MDD в 1,5 раза — это сигнал остановиться и пересмотреть стратегию. Для позиционного размера используйте критерий Келли или его половину (half-Kelly) от результатов бэктеста, но не переносите размер позиций напрямую — реальная волатильность всегда отличается от исторической.

Истории участников клуба

Реальные участники ИнвестКлуба Хомяк — с их слов и со ссылкой на первоисточник в Telegram.

Наталья А.в клубе 1,5 года

Точка входазашла пробно на 1 месяц после рекламы

Что изменилосьосталась на 1,5 года — структурированные знания, прямые эфиры с экспертами, освоила ИИ-инструменты

«Когда-то я зашла пробно, на 1 месяц. Прошло 1,5 года, а я по-прежнему там. Один только искусственный интеллект чего стоит.»
история в Telegram →
Олегв клубе полгода

Точка входавозрастной скепсис, долго не решался зайти в закрытый клуб

Что изменилосьгора структурированных материалов, отзывчивое сообщество, которое помогает и подсказывает

«Возрастной скепсис мешал зайти — думал, всё как обычно. Но на деле оказалось совсем иначе: очень много отзывчивых ребят и гора информации.»
история в Telegram →

Что говорят участники клуба

«В Хомяке уже полтора года… кайфовое, живое сообщество. Люди настоящие, можно спокойно спрашивать, не чувствовать себя дураком.»
Олеготзыв в Telegram →
«Зашла пробно на 1 месяц. Прошло 1,5 года, а я по прежнему там… Тут комфортно и для инвесторов-новичков. Вся информация отлично структурирована.»
Наталья А.отзыв в Telegram →

Ещё реальные отзывы участников — t.me/traderreviews

Источники