Obsah

  • Úvod

  • Předpoklady

    • Otestujte síťové klíče

    • Stáhněte a nainstalujte Postman

  • Vytváření prostředí

  • Importovat sbírku

  • Vyřizování žádostí

  • Závěrečné myšlenky


Úvod

Pochopení a používání API pro obchodování s kryptoměnami může otevřít svět možností, pokud jde o vstup a výstup z pozic. S některými základními znalostmi programování se můžete připojit k backendu burzy a automatizovat své obchodní strategie. Vynecháním webu se můžete mnohem rychleji dostat k odpovídajícímu enginu pro vysoce výkonné aplikace.

Účelem této série je představit vám Binance REST API a naučit vás s ním pracovat. Nakonec byste si měli být jisti svou schopností dotazovat se na trhy a své pozice a zadávat řadu různých typů objednávek.

V tomto článku použijeme Postmana pro komunikaci s ústřednou. Nebojte se – skutečné peníze nevystavíme riziku.


Předpoklady

Otestujte síťové klíče

Pro naše účely použijeme testovací síť. Získáme tak nějaké prostředky, které nemají žádnou skutečnou hodnotu a se kterými můžeme experimentovat. Fungují přesně jako skutečné mince a tokeny, takže jakmile si na API zvyknete, můžete je začít používat k obchodování se skutečnými penězi.


  1. Začněte tím, že přejdete na síť Spot Test Network.

  2. Abyste získali přístup, musíte být přihlášeni pomocí účtu GitHub. Pokud jste to ještě neudělali, vytvořte jej.

  3. Klikněte na „Authenticate“ a přihlaste se pomocí GitHubu.

  4. V sekci "Klíče API" uvidíte, že nemáte žádné registrované klíče. Kliknutím na Generate HMAC_SHA256 Key vygenerujete pár.

  5. Na další obrazovce dejte klávesám štítek. Pojmenujte je, jak chcete, a klikněte na „Generovat“.

  6. Zobrazí se vám dva klíče: klíč API a tajný klíč. Je důležité si je zapsat hned. Pokud tak neučiníte, budete muset proces generování klíče spustit znovu. Doporučujeme je uložit v aplikaci pro psaní poznámek na vašem počítači, abyste je mohli později snadno zkopírovat.

Poznámka: Označování klíčů je něco, co byste měli udělat, když používáte živou výměnu ke správě různých klíčů. Váš účet může mít více klíčů s různými oprávněními. Pokud používáte více obchodních robotů, používání jednotlivých klíčů s popisnými štítky usnadňuje správu oprávnění nebo odstranění jednotlivých klíčů, aniž byste museli měnit všechny své roboty.


Stáhněte a nainstalujte Postman

Postman je platforma pro spolupráci API. To je pro nás perfektní výchozí bod – budeme mít přístup ke sbírkám dotazů Binance k testování bez psaní jediného řádku kódu.

Program je dostupný pro Mac, Windows a Linux. Přejděte na stránku Stahování a stáhněte si soubor .zip.

Poté jej najděte v průzkumníku a nainstalujte. Začněte otevřením aplikace. Vezměte prosím na vědomí, že si můžete vytvořit účet pro přihlášení, ale není to nutné. Pokud chcete tento krok přeskočit, stačí vybrat příslušnou možnost v dolní části okna.


Vytváření prostředí

V tomto okamžiku byste měli mít rozhraní podobné následujícímu.



Nejprve musíte vytvořit prostředí. Je to jen způsob, jak přidat proměnné do sady dotazů, se kterými budeme pracovat. K tomu musíme nejprve získat nějaké informace z úložiště Binance GitHub. Přejděte sem a stáhněte si soubor .zip.



Stahování nebude trvat dlouho. Najděte jej v průzkumníku souborů a rozbalte jej. Pak se můžeme vrátit k Postmanovi.



Klikněte na ikonu ozubeného kola v pravém horním rohu (jak je uvedeno výše). Zobrazí se vyskakovací okno „Spravovat prostředí“.

  1. Vyberte "Import" a přejděte do nově rozbalené složky (binance-postman-api).

  2. Poté zadejte složku prostředí.

  3. Nyní uvidíte dva soubory (jeden pro hlavní síť, jeden pro testovací síť). Hledáme binance_com_spot_testnet_api.postman_environment.json. Ujistěte se, že jste vybrali ten správný, protože naše klíče nefungují s jinými.



Skoro hotovo. Klikněte na "Binance Spot Testnet API" a uvidíte proměnné níže. Upravte dva parametry zvýrazněné červeně vložením dříve uložených klíčů. Klikněte na "Aktualizovat" a zavřete vyskakovací okno.



Na této obrazovce ponechte pole „časové razítko“ a „podpis“ prázdná. Tyto dvě hodnoty budou automaticky generovány při každém požadavku.

Stále je co dělat. Napravo od ikony ozubeného kola, na kterou jsme klikli, abychom prostředí nastavili dříve, uvidíte rozbalovací nabídku, která aktuálně říká „Žádné prostředí“. Klikněte na něj a vyberte „Binance Spot Testnet API“.


Importovat sbírku

Nyní importujeme sbírku, což je velká sada dotazů, které za nás dělají těžkou práci. Chcete-li jej nahrát do našeho prostředí, postupujte takto:

  1. Klikněte na "Importovat" v levém horním rohu.

  2. Ve vyskakovacím okně na kartě „Soubor“ vyberte „Nahrát soubory“.

  3. Opět hledáme složku binance-postman-api. Najděte a otevřete jej.

  4. Tentokrát zadejte do podadresáře "collections".

  5. Zde jsou opět dva soubory. Jeden pro práci s futures API. Ale pracujeme se spotem, takže musíte vybrat soubor binance_spot_api_v1.postman_collection.json.

  6. Nyní byste měli vidět potvrzovací obrazovku identifikující import jako formát sbírky Postman. Vyberte "Importovat".

Na kartě Kolekce na levé straně okna si nyní všimnete, že máme složku s více než 100 požadavky. Gratulujeme! Dobře. V další části se podíváme na to, jaké požadavky můžeme zasílat.


Vyřizování žádostí

Pokud rozbalíte složky na kartě Kolekce, uvidíte, že máme spoustu různých dotazů, které můžeme provést. Z barevného kódování můžete vidět, že můžeme použít tři typy metod:


  • GET: Metoda "GET" se používá k načtení dat ze serveru. Použijeme jej ke zjištění informací o zůstatku na vašem účtu, cenách aktiv atd.

  • POST: Obvykle používáme metodu "POST" k vytvoření informací na serveru. To je nezbytné pro věci, jako je zadávání objednávek, žádosti o výběry atd.

  • DELETE: Metoda "DELETE" je požadavek na server, aby odstranil informace. Bude to užitečné pro rušení objednávek.


Vyhledejte seznam symbolů a obchodních pravidel

Čas na náš první dotaz! Získáme symboly, se kterými lze na burze obchodovat, a pravidla obchodování:

GET /exchangeInfo


Tento požadavek nevyžaduje žádné další parametry – můžete jej zkopírovat a vložit do adresního řádku a dostanete odpověď. Postman usnadňuje prohlížení a úpravu dotazů, kde zahrnujeme více parametrů.

Chcete-li stáhnout tento požadavek, vyberte Market > Exchange Information. Zobrazí se následující karta:



Nemusíme zde dělat nic jiného, ​​takže klikněte na „Odeslat“. Dostanete odpověď:



V horní zvýrazněné části uvidíte důležité informace:

  • stav odpovědi (200 znamená, že požadavek je úspěšný, 400-499 znamená, že máme problém)

  • čas potřebný k obdržení odpovědi (méně než sekunda)

  • velikost odpovědi (~22 kB).


Druhé pole obsahuje hlavní část odpovědi. Je krásně potištěný, aby to trochu ulehčilo očím. Obsahuje informace o samotné burze, dále páry, se kterými můžete obchodovat, a jejich minimální/maximální částky.

Zdá se, že informací je hodně, ale formát usnadňuje práci s nimi programově. Při psaní interakčních skriptů můžete snadno vybrat určité vlastnosti určitých prvků z odpovědi.


Kontrola zůstatku na účtu

Pojďme se podívat, jaká aktiva máme a kolik:

ZÍSKEJTE /účet

Tento požadavek lze nalézt v části „Obchod“ > „Informace o účtu“. Klikněte na něj a uvidíte rozložení podobné předchozímu. Také si však všimnete, že máme dvě nové proměnné: „časové razítko“ a „podpis“. Podpis je bezpečnostní opatření. Protože nyní žádáme o důvěrné informace, prokážeme tím, že jsme vlastníkem účtu.

Časové razítko sděluje serveru, kdy byl požadavek odeslán. Protože sítě mohou být nespolehlivé nebo nefunkční, server může obdržet náš požadavek mnohem později, než se očekávalo. Pokud uplynulo příliš mnoho času, žádost zamítne. Pomocí parametru „recvWindow“, jehož výchozí hodnota je 5 000 milisekund, můžete určit, jak dlouho chcete čekat.

Pošťák za nás vyřizuje tvorbu obou těchto oborů. Klikněte na "Odeslat" a obdržíte odpověď. V části Zůstatky byste měli vidět šest aktiv – BNB, BTC, BUSD, ETH, LTC a TRX. Zůstatek bude rozdělen na volný a uzamčený. Zatím jsme nic nezablokovali, takže veškerý váš majetek by měl být volný.

Gratulujeme k vašemu novému (neexistujícímu) bohatství!


Jak zjistit aktuální cenu symbolu

Aktuální cenu aktiva můžeme získat různými způsoby. Snad nejjednodušší je s takovou žádostí:

ZÍSKEJTE /api/v3/ticker/24h

Jak jste možná uhodli, toto nám poskytne informace o cenách aktiv za posledních 24 hodin. Najdete ji v části „Trh“ > „24hodinová statistika změny ceny tickeru“. Výchozí pár, který vidíme jako proměnnou symbolu, je BTCUSDT.

Můžete jej odeslat hned, abyste viděli rozpis informací o cenách. Můžete také změnit symbol (na BNBBUSD, LTCUSDT atd.), nebo můžete zrušit zaškrtnutí proměnné a vrátit data pro 40 párů.

Máme také jednodušší volání („Trh“ > „Ticker ceny symbolu“), které vrací aktuální cenu, za kterou se aktivum obchoduje:

ZÍSKEJTE /api/v3/price

Stejně jako dříve můžete změnit proměnnou symbolu nebo ji zcela odstranit a získat nejnovější cenu za všechny symboly.


Kontrola aktuální hloubky knihy objednávek

Hloubka knihy objednávek (také nazývaná hloubka trhu nebo DOM) nám může o trhu hodně prozradit. Zavoláme vám, abychom vám vrátili užitečné informace:

GET api/v3/depth

Když jej odešleme s výchozími hodnotami („Trh“ > „Kniha objednávek“), dostaneme odpověď, která nám sdělí nabídku a požádáme o BTCUSDT. Server testnet nebude vydávat tolik dat jako skutečný server, takže níže je snímek obrazovky toho, co byste očekávali v reálném prostředí:



Ve výše zvýrazněné části vidíme první problém. Protože se díváme na účetní knihu pro BTCUSDT, nejvyšší číslo je cena, kterou je někdo ochoten zaplatit za vaše BTC. Níže je uvedena částka, kterou jsou ochotni koupit. To tedy naznačuje, že tato objednávka požaduje 0,999 BTC při kurzu 9 704,65 USDT za BTC. Pokud bychom pokračovali v rolování dolů, viděli bychom pokles nabídkové ceny – to znamená, že kupující dostane méně zaplaceno.

Nejlepší nabídka bude přirozeně nejatraktivnější, pokud chcete dosáhnout zisku. Pokud se však pokusíte prodat na trhu, řekněme 3 BTC, budete moci prodat pouze 0,999 BTC za nejlepší cenu. Budete muset přijímat další (levnější) nabídky, dokud nebude vaše objednávka zcela vyplněna.



Pokračujte v rolování a uvidíte dotaz. Funkčně jsou podobné nabídkám, až na to, že se jedná o příkazy k prodeji BTC za USDT.


Zadání zkušební objednávky

Nyní zadáme zkušební objednávku.

POST api/v3/order/test

I když právě využíváme prostředky testnetu, tento požadavek ve skutečnosti nepovede k zadání objednávky. To může být užitečné pro testování objednávek před jejich odesláním. Najděte jej pod "Obchod" > "Testovat novou objednávku (TRADE)".



Jak vidíte, máme zapojených ještě více parametrů. Pojďme si projít označené:


  • symbol - to už jsme viděli. Toto je pár, který chcete obchodovat.

  • strana – zde uvedete, zda chcete KOUPIT nebo PRODAT. U páru BTCUSDT BUY znamená, že chcete koupit BTC za USDT, zatímco PRODAT prodá BTC za USDT.

  • typ – typ objednávky, kterou chcete odeslat. Možné hodnoty (podrobnosti zde):

    • OMEZIT

    • TRH

    • STOP_LOSS

    • STOP_LOSS_LIMIT

    • TAKE_PROFIT

    • TAKE_PROFIT_LIMIT

    • LIMIT_MAKER

  • timeInForce – tento parametr vyjadřuje, jak chcete, aby byl příkaz proveden:

    • GTC (Good Until Canceled) je možná nejoblíbenější nastavení. VOP zaručují, že vaše objednávka je platná, dokud nebude provedena nebo dokud ji nezrušíte.

    • FOK (Execute or Cancel) – FOK dá pokyn burze k okamžitému provedení příkazu. Pokud to burza nezvládne, bude objednávka okamžitě zrušena.

    • IOC (Execute Immediately or Cancel) – Příkaz musí být zcela nebo částečně proveden okamžitě, jinak bude zrušen. Na rozdíl od FOK se příkazy neruší, pokud je lze částečně provést.

  • množství je jednoduše množství aktiva, které chcete koupit nebo prodat.

  • cena – cena, za kterou chcete prodat. U páru BTCUSDT je ​​to vyjádřeno v USDT.

  • newClientOrderId – identifikátor objednávky. Toto není povinné pole, ale můžete jej nastavit na identifikátor, který později zjednoduší dotaz. V opačném případě se náhodně generuje na burze.

Pokuta! Nyní vytvoříme zkušební objednávku. Použijeme automaticky generované hodnoty: prodejní limitní příkaz 0,1 BTC za USDT za cenu 9 000 $. Klikněte na "Odeslat". Pokud bylo vše úspěšné, obdržíme pouze {{}} jako odpověď.

Zadání skutečné objednávky

Čas zadat skutečnou falešnou objednávku.

POST /api/v3/order

Přejděte na Obchod > Nová objednávka. Testovací zakázky již znáte, takže parametry zde nepřekvapí. Nechme všechny hodnoty tak, jak jsou, ale změňme cenu, za kterou prodáváme, na 40 000 $. Změňte hodnotu ceny, aby to odrážela. Poté klikněte na "Odeslat".

V případě úspěchu bude vaše odpověď obsahovat podrobné informace o objednávce.


Kontrola stavu otevřené objednávky

Obdrželi jsme potvrzení, že objednávka byla zadána v předchozí sekci, ale co když ji chceme zkontrolovat později? Máme k dispozici několik požadavků.

ZÍSKEJTE /api/v3/openOrders

Najdete jej pod "Obchod" > "Aktuální otevřené příkazy (USER_DATA)". Ve výchozím nastavení je vybrána BTCUSDT. Pokud stisknete "Odeslat", obdržíte všechny své otevřené BTCUSDT objednávky (zatím byste měli vidět pouze ten, který jsme nastavili dříve). Můžete vynechat symbol, který místo toho vrátí všechny vaše otevřené objednávky.

ZÍSKEJTE /api/v3/allOrders

"Obchod" > "Všechny objednávky (USER_DATA)" vám dává přehled o všech objednávkách, nejen o otevřených. Zde musíte zadat symbol. "orderId", "startTime", "endTime" jsou volitelné parametry, které vám mohou pomoci upřesnit vyhledávání. Necháme je tady, takže zrušte zaškrtnutí políček. Klikněte na "Odeslat" a uvidíte stejnou odpověď jako předtím. Pokud jste měli uzavřené nebo zrušené objednávky, uvidíte je také zde.


Nakonec můžeme požádat o konkrétní objednávky pomocí:

ZÍSKEJTE /api/v3/order

Získejte jej pod "Obchod" > "Dotaz na objednávku (USER_DATA)". Budete muset zadat buď "orderId" nebo "origClientOrderId" (volitelná značka "newClientOrderId", kterou lze přidat k objednávkám). Zrušte zaškrtnutí "orderId". Pro "origClientOrderId" poskytneme výchozí značku, která byla použita dříve - "my_order_id_1". Vyplňte pole a klikněte na „Odeslat“ pro obdržení odpovědi.


Storno objednávky

Po nějaké době se můžeme rozhodnout, že cíl 40 000 USD je příliš optimistický, a proto chceme objednávku zrušit. V tomto případě bychom použili:

DELETE /api/v3/order

V části „Obchod“ > „Zrušit objednávku“ je dotaz, který nám umožní zvýraznit objednávky ke zrušení. Zrušte zaškrtnutí u "orderId" a "newClientOrderId" a předejte "my_order_id_1" jako hodnotu pro "origClientOrderId".

Po odeslání této žádosti bude objednávka vrácena. Pokud rolujete dolů na "stav", uvidíte, že je skutečně zrušen. Chcete-li to potvrdit, znovu použijte koncový bod GET /api/v3/openOrders (s prázdným seznamem) nebo GET /api/v3/order s origClientOrderId .


Rozmazání objednávky, která je okamžitě vyplněna

Náš předchozí příkaz nebyl proveden, protože to byl limitní příkaz, který bude fungovat pouze tehdy, když cena BTC dosáhne 40 000 $. V případě tržního příkazu v podstatě říkáme „koupit/prodat za jakoukoli cenu, za kterou se aktivum aktuálně obchoduje“. Tato objednávka se vyplní okamžitě.

Vraťme se k tomu "Obchod" > "Nová objednávka". Ukážeme si typ odpovědi (newOrderRespType), což je parametr, který můžeme nakonfigurovat v závislosti na odpovědi, kterou chceme od serveru obdržet. Zde jsou tři možnosti: ACK, RESULT nebo FULL – příklady každé odpovědi můžete vidět zde. Budeme používat "ACK", který nám dá jednoduché potvrzení, že byla objednávka přijata.

Níže vidíte, že odešleme tržní příkaz k prodeji BNB za BUSD za aktuální tržní cenu.



Všimněte si, že odpověď nám poskytuje minimální informace:



Vyplnění objednávky můžete ověřit prostřednictvím koncového bodu /api/v3/allOrders.


Kontrola vašich nabídek

Nakonec se podívejme na koncový bod pro ověřování vašich transakcí:

ZÍSKEJTE /api/v3/myTrades

Požadavek je v sekci "Obchod" > "Účetní obchodní seznam (USER_DATA)". Umožňuje zkontrolovat každou transakci specifickým symbolem. Pokud chcete vidět všechny své obchody pro výchozí symbol (BTCUSDT), stačí zrušit zaškrtnutí "startTime", "endTime" a "fromId". Odpověď vrátí až 500 obchodů – stačí změnit limit, pokud chcete vidět více.


Ladění pomocí Postman

V Postman můžete dodatečně vystavit nezpracovaný HTTP požadavek a odpověď.



Tato nabídka otevře konzoli Postman, která zobrazuje podrobnosti o každém požadavku.



Závěrečné myšlenky

Cílem této příručky je představit vám Binance API bez psaní jediného řádku kódu. Pokud jste provedli všechny nezbytné kroky, měli byste nyní pochopit, jak můžeme požadovat a odesílat informace.

V dalších dílech této série představíme některé základní koncepty kódování, které nám umožňují automatizovat nákup a prodej kryptoměn a dalších digitálních aktiv.

Máte ještě nějaké otázky? Navštivte naše rostoucí fórum komunity vývojářů Binance nebo si prohlédněte dokumentaci.