Сегодня хочу рассказать про то, как мне довелось побывать в шкуре алготрейдера и даже поторговать немного биткоинами )) Не своими, правда.
Основная моя работа связана с макросами VBA и парсингом информации в интернете. Обращается как-то ко мне мой старый заказчик с просьбой написать для него робота на бирже virwox. Не знаю, насколько котируется эта биржа в криптовалютном мире, если знаете про неё что-то, то напишите в комментариях, мне будет интересно.
Логика работы робота проста — покупать дешевле, продавать дороже. Вроде бы это называется робот-спредер, т.е. работающий внутри спреда. Опять же поправьте, если я не прав.
Заказчик сам пытался торговать вручную, и у него это даже получалось, но в стакане на бирже присутствовали другие роботы, которые постоянно перебивали заявки, выставляя чуть более лучшую цену, чем ставил заказчик. Собственно, надо было это всё автоматизировать.
На этой бирже существует АПИ со следующими ограничениями — 60 запросов в минуту, 600 запросов в час. В ответ на каждый запрос ты получаешь заголовки с сообщением, какой лимит у тебя остался (т.е. можно контролировать его и подстраивать скорость работы). Выставление заявки на покупку/продажу стоит в 5 раз дороже «по времени», чем обычный запрос. Т.е. работать на высоких скоростях там по определению не получится.
Алгоритм такой — определяем спред в стакане, если маленький (и не будет отбивать комиссии), то стоим ждем, пока раздвинется. Если достаточный, то выставляем минимальный лот на покупку битка. Дальше проверка цены — не перебил ли нас кто по цене, если нет, то исполнилась ли заявка, и если исполнилась, то переходим к продаже. Если не исполнилась заявка, то отмена существующей заявки, проверка спреда, выставление заявки. И так по кругу.
Написали робота, заявки ставит-снимает, всё ок, но на бирже есть еще и другие роботы, которые постоянно перебивали наши заявки, причем они делали это очень быстро и всегда одним и тем же объемом (не минимальным). С такой скоростью им явно не хватит часового лимита.
При этом счетчик количества посетителей онлайн на бирже показывает небольшое число — несколько сот человек. Вряд ли у всех есть роботы. Получается, либо кто-то «читит» и для него какие-то расширенные лимиты по АПИ установлены, либо действительно много роботов собралось в стакане и они соревнуются между собой (в это мне слабо верится, т.к. объем был у заявок одинаковый, т.е. похоже на одного и того же робота).
Были у нашего робота успешные сделки, уходил он и в минус из-за движения цены, какие у него успехи на протяжении нескольких недель — не знаю. Я настроил заказчику возможность торговать разными «криптопарами», и он давно уже мне ничего не писал. Значит либо нормально у него всё, а может наоборот разочаровался в этом роботе и выключил.
Интересоваться результатами робота мне как-то неудобно. Я же получил за него оплату, как за выполненную работу. Получается, если он торгует в минус, то заказчик будет недоволен — он мне заплатил, а робот функцию не выполняет. А если он торгует в плюс, то у заказчика может закрасться подозрение — а вдруг я тоже захочу на этом подзаработать и создам ему конкуренцию в стакане (хотя меня подобная торговля не привлекает).
Вот такой вот опыт написания торгового робота ) В целом это был необычный заказ и им было интересно заниматься (особенно с учетом того, что я сам в это время осваивал торговлю на ФОРТСе).
Кто сталкивался с АПИ на криптобиржах, пишите свои размышления (или кидайте ссылки на статьи на СЛ, почитаю). Может быть везде такая ситуация с АПИ и роботами, а может это какое-то исключение из правил. Будет интересно почитать.