В первой статье я рассказал с помощью каких IT-инструментов мы закодили бота для торговли криптовалютой. Это вторая статья, где я размышляю о шагах, сделанных в сторону децентрализованной биржи. Буду благодарен за обратную связь в комментариях.
Изучаем подопытных
Сначала выпишем характеристики, отличающиеся при торговле в централизованной бирже (CEX) и децентрализованной (DEX).
Таблица 1
CEX |
DEX |
|
Примеры бирж |
Binance, ByBit, OKX |
UniSwap, dYdX, PancakeSwap, Curve |
Объёмы торговли одной биржи (24 ч) |
суммарно: $1-10 млрд |
суммарно: $0,1-1 млрд UniSwap: |
Комиссии (в спотовой торговле) |
<0,1% |
UniSwap: 0,05%; 0,3%; 1%. |
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)
mikegordan
24.03.2024 17:14Ох сколько у нас на Бинанс таких "уников", но как приходит даунтренд после цикла, все герои с "прибыльными стратегиями" кудато деваются )))
dyadyaSerezha
24.03.2024 17:14А у меня есть суперприбыльная стратегия для рулетки! Купите - всего штука баксов)
SergeyMironov Автор
24.03.2024 17:14"уник" DEX в том, что предоставляется возможность торговать тем токеном, который не встретить в CEX.
dyadyaSerezha
Я все жду описание последнего и главного шага - получаем профит - с цифрами. Но его всё нет и нет. Эх....
D1abloRUS
buy and hold, you're welcome
dyadyaSerezha
Прекрасный ответ ни о чем.
tuxi
Основной профит - продавать всяческим наивным "инвесторам" таких вот торговых ботов. А для этого реклама нужна.
dyadyaSerezha
Вот в это поверю сразу)
SergeyMironov Автор
его и не будет по двум причинам:
1. это не было целью статьи.
2. преимущество децентрализации в открытом доступе ко всем транзакциям, т.е. Вы сами можете посчитать по транзакциям смарт контракта профит там или нет.
dyadyaSerezha
Может, это и не было целью статьи, но цель самой идеи создания такого бота - получение прибыли. И если ее нет, то вся идея идёт лесом.
SergeyMironov Автор
да, соглашусь. И действительно, Ваш вопрос интересный! Получить прибыль в DEX сложнее чем в CEX из-за необходимости дополнительной конфигурации: проскальзывание цены, ограничение на газ, минимальный размер трейда...
dyadyaSerezha
Мой вопрос даже не в том, сложнее или нет, а возможно ли в принципе получить прибыль помощью на коленке собранного бота. На коленке - в смысле торговых алгоритмов и десятков человеколет крутых математиков, потраченных на профессиональные алгоритмы (но даже и они часто лажают).
1dNDN
С тем же успехом можно вместо статьи оставить ссылку на репу, а читатель сам сделает все выводы по репе