У каждой биржи свои приколы (сравнительный обзор API)

Андрей К…
Последнее изменение:
4
1
0

У каждой биржи свои приколы, и чем дольше работаешь с биржей, тем больше неприятных (а иногда и приятных) моментов узнаешь. Решил вот поделиться тем, с чем столкнулся :)

Эксмо

При работе с эксмо мне не понравилось несколько вещей:

  1. Не очень быстрая скорость ответов сервера. Играть на среднесрок и долгосрок я могу и руками, для этого бот честно говоря не очень нужен (ну, разве что подбирать оптимальные точки входа), а вот играть на скорость затруднительно.  
  2. Периодические работы с API. Бывали периоды, когда несколько раз в неделю API не работало от 2 до 4 часов подряд. Да, об этом предупреждают, но господа… Как можно торговать если API то работает, то нет?  Самое эпичное отключение произошло в феврале 2018, когда биткойн, который два месяца падал с 19 000$ до 6000$, вдруг начал серьезно и быстро расти и тут отключили API и вообще устроили обновление биржи часов на 1.
  3. Периодические глюки в работе API. Не знаю, как у них устроено внутри, но бывает, что присылаешь несколько запросов, в каждом из которых новый параметр nonce, и получаешь в ответ ошибку, что такое nonce устарело – и номер показывает то ли не твой, то ли какой-то из будущего. При этом новые запросы продолжают дальше работать. Такое возникает не сказать, что часто, но периодически, и это неправильно.
  4. Ну и еще мне не нравится, что нет метода, который позволил бы узнать текущее состояние ордера (исполнен, отменен, открыт), приходится комбинировать несколько запросов API что бы выяснить состояние, а это не на руку ни мне, ни бирже. И нельзя официально получить последние свечи - приходится выкручиваться.
  5. Ну и общий объем торгов не слишком велик по сравнению с другими биржами, из-за этого выставленные ордера могут висеть по несколько часов или дней, торговля выходит неспешной и размеренной.

Полоникс

Мне понравился объем торгов на бирже и количество валютных пар – можно совершать десятки и сотни успешных сделок в день, торгуя по разным парам. Не понравилось:

  1. Скорость ответа: при торгах ботом приходится время от времени запрашивать через API данные – текущие курсы, открытые ордера, последние сделки и т.п., а так же выставлять ордера и проверять их статус. Так вот, бОльшая часть запросов проходит быстро, но бывают моменты, когда ответы приходят через 2 секунды – я замерял. Т.е. может получиться так, что бот запросил цены – прошло 2 секунды, бот выставил ордер – прошло еще 2 секунды, бот получил уточняющую информацию (об этом ниже) – еще 2 секунды, и т.п.
  2. Изменение объема и цены торгов. Иногда случается так, что ордер выставляется не совсем по рассчитанной цене и не совсем на указанный объем. Обычно это происходит, когда и цену и объем рассчитываем сами, на своей стороне, и в стакане такой нет. Видимо, это связано с механизмом подбора сходящихся ордеров в стакане – и, в отличии от эксмо, подобранная цена не всегда идет в пользу клиента. Так что, если я решил купить 0.12345678 LTC по курсу 0.87654321, то мне придется после выставления ордера запросить информацию с моих открытых ордеров – и совсем не факт, что числа совпадут. Так же может получиться так, что ордер уже исполнен и смотреть нужно в исполненных – а это еще один лишний запрос.
  3. Нет достоверного метода API, позволяющего узнать, был ли ордер отменен (и был ли при этом исполнен частично). Приходится юлить – проверять, есть ли он в открытых, есть ли в закрытых, были ли по нему сделки и т.п. А это лишние запросы к API (а кол-во запросов ограничено), и общее замедление работы.
  4. Ну и в целом про комиссии – я писал об этом отдельную статью, повторюсь вкратце – тот, кто провернул на бирже большую сумму денег может торговать без комиссии – и прогибать цену под себя, а также формировать жестокий флэт и держать его часами, а то и днями. Таким образом тот, кто только входит на биржу, оказывается в невыгодном положении.

Bittrex

У этой биржи очень хорошая скорость – и не похоже, что бы были какие-либо ограничения. Запросы выполняются за миллисекунды, много валютных пар, хороший объем торгов, не так давно входил в топ-10 по нескольким парам (по данным coinmarketcap). Пожалуй, к ним только одна претензия – то, что при получении данных через официальный API данные кешируются на несколько секунд. В итоге бот не владеет ситуацией – последними сделками, открытыми ордерами и т.п. А еще иногда сделка BUY отображается через API как сделка SELL и наоборот, а иногда нормально.. Мистика.

Можно, конечно, воспользоваться неофициальным API (v2.0) но и там есть прикол – он время от времени показывает неправильную информацию. Т.е. она может быть правильная в логике биржи, но бывает так что вы берете последние сделки по BTC-ETH, раз проверили, второй, третий, на четвертый вернулись данные по BTC-ETC, потом опять BTC-ETH и т.п. Звучит как бред, но это действительно так :) Возможно, есть какой-то хитрый способ это обходить, но я так далеко не копал, так что если кто знает, напишите, пожалуйста, в комментариях.

Yobit

У Yobit`а два зеркала, через которые можно получить данные API – и периодически одно из них не работает, т.к. якобы DDOS, и в целом ограничения довольно параноидальные. Вроде как они разрешают 100 запросов в минуту (https://yobit.net/ru/rules/), но по факту блокируют как только далекое предполагаемое кол-во приблизится к этому – например, если сделать 10 запросов за 5 секунд (ого, если он так и дальше продолжит, он сделает 120 запросов в минуту, временный бан).

Так же работают не все методы API (RedeemCoupon, например).

Yobit мог бы стать этаким неуловимым Джо, если бы не это бешеное количество монет и токенов, которые каждый день пампят кто попало, и на которых порой можно поднять 500% за пару часов, так что мыши плакали, кололись, но продолжали юзать АПИ.


Реклама


 

Liqui

Ликви своеобразная биржа, апи которой иногда работает очень странно – то медленно, то выдает ошибки.

Меня больше всего удивляет политика комиссий за вывод – может глюк, не знаю, но я оттуда давно всё вывел. За вывод USDT комиссия 30 USDT, за вывод BTC 0.0015 BTC, как то многовато, имхо, тем более что на многих биржах комиссию за крипту не берут (не считая майнерской).

С другой стороны, биржа честно мне начисляла монеты после форков.

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

WEX (бывш. Btc-e)

Одна из старейших бирж не зря держится столько времени, несмотря на арест создателя, вопросов к API практически нет. Более того, Yobit и Liqui слизали методы почти один в один, так что если написан код для Wex, то он практически без изменений будет работать на любой из этих трёх бирж.

Bitfinex

Лютые монстры. Разрешают от 10 до 90 запросов в минуту. 10 в минуту, Карл!! Причем это скорее 10, чем 90. Если ты хочешь отслеживать цену нескольких монет, проверяй раз в минуту, чувак =) Конечно, они пишут, что надо пользоваться веб-сокетами, но и там есть ограничения – нельзя подписаться на столько пар, на сколько нужно, паре на 10й, кажется, начинают тебя футболить. Так что это биржа скорее для тех, кто заряжает миллионы на месяц, и колебания в рамках минутных таймфреймов им точно не интересны.

Впрочем, они и сами об этом говорили – дескать, мы не активируем аккаунты, у которых на счету меньше 10 000 долларов, мы биржа не для новичков («все, у кого нет миллиарда долларов, могут идти в ж…»(с)), потом, конечно, это сняли но тем не менее…

Криптопия

API работает довольно стабильно, минусом показалось то, что опять же нет готового метода узнать текущее состояние ордера, приходится мудрить. Так же мне не нравится формат подачи данных - например, что бы узнать баланс по нужной монете, нужно получить массив словарей, пройтись по каждому и проверить, та ли монета.. Это неудобно.

Так же нельзя офиациально вытащить свечи, приходится считать самому.

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

Bitstamp

Всё бы ничего, но прямого доступа нет (требуется прокси/VPN), а так же для активации API требуется полное подтверждение личности – паспорт, прописка и т.п. И процесс этот может затянуться, так что если планируете заняться арбитражом, лучше позаботиться о регистрации сегодня.

С прямым доступом вообще странная ситуация -  сначала IP адрес биржи попал в выгрузку Роскомнадзора, соответственно биржа оказалась запрещенной на территории РФ. Непонятно почему так произошло, и через несколько дней РКН удалил IP из своей базы. Но зато биржа наоборот, запретила доступ гражданам РФ без объяснения причин. Что там творилось за кулисами, конечно неизвестно (но, кажется, догадаться можно).

HitBTC

Европейская биржа, их киллер-фича – использование API по протоколу FIX. Этот протокол используется для обмена данными между разными биржами, с ним работает мета-трейдер и т.п. Если кто писал ботов для традиционных бирж (или планирует писать в дальнейшем), возможно стоит освоить протокол. Но там в разы сложнее чем REST API (хотя и возможностей в разы больше).

Binance

Отдает данные по API не кешируя, сейчас разрешает 1200 запросов в минуту, так же есть сокеты для публичных данных.

Binance молодцы, на мой взгляд, я даже столкнулся с тем, что превысил кол-во обращений в минуту, меня заблочили, а когда я зашел на сайт, то json запросы возвращали код ответа 418 (типа я не биржа, я обычный чайник, отвали, чел).  

Боты работают на Binance несколько месяцев без остановки, ни разу не видел замедлений или зависаний. В целом мне нравится, сейчас тусуюсь тут.


А у вас какие-то есть замечания к автоматизированной торговле на биржах? Пишите в комментариях.

Комментарии: (4)
29.05.2018 06:49
Yobit. 

Предыстория: есть условия минимального размера ордера (в том числе min total), если попытаться выставить ордер меньше порогового значения, то биржа выдает ошибку: Total transaction amount is less than minimal total. 

Проблема: по ряду пар такая ошибка выдается всегда, на любые ордера, которые отправляешь по API (при этом через браузер такой проблемы с выставлением ордеров нет). 

Например: bns_btc, pext_btc, bio_eth, xvg_eth и многие другие пары, где курс очень маленький в абсолютном выражении.
19.06.2018 13:40
Эта проблема возникает если слать запрос на создание ордера в экспоненциальной записи и выдает как раз такую ошибку: Total transaction amount is less than minimal total.
Решается конвертацией float to string.
05.06.2018 09:20
Спасибо, полезный сайт и статья тоже для начинающих.
Если не сложно выложи плз пример работы с приватным апи криптопии.
Пожалуйста, Авторизуйтесь что бы оставить свой комментарий