Блог им. StockSharp

Как мы с помощью ИИ пишем коннекторы к криптобиржам

Как мы с помощью ИИ пишем коннекторы к криптобиржам

Или как ИИ может сэкономить вам часы работы, но не спасёт от необходимости проверять каждый шаг.

Сентябрь 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

 

 


 

ИИ: усилитель возможностей для профессионалов и преграда для новичков

 

Если вы начинающий разработчик и только погружаетесь в мир программирования, то вам, мягко говоря, не повезло. На текущий момент ИИ никак не повысит вашу эффективность. Более того, доверяя ИИ в сложных задачах, вы можете ещё больше запутаться в коде и проблемах, которые он генерирует. Совсем другое дело — опытные программисты.

 

Для профессионалов ИИ действительно становится мощным инструментом, который преумножает их возможности: увеличивает скорость разработки, предлагает решения, обогащает знания о различных технологиях и библиотеках. В таком тандеме ИИ помогает фокусироваться на ключевых аспектах проекта, оставляя рутину на его плечах.

 

Однако, как мы уже упоминали, ИИ бьёт по самому слабому месту — начинающим разработчикам, делая разрыв между ними и профессионалами ещё большим. Опытные программисты могут быстро выявить ошибки ИИ, исправить их и продолжить работу, тогда как новичок просто утонет в этих проблемах. Иронично, что в то время, когда ИИ задумывался как помощь для всех, он пока лишь увеличивает этот разрыв.

 

Но стоит надеяться, что в будущем ИИ станет более самостоятельным в программировании, и тогда этот разрыв может не только перестать расти, но и вовсе исчезнуть, выравнивая шансы для всех, независимо от их уровня подготовки.

531 | ★2

Читайте на SMART-LAB:
Фото
⌛До закрытия книги заявок остался всего 1 час
Сегодня в 15:00 по московскому времени окончательно закроется книга заявок на два выпуска облигаций ГК «А101». Окончательное размещение...
"Русагро" начала независимую оценку активов для защиты инвесторов от излишнего налога
Агрохолдинг «Русагро» сделал важный шаг для защиты инвесторов, запустив процедуру независимой оценки активов. Эта оценка призвана решить серьезный...
Фото
📈 Синара: целевая цена акций МГКЛ на конец 2026 года — 5,2 рубля
Ниже приводим краткое содержание мнения аналитиков. Инвестиционный банк Синара обновил прогноз по МГКЛ: оценочная капитализация ПАО...
Фото
Какая доходность среди облигаций с наивысшим рейтингом надежности и сроком погашения от 3 лет?

теги блога StockSharp.Ru

....все тэги



UPDONW
Новый дизайн