Перейти к содержимому

Socket32's блог

  • запись
    1
  • комментария
    3
  • просмотров
    3 900

Об этом блоге

API для бирж

Записи в этом блоге

Socket32

ИМХО 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

×