Доброго времени суток!
Хотел бы рассказать вам об арбитраже на экспирации фьючерсов на криптобиржах OKEx и Huobi, который уже не работает, но в своё время принёс вполне себе неплохой доход (несколько сотен процентов к депозиту).
Почему стратегия больше не работает?
Потому что биржи поменяли спецификацию и арбитражная ситуация больше не возникает.
Терминология
Чтобы лучше понять, как работает стратегия, нужно знать, какая была спецификация бирж по части фьючерсов.
Итак, ранее на OKEx и Huobi были 3 серии фьючерсов:
1) недельные — экспирируются в следующую по календарю пятницу;
2) би-недельные — экспирируются в следующую после следующей по календарю пятницу (т.е. нужно к экспирации недельных фьючерсов добавить одну неделю);
3) квартальные — экспирируются в последнюю пятницу квартала.
По времени экспирация происходит в 08:00 UTC.
Суть стратегии
За две недели до экспирации квартальных фьючерсов возникает уникальная ситуация: «квартальные» фьючерсы становятся «би-недельными», а новые «квартальные» фьючерсы имеют экспирацию не в этом квартале, а в следующем.
Рассмотрим, например, экспирацию 12 июня 2020. До 08:00 UTC на бирже торговались контракты с экспирациями 12.06.2020 (недельные), 19.06.2020 (би-недельные) и 26.06.2020 (квартальные), а после 08:00 UTC: 19.06.2020 (недельные), 26.06.2020 (би-недельные), 25.09.2020 (квартальные).
Когда новый контракт только появляется, в нём очевидно имеется совершенно пустой стакан. В примере выше таким новым контрактом является контракт с экспирацией 25.09.2020.
Если проанализировать историю, то можно легко понять, что в основном все совершают сделки именно на квартальных фьючерсах и вполне вероятно, посылают не лимитные, а рыночные заявки. А это значит, что если мы выставим свои лимитные заявки в пустой стакан, то будет большая вероятность, что они будут кем-то исполнены.
Как можно догадаться, выставлять заявки нужно с большим спредом, допустим 8%, потому что мы хотим заработать себе на яхту и вертолёт :)
Также для получения максимальной прибыли мы будем выставлять свои заявки с максимальным плечом, которое зависит от конкретного фьючерса и биржи (от x20 до x100). Но следует помнить, что есть некоторая вероятность ликвидации, потому что теоретически, если кто-то знает, что мы делаем, то он может продавить цену ещё дальше, так что у нас случится маржин колл, несмотря на то, что мы зашли с большим отклонением в свою сторону от справедливой цены. Поэтому под нашу стратегию мы будем выделять столько депозита, сколько не жалко потерять, но при этом с большой вероятностью удвоиться или утроиться.
Ещё важно учитывать лимиты изменения цены, предусмотренные биржей, и выставлять свои заявки в этих рамках. Т.е. например, если по BTC разница между максимальным и минимальным лимитом цены равна $2000, то спред по нашим заявкам не должен превышать этой величины, т.к. иначе с нашими заявками не получится заключить сделку.
Как считать справедливую цену?
Справедливую цену новых фьючерсов можно считать двумя разными способами.
1) Смотреть цену аналогичных фьючерсов (с одинаковой экспирацией), но на другой бирже
Допустим, мы хотим рассчитать цену нового контракта BTC-USD-25.09.2020 на Huobi, но на Deribit контракт BTC-USD-25.09.2020 уже давно есть и мы просто берём его цены.
2) Рассчитывать на основе цены спот и премии фьючерсов с данной экспирацией
Теперь допустим, что нам нужно знать цену нового контракта LTC-USD-25.09.2020 на Huobi, но проблема в том, что фьючерс LTC-USD-25.09.2020 нигде не торгуется.
Для этого мы пытаемся спрогнозировать, какой могла бы быть премия этого фьючерса. Это можно сделать разными способами, но для простоты можно положить премию равной премии по BTC контрактам. Для нашего спреда 8% этой точности будет более чем достаточно.
Допустим, цена спот BTC-USD $9400, цена BTC-USD-25.09.2020 (на Deribit) $9550 => премия фьючерсов равна $150 или 1.59%.
Далее допустим, что цена спот LTC-USD равна $44.21. Отсюда вычисляем примерную стоимость нового контракта LTC-USD-25.09.2020: ($44.21 + 1.59%) = $44.91
Особенности отправки заявок
Важно знать, что новые контракты появляются не ровно в 08:00 UTC — это время ничем не регламентировано и каждый раз может быть разным и также отличается от контракта к контракту. Например, может быть так, что BTC-USD-25.09.2020 появится в 08:03:05 UTC, а LTC-USD-25.09.2020 в 08:01:23 UTC.
Поэтому, т.к. биржа не предоставляет никаких возможностей оповещения о появлении нового контракта, мы будем просто спамить своими заявками начиная с 08:00 UTC, пока биржа в итоге не примет их. Спамить нужно в рамках разумного и не выходить за предусмотренный биржей rate-limit, чтобы избежать бана.
Как это выглядит?
Ниже представлена часть скриншотов с экспирации, на которых отработала стратегия.
Почему этот арбитраж больше не работает?
OKEx где-то зимой 2020, а Huobi летом 2020 года ввели би-квартальные фьючерсы. Экспирация этих фьючерсов приходится на следующий квартал.
Поэтому, когда у нас возникает та самая уникальная ситуация, описанная выше, стакан квартальных фьючерсов больше не является пустым и никакого арбитража не возникает: если кто-то и посылает ордера прямо по рынку после экспирации, то эти ордера попадают в маркет-мейкеров с адекватными спредами, а не 8%, как у нас.
С другой стороны, стакан новых би-квартальных фьючерсов является пустым сразу после экспирации, но на них никто почему-то не хочет посылать ордера прямо по рынку, я проверял :(
Желаю всем профита и будьте аккуратнее с отправкой ордеров по рынку!
… дальше не стал читать, поскольку коля маржин недопустим не при каких обстоятельствах.
Или объясните, как вы видите арбитраж с максимальным плечом, при котором маржин колл недопустим ни при каких обстоятельствах?
Допустим, вы купили биткоин на бирже 1 по цене $10000 с плечом x100 и продали тот же самый биткоин на бирже 2 по цене $11000. Дальше цена на первой бирже упала до $9000, а на второй так и осталась на уровне $11000. На первой бирже у вас случился маржин колл и счёт обанкротился.