Размышления о торговле криптовалютами (часть 1)

Crypt
Crypt
Feb 24, 2017 · 4 min read

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


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

Я предпочитаю торговлю альткойнами (форками) поэтому основное время провожу на Poloniex и Bitfinex а вывод делаю через BTC-E. Торговля ведется как с помощью ботов, так и вручную. О ручной торговле расскажу как-нибудь позже.

За последние 6 месяцев я создал два бота, которые работают на разных акаунтах и отдельно от основного, где я работаю вручную. Сама идея создать ботов появилась из-за того, что у меня не хватало времени постоянно следить за биржей, и чуть ли не каждая оставленная на ночь открытая позиция опускалась ниже уровня стоп лосса. В то время я торговал на BTC-E, где в веб интерфейсе нельзя создать стоп лосс ордер. И все началось с необходимости автоматически закрыть позицию, если цена опустится до определенного уровня.

Недели две почитав книжки по JavaScript и Node.js я был готов к созданию автоматической закрывалки ордера. К счастью, я нашел на гитхабе уже готовую библиотеку, для работы с API BTC-E, украл и допилил. В результате я мог вручную указать пару и цену и если цена опуститься до указанной, то бот создаст заявку на продажу. Не бот, а предел мечтаний, прям… Со временем оказалось, что можно сделать больше.

Параллельно, как и все начинающие трейдеры, я кинулся штудировать ТА и индикаторы. Мне казалось, что понимания одних индикаторов достаточно для прибыльной торговли на часовых интервалах. И так изучив MACD, RSI и BB (я еще не понимал зачем нужен объем и ни о каких OBV и VWAP еще не было речи) я прикинул следующую стратегию:

  • как критерии для принятия решений использовать направление движения цены за последние два периода, MACD, RSI и BB. Использование сразу нескольких критериев должно повысить качество прогноза и вероятность получения прибыли
  • раздать весовые коэффициенты каждому из критериев. При чем изначально коэффициенты были взяты из головы, и в процессе изменялись
  • немного позже добавился объем тоже со своим коэффициентом
  • все эти коэффициенты должны между собой суммироваться, и по достижению определенного порога должно приниматься решение об открытии или закрытии позиции. Например, если цена движется движется вверх два периода, то получаем один бал в пользу закупки, RSI со значением больше 80 еще плюс 6 и так далее
  • Как только собралось 7 баллов открываем длинную позицию и начинаем считать баллы на продажу.

Стратегия довольно простая и для ее реализации необходимо было доработать автоматическую закрывалку ордеров:

  • бот должен периодически опрашивать биржу и получать информацию о текущей цене
  • хранить информацию о цене и объеме в базе данных
  • периодически делать выборку из базы прогонять массив данных через индикаторы и считать баллы
  • автоматически рассчитывать стоп лосс цену после открытия позиции
  • по достижению либо 7 баллов на продажу либо стоп лосса закрыть позицию

В результате появился бот, который торговал на 15 минутных интервалах, но так и не стал прибыльным по ряду причин

  • ложные срабатывания во время боковых движений цены. Как только цена начинала колебаться в узком диапазоне бот реагировал на любой ее “чих”, что приводило к частому срабатыванию стопов
  • неэффективность технических индикаторов на коротких интервалах. Бот принимал решение, когда уже было поздно.

Последняя причина, возможно, спорна, но все индикаторы индикаторы рассчитываются на основе цены закрытия периода. К тому же стратегии построенные на технических индикаторах широко известны и часто используются для манипуляций на парах с невысокой ликвидностью.

Частично решить эту проблему можно сместив фокус с индикаторов на движение цены внутри периода, то есть анализировать свечи. Здесь стоит отдать должное японским торговцам рисом, которые обнаружили закономерности в последовательностях свечей и, главное, почему они именно такие несколько сот лет назад. Наиболее понятно про свечи мне рассказал этот YouTube канал. Комбинации свечей, понимание “сентимента” в сочетании с объемом дают возможность с большой вероятностью прогнозировать разворот тенденции.

Но есть нюанс, каким образом этот подход реализовать в коде бота? Так как необходимо проанализировать:

  • формы свечей, если они не совсем похожи не эталон (в большинстве случаев так и есть) то в каких случаях их стоит брать в расчет
  • комбинации несовершенных свечей также неидеальны
  • достаточно ли большой объем сделок в точке предполагаемого разворота
  • наличие стенок в книге заявок. Ведь цена может прекратить падение (рост) не только из-за перевеса спроса (предложения), но и из-за “стенки”, которую выставил большой игрок для того чтобы задержать цену. Тогда заявку какого размера стоит принимать за “стенку”?
  • работу других ботов которые гонят цену в необходимую сторону.

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

Такой вариант бота еще процессе дизайна, даже не разработки. О том, что получится расскажу, возможно, в будущем.

Второй моей разработкой стал арбитражный бот. Рынки бОльшую часть времени находятся в равновесии, цена на одиной и той же паре примерно одинаковая. Но так бывает не всегда. Когда увеличивается волатильность, рынки реагируют на изменение цены не одновременно. В это время создается условие арбитража: цена покупки на одном рынке ниже чем цена продажи на другом.

Для торговли в условиях арбитража есть несколько вариантов. Самый простой — купить на дешевой бирже, вывести средства на дорогую биржу, продать там и завести обратно. Но тут есть недостатки в виде времени транзакции и комиссии за перевод. Второй способ — купить заранее форки и распределить их по биржам. Тогда во время арбитража достаточно будет одновременно открыть длинную и короткую позиции. После большого количества торгов может возникнуть дисбаланс: на одной из бирж накопится много форков на другой — биткойнов. Кстати, работа на трех биржах одновременно помогает свести к минимуму эту проблему.

Задача арбитражного бота запрашивать с каждой из бирж книгу заявок и в момент появления арбитража совершить как можно больше сделок, покупая на дешевом рынке и одновременно продавая на дорогом. В результате получается прибыль 0.1–0.7% (после вычета комиссий) от суммы сделки. Данный метод торговли является безопасным до тех пор, пока цена колеблется в диапазоне или существует восходящий тренд. При возникновении тенденции вниз потери могут превышать всю полученную прибыль. Решением этой проблемы может быть хеджирование торгуемого актива с помощью фьючерсных контрактов, что дает возможность зафиксировать цену на определенный период. Но рынок деривативов — это предмет изучения в недалеком будущем.

В следующей статье я попытаюсь рассказать о своих экспериментах с ручной торговлей.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade