Блог им. dvstarkov
Проверялась возможность построить дополнительный слой информации для восьми российских нефтяных акций: LKOH, ROSN, SIBN, BANE, BANEP, SNGS, SNGSP и TATN.
Исходная концепция объединяла машинное обучение, LLM-анализ фундаментальных факторов и классические методы оценки. Девять этапов включали исследование гипотез, подготовку признаков, линейные модели, генетический поиск, торговую модель и четыре версии модели fair price.
LLM использовались не как генераторы торговых сигналов, а как участники исследовательского процесса:
ChatGPT — постановка задач, методология, критерии приёмки и аудит логики.
DeepSeek — реализация кода, тестирование, диагностика ошибок и интерпретация результатов.
Ridge и Lasso — линейные методы ранжирования и отбора признаков.
LightGBM — нелинейное ранжирование и попытка моделировать отклонение цены от базовой оценки.
Kalman — адаптивная базовая оценка цены.
Фундаментальный LLM-контур и классические мультипликаторы в итоговую модель не вошли. Поэтому фактически проверялась преимущественно количественная часть архитектуры.
QuantGplearn искал формулы, оптимизирующие RankIC на 20-дневном горизонте. Прогон с популяцией 250 особей и 8 поколениями занял 6,1 минуты на CPU.
Средний RankIC десяти лучших выражений составил 0,0716 против 0,0494 у случайного baseline. Однако 6 из 10 выражений оказались дубликатами, средняя корреляция отобранных формул была высокой — 0,907.
Результат указывает на потенциально полезную информацию на 20-дневном горизонте, но не доказывает статистическую устойчивость преимущества. Проверка с учётом множественного поиска и на независимом периоде остаётся необходимой.
Модель использовала 7 признаков: 3 генетических фактора и 4 беты. Из восьми акций отбирались две, ребалансировка проводилась каждые 20 сессий. Издержки — 10 б.п. на сторону.
Итоговая доходность составила +124,55% против +93,00% у Buy & Hold. CAGR — 6,84% против 5,52%, Sharpe — 0,381 против 0,350.
При этом максимальная просадка модели хуже: −62,98% против −54,95%. RankIC — 0,0054, AUC Top-2 — 0,5098, Hit Rate Top-2 — 0,268.
Превышение Buy & Hold по итоговой доходности не подтверждает качество ранжирования. Устойчивость результата по годам не проверена.
Проверялась гипотеза, что семь фиксированных факторов способны улучшить оценку цены сверх адаптивной базовой модели.
EMA(60) давала отрицательные отклонения от −2% до −14%. Модель на медиане показала R² validation −0,063.
В версии Kalman базовая оценка строилась на уровне и тренде. MAE составил 2,6–3,2% в логарифмическом масштабе, смещение на проверенной выборке было близко к нулю.
Добавление семи факторов не улучшило результат: MAE модели — 0,025331 против 0,025323 у нулевого прогноза поправки. R² validation — −0,0001, LightGBM остановился на первой итерации.
В текущей конфигурации факторная поправка закрыта. Kalman сохраняется как локальная оценка цены, но не как доказательство справедливой стоимости.
Разделение ролей помогало организовать разработку: задачи формулировались отдельно, перед полным прогоном проводился аудит, отрицательные результаты фиксировались, а не маскировались подбором модели.
При этом ни один LLM-контур не заменил техническую проверку данных.
В процессе были обнаружены ошибки обработки пропусков в Ridge, задержка обновления GP-факторов, несогласованность показателей best_fit и score в отчётах генетического поиска. Но проблемы с корпоративными сплитами не были устранены до расчёта целевой переменной.
Для пяти акций — ROSN, BANEP, SNGS, SNGSP и TATN — наблюдались экстремальные изменения до 38–46%, связанные с корпоративными событиями. Они могли загрязнить расчёт доходностей и оценку моделей.
Вывод по LLM ограничен этим экспериментом: разделение задач и аудит полезны, но не гарантируют корректность данных, отсутствие ошибок или валидность бэктеста.
Секторный отскок не подтвердился после устранения перекрытия окон: эффект изменился с +1,13 п.п. до −0,54 п.п., а количество наблюдений сократилось с 235 до 41 независимого случая.
Моментум не показал убедительного преимущества: разница доходностей близка к нулю, доля положительных исходов — 49,5%.
TATN показала относительное преимущество +1,17% в 68% окон. Привилегированная SNGSP превосходила SNGS в 58% окон. Это кандидаты на дальнейшую проверку, а не подтверждённые универсальные закономерности.
Ridge показал отрицательный IC −0,129, однако результат осложнён ошибкой обработки пропусков и несопоставимыми выборками. Lasso до реализации не дошёл, поэтому оценить его эффективность нельзя.
Проверено в рамках экспериментов:
Kalman дал базовую оценку с MAE около 3%.
Семь факторов не улучшили дневную поправку к Kalman.
Генетический поиск обнаружил потенциальный сигнал на 20-дневном горизонте.
Торговая модель превысила Buy & Hold по итоговой доходности, но уступила по максимальной просадке и показала слабые метрики ранжирования.
Несколько исходных гипотез не выдержали повторной проверки.
LLM помогли организовать разработку и диагностику, но не предотвратили все ошибки данных.
Не проверено:
Устойчивость торговой модели по годам и на независимом периоде.
Значимость GP-факторов с учётом множественного поиска.
Результаты после корректной обработки сплитов и корпоративных событий.
Вклад LLM-анализа фундаментала и классических мультипликаторов.
Преимущество полной архитектуры над более простыми моделями.
Итог: в этом исследовании полезность инструмента определялась не сложностью модели, а тем, давал ли он дополнительную информацию относительно baseline. Kalman сохранился как базовая оценка, генетические факторы — как гипотеза для 20-дневного горизонта, торговая модель требует дальнейшей проверки. LLM ускорили исследовательский процесс, но не заменили валидацию данных и результатов.