С теорией, что такое парный трейдинг мы разобрались, а сегодня со стороны практики посмотрим на один из вариантов парного трейдинга, а именно на баскет трейдинг (basket trading) или торговлю корзинами валют.
Баскет трейдинг (basket trading) — торговля корзинами валют
Итак, в прошлый раз мы закончили на том, что построили спред 2 х 2 пары. Если добавить 3 х 4 пары, то выйдет еще лучше по расхождениям и схождением, тем самым доказываем, что чем больше пар в портфеле, тем лучше схождение:
На данном примере, парный трейдинг представлен не просто торговлей одной пары против другой, а строится из нескольких валют — и это называется торговлей корзиной валют или баскет трейдинг.
Еще один вариант баскет трейдинга можно сделать аналогично, как на фондовом рынке, когда идет сравнение биржевого индекса к портфелю акций. В нашем случае, по аналогии можно принять, что пара BTCUSDT — это индекс (фактически так и есть), а другие валюты войдут в корзину валют (которая торгуется против индекса). Вот как это выглядит графически:
Такой подход basket trading можно более практически использовать, так как исчезает элемент подгонки, как в предыдущем варианте — там можно было менять местами активы корзины, и результаты могли существенно поменяться.
В этом варианте торговли корзинами валют, у нас есть список валют против биткоина с весовыми коэффициентами. Весовые коэффициенты не являются элементом подгонки, они рассчитываются относительно цен на валютную пару, для уравновешивания доли присутствия каждой валюты в портфеле в равных долях.
Кстати, только по последнему рисунку видно, что чистыми без плеча, мы выходим по сделкам на прибыльность около 100% годовых, без использования торгового плеча и пересчета весовых коэффициентов.
Когда считать весовые коэффициенты? Весовые коэффициенты в баскет трейдинге пересчитываются постоянно до момента входа в сделку, после входа они уже остаются статичными, чтобы можно было просчитать реальную текущую прибыль и текущее расхождение.
Чтобы парная сделка была уравновешенной, объем для входа в позицию по каждой паре должен быть одинаковым, а в биткоине объем должен быть равный сумме объемов во всех торговых валютах, которые торгуются против биткоина. Т.е., если мы торгуем XRP, ADA, LTC, TRX и ETH против BTC, и у нас есть на это 1000$, то мы берем в позицию по XRP, ADA, LTC, TRX и ETH на 100$ на каждый инструмент (в сумме 500$) и другую часть корзины — BTC берем на 500$. Тем самым мы получаем уравновешенный портфель по объему.
В basket trading, как и в арбитраже, надо проводить сначала исследования насколько меняется расхождение. Но, в отличии от арбитража, здесь эти исследования будут посложнее, так как не выйдет вычесть из одного курса валюты другой. Надо уже учитывать весы каждой валюты. Тоже самое и с расчетом дополнительных сделок при расхождении.
В основном, идею думаю пояснил, но теперь надо установить требования к боту.
Бот должен получать котировки в реальном времени (через WebSokets), и отдельным процессом от торгового. Также, бот должен быть иметь модуль контроля текущего состояния соединения с биржей, при чем , по правильному, это должен быть отдельный процесс от торгового и процесса получения котировок. О требовании работы как на локальном компьютере, так и на удаленном сервере я уже молчу — это у меня по умолчанию у каждого бота.
Перейдем непосредственно к самому функционалу бота. В первую очередь, должен быть выбор контрактов, с одной стороны само собой будет пара BTC-USD (хотя возможность поменять можно включить), и с другой стороны должен быть доступен выбор нужных пар и количества пар, входящих в расчет и торговлю.
Обязателен модуль анализа. Бот должен в реальном времени рисовать расхождения между курсом BTC-USD и другими валютами, входящими в корзину — это важно, чтобы в процессе работы трейдер не отвлекался, и сразу, без каких либо манипуляций с данными, видел текущее состояние схождения/расхождения. Также, для более обширного анализа, бот должен записывать текущие котировки корзины валют и спред в файл CSV (чтобы можно было анализировать с помощью MS Excel).
Этот робот должен работать с любыми объемами валют, так как многие трейдеры занимаются управлением активами. Это можно сделать — для этого большую сумму покупки можно разделить на серию мелких (например, вместо покупки 1 BTC можно сделать 20 сделок по 0,05 BTC). Тем самым, бот может войти в сделку без ущерба от проскальзывания, и не переплачивая за комиссии.
Ну, и конечно же, в боте должны быть учтены возможности дополнительных сделок при расхождении спредов (опять же, с разделением больших ордеров на серию меньших). Количество дополнительных сделок также должно регулироваться оператором робота.
Далее, самый важный момент — выбор бирж для бота торгующего корзиной валют. И здесь, к сожалению идеальной биржи не нашел.
Самая популярная биржа Bitmex имеет не самые низкие комиссии и плюс к этому, их API тоже не делает им чести (ошибка «System currntly overloaded», 4xx, 5xx — кто торговал, тот в курсе). Но там есть другие плюсы — во первых самые высокие плечи (это эффективность), второе — залог на бирже идет в единой валюте, в биткоине (это мега эффективность — так как идет хеджирование одной стороны корзины относительно второй, а это дает возможность использовать высокие плечи без риска), третье — самые высокие торговые объемы (плюс для трейдеров торгующих большими объемами). В принципе, ошибки отказа исполнения можно более-менее контролировать — для этого надо сделать фильтр по волатильности (когда она растет, тогда не проводить сделки, а ждать).
Далее, биржи Okex и Huobi DM имеют общий плюс — у них комиссии намного ниже чем на Bitmex. Но, там ниже торговые обороты, и самое плохое — там для каждого контракта, чтобы торговать ним, надо иметь депозит (для торговли контракта LTC-USD — надо иметь деньги в LTC, для торговли BTC-USD — надо иметь депозит в BTC). Таким образом, мы получаем не эффективность использования депозитов, так как под каждую ногу надо иметь свои деньги. Это также ограничивает нас в использовании плеча, так как даже имея хеджированную корзину валют, биржа видит ее как серию направленных позиций. А если уж учитывать что валюты легко ходят по 5-10% и более, то уже надо быть аккуратным с выбором плеча, и торговля с плечом более 1 к 5 будет считаться повышенным риском.
Но, если уж выбирать между Okex и Huobi DM, то однозначно я бы смотрел в сторону Okex — там больше торговые объемы, более широкий выбор торговый контрактов и более качественное API (хотя может это только мне так кажется, но по huobi всегда было больше вопросов).
Если у Вас есть интересные мысли на счет basket trading пишите мне, мне очень интересно услышать еще и Ваши мысли.
После первой статьи по парному трейдингу, я получил три предложения сделать пул на создание торгового бота по парному трейдингу. Если у кого есть желание (предварительно), дайте знать, чтобы видеть насколько это интересно. Если будет интересно, то вместе разработаем техническое задание.