Изображение блога
OS_Engine_team
OS_Engine_team Блог компании Os_Engine
17 октября 2023, 19:52

Теория по валютному арбитражу. Фронтраннинг других роботов.

Классическая стратегия валютного арбитража. Чтобы получать прибыль, предполагает, что у Вашего робота будет САМОЕ быстрое исполнение заявок среди десятков других роботов. В большинстве случаев, если биржа, на которой Вы хотите торговать, уже достаточно популярна, добиться этого не выйдет.

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

Теория по валютному арбитражу. Фронтраннинг других роботов.

1. Место OsEngine в гонке скорости.

Далеко не первое. Но и далеко не последнее. Далее идёт список возможных реализаций данного алгоритма в соответствии со скоростью. Тут используются некоторые допущения, и вероятно найдутся те, кто это оспорит. Тем не менее выглядит это примерно так.

* торговля из зоны колокации – это когда у Вас есть удалённый доступ к Linux или Windows, который расположен в непосредственной близости к ядру биржи. В нескольких десятков или сотнях метров от неё. Что обычно обеспечивает наилучшие условия по скорости доступа к торгам.

«Из зоны колокации биржи» вынесено в отдельную группу, т.к. у второй группы скорость сразу сильно хуже:

  1. C++ / Linux – самое быстрое исполнение. кол-во: единицы.
  2. C# / Linux кол-во: единицы.
  3. C++(C#) / Windows. OsEngine здесь. кол-во: единицы.

С удалённого сервера, специально подобранного по пингам до биржи:

  1. С++ / Linux кол-во: единицы.
  2. C# / Linux кол-во: единицы.
  3. C++(C#) / Windows. OsEngine здесь. кол-во: десятки.
  4. Питон / Linux (Windows, без разницы). кол-во: сотни.
  5. Движки сайтов, предоставляющих автоторговлю по стратегии. (3 commas и т.д.) кол-во: сотни. 

Выводы:

  1. На любой популярной бирже криптовалют торговать в лоб классический валютный арбитраж на OsEngine смысла нет.
  2. Роботы на Линукс и С++, торгующие из зоны колокации всегда будут быстрее. Если эти товарищи уже пришли на биржу, прибыли не будет.
  3. Торговать классический валютный арбитраж нужно на непопулярных биржах.
  4. Роботов на Питоне, движках сайтов в десятки и сотни раз больше, чем кастомных роботов-приложений. Они медленные, неуклюжие, но ими постоянно кто-то хочет пользоваться и пробовать их в работе. На них можно пробовать зарабатывать даже на популярных биржах. Как? Поговорим ниже.
 

2. Медленные роботы – создают дисбаланс.

Классический валютный арбитраж.

Вспоминаем картинку того, как работает классический валютный арбитраж:

 Теория по валютному арбитражу. Фронтраннинг других роботов.
Рис. 2 Мгновенная прибыль в валютном арбитраже.

Идёт охота за заявкой в малоликвидном стакане. Заявкой, которую выставил человек.

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

  1. У нас на счету USDT.
  2. Совершаем операцию покупки в контракте GNSUSDT. По сути меняем USDT на GNS.
  3. Совершаем операцию продажи в контракте GNSBTC. По сути обменяем GNS на BTC.
  4. Совершаем операцию продажи в контракте BTCUSDT. По сути обменяем BTC на USDT.
  5. После третьей операции у нас на счету опять USDT. Если мы самые быстрые, мы в профите, и всё хорошо.

Что делают не самые быстрые роботы?

А теперь представим, что у Вас робот на Питоне, работающий из Московского удалённого сервера. Или Вы работаете с сайта, арендовали робота, сервер находится во Франции. Торговля на Бинанс. Заявки типа Market – т.е. исполняющиеся по любой цене.

  1. Сигнал был 150 млс. назад. Прибыли уже нет.
  2. Таких роботов, как у Вас, запущенно несколько десятков.
  3. Вы совершаете первую сделку покупки (стакан GNSUSDT) по цене сильно выше, чем было в момент сигнала, т.к. другие уже выели мгновенную ликвидность в стакане.
  4. Через 500 млс. Ваш робот выставляет второй маркет ордер на продажу в контракте GNSBTC в ещё более плохих условиях. В этом стакане и до того не было хорошего уровня мгновенной ликвидности. Но за прошлые 650 млс. Ситуация резко ухудшилась. Вы продаёте по цене хуже, чем было до сигнала на 0.7%
  5. Через 500 млс. Ваш робот выставляет третий маркет ордер на продажу в контракте BTCUSDT. Здесь тоже мгновенная ликвидность разъехалась, но не так катастрофически, как во втором (малоликвидном) контракте. Вы выходите хуже, чем было 1150 млс. назад на 0.1 %.
Теория по валютному арбитражу. Фронтраннинг других роботов.
Рис. 3 Где на самом деле исполнятся 98% всех, кто торгует валютный арбитраж.

Итого:

  1. Страшный убыток от 0.3 до 1 % по операциям.
  2. Стаканы возвращаются в гармоничное положение через 2 секунды.

В OsEngine есть возможность проверять ситуацию после сигнала.

Теория по валютному арбитражу. Фронтраннинг других роботов.
Рис. 4 Робот для изучения движения после сигнала на Валютный арбитраж.

Ссылка на ГитХаб:

https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/Robots/CurrencyArbitrage/CurrencyMoveExplorer.cs

 

Данный робот делает срезы прибыльности по связке инструментов сразу после сигнала на вход. Пишет данные о движении в свой Лог файл, который можно найти в папке Engine/Log/, что рядом с экзешником.

Выглядит лог файл примерно так:
Теория по валютному арбитражу. Фронтраннинг других роботов.
Рис. 5 Срезы ситуации по связкам в течении 3 секунд после сигнала.

Как видно из данного лога, после появления прибыли по последовательности, почти сразу прибыль по связке уходит в резко отрицательную зону. Т.е. медленные роботы с Market заявками поедают мгновенную ликвидность в слабо заполненных стаканах.

Важно!!!

  1. Срезы лучше делать с удалённых серверов, расположенных максимально близко к ядру биржи. 
  2. Для более точного анализа ситуации после сигнала данного робота можно переделать под работу со стаканами, чтобы смотреть в каком именно стакане и на какой % прошло движение в биде или аске. 

3. Суть стратегии.

Заключается в том, чтобы ловить маркетные заявки других роботов в центральных стаканах последовательности, по которой только что прошёл сигнал. Для этого надо держать на счёте не USDT, а BTC и EHT. Чтобы первой заявкой вставать на покупку во втором стакане последовательности, ожидая, когда роботы её исполнят.
Теория по валютному арбитражу. Фронтраннинг других роботов.
Рис. 6 Ставим заявку на покупку в разряженный стакан сильно ниже лучшей покупки.

Исполнилась – отлично. Мы уже в прибыли. Спокойно и не торопясь переливаем тут же назад в BTC через другие контракты. Не исполнился наш ордер – отзываем через 3/5 секунд. В следующий раз нальют.

 

4. Возможные реализации в рамках OsEngine.

Теория по валютному арбитражу. Фронтраннинг других роботов.

Рис. 6. Логика работы робота для реализации данной стратегии. 

  1. Создаём у робота одновременно и источник BotTabPolygon, который после настроек из интерфейса будет нам просто выдавать сигналы относительно того, по какой связке появился профит.
  2. Саму торговлю удобнее будет вести в источнике BotTabScreener, контролируя каждую заявку отдельно.
  3. Чтобы сделать его, потребуется от 100 до 300 строк кода и знание языка СиШарп уровня «школьник».

Теория по валютному арбитражу. Фронтраннинг других роботов.

OsEngine: https://github.com/AlexWan/OsEngine
Поддержка OsEngine: https://t.me/osengine_official_support


Комментарии открыты для друзей, добавляйтесь!

0 Комментариев

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

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