ИМХО API для бирж
Опишу своё видение, как может выглядеть «идеальный» API биржи.
Написав классы практически для всех существующих да и почивших бирж накопился обширный опыт.
Приватное API
Open_orders() - список открытых ордеров на покупку и продажу.
Желательно выдавать сразу список всех ордеров, потому что опрашивать сервер всеми существующими парами на бирже накладно для юзера по времени, для сервера по ресурсам/коннектам/keep alive/расход nonce.
Выдаваемые данные:
Массив, ключи которого пара, например BTC_DOGE, BTC_FLT.
Принимаемые параметры могут быть пара, но опять же лучше 1 запрос со всем массивом чем теребить сервер.
Order_id – цифровой код ордера, удобен для проверки на длину и цифры.
Price – цена покупки/продажи.
Vol – заданный объем покупки/продажи.
Vol_remain – остаток объема, то есть сколько осталось от заданного объема, очень полезен что бы узнать сколько осталось от ордера.
Time – время создания ордера, лучше в unix_time, удобно прибавлять разницу с биржи и своим часовым поясом, очень полезен в случае когда стоит несколько ордеров по одной цене и нужно отменить
Type – тип, покупка sell или продажа buy
********
Balance() – список монет на бирже.
Массив, ключи которого правильные акронимы монет, например DOGE, FLT.
Принимаемые параметры акроним монеты, удобно после покупки получить новый баланс за вычетом комиссии, для вывода.
balance('doge');
Выдаваемые данные:
Balance – монеты не в ордерах.
Hold – монеты в ордерах.
Unconfirmed – монеты в пути, неподтвержденные.
Приватное торговое
********
Buy() – создание ордера на покупку.
Принимаемые параметры: пара, акроним монеты, количество и цена.
buy('btc', 'doge', 8110, 0.00000048);
Выдаваемые данные:
Order_id – цифровой код ордера, удобен для проверки на длину и цифры.
********
Sell() – создание ордера на продажу.
Принимаемые параметры: пара, акроним монеты, количество и цена.
buy('btc', 'doge', 8110, 0.00000048);
Выдаваемые данные:
Order_id – цифровой код ордера, удобен для проверки на длину и цифры.
********
Cancel() – отмена ордера.
Принимаемые параметры: идентификатор ордера - Order_id
Приватное ввод/вывод
********
Deposit() – получения адреса и доп. адреса монеты.
Принимаемые параметры: акроним монеты.
Выдаваемые данные:
Address – уникальные адрес монеты.
Address_addon – доп. адрес монеты, XMR, BNC.
********
Withdraw() – вывод монеты.
Принимаемые параметры: монета, количество, адрес, доп. адрес если требуется.
withdraw(XMR, 24, 'XMR _address', 'XMR_address_addon');
Выдаваемые данные:
TXID – очень нужна вещь, идентификатор транзакции, что бы проверять в проводнике блоков, указывать в письме поддержке в случае проблем.
Приватное, история
Плюшки которые показывают уровень разработчиков биржи и отношение к юзеру.
********
History_withdraw() – история выводов монет.
Принимаемые параметры: монета – необязательно.
Выдаваемые данные:
Address – адрес куда была переведена монета.
Address_addon – доп. адрес.
TXID – транзакция.
Vol – объем.
Time – дата/время вывода.
********
History_trades() – история торгов.
Принимаемые параметры: пара и монета – необязательно.
Выдаваемые данные:
Pair_Coin – торговая пара.
Price – цена покупки/продажи.
Vol – объем покупки/продажи.
Time – время исполнения ордера
Type – тип, покупка sell или продажа buy
********
History_deposit() – история поступлений монет.
Принимаемые параметры: монета – необязательно.
Выдаваемые данные:
Coin – монета.
Vol – количество монет.
Time – дата/время ввода.
********
History_transfer() – история передачи монет локально, другому пользователю биржи.
Принимаемые параметры: монета – необязательно.
Выдаваемые данные:
Coin – монета.
Vol – количество монет.
Time – дата/время ввода.
Открытое API, без аутентификации
********
Pairs() – список торговых пар, например: BTC_LTC, BTC_DOGE, LTC_DOGE, XRP_DOGE.
Выдаваемые данные:
Массив со всеми существующими торговыми парами.
********
Orders() – список ордеров на покупку и продажу монеты.
Принимаемые параметры: пара и акроним монеты, возможно тип (продажа, покупка) и количество сделок.
orders('btc', 'doge', 'all', 25); //Format: orders('PAIR', 'COIN', ['sell' | 'buy' | 'all', count])
Выдаваемые данные:
Один массив или два со списком ордеров.
Price – цена покупки/продажи.
Vol – объем покупки/продажи.
Type – тип, покупка sell или продажа buy если будет разделение массивов.
********
Summary() – подробная информация о монете, акроним, полное имя, ордера на покупку/продажу.
Самое главное - статус кошелька монеты, часто бывает форк, проблемы с сетью, что бы не потерять монеты, не тратить нервы и время на общение с тех. поддержкой.
Список ордеров на покупку и продажу. Таким образом, отпадает необходимость делать вызовы к Pairs() и Orders() еще одно преимущество – это скорость получения, гораздо быстрее получить один файл с ордерами чем делать десятки запросов по Orders().
Выдаваемые данные:
Массив со всеми монетами, один запрос и полная информация о монетах и статусе получена.
********
History_trade() – история торгов монеты.
Принимаемые параметры: пара и акроним монеты, возможно тип (продажа, покупка) и количество сделок.
history_trade('btc', 'gmc', 'buy', 25); //Format: history_trade('PAIR', 'COIN', ['sell' | 'buy' | 'all', count])
Выдаваемые данные:
Price – цена покупки/продажи.
Vol – заданный объем покупки/продажи.
Time – время исполнения ордера, лучше в unix_time, удобно прибавлять разницу с биржи и своим часовым поясом.
Type – тип, покупка sell или продажа buy
3 Комментария
Рекомендуемые комментарии
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти