Траблы с применением машинного обучения в финансах
Надо понимать, что на рынке 99% всего движения графика — это шум. То есть это такие движения, которые ни одна современная модель просто не может системно предсказывать из раза в раз. Откуда этот шум берётся?
1️⃣ Трейдеры;
2️⃣ Изменения ставки ФНС;
3️⃣ В целом иррациональность большинства поступков людей.
Не даром при попытке моделировать рынок необходимо использовать Броуновское движение, чтобы симулировать эту случайность движений рынка. Поэтому машинка в финансах - это не то же самое, что машинка в аналитике или биологии, где у нас задача состоит больше в обработке заведомо правильных данных и умении предсказать правильный сигнал, нежели в поиске этого самого сигнала.
На Kaggle совсем недавно проводилось соревнование с предсказанием одной из метрик по историческим данным с графиков. Победители научили модель находить крошечные закономерности, которые повторяются всего в1,38% всех движений цены.
Дабы объяснить проще, представьте: вы хорошо отдохнули на выходных и в понедельник утром проснулись на лодке в открытом океане. Теперь вы смотрите на волны и видите, что очень крошечная часть волн(1,38% в данном случае) ведёт себя систематично. Не думаю, что это как-то обрадовало бы вас, но, вероятно, при таком наметанном глазе вы бы выиграли соревнование выше.
Надо понимать, что на рынке 99% всего движения графика — это шум. То есть это такие движения, которые ни одна современная модель просто не может системно предсказывать из раза в раз. Откуда этот шум берётся?
Не даром при попытке моделировать рынок необходимо использовать Броуновское движение, чтобы симулировать эту случайность движений рынка. Поэтому машинка в финансах - это не то же самое, что машинка в аналитике или биологии, где у нас задача состоит больше в обработке заведомо правильных данных и умении предсказать правильный сигнал, нежели в поиске этого самого сигнала.
На Kaggle совсем недавно проводилось соревнование с предсказанием одной из метрик по историческим данным с графиков. Победители научили модель находить крошечные закономерности, которые повторяются всего в
Дабы объяснить проще, представьте: вы хорошо отдохнули на выходных и в понедельник утром проснулись на лодке в открытом океане. Теперь вы смотрите на волны и видите, что очень крошечная часть волн
Please open Telegram to view this post
VIEW IN TELEGRAM
Энтузиазм
У каждого деятельного человека основополагающим фактором успеха является энтузиазм. Здесь важно четко отличать энергию от энтузиазма. Человек может быть энергичным, но без энтузиазма - тогда он делает через силу и принуждение, не наслаждаясь самим процессом. Я прям сверхдолгое время был убежден, что сила в тупом делании и дисциплине, однако при каждой попытке внедрить желание совершать нетривиальные для мозга действия (читать книгу на английском, решать задачи, прогать новый проект) проебывался и читал только 3% книги, решал только 2/10 задач, не прогал задуманное до конца. И не понимал что же я делаю не так, ведь из каждого рилса, книги, совета транслируется что надо применять правило ЕБШ и все будет ЗБС.
По факту это оказалось фикцией, навязанной обществом - именно тем большим пластом людей, которые буквально рвут жопы, задыхаясь, достигая результата, который в ровном состоянии можно было бы получить в пять раз быстрее и с куда меньшими затратами физического и психического здоровья. А то самое правильное состояние, влекущее за собой энтузиазм, у меня достигается только через повышение чувствительности организма: растяжку тела и работу с зажимами, бани, спортзал с видоизменённой техникой выполнения упражнений.
Доходит до смешного. Я раньше ездил в метро и все время слушал только музыку или листал рилсы. Теперь во время поездки в метро мне просто физически некомфортно думскролить. Хочется нарешивать стоханы, разбирать курсач, читать книжку по финансам (сейчас этоWilmott - Paul Wilmott introduces quantitative finance ) и это происходит не из-за выдуманной дисциплины или принуждения себя, а просто появилось желание. Таким макаром я уже осилил 50 страничек книжке, решил пару задачек и написал большую часть данного поста. И вывод напрашивается сам - чтобы достигать нормального результата надо не распыляться вовне, а сосредоточиться на своём организме и в первую очередь улучшать его состояние.
У каждого деятельного человека основополагающим фактором успеха является энтузиазм. Здесь важно четко отличать энергию от энтузиазма. Человек может быть энергичным, но без энтузиазма - тогда он делает через силу и принуждение, не наслаждаясь самим процессом. Я прям сверхдолгое время был убежден, что сила в тупом делании и дисциплине, однако при каждой попытке внедрить желание совершать нетривиальные для мозга действия
По факту это оказалось фикцией, навязанной обществом - именно тем большим пластом людей, которые буквально рвут жопы, задыхаясь, достигая результата, который в ровном состоянии можно было бы получить в пять раз быстрее и с куда меньшими затратами физического и психического здоровья. А то самое правильное состояние, влекущее за собой энтузиазм, у меня достигается только через повышение чувствительности организма: растяжку тела и работу с зажимами, бани, спортзал с видоизменённой техникой выполнения упражнений.
Доходит до смешного. Я раньше ездил в метро и все время слушал только музыку или листал рилсы. Теперь во время поездки в метро мне просто физически некомфортно думскролить. Хочется нарешивать стоханы, разбирать курсач, читать книжку по финансам (сейчас это
black-ai.ipynb
76.1 KB
На днях пришла идея сравнить модель Блэка-Шоулза и нейросетки в предсказании цен на кол-опцион. Нагенерил данных без улыбки волатильности и с ней. Взял улыбку, так как именно она возникает когда люди сильно верят в возможность больших скачков.
Без улыбки результаты следующие:
--- РЕЗУЛЬТАТЫ ---
Средняя ошибка Блэка-Шоулза: $0.0814
Средняя ошибка Нейросети: $0.1743
Понятно, что в формуле Блэка волатильность является константой, поэтому нейросеть явно лучше справилась с задачей минимизации ошибки MSE когда появляется улыбка.
--- РЕЗУЛЬТАТЫ С 😁 ---
Средняя ошибка Блэка-Шоулза: $0.2558
Средняя ошибка Нейросети: $0.1427
На практике конечно никто не заменяет нашего черного друга ИИ, так как возникает главная проблема - интерпретируемость нейросети. Нейронки используют дабы фитить сигму (волатильность) или хеджировать риски.
Без улыбки результаты следующие:
--- РЕЗУЛЬТАТЫ ---
Средняя ошибка Нейросети: $0.1743
Понятно, что в формуле Блэка волатильность является константой, поэтому нейросеть явно лучше справилась с задачей минимизации ошибки MSE когда появляется улыбка.
--- РЕЗУЛЬТАТЫ С 😁 ---
Средняя ошибка Нейросети: $0.1427
На практике конечно никто не заменяет нашего черного друга ИИ, так как возникает главная проблема - интерпретируемость нейросети. Нейронки используют дабы фитить сигму (волатильность) или хеджировать риски.
🔥6👍4
Я тут на днях, просыпаясь ночью, подумал как можно обойти алгоритм поиска ближайшего соседа от Spotify (Annoy). В итоге пришла идея с разделением пространства на сферы вместо плоскостей, а затем пускать перпендикуляры в n-мерном пространстве и таким образом оптимизировать обход дерева.
Annoy - это библиотека на C++, которую юзают все подряд для векторного поиска. Рекомендации, эмбеддинги, RAG. Стандарт индустрии.
Проблема: на высоких размерностях он врёт. Средняя ошибка 82.4 на 100D. Из 100 запросов - ноль точных попаданий.
Что сделал:
- Взял VP-дерево (разбиение пространства сферами, а не гиперплоскостями)
- Добавил умный выбор опорной точки по максимуму дисперсии расстояний
- Заменил рекурсивный поиск на очередь с приоритетом
- Собрал лес из 10 деревьев
Результат: 100 запросов — 100 точных попаданий. Ошибка 0.000000.
Да, по скорости чистый питон проигрывает сишному Annoy в 200 раз. Но если тебе важно найти правильного соседа, а не быстрого - это работает.
Статья полная на linked in с кодом - https://www.linkedin.com/pulse/i-built-nearest-neighbor-search-beats-spotifys-annoy-heres-kleimenov-c87re/
Annoy - это библиотека на C++, которую юзают все подряд для векторного поиска. Рекомендации, эмбеддинги, RAG. Стандарт индустрии.
Проблема: на высоких размерностях он врёт. Средняя ошибка 82.4 на 100D. Из 100 запросов - ноль точных попаданий.
Что сделал:
- Взял VP-дерево (разбиение пространства сферами, а не гиперплоскостями)
- Добавил умный выбор опорной точки по максимуму дисперсии расстояний
- Заменил рекурсивный поиск на очередь с приоритетом
- Собрал лес из 10 деревьев
Результат: 100 запросов — 100 точных попаданий. Ошибка 0.000000.
Да, по скорости чистый питон проигрывает сишному Annoy в 200 раз. Но если тебе важно найти правильного соседа, а не быстрого - это работает.
Статья полная на linked in с кодом - https://www.linkedin.com/pulse/i-built-nearest-neighbor-search-beats-spotifys-annoy-heres-kleimenov-c87re/
Linkedin
I Built a Nearest Neighbor Search That Beats Spotify's Annoy — Here's How
A pure Python implementation of a VP-Tree Forest with 3 targeted optimizations achieves 0.000000 mean error vs Annoy's 82.
За последние 3 месяца после первого касания с Claude code стало понятно как много пиздежа в твиттере. Каждый второй инфлюенсер выдает секретный промпт, который нагенерил ему сверхприбыльную стратегию на 200% годовых, 300к в наносек.
На деле профит возможен только при понимании, что такое бэктесты и как правильно их писать, что такое рынок, какие игроки на нем присутствуют и тд и тп. Особенно это актуально в околофинансовой сфере, где люди выжимают каждый цент из инвестированного ими доллара.
У меня в целом возникло ощущение, что если вы не будете валидировать нейронку и напихивать ей за каждую неверную строчку кода, то она напихает вашему депозиту, подгоняя желаемое под действительное уверяя вас, что стратегия с 4000% прибыли в месяц на тестовых данных это ок.
Для себя я нашел 3 варианта использование ИИ:
1. Разбор статей по математике, крипте, финансах.
2. Сбор данных, их сортировка, написание тестов для стратегий + мониторинг возможностей на рынке
3. Написание различных программ, из недавнего я завайбкодил автомонтажер рилсов, сайт сантехники с парсером, арбитражного бота.
Я с Клаудом поработал довольно много, придумав за это время несколько механизмов оптимизации его мозгов, например заставляю его правильно помнить инфу в каждом из проектах и делать компакт в нужное время. Если интересно, то пошумите, продолжу эту тему разгонять.
На деле профит возможен только при понимании, что такое бэктесты и как правильно их писать, что такое рынок, какие игроки на нем присутствуют и тд и тп. Особенно это актуально в околофинансовой сфере, где люди выжимают каждый цент из инвестированного ими доллара.
У меня в целом возникло ощущение, что если вы не будете валидировать нейронку и напихивать ей за каждую неверную строчку кода, то она напихает вашему депозиту, подгоняя желаемое под действительное уверяя вас, что стратегия с 4000% прибыли в месяц на тестовых данных это ок.
Для себя я нашел 3 варианта использование ИИ:
1. Разбор статей по математике, крипте, финансах.
2. Сбор данных, их сортировка, написание тестов для стратегий + мониторинг возможностей на рынке
3. Написание различных программ, из недавнего я завайбкодил автомонтажер рилсов, сайт сантехники с парсером, арбитражного бота.
Я с Клаудом поработал довольно много, придумав за это время несколько механизмов оптимизации его мозгов, например заставляю его правильно помнить инфу в каждом из проектах и делать компакт в нужное время. Если интересно, то пошумите, продолжу эту тему разгонять.
💯33👍13❤5🔥3 1
Аркадия
kleymenov_aa_falshivoe-brounovskoe-dvijenie_365011.pdf
Защитил вчера курсовую 3-го курса на 10/10
Суть: строится процесс, который в каждый фиксированный момент времени неотличим от броуновского движения (распределение N(0, t)), но броуновским движением при этом не является - у него есть скачки.
Что было сделано: взял сжатую статью Hamza–Klebaner (2006), структурировал весь текст вместе с реконструкцией большинства доказательств, для каждой используемой классической теоремы (Колмогоров, Леви–Хинчин, Ито, Келлерер) нашёл точную ссылку в учебнике и дал альтернативное доказательство существования такого процесса через теорему Келлерера.
Где применяется: в финансах есть различные опционы. Один из видов - барьерные опционы. Их много подвидов, но ключевая особенность в том, что выплата происходит или не происходит в зависимости от того, пересекла ли цена заданный барьер али нет. В отличие от европейских опционов, их цену нельзя определить однозначно, так как она зависит не только от конечного распределения, но и от совместного. То есть два моделируемых процесса могут иметь одинаковые маргинальные распределения в любой фиксированный момент времени, однако сами процессы (как случайные функции) различаются - а значит, и цена барьерного опциона у них будет разной.
Отдельное спасибо моему научному руководителю Колесникову Александру Викторовичу.
Выше прикрепил файл самой курсовой + презу для защиты.
Суть: строится процесс, который в каждый фиксированный момент времени неотличим от броуновского движения (распределение N(0, t)), но броуновским движением при этом не является - у него есть скачки.
Что было сделано: взял сжатую статью Hamza–Klebaner (2006), структурировал весь текст вместе с реконструкцией большинства доказательств, для каждой используемой классической теоремы (Колмогоров, Леви–Хинчин, Ито, Келлерер) нашёл точную ссылку в учебнике и дал альтернативное доказательство существования такого процесса через теорему Келлерера.
Где применяется: в финансах есть различные опционы. Один из видов - барьерные опционы. Их много подвидов, но ключевая особенность в том, что выплата происходит или не происходит в зависимости от того, пересекла ли цена заданный барьер али нет. В отличие от европейских опционов, их цену нельзя определить однозначно, так как она зависит не только от конечного распределения, но и от совместного. То есть два моделируемых процесса могут иметь одинаковые маргинальные распределения в любой фиксированный момент времени, однако сами процессы (как случайные функции) различаются - а значит, и цена барьерного опциона у них будет разной.
Отдельное спасибо моему научному руководителю Колесникову Александру Викторовичу.
Выше прикрепил файл самой курсовой + презу для защиты.
👍16 8❤5🖕1
Аркадия
За последние 3 месяца после первого касания с Claude code стало понятно как много пиздежа в твиттере. Каждый второй инфлюенсер выдает секретный промпт, который нагенерил ему сверхприбыльную стратегию на 200% годовых, 300к в наносек. На деле профит возможен…
Мои недавние наработки для ускорения работы с ИИ:
Древовидная структура
Я держу файл, в котором кратко описан каждый из моих проектов, дабы Claude не терялся и сразу находил нужный при сбросе очередной сессии. Клод сам дописывает в этот файл новые проекты и удаляет старые. Внутри каждого проекта есть отдельный файл, в котором обычным списком хранятся последовательно все внесённые ключевые изменения и дата их принятия; также в данном файле лежат все важные ошибки, их исправления и возможные уязвимости, которые надо отдельно валидировать при внесении новых правок в код.
Надзиратель агентов
ЛЛМ-ки очень любят додумывать решения, особенно если это касается торговых алгоритмов. У них часто возникает проблема с округлениями, с расчётом цены, относительно которой надо ставить лонг/шорт, с пониманием, на каких данных надо обучаться, а какие игнорировать. Поэтому после каждого крупного изменения я люблю задавать такой промпт - "перечисли решения, принятые тобой лично, которых не было в исходном задании".
Аудит ссылок
Столкнулся с этим во время написания курсовой работы, когда нейросеть пересказывала статьи, которых на самом деле нет, при этом выдавая битые ссылки, которые никуда не вели. После этого у меня появился отдельный агент, который проверяет каждую ссылку на достоверность и уличает ложь.
До создания папки с очередным проектом я беру лист бумаги и рисую для себя древовидную диаграмму, где схематично представляю тот результат, которого хочу добиться. На самом деле один только этот метод ускоряет работу на порядок - сильнее, чем любые секретные промпты или скрещивания субагентов. Поэтому в вайбкодинге, как и в трушном программировании руками, важно не то, с какой скоростью ты пишешь код, а то, представляешь ли ты само решение.
Древовидная структура
Я держу файл, в котором кратко описан каждый из моих проектов, дабы Claude не терялся и сразу находил нужный при сбросе очередной сессии. Клод сам дописывает в этот файл новые проекты и удаляет старые. Внутри каждого проекта есть отдельный файл, в котором обычным списком хранятся последовательно все внесённые ключевые изменения и дата их принятия; также в данном файле лежат все важные ошибки, их исправления и возможные уязвимости, которые надо отдельно валидировать при внесении новых правок в код.
Надзиратель агентов
ЛЛМ-ки очень любят додумывать решения, особенно если это касается торговых алгоритмов. У них часто возникает проблема с округлениями, с расчётом цены, относительно которой надо ставить лонг/шорт, с пониманием, на каких данных надо обучаться, а какие игнорировать. Поэтому после каждого крупного изменения я люблю задавать такой промпт - "перечисли решения, принятые тобой лично, которых не было в исходном задании".
Аудит ссылок
Столкнулся с этим во время написания курсовой работы, когда нейросеть пересказывала статьи, которых на самом деле нет, при этом выдавая битые ссылки, которые никуда не вели. После этого у меня появился отдельный агент, который проверяет каждую ссылку на достоверность и уличает ложь.
До создания папки с очередным проектом я беру лист бумаги и рисую для себя древовидную диаграмму, где схематично представляю тот результат, которого хочу добиться. На самом деле один только этот метод ускоряет работу на порядок - сильнее, чем любые секретные промпты или скрещивания субагентов. Поэтому в вайбкодинге, как и в трушном программировании руками, важно не то, с какой скоростью ты пишешь код, а то, представляешь ли ты само решение.
👍10❤3 3🤣1
Может ли ChatGPT торговать лучше человека?
Нашёл свежий обзор исследований про LLM-агентов в трейдинге. Авторам конечно надо верить не на 100%, потому что косяки есть даже в тексте, но зерно правды в статье содержится. В paper разобраны системы, которые читают новости, отчётность и рыночные данные, а затем самостоятельно принимают торговые решения.
Спойлер: идеи интересные, но отдавать GPT деньги пока рано.
Все системы делятся на два типа.
1. LLM-трейдер
Модель получает новости, цены и финансовые отчёты, после чего отвечает: купить, продать или держать.
Более сложные агенты умеют:
- запоминать предыдущие сделки;
- анализировать собственные ошибки;
- спорить с другими агентами;
- корректировать стратегию через reinforcement learning.
Например, один агент предлагает купить акцию, другой ищет причины этого не делать, а третий оценивает риски.
2. LLM как исследователь
Более практичный вариант: модель не торгует напрямую, а ищет потенциальные источники альфы.
Она может:
- извлекать события из новостей;
- анализировать отчёты компаний;
- придумывать торговые факторы;
- писать формулы сигналов;
- объяснять неудачный бэктест;
- предлагать следующую гипотезу.
После этого идея проходит обычную количественную проверку и только потом попадает в торговую систему.
На мой взгляд, именно здесь у LLM есть реальная ценность. Не «предскажи цену NVIDIA», а «преврати тысячу документов в структурированные признаки, которые можно проверить».
На бэктестах некоторые LLM-агенты показывают годовую доходность на 15–30 процентных пунктов выше использованных базовых стратегий.
Но есть несколько нюансов:
- медианный период тестирования составляет всего 1,3 года;
- даты бэктестов часто выбраны произвольно;
- комиссии и проскальзывание обычно не учитываются;
- тестируют в основном популярные акции вроде TSLA, MSFT и META;
- полноценного forward- или live-тестирования почти нет;
- результаты разных исследований нельзя напрямую сравнивать.
И есть ещё одна фундаментальная проблема.
Если современная GPT анализирует новость 2021 года, она потенциально уже знает, что произошло с компанией после этой новости. Будущее может находиться не в промпте, а в весах модели.
Получается скрытый look-ahead bias: агент выглядит гениальным на исторических данных, потому что в некотором смысле уже видел ответы.
Главный вывод
LLM пока не выглядит доказанным автономным трейдером. Красивый бэктест ещё не означает наличия реальной альфы.
Для себя я ИИ в финансах использую преимущественно для проверки своих гипотез и написания бэктестов, объединения несколько стратегий в одну, поиск новых статьей на примере заданных.
Ознакомиться со статьей: https://arxiv.org/abs/2408.06361
Нашёл свежий обзор исследований про LLM-агентов в трейдинге. Авторам конечно надо верить не на 100%, потому что косяки есть даже в тексте, но зерно правды в статье содержится. В paper разобраны системы, которые читают новости, отчётность и рыночные данные, а затем самостоятельно принимают торговые решения.
Спойлер:
Все системы делятся на два типа.
1. LLM-трейдер
Модель получает новости, цены и финансовые отчёты, после чего отвечает: купить, продать или держать.
Более сложные агенты умеют:
- запоминать предыдущие сделки;
- анализировать собственные ошибки;
- спорить с другими агентами;
- корректировать стратегию через reinforcement learning.
Например, один агент предлагает купить акцию, другой ищет причины этого не делать, а третий оценивает риски.
2. LLM как исследователь
Более практичный вариант: модель не торгует напрямую, а ищет потенциальные источники альфы.
Она может:
- извлекать события из новостей;
- анализировать отчёты компаний;
- придумывать торговые факторы;
- писать формулы сигналов;
- объяснять неудачный бэктест;
- предлагать следующую гипотезу.
После этого идея проходит обычную количественную проверку и только потом попадает в торговую систему.
На мой взгляд, именно здесь у LLM есть реальная ценность. Не «предскажи цену NVIDIA», а «преврати тысячу документов в структурированные признаки, которые можно проверить».
На бэктестах некоторые LLM-агенты показывают годовую доходность на 15–30 процентных пунктов выше использованных базовых стратегий.
Но есть несколько нюансов:
- медианный период тестирования составляет всего 1,3 года;
- даты бэктестов часто выбраны произвольно;
- комиссии и проскальзывание обычно не учитываются;
- тестируют в основном популярные акции вроде TSLA, MSFT и META;
- полноценного forward- или live-тестирования почти нет;
- результаты разных исследований нельзя напрямую сравнивать.
И есть ещё одна фундаментальная проблема.
Если современная GPT анализирует новость 2021 года, она потенциально уже знает, что произошло с компанией после этой новости. Будущее может находиться не в промпте, а в весах модели.
Получается скрытый look-ahead bias: агент выглядит гениальным на исторических данных, потому что в некотором смысле уже видел ответы.
Главный вывод
LLM пока не выглядит доказанным автономным трейдером. Красивый бэктест ещё не означает наличия реальной альфы.
Для себя я ИИ в финансах использую преимущественно для проверки своих гипотез и написания бэктестов, объединения несколько стратегий в одну, поиск новых статьей на примере заданных.
Ознакомиться со статьей: https://arxiv.org/abs/2408.06361
arXiv.org
Large Language Model Agent in Financial Trading: A Survey
Trading is a highly competitive task that requires a combination of strategy, knowledge, and psychological fortitude. With the recent success of large language models(LLMs), it is appealing to...
🔥6❤5👎1