Разрабатываю с помощью ИИ (Github Copilot) свою бэктестинг-систему для алготрейдинга,
smart-lab.ru/blog/1183171.php .
Прикрутил такую фишку. Отображаю список всех сделок. Их можно отсортировать по P&L; потом кликнуть, например, на самую убыточную или прибыльную — и она выделится на всех графиках. Можно поизучать в контексте, почему произошли эти убытки и прибыли.

Получилось круто. Есть ещё куча идей по поводу графиков: heatmap'ы из оптимизатора (или 3D поверхности, но их не очень люблю, трудно читаются), для парного трейдинга — статистика по коинтеграции и корреляции и т.д… С помощью ИИ всё это реализуется космически быстро.
SergeyJu, именно в таком случае ничего. :) Меня больше интересуют серии убыточных сделок — что там происходит? Расшатываются коэффициенты регрессии? Ломается возвращение к среднему у спреда? Вот это я хочу увидеть на графиках и понять; и дальше придумать индикатор, чтобы в случае такого расшатывания алгоритм вставал на паузу (или вообще прекращал работать с этой парой).
EDIT: То есть очевидно, что если идут убытки, то ломается коинтеграция, но по каким индикаторам это можно эффективно отследить? Статистики типа p-value в тесте ADF слишком инертны. Half-life лучше, но можно ли еще лучше?
EDIT2: Вполне возможно, что самым лучшим индикатором будет именно наличие ряда убыточных сделок подряд… (пошли убытки — останавливай).
Просто трейдер, да, согласен, что при мне, но вряд ли в ближайшие 5-10 лет, так что я еще успею.

Я тесно работаю с ИИ каждый день, и хорошо представляю его недостатки. Например, он до сих пор ошибается в таких тривиальных арифметических задачах (chatGPT)
И вы готовы доверить такому аналитику данных?..
Да, это можно исправить, попросив его написать программу (например на питоне), и посчитать с помощью программы, но примерно то же я и делаю сейчас — прошу его писать куски программы, и собираю это в удобный для меня UI.
Уже платные сервисы со своими (хотя проверить невозможно) моделями. ИИ отдаешь задачу, он выдает решение.
На основе crowdsourcing пытаются привлекать живых людей для дальнейшего обучения (в интернете десятки таких проектов), но это малоэффективно.
Если не будет качественного прорыва в подходе к построению архитектуры модели, то существенного улучшения неоткуда ожидать.
это знаменитая байка. Еще с GPT 3.5 такое пишут. ИИ не обучается по интернету лишь — раз. ИИ умеет переанализировать данных по ранее изученному — два.
«Если не будет качественного прорыва в подходе к построению архитектуры модели, то существенного улучшения неоткуда ожидать.»
И прорыв есть, и даже это можно испробовать. Заплатите 200 долларов в месяц и вы поймете, насколько это сильно отстает от бесплатной версии 4o (кстати, почему 4o, там ведь 4.1 бесплатно).
Текущее ограничение — это ресурсоемность. А вовсе не развитие сложности модели.
Ведь при таких допущениях заниматься трейдингом тоже бессмысленно. Рынок скоро станет максимально эффективным, поскольку AI найдет и устранит все неэффективности.
Вернемся к исходной точке. Вы создаете через ИИ программу. Цель какая? Анализ данных. Я как вариант написал расмотреть альтернативный подход. Дальше уже сами выбирайте.
Программу вам делать не быстро. Там еще конь не валялся судя по фичам. Это не ваша основная работа, как понимаю. Значит будете в свободное время по вечерам делать. Дальше простая калькуляция — и выйдет несколько месяцев для доведения чего-то нормального. За эти месяцы может и 4.2 и 4.5 и 5.0 выйти.
Я ж поддерживаю ваше начинание. Что ИИ помогает и развивается. Но что на полумерах то останавливаться. Пока что вы делаете — это попытка заменить ИИ. А зачем? Сами так хорошо начали — ИИ дополняет. Но важна же конечная цель, а не путь к её достижения. Достигаете ее вы через ИИ или без нее — не так уж и важно. А вот если вы сделаете что-то, что будет уже бесполезно когда доделаете — вот это уже значительно весомее вопрос и ответ.
А какой альтернативный подход? В той ссылке, что вы привели, автор генерировал код на питоне через ChatGPT. Автор сам выполнял этот код для своих данных и смотрел на результаты, попутно спрашивая у чата ГПТ, какие гипотезы еще можно проверить. Он не смог загрузить данные напрямую в LLM.
Я делаю то же самое, просто прикручиваю удобный UI, чтобы мне не нужно было код и данные копировать туда сюда между чатом ГПТ и моей средой разработки.
Спасибо.Вот что я пробовал неоднократно через чат ГПТ.
Можно попросить его посоветовать стратегию для конкретного рынка или актива. Можно уточнить рыночные условия и другие детали. Он радостно предложит стратегию, ее реализацию на питоне или любом другом языке, даже предложит подгрузить исторические данные из Yahoo finance или еще откуда-нибудь.
И при прогонке этой стратегии она даже будет давать видимость хорошего результата.
Но проблема в том, что он не может предложить ничего оригинального. А все неоригинальное уже неэффективно. Прибыль рассыпается при учете издержек, спредов или еще каких-то деталей.
«Но проблема в том, что он не может предложить ничего оригинального.» потому что с ИИ как с любым человеком действует золотое правило. Правильно сформулированный вопрос — половина решения.
«Прибыль рассыпается при учете издержек, спредов или еще каких-то деталей.» — а это, как говорилось в фильме Я робот, уже правильный вопрос. И именно такие вопросы и нужно задавать ИИ. А не запросы А предложи ка мне стратегию для крипто бирж. Он и предложит, первую попавшуюсь ерунду. Какой вопрос — такой и ответ.
Знаете, вы правы. В том, что я могу существенно оптимизировать свой пайплайн по генерации и тестированию стратегий, оставив только связку Chat GPT и питон, и исключив свою C#-систему. Спасибо!
А как это прикручиваете в плане процесса? LLM видит код всего проекта и по этому при постановке задачи понимает контекст, понимает какие есть классы, куда прикручивать, какая сигнатура методов? Или или вы сами нарубаете на такие постановки задачи, где контекст в задаче отгружается — ну типа: сделать то-то, метод должен принимать то-то, отдавать то-то и т.д.?
И какой тул ипсользуете? Просто чат с LLM или какой-то специализированный тул для кодинга?
Replikant_mih, использую Github Copilot. Это плагин к Visual Studio и VS Code. В нем можно выбрать LLM модель: в бесплатной версии GPT-4o и Claude Sonnet 3.5, другие модели доступны в платных подписках. В ютубе много роликов про него.
Теоретически да, он видит весь проект, но практически гораздо лучшие результаты получаются, если в промпте явно указывать имена файлов, типа:
— В связке #BackEnd.cs и #FrontEnd.js не работает передача данных по сделкам, отображается пустой грид, поправь.
Задачи лучше всего рубить на как можно мелкие. Я пробовал давать сложные задачи в одном промпте, с описанием сразу всей фичи по пунктам — не справляется. Например, задачу подсветить сделку на графике, когда сделка выбрана в таблице, мне пришлось разбить на три или четыре промпта, типа такого:
— Подсвети строку в таблице по клику на неё
— Когда строка выбрана, сохрани данные по сделке в глобальной переменной
— Когда сделка выбрана, прочитай данные по сделке из глобальной переменной, нарисуй на всех графиках вертикальные линии trade.enter, trade.exit
— Закрась область между линиями: зеленым цветом, если trade.Profit >0, иначе красным цветом.
Одна из вещей, которая меня впечатлила: таблицы в базе и ORM классы в коде полностью создал он. Я описал, какие таблицы и поля мне нужны, он подключился к базе (через sqlcmd.exe), всё посоздавал сам, всё сделал правильно. (Я использую Dapper, легковесный ORM).
В общем, он как джун-разработчик в подчинении: кодит быстро и неутомимо, но нужно постоянно направлять и контролировать, иначе проект рассыплется.
На работе мне нельзя использовать copilot, потому что весь код через него уходит куда-то в облачную модель для анализа, и кто знает, что она с ним делает. Уже были новости, что с помощью хитрых промптов пользователи выуживали данные, на которых училась модель.