Перейти к публикации

Socket32's блог

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

Об этом блоге

API для бирж

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

 

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

Socket32

Socket32

×