Мысли об ИИ для трейдинга: плюсы, минусы, подводные камни
Я тут на днях начал экспериментировать с ИИ агентами, поставил opencode.ai - мультимодельная софтина, которая позволяет использовать разные ИИ модели в одном окне. Результаты получились довольно интересные, но не блестящие, много нюансов. Еще расскажу об опыте коллег, которые так или иначе пробовали привинчивать ИИ к исследованиям.
Давайте сразу отделим мух от котлет, и проведем черту между использованием “ИИ” в торговых операциях (принятие решений моделью) и использованием ИИ помощников для текущих исследований. В настоящем мире смещались в кучу кони, люди, а ИИ называют любой алгоритм, потому что .ai в доменном имени добавляет так же много капитализации как и .com в начале 2000х.
ИИ для принятия решений
О попытках использования нейросетей в трейдинге я узнал еще в 2004 году, уже тогда было несколько продуктов, которые использовали эти технологии. Потом пришел machine learning на рубеже 2016-18 годов, и наконец наступила эра ИИ. Однако все это разбивалось о стохастическую природу рыночных данных, где соотношение сигнала-шума сводило любую модель с ума. Я бы сказал, что финансовые данные не очень подходят для такого рода моделей. Хоть я и нашел несколько хороших применений для этой технологии для себя, и даже создал пару собственных моделей machine learning, но ожидания явно не оправдались. Оставлю эту тему для отдельного поста.
ИИ как инструмент
Этот пост будет посвящен LLM моделям, точнее агентам, которые появились буквально за последний год. И в целом я должен признать, это вполне неплохой инструмент для повышения продуктивности в умелых руках. А в неумелых руках можно очень легко поранить себя, иногда даже фатально. Главное, что нужно запомнить - необходимо осознанно подходить к применению этого инструмента, и понимать те ниши где он дает прирост продуктивности, и порочные пути, например вайб кодинг.
Главная опасность ИИ - эффект калькулятора, каждый с ним знаком, когда мы быстро забываем (даже в школьные годы) навыки счета в уме или столбиком, стоит нам начать пользоваться калькулятором. Человек - ленивая скотина, его мозг использует любую возможность для того чтобы срезать сложный путь и не жечь энергию. Поэтому я призываю использовать ИИ в качестве инструмента обучения, сопоставления альтернатив, строить ИИ в мыслительный процесс а не полностью заменять им.
Неудачные кейсы и личный опыт
У меня есть пара кейсов использования ИИ моими клиентами и коллегами, оба нейтрально-негативных, оба связаны с вайб-кодингом:
Клиент из Австралии, беттинговый синдикат, специализируются на профессиональных ставках на скачках. Сделали, через ИИ агентов, исследовательскую платформу полностью работающую через LLM AI. Аналитик пишет на человеческом языке запрос, бот делает запросы в БД, и выдает грояль. В теории так и есть, но на практике бот постоянно галлюцинировал, делал запросы через раз, со всеми вытекающими. При этом проект был просто сплошной вайб код, полностью не поддерживаемый.
Другой коллега решил сделать исследования по рынку через ИИ (Python, Jupyter, Pandas), т.е. масштаб задачи был ограничен, что увеличивало шансы на успех. В итоге, он показал мне грояле-подобный бэктест, и попросил портировать на наш фреймворк. Реальность оказалась не такая радужная, ИИ наделал много “детских” ошибок в коде, вроде заглядывания в будущее, или использования PnL неверного дня в бэктесте. В итоге, все грустно.
Хотя оба кейса были относительно неудачными, я думаю, что ситуацию можно было бы исправить путем добавления обвязки из правил и кода. Последняя генерация ИИ довольно неплохо разбирается в нюансах кода, я проверил на нескольких проектах и был приятно удивлен. Но у ИИ до сих пор плохо получается работать над широкими задачами, вне контекстного окна. Поэтому на мой вкус, лучше сделать проверенный человеком фреймворк, и заставить ИИ писать код, который также может валидироваться фреймворком. Тогда мы получаем лучшее из двух миров: узкую и понятную задачу для ИИ, и гарантию валидности результатов для человека.
Мой личный опыт с ИИ пока сводится к работе с кодом, но в целом уже примерно понятно где слабые и сильные места. Хотя я и был всегда ИИ скептиком, но сейчас понимаю что есть области где этот инструмент дает увеличение продуктивности. Только ИИ должен быть больше похож на скальпель, чем на бочку вайб-напалма.
Не забывайте, что в LLM A.I. вторая буква переводится как imbecile, с интеллектом там ничего общего нет, это математическая модель, которая с детства перечитала слишком много википедий и разных интернетов. И она на столько права на сколько правы люди в интернетах. Соответсвенно, когда ИИ исторгает ответ, это среднестатистическая комбинация слов, максимально соответствующая запросу. Из этого следует, что ИИ вполне сносно работает когда задача максимально изучена (сделать веб страницу), и начинает галлюцинировать как только запрос касается глубины и нюансов.
Условия удачного применения ИИ
На мой взгляд для удачного применения нужно несколько условий, на примере работы над кодом или исследованиями через написание кода:
- Нужно понимать, что хочешь сделать, чем более детально тем лучше. Это обеспечит лучший контекст задачи.
- В идеале если работу которую нужно поручить ИИ можно сделать самому, и это понятный но трудозатратный процесс. ИИ будет выступать инструментом автоматизации рутины - это лучшее применение.
- Результат ИИ необходимо валидировать на каждом шаге, желательно через автоматизируемые формальные тесты (unit tests).
- Двигаться лучше инкрементально, шаг за шагом. ИИ агенты имеют режим планирования (где оно ничего не пишет), и режим создания (где оно делает правки). Можно попросить, чтобы оно подтверждало каждый шаг.
- Чем более широко известная задача ставится чем больше шансов у ИИ справиться, узкие задачи лучше делать очень аккуратно и точечно.
Где ИИ применим хорошо
- Проекты, где много boilerplate кода, но где все в целом понятно. Где ИИ работает как копи-пастер + небольшие правки.
- Написание тестов для алгоритмов (не для всех) - но оно хорошо разбирается в ветвлении кода, и может написать разные кейсы для того, чтобы покрыть алгоритм человека.
- Написание технической документации - оно отлично разбирается в ключевых особенностях того или иного алгоритма, и может добавлять это в документацию.
- Хорошо проводит анализ и отвечает на вопросы по коду, если работаешь над большим или чужим проектом. То ИИ неплохо помогает составить впечатление, сделать примеры, разобрать принципы архитектуры, привести примеры API.
- Исследовательский инструмент, для сравнения альтернативных реализаций той или иной задачи. Можно не просто заставить ИИ что-то написать, но и обосновать 2-3 альтернативных подхода, сравнить плюсы и минусы.
Удачи всем кто
- Пытается вайб-кодить узкоспециализированные проекты с нуля, строить архитектуру через ИИ
- Пишет ключевые алгоритмы и тесты через ИИ (человек должен быть причастен либо к одному либо к другому).
- Генерирует, что-то без автоматизированных тестов
- Пытается копать вглубь на вайбе, или использовать ИИ в очень нишевой задаче.
- Делает неверифицируемые формально задачи: аналитические отчеты, анализ чего-то через ИИ (текстом, а не кодом), годовые отчеты АО, бизнес-анализ и т.п.
Выводы
Если использовать ИИ как инструмент для повышения продуктивности, шансы на успех высокие. Проблемы начинаются когда люди полностью делегируют весь процесс на ИИ, тут вступает в силу закон калькулятора. Пока это лишь мой личный опыт, и не претендует на истину последней инстанции. ИИ с нами на долго, и пока в базовом сценарии, большинство выбирает не париться, и не думать головой, идти по легкому пути. Но путь убертрейдера всегда сложный…