Проверка AI-фильтра на данных бэктестов
TradeJS умеет превращать AI-бэктесты в переиспользуемые датасеты для проверки AI-фильтра.
AI-проверка в TradeJS не обязана жить только в рабочем режиме. Во время бэктеста можно сохранить данные по историческим сделкам, а потом повторно прогонять их через новые версии промптов, моделей и правил AI-фильтра.
Важно: это проверка на исторических данных, а не режим "без запросов к модели". По умолчанию ai-train повторно отправляет промпты вашему AI-провайдеру, а режим без внешних запросов доступен только через --localOnly.
Зачем это нужно
- Можно менять поведение промптов без полного повторного прогона рыночной симуляции.
- Можно сравнивать модели, провайдеров и пороги качества на одном и том же историческом срезе.
- Можно заранее измерять ложные подтверждения и ложные отказы до изменения AI-фильтра в live-режиме.
- AI-оценка остаётся привязанной к реальным результатам сделок, а не к синтетическим примерам.
Что TradeJS записывает во время бэктеста
Когда в бэктесте включён экспорт AI-датасета, TradeJS пишет по каждой сделке строки с:
- идентификатором сигнала,
symbol,directionиtimestamp - именем стратегии
- структурированным AI payload, по которому позже можно пересобрать промпты стратегии
- фактическим
profitсделки для оценки на исторических данных - дополнительными служебными данными теста для трассировки бэктеста
Сначала строки пишутся в chunk-файлы воркеров, потом объединяются в единый датасет для повторной проверки.
Как это работает
- Запускаете бэктест с включённым экспортом AI-датасета.
- Объединяете chunk-файлы в один датасет с меткой времени.
- Повторно прогоняете этот датасет через текущую AI-логику.
- Сравниваете решения AI с фактическим результатом сделок до изменения AI-фильтра в live-режиме.
Во время повторной проверки TradeJS пересобирает пару промптов из сохранённого signal/payload контекста, поэтому новые версии промптов и aiAdapter можно проверять на одном и том же историческом срезе.
Воспроизводимый CLI flow
npx @tradejs/cli backtest --config TrendLine:base --ai
npx @tradejs/cli ai-export
npx @tradejs/cli ai-train -n 50 --minQuality 4
Артефакты:
backtest --aiпишетdata/ai/export/ai-dataset-<strategy>-chunk-<chunkId>.jsonlai-exportобъединяет их вdata/ai/export/ai-dataset-<strategy>-merged-<timestamp>.jsonlai-trainпо умолчанию повторно прогоняет строки из последнего merged-файла
Важно:
- обычный replay по-прежнему делает запросы к настроенному AI-провайдеру
- без внешних запросов работает только режим
--localOnly
Полезные флаги ai-train:
-n, --recent— проверить последние N сделок с конца (0= все строки)--minQuality— минимальный quality threshold для AI approval-s, --strategy— взять последний merged-файл только для одной стратегии-f, --file— воспроизвести конкретный merged dataset файл
Что можно валидировать
- изменения AI-промптов в
aiAdapterстратегии - смену провайдера или модели
- настройку
minQuality - согласованность с исходным направлением стратегии
- поведение
tp / fp / tn / fnдля AI approval против реальной прибыльности - локальные детерминированные эксперименты через
--localOnly
Как ai-train считает approval
- сделка считается одобренной только если AI вернул то же направление, что и исходный сигнал, и
quality >= minQuality - корректность на исторических данных считается по фактическому результату сделки (
profit > 0)
Ключевые метрики
- approval rate
- precision по quality-бакетам
- влияние на expectancy proxy
- доля конфликтов с направлением стратегии
tp / fp / tn / fnдля approval против реальной прибыльности
Вариант для экономии
Для ручных исследовательских прогонов некоторые команды запускают и анализируют ai-train из кодовых агентов вроде OpenAI Codex или Claude Code вместо того, чтобы строить каждую итерацию вокруг прямых API-запросов в собственном tooling.
Это может ускорять цикл проверки промптов и в некоторых случаях снижать стоимость по сравнению с прямым API-режимом, если у вас уже есть подходящий тариф, включённые лимиты или удобный workspace workflow. Но это не гарантированное преимущество: перед тем как делать такой сценарий основным, проверьте актуальные ограничения и цены для Codex, Claude Code и вашего AI-провайдера.
Рекомендуемый сценарий проверки
- Меняете prompt-логику или правила adapter в коде.
- Повторно прогоняете тот же исторический набор строк.
- Проверяете, улучшился ли tradeoff между покрытием и качеством.
- Продвигаете новый gate только после внятного обоснования на исторических данных.
Так AI-фильтр становится проверяемым, повторяемым и понятным для авторов стратегий.