В первой статье я рассказал с помощью каких IT-инструментов мы закодили бота для торговли криптовалютой. Это вторая статья, где я размышляю о шагах, сделанных в сторону децентрализованной биржи. Буду благодарен за обратную связь в комментариях.

Изучаем подопытных

Сначала выпишем характеристики, отличающиеся при торговле в централизованной бирже (CEX) и децентрализованной (DEX).

Таблица 1

CEX

DEX

Примеры бирж

Binance, ByBit, OKX

UniSwap, dYdX, PancakeSwap, Curve

Объёмы торговли одной биржи (24 ч)

суммарно: $1-10 млрд

суммарно: $0,1-1 млрд

UniSwap:
Ethereum: WETH/USDT $150 млн
Arbitrum: WETH/USDC $73 млн

Комиссии (в спотовой торговле)

<0,1%

UniSwap: 0,05%; 0,3%; 1%.
dYdX: <0,05%.
+
комиссия за газ

KYC

обязательно

отсутствует

Ассортимент токенов

токены фильтруются биржей

можно самостоятельно добавить любую пару токенов

Особенности

Partially filled, Limit order

Проскальзывание цены

Видим, что в DEX ежедневные объемы торговли популярными токенами WETH, WBTC более 10 млн долларов. У нас 1 лот примерно $1'000, поэтому этих объёмов достаточно. Смотрим на размер составной комиссии в DEX. Мы готовы платить процент, сопоставимый с централизованной биржей, т.е. 0,1%. Часть пойдет на покрытие комиссии биржи (например, UniSwap fee) и часть - для газа блокчейна (например, Arbitrum One). Т.к. мы установили ограничение сверху (0,1%), то придётся свапить токены только в пуле ликвидности с комиссией биржи 0.05% плюс платить комиссию за газ сети 0.05%. Но комиссия за газ - это абсолютная величина и измеряется в ETH. Так как мы договорились, что в трейде наш лот равен $1'000, то мы готовы платить комиссию за газ меньше чем 0,05% х $1'000 = 50 центов.

Выбираем любимую сеть

Заметим, что комиссия за газ для транзакции в сети Layer 1 (Ethereum) может быть порядка 10 долларов, а в сетях Layer 2 (Arbitrum, Optimism, Polygon) менее 1 доллара. Поэтому с финансовой точки зрения мы можем торговать пока только в L2. Выбрали Arbitrum за достаточно высокие объёмы торговли в популярной децентрализованной бирже UniSwap V3 и за низкие комиссии: осенью 2023 года в среднем 26 центов, зимой 2024г от 1 до 2 долларов, после апгрейда в середине марта 2024г 10 центов.

Кодим

Чтобы организовать хранение и исполнение лимитных ордеров, нам пришлось закодить свою мини-биржу. Её основные функции:

  • "ходить" в блокчейн через RPC Node (например, alchemy или infura).

  • непрерывно следить за событиями обмена (Event Swap) в блоках сети Arbitrum. Фильтровать события в пулах ликвидности именно UniSwap V3.

  • определять, что в одном из пулов ликвидности можно обменять токены по приемлемой цене, и сразу отправлять транзакцию в этот пул. Дальше ждать ответ сети.

Решаем проблемы

Транзакция может не исполниться по разным причинам. Чаще всех нам попадались ошибки STF, Too little received, Fail. Чтобы избежать этих ошибок, нужны превентивные меры:

  • оцениваем какая стоимость газа потребуется транзакции. Убеждаемся что это ниже нашего лимита комиссии и у аккаунта есть требуемое количество ETH.

  • закладываем в нашу цену проскальзывание 0,2%.

Приватность пользователя - наше всё

На предыдущем шаге мы отправляли запросы в роутер UniSwap, т.к. невозможно отправить Swap напрямую в пул ликвидности. В запросе указывается пара токенов и размер комиссии. Эти три параметра однозначно определяют пул ликвидности. Например, для WETH/USDT 0,05% адрес пула: 0x641C00A822e8b671738d32a431a4Fb6074E5c79d.

Но в этом случае необходимо иметь приватный ключ пользователя и подписывать транзакцию ключом. Конечно, иметь ПК пользователя - это неправильно, так как в таком случае обладатель ПК сможет распорядиться деньгами пользователя вплоть до полного вывода на чужой кошелёк. Чтобы уйти от передачи приватного ключа пользователя, нужен смарт-контракт, который имеет право свапить токены в интересах пользователя, но не имеет права выводить деньги с адреса пользователя. Это достаточно простой контракт, аудит которого занял не более часа.

Комментарии (13)


  1. dyadyaSerezha
    24.03.2024 17:14
    +3

    Я все жду описание последнего и главного шага - получаем профит - с цифрами. Но его всё нет и нет. Эх....


    1. D1abloRUS
      24.03.2024 17:14
      +1

      buy and hold, you're welcome


      1. dyadyaSerezha
        24.03.2024 17:14
        +1

        Прекрасный ответ ни о чем.


    1. tuxi
      24.03.2024 17:14
      +3

      Основной профит - продавать всяческим наивным "инвесторам" таких вот торговых ботов. А для этого реклама нужна.


      1. dyadyaSerezha
        24.03.2024 17:14

        Вот в это поверю сразу)


    1. SergeyMironov Автор
      24.03.2024 17:14

      его и не будет по двум причинам:
      1. это не было целью статьи.
      2. преимущество децентрализации в открытом доступе ко всем транзакциям, т.е. Вы сами можете посчитать по транзакциям смарт контракта профит там или нет.


      1. dyadyaSerezha
        24.03.2024 17:14

        Может, это и не было целью статьи, но цель самой идеи создания такого бота - получение прибыли. И если ее нет, то вся идея идёт лесом.


        1. SergeyMironov Автор
          24.03.2024 17:14

          да, соглашусь. И действительно, Ваш вопрос интересный! Получить прибыль в DEX сложнее чем в CEX из-за необходимости дополнительной конфигурации: проскальзывание цены, ограничение на газ, минимальный размер трейда...


          1. dyadyaSerezha
            24.03.2024 17:14

            Мой вопрос даже не в том, сложнее или нет, а возможно ли в принципе получить прибыль помощью на коленке собранного бота. На коленке - в смысле торговых алгоритмов и десятков человеколет крутых математиков, потраченных на профессиональные алгоритмы (но даже и они часто лажают).


      1. 1dNDN
        24.03.2024 17:14

        С тем же успехом можно вместо статьи оставить ссылку на репу, а читатель сам сделает все выводы по репе


  1. mikegordan
    24.03.2024 17:14

    Ох сколько у нас на Бинанс таких "уников", но как приходит даунтренд после цикла, все герои с "прибыльными стратегиями" кудато деваются )))


    1. dyadyaSerezha
      24.03.2024 17:14

      А у меня есть суперприбыльная стратегия для рулетки! Купите - всего штука баксов)


    1. SergeyMironov Автор
      24.03.2024 17:14

      "уник" DEX в том, что предоставляется возможность торговать тем токеном, который не встретить в CEX.