Обновить

Как я скрестил RAG, LLM и RandomForest: архитектура торгового сигнала с доказательствами

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели6K
Рейтинг0
Комментарии5

Комментарии 5

Я думаю в какой-то момент наберется достаточное количество торговых агентов, действия которых можно будет предугадать. И обладая этим знанием можно будет играть на опережение

Недавно пытался примерно тем же заниматься. Сущности не извлекал, просто в модель подавался список интересующих акций с расшифровкой а модель уже говорила на что из списка новость влияет и как. В общем пока из этого ничего хорошего не получилось, корреляция вроде бы и есть, но даже комиссия не окупается. Во первых одна и та же новость встречается много раз в разных источниках, так что видимо анализировать надо всю цепочку. Во вторых похоже что большинство движений начинаются до выхода новости в прессе.
Не скажу что я совсем забросил идею, но пока корреляция с нефтью и временем суток дает больше прибыли

С высоты прожитого опыта и проведённых изысканий:

Не надо плодить сущности. Надо решать свой конкретный кейс. И всё придёт к простой арифметике.

Хорошо, что вы сразу показываете наивный ориентир (~55%) и честно пишете про 59 примеров — это уже половина дела. На 45 тестовых точках 0,62 против 0,55 пока в пределах шума, поэтому ключевое не средняя точность, а три вещи: (1) держится ли перевес на следующих окнах, а не только на уже размеченных; (2) разбивка по классам — precision/recall отдельно для BUY/SELL/NEUTRAL, иначе модель может просто опираться на «рынок чаще растёт» и по accuracy выглядеть прилично, не добавляя сигнала; (3) калибровка вероятностей. Интересно, как эти три меняются по мере роста выборки — поделитесь, когда накопится?

Спасибо за комментарий! Полностью согласен: на 45 тестовых точках 0.62 vs 0.55 — это в пределах шума. Поэтому я не делаю выводов о «превосходстве» модели, а фиксирую и честно жду данных.

По вашим трём пунктам:

(1) Держится ли перевес на следующих окнах? Я использую Walk-Forward (окно 30 дней, тест 7), чтобы видеть динамику. Сейчас на 104 записях (70 тестовых примеров) средняя Accuracy = 0.57. Но разброс по окнам огромный (от 0.00 до 1.00) — это нестационарность. Планирую добавить детекцию смены режима (Regime Detection) в Vision 2.0. Когда накопится 200+ записей, я опубликую график Accuracy по окнам (чтобы было видно, держится ли сигнал).

(2) Precision/Recall по классам. Вы правы: accuracy может скрывать дисбаланс. Сейчас модель склонна к BUY (из-за базовой вероятности роста). Я уже зафиксировал это в ADR и запланировал добавить фичи доминирования (bullish_count, bearish_count, dominance). Плюс я внедрил Sanity Check (если новостной фон противоречит сигналу, он отменяется). Когда данных станет больше, я посчитаю precision/recall отдельно для BUY/SELL и поделюсь.

(3) Калибровка. Я использую Platt scaling (калибровка через CalibratedClassifierCV). Сейчас проверить её надёжно сложно (мало данных), но я планирую построить reliability diagram (кривую калибровки) при 200+ записях.

В целом, я согласен: пока это PoC. Главное — архитектура готова к масштабированию, и я честно документирую ограничения в ADR. Спасибо, что обратили внимание на эти нюансы — они пойдут в следующую итерацию.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации