МХ
МХ личный блог
24 декабря 2023, 19:02

Три шарика на ёлку арбитражника

Больше года уже ничего не писал. Время летит, часики тикают.

Пока мои исследования проходят в совершенно ином измерении, напишу ещё немного про арбитраж (потому что не жалко =)), да и Новый Год на носу. На днях у @Андрей К  вышла очень крутая статья про техническое развитие торгового дела, очень рекомендую ознакомиться тем, кто ещё не видел — smart-lab.ru/blog/971081.php

После прочтения таких статей простым криптанам становится совершенно очевидно, что алготрейдеры-техноманьяки со своими ужасными железками ПЛИС/FPGA всерьёз намерены запустить свои щупальца в уютное криптоболотце и выкачать оттуда все полимеры. Что же делать обычным трудягам, заколачивающим свои сатошики с помощью треугольно-арбитражных скриптов на питоне или ещё чём?

Во-первых, хочу успокоить, что криптобирж как грибов и на нашу братию должно хватить (читайте мою прошлую статью). И не везде со своей железкой можно влезть. А во-вторых, есть методы и для тех, кто имеет желание стать чуть равнее других, но не имеет технической возможности.

Самое простое, что приходит на ум — это начать копать немножечко глубже. В самом прямом смысле, надо смотреть глубже в стакан. Потому что ситуация на самых краях спреда обычно меняется очень быстро да и объемов может не хватить для прибыльного трейда:

Три шарика на ёлку арбитражника

и совсем другое дело, если мы начнём охватывать не только самые крайние позиции:

Три шарика на ёлку арбитражника

Этот совет может помочь тем, кто в самом-самом начале пути. Кто хоть немного поторговал арбитраж на крипте, очень быстро приходят к этому шагу.


Дальше идёт уже концептуальный момент, который может дать существенное преимущество на низкоконкурентных биржах.

Рассмотрим стандартную треугольную арбитражную цепочку:

BTC/USDT -> anyCOIN/BTC -> anyCOIN/USDT

Здесь по всем канонам треугольного арбитража предполагается, что у нас на балансе есть USDT и мы должны совершить три сделки:

1) купить   BTC за USDT,
2) купить   anyCOIN за BTC,
3) продать anyCOIN за USDT,

в результате чего должно увеличиться начальное количество USDT.

Либо у нас на балансе есть BTC и мы совершаем три сделки:

1) покупка  anyCOIN за BTC,
2) продажа anyCOIN за USDT,
3) покупка  BTC за USDT,

в результате чего должно увеличиться начальное количество BTC.

В данном случае, действуя строго по канонам, мы на каждой сделке вместе с комиссией теряем самый ценный арбитражный ресурс — время. Потому что длительность исполнения сделки биржей несоизмеримо выше времени доставки ордера до биржи. Поэтому здесь я не имею ничего против того, чтобы немного отойти от канонов и держать на балансе сразу две «валюты» в примерно равном денежном выражении: и BTC и USDT.

Тогда наши три сделки по длительности превращаются в две:

1) Одновременно: покупка BTC за USDT и покупка anyCOIN за BTC,
2) продажа anyCOIN за USDT

Периодически возникающие из-за округления «перекосы» балансов легко исправляются в «фоновом» режиме вручную или автоматически. Вдобавок, при таком подходе вполне реальным становится исполнение 4-х угольного арбитража вместо 3-х (если комиссии позволяют).


И третий момент, для «продвинутых», здесь уже немного технической магии.

Так как у нас нет чудесных железок, напрямую подключенных к кабелю из биржи, то приходится как и всем, использовать API биржи. Сейчас многие биржи дают возможность постановки ордеров через протокол Websocket, но есть и такие, которые предлагают только REST API через протокол https.
Если совсем просто, то https — это защищенный протокол передачи данных, для установления соединения через который характерен обмен криптографическими ключами (tls-хэндшейк). Примерно так выглядят тайминги при установке соединения и передаче данных через https:

Три шарика на ёлку арбитражника

Но если соединение уже установлено, то время на этот обмен не тратится совсем. Проблема в том, что соединения не живут вечно, и сервера биржи настроены так, чтобы разрывать неактивные соединения через 45 секунд, например. В таком случае, если частота совершения сделок у нас невелика, то при отправке ордера на биржу будет уходить непозволительно много времени на этот самый tls-хэндшейк.

Решение: при установке https-соединения задаём режим Keep-Alive, а если возможности языка/фреймворка/библиотеки не позволяют, то устанавливаем обычное https-соединение и держим его «прогретым», к примеру раз в 30 секунд направляя бирже запрос, на который вернётся ответ максимально быстро:

Три шарика на ёлку арбитражника

Кстати, если вы внимательно читали предыдущий совет, то таких соединений у вас будет несколько. Что делать со временем, уходящим на поиск IP-адреса в DNS, уверен, без труда разберётесь сами.

На этом у меня пока всё, но это не значит что подобных моментов больше не осталось, копайте глубже ))


Всех с наступающим! Удачи и успехов в Новом Году!







16 Комментариев
  • Ratio_
    24 декабря 2023, 20:54
    каковы у вас результаты за этот год, если без учета роста курсовой стоимости btc?
  • Дмитрий Овчинников
    25 декабря 2023, 00:21
    Лехаван со своим криптоарбитражем тут уже нахватал лосей по полной программе. Теперь появился новый «специалист». Ждем онлайн эквити ;)
  • svgr
    25 декабря 2023, 00:23
    Андрея К с юбилеем!
  • Андрей К
    25 декабря 2023, 01:28
    Пару лет назад собеседовал человека, который мне рассказывал из своего бэкграунда, как на крипте строится инфраструктура для пространственного арбитража и все на, внимание, на питоне. Слушал и ушам своим не верил )

    Потом уже через год примерно, точно знал, что некоторые команды стали задумываться о развертывании ПЛИС, хотя бы на базе Amazon. Решение конечно спорное, но тенденция вроде явная, что конкуренция немного обостряется везде


Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн