Или как ИИ может сэкономить вам часы работы, но не спасёт от необходимости проверять каждый шаг. claudeai-vs-chatgpt.jpg Сентябрь 2024 года. Мы, команда StockSharp, активно используем ИИ для написания коннекторов к криптобиржам. Но спешу вас предупредить — если вы читаете эту статью в 2025 году или позже, всё это может уже устареть. Если вы из будущего, добро пожаловать в прошлое! И не забудьте проверить, актуальны ли наши методы. Наш путь с ИИ начался с ChatGPT 3.5, который, откровенно говоря, не мог бы написать не то что коннектор для криптобиржи, а даже простую торговую стратегию. Однако с приходом ChatGPT 4.0 и Claude Sonnet 3.5 ситуация резко изменилась. Теперь ИИ может писать сложные модули кода, хотя и с оговорками: приходится вмешиваться, уточнять и исправлять ошибки, что, впрочем, стало уже нормой в нашем процессе. ----- Шаг 1. Запуск проекта в Claude.ai Прежде чем начать писать новый коннектор, первым делом мы создаём проект в Claude.ai. Это не просто чат, который забудет всё, как только вы его закроете. Проект позволяет сохранять всё, что вы туда загружаете: коды, документы, комментарии. Это аналог настроек Custom GPT, где ИИ «учится» на ваших примерах и указаниях, а не просто отвечает на вопросы. project.png Интерфейс создания проекта в Claude.ai. Здесь сохраняются все данные и примеры, что позволяет поддерживать контекст работы. Claude.ai — это как ваш личный программист, который что-то понимает, но без вашего надзора может написать что-то, от чего волосы на голове зашевелятся. Так что держите рядом документацию и свою бдительность. ----- Шаг 2. Копируем существующий код Чтобы не изобретать велосипед каждый раз, мы берем за основу уже существующий коннектор, например, для Coinbase. Мы копируем структуру проекта и адаптируем все ключевые классы и методы под новую биржу. Это только начало пути — дальше начинается самое интересное. ----- Шаг 3. Адаптация WebSocket клиента Теперь пора настраивать WebSocket клиента для новой биржи. Для примера возьмем GateIO Spot WebSocket v4. Claude.ai помогает с генерацией кода, но тут начинается наша постоянная борьба с неточностями. ИИ частенько генерирует код, который в теории кажется правильным, но на практике нужно дополнять и исправлять. 1.png Исходный код WebSocket клиента для одной из бирж, сгенерированный Claude.ai. ИИ предлагает расширить типы данных и события. Когда доходит до аутентификации, ИИ часто ошибается, и приходится вручную добавлять недостающие элементы. Claude может забыть даже такие базовые вещи, как авторизация перед подпиской на каналы WebSocket. 2.png Claude.ai допустил ошибку при реализации авторизации WebSocket. Мы исправили код и добавили корректную авторизацию перед подключением. Мы также переделываем код так, чтобы сделать его более гибким и передавать адрес WebSocket через параметр. Это позволяет нам легко адаптироваться к различным биржам и их API. 3.png Пример кода, где веб-сокет передается как параметр, что делает архитектуру более гибкой. ----- Шаг 4. Настройка REST клиента и адаптера После настройки WebSocket клиента мы приступаем к REST клиенту. Claude.ai генерирует базовые запросы, но нам приходится вручную уточнять, корректны ли они. API бирж отличаются, и нужно быть внимательным, чтобы не пропустить важные детали в документации. Когда клиент готов, мы переходим к адаптеру для StockSharp, где происходит основная магия — обработка данных и их приведение к единому формату. Тут ИИ помогает с генерацией классов, но всегда стоит сверять каждый шаг. Особенно это важно при работе с JSON данными, передаваемыми через API биржи. 5.png Сгенерированные классы для доменной модели. Мы вручную дополнили их атрибутами и исправили типы данных. Claude может предложить интересные решения, но нужно добавлять атрибуты, такие как JsonProperty, чтобы корректно обрабатывать данные биржи. Если вы этого не сделаете — готовьтесь к сюрпризам в виде неверных данных в отчётах. 6.png Мы добавили атрибуты JsonProperty для правильной работы с JSON данными. Обработка торговых данных — ещё один важный этап, где ИИ не всегда справляется самостоятельно. Например, данные сделок и их обработка могут вызывать ошибки. 7.png Claude исправляет код для обработки данных торгов, передаваемых через WebSocket и REST API. ----- Шаг 5. Оптимизация и новые методы Claude.ai неплохо справляется с написанием базовых методов, таких как работа со свечами и торговыми данными. Однако его предложения требуют оптимизации. Мы часто выносим логику в отдельные классы для лучшей структуры. 8.png Оптимизация методов для работы со свечами и данными торговли через WebSocket, вынесенные в отдельные классы. Также приходится дорабатывать методы для работы с торговыми операциями через WebSocket. И хотя ИИ помогает автоматизировать такие процессы, код всё равно требует финальной доводки. 9.png Claude.ai добавил методы для торговых операций в SocketClient, но их пришлось оптимизировать и исправить ошибки. ----- Шаг 6. Тестирование — код работает не всегда с первой попытки Когда код готов, самое время его протестировать. Здесь ИИ снова приходит на помощь, но все его предложения нужно тщательно проверять, потому что часто с первого раза всё работает некорректно. Например, при тестировании работы с API биржи мы сталкиваемся с ошибками при запросах инструментов и позиций. 10.png Claude.ai предложил код для работы с REST API Gate.io, но его нужно было тестировать и дорабатывать. ----- Шаг 7. Конвертация данных для спота и деривативов Claude.ai помогает с генерацией классов для работы со спотом и деривативами, но опять же — будьте готовы к тому, что нужно будет корректировать методы и типы данных вручную. Например, работа с деривативами на Gate.io требует дополнительных проверок и доработок. 11.png Claude.ai предложил класс Extensions для поддержки конвертации данных между спотом и деривативами на Gate.io. Мы также адаптируем SpotAdapter для корректной обработки данных биржи, используя методы конвертации, предложенные Claude. 12.png SpotAdapter был переписан с учетом изменений в HttpClient и SocketClient, используя методы из Extensions. ----- Шаг 8. Адаптер для фьючерсов и исправления ошибок Claude.ai помогает с написанием методов для работы с фьючерсами, но, как и прежде, требуется тщательная проверка логики и исправление ошибок. Например, при сборке стакана данных мы столкнулись с проблемой обработки исключений. 13.png Сгенерированный HttpClient для работы с фьючерсами через REST API Gate.io. Claude также иногда ошибается с обработкой данных в адаптере фьючерсов. Приходится вручную настраивать методы для правильной работы со стаканом. 14.png Исправленный адаптер для фьючерсов с правильной логикой работы со стаканом. В результате после исправлений ИИ предложил оптимизированный метод для работы с ордербуками и восстановления данных. 15.png Оптимизация методов для восстановления и работы со стаканом данных на основе предложений Claude.ai. ----- GitHub Copilot — разрекламированная игрушка или настоящий помощник? GitHub Copilot, который Microsoft и GitHub активно продвигают как инструмент будущего, на самом деле в своём текущем виде является скорее интересной игрушкой, нежели полноценным помощником программиста. Copilot помогает писать нужные участки кода, но по-настоящему выдающихся результатов от него ждать не стоит — его сила в доработке и предложениях по улучшению кода. Однако его главный плюс — это тесная интеграция со средой разработки, что делает его удобным для быстрых правок и завершения шаблонного кода, с чем он справляется гораздо лучше, чем написание сложных логических модулей. copilot.gif ----- ИИ: усилитель возможностей для профессионалов и преграда для новичков Если вы начинающий разработчик и только погружаетесь в мир программирования, то вам, мягко говоря, не повезло. На текущий момент ИИ никак не повысит вашу эффективность. Более того, доверяя ИИ в сложных задачах, вы можете ещё больше запутаться в коде и проблемах, которые он генерирует. Совсем другое дело — опытные программисты. Для профессионалов ИИ действительно становится мощным инструментом, который преумножает их возможности: увеличивает скорость разработки, предлагает решения, обогащает знания о различных технологиях и библиотеках. В таком тандеме ИИ помогает фокусироваться на ключевых аспектах проекта, оставляя рутину на его плечах. Однако, как мы уже упоминали, ИИ бьёт по самому слабому месту — начинающим разработчикам, делая разрыв между ними и профессионалами ещё большим. Опытные программисты могут быстро выявить ошибки ИИ, исправить их и продолжить работу, тогда как новичок просто утонет в этих проблемах. Иронично, что в то время, когда ИИ задумывался как помощь для всех, он пока лишь увеличивает этот разрыв. Но стоит надеяться, что в будущем ИИ станет более самостоятельным в программировании, и тогда этот разрыв может не только перестать расти, но и вовсе исчезнуть, выравнивая шансы для всех, независимо от их уровня подготовки.
ai_integration.png Искусственный интеллект постепенно проникает во все сферы, включая алгоритмическую торговлю. Мы планируем выпускать различные функции на базе ИИ, так как этот тренд невозможно игнорировать. Но в этой статье речь пойдет о том, как ИИ развивается в области алготрейдинга и какие изменения он приносит. Влияние ИИ на алгоритмическую торговлю 1. Снижение потребности в разработчиках коннекторов С развитием ИИ необходимость в разработчиках коннекторов снижается. Базовые коннекторы, такие как для криптобирж, проще и быстрее создавать через ИИ при должном финетюнинге модели. Если ИИ научится обучаться в реальном времени, он сможет автоматически отслеживать ошибки и обновления протоколов, своевременно корректируя код. Скрин процесса, как идет адаптация коннектора под изменившийся протокол крипто-биржи: b4794999143c21f9e62c2ba5e8828b46.png Одним из ключевых преимуществ ИИ является значительное ускорение разработки. В нашей компании мы используем ИИ для создания коннекторов, что позволяет сократить время их разработки в десятки раз. Ранее на написание и тестирование нового коннектора могло уйти несколько недель, а теперь это занимает лишь пару дней. Это демонстрирует, насколько ИИ может трансформировать процессы, повышая их эффективность и снижая затраты. Мы отдельно напишем статью о нашем подходе в разработке коннекторов через ИИ. 2. Написание стратегий Почти все разработчики, занимающиеся написанием стратегий на заказ, могут исчезнуть как класс. ИИ способен генерировать индивидуальные стратегии быстрее и точнее, чем человек. Область алгоритмической торговли такова, что создатели стратегий не являются профессиональными программистами (и мы это понимаем, предлагая решение на базе 9). А значит замена этого направления с помощью ИИ возможна уже сейчас. Пользователи смогут получать персонализированные решения, адаптированные под их стиль торговли и предпочтения. 25df797d550c1bb0caaa0ff99de54b37.png 3. Исчезновение популярных open-source проектов С развитием ИИ необходимость в популярных open-source проектах, основанных на готовых роботах или стратегиях, будет снижаться. Людям будет проще запросить ИИ создать подходящее решение под их нужды и знакомую им программу, чем искать готовое и адаптировать его. 4. Сервисы аренды стратегий и покупка готовых роботов Создание собственных стратегий через ИИ станет проще, чем покупка готовых решений или аренда стратегий. Пользователи смогут генерировать свои стратегии с учетом личных предпочтений и специфики рынка. 5. Уровень знаний программирования и его необходимость Вопрос о необходимости изучения программирования становится всё более актуальным. ИИ уже сейчас способен генерировать код лучше, чем многие средние программисты. Это ставит под сомнение, зачем тратить годы на обучение, если машина способна выполнять те же задачи быстрее и качественнее. 6. Исчезновение джунов в алготрейдинге С развитием ИИ джуны (младшие разработчики) в алгоритмической торговле могут исчезнуть. Простые задачи, которые раньше давались новичкам для обучения, теперь выполняются ИИ. Это приводит к тому, что вход в профессию усложняется, а задачи для синьоров становятся всё более сложными. no_job.png Будущее ИИ в алгоритмической торговле В будущем можно ожидать, что ИИ будет всё больше интегрироваться в алгоритмическую торговлю, предлагая всё более совершенные и адаптированные решения для каждого пользователя. Отслеживание изменений протоколов, написание уникальных стратегий и создание новых коннекторов — всё это станет обыденностью. Роль человека в этом процессе будет заключаться в контроле и адаптации ИИ под специфические нужды, а также в решении сложных задач, которые пока остаются за пределами возможностей машин. ai_algorithmic_trading.png Заключение В заключение хочется отметить, что использование ИИ в программировании открывает множество возможностей, но также требует адаптации и новых подходов к управлению человеческими ресурсами. Мы находимся на пороге новой эры, и наше будущее зависит от того, как мы сможем интегрировать эти технологии в нашу повседневную работу.