Hlavní Takeaways

  • API jsou části kódu, které umožňují aplikacím sdílet informace a lze je použít k vylepšení strategií obchodování s kryptoměnami.

  • Postman je platforma API, která zjednodušuje proces vytváření a používání API.

  • Zjistěte více o používání Postmana pro spotové obchodování v ekosystému Binance API.

Binance API Series Pt. I – Spot Trading with Postman

Úvod

Pochopení a používání API pro obchodování s kryptoměnami může otevřít svět možností pro vstup a výstup z pozic. S některými jednoduchými znalostmi kódování se můžete připojit k backendu burzy a automatizovat své obchodní strategie. Tím, že obejdete webovou stránku, můžete se vydat mnohem rychlejší cestou k odpovídajícímu enginu pro vysoce výkonné aplikace.

V tomto článku použijeme ke komunikaci s burzou Postman, zjednodušenou platformu API. Nebojte se – nebudeme vystavovat žádné skutečné finanční prostředky riziku.

Předpoklady

Klíče Testnet

Testnet použijeme pro naše současné účely. Tato simulační funkce nám poskytne nějaké finanční prostředky bez reálné hodnoty, se kterou bychom si mohli hrát. Fungují stejně jako skutečné mince a tokeny, takže jakmile se s rozhraním API seznámíte, můžete jej začít používat k obchodování se skutečnými prostředky.

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

  2. Chcete-li získat přístup, přihlaste se pomocí účtu GitHub. Pokud jste to ještě neudělali, budete si ho muset vytvořit.

  3. Klikněte na Authenticate a přihlaste se přes GitHub.

  4. V části Klíče API budete informováni, že nemáte zaregistrované klíče. Kliknutím na Generate HMAC_SHA256 Key vytvořte pár.

  5. Na další obrazovce dejte klávesám štítek. Nazvěte je, jak chcete, a stiskněte Generovat.

  6. Zobrazí se vám dva klíče: klíč API a tajný klíč. Je důležité, abyste je nyní zaznamenali. Pokud ne, budete muset znovu spustit proces vytváření klíče. Doporučujeme je uložit do aplikace Poznámky ve vašem počítači, abyste je mohli později snadno zkopírovat.

Poznámka: Označení klíčů se vyplatí, když používáte skutečnou 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 provozujete několik obchodních robotů, používání samostatných klíčů s popisnými štítky usnadňuje správu oprávnění nebo mazání jednotlivých klíčů, aniž byste museli měnit všechny své roboty.

Stažení a instalace Postman

Postman je platforma API Collaboration. Je to pro nás perfektní výchozí bod – budeme mít přístup ke sbírkám požadavků Binance, které budeme testovat, aniž bychom museli psát jediný řádek 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.

Jakmile to dokončíte, vyhledejte jej v průzkumníku souborů a nainstalujte jej. Spusťte aplikaci a můžeme začít! Pro přihlášení si můžete vytvořit účet, ale není to nutné. Pokud chcete tento krok přeskočit, jednoduše vyberte možnost ve spodní části okna.

Vytváření prostředí

V této fázi byste měli mít rozhraní, které se podobá následujícímu.

Za prvé, chceme vytvořit naše prostředí. Tento krok je jen způsob, jak přidat proměnné do požadavků, se kterými budeme pracovat. Nejprve musíme získat nějaké informace z úložiště Binance GitHub. Přejděte sem a stáhněte si soubor .zip.

Stahování by nemělo trvat příliš dlouho. Můžete jej najít v průzkumníku souborů a rozbalit jej. Pak se můžeme vrátit do Postman.

Klikněte na ikonu ozubeného kola v pravém horním rohu (viz obrázek výše). Uvítá vás vyskakovací okno Spravovat prostředí.

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

  2. Zadejte jej a poté přejděte do složky prostředí.

  3. Nyní uvidíte dva soubory (jeden pro mainnet a jeden pro testnet). To, co hledáme, je binance_com_spot_testnet_api.postman_environment.json. Ujistěte se, že máte ten správný, protože naše klíče nebudou fungovat s druhým.

Skoro tam. Kliknutím na Binance Spot Testnet API zobrazíte proměnné níže. Upravte dva parametry označené č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 pro časové razítko a podpis prázdná. Tyto dvě hodnoty budou automaticky vytvořeny při každém požadavku.

Zbývá udělat poslední věc. 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.

Import kolekce

Nyní budeme importovat kolekci – jedná se o rozsáhlý sortiment požadavků, které za nás při telefonování udělají těžkou práci. Chcete-li jej načíst do našeho prostředí:

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

  2. Ve vyskakovacím okně na kartě Soubor vyberte možnost Nahrát soubory.

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

  4. Tentokrát zadejte kolekce do podadresáře.

  5. Jsou zde opět dva soubory. Jeden je pro práci s futures API. Ale pracujeme s přímým, takže musíte vybrat soubor Binance Spot API.postman_collection.json.

  6. Nyní byste měli vidět potvrzovací obrazovku identifikující import jako ve formátu Postman Collection. Vyberte Import.

Na kartě Kolekce nalevo od okna si nyní všimnete, že máme složku s více než 100 požadavky. Gratulujeme! Můžeme jít. V další části se podíváme na druhy žádostí, které můžeme vznést.

Vyřizování požadavků

Pokud rozbalíte složky na kartě Kolekce, uvidíte, že můžeme podávat mnoho různých požadavků. Z barevného kódování si můžete všimnout, že existují tři typy metod, které můžeme použít:

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

  • POST: K vytváření informací na serveru budeme obecně používat metodu POST. Tato metoda je potřebná pro věci, jako je zadávání objednávek, žádosti o výběry atd.

  • DELETE: Metoda DELETE požaduje, aby server odstranil informace. Bude se hodit při rušení objednávek.

Najděte seznam symbolů a pravidla obchodování

Čas na naši první žádost! Získáme symboly, se kterými můžeme na burze obchodovat, a pravidla obchodování:

ZÍSKEJTE /api/v3/exchangeInfo

Tento nevyžaduje žádné další parametry – můžete je zkopírovat a vložit do adresního řádku a dostanete odpověď. Postman však usnadňuje prohlížení a úpravu požadavků, které zahrnují několik parametrů.

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

Nemusíme zde dělat nic jiného, ​​takže pokračujte a stiskněte Odeslat. Poté dostanete odpověď:

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

  • Stav odpovědi (200 znamená, že jsme byli úspěšní, 400–499 znamená, že jsme narazili na problém).

  • Doba potřebná k přijetí odpovědi (méně než sekunda).

  • Velikost odpovědi (~22 kB).

Ve druhém poli je převážná část odpovědi. Toto pole obsahuje informace o burze, párech, které můžete obchodovat, a jejich minimální/maximální částky.

Vypadá to jako spousta informací, ale formát usnadňuje programovou práci. Při psaní skriptů pro interakci s ním budete snadno schopni z odpovědi vybrat konkrétní vlastnosti konkrétních prvků.

Zkontrolujte zůstatky na účtech

Podívejme se, jaká aktiva máme a kolik z nich:

ZÍSKEJTE /api/v3/account

Ten najdete v části Obchod > Informace o účtu. Kliknutím na něj zobrazí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 citlivé informace, prokážeme, ž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 mohou čelit výpadkům, server může obdržet náš požadavek mnohem později, než bylo zamýšleno. Pokud uplynulo příliš mnoho času, žádost zamítne. Pomocí parametru recvWindow, jehož výchozí hodnota je 5000 milisekund, můžete určit, jak dlouho chcete čekat.

Generování obou těchto oborů za nás řeší Postman. Klikněte na odeslat a dostanete odpověď. Pod zůstatky byste měli vidět šest aktiv – BNB, BTC, BUSD, ETH, LTC a TRX. Zůstatek bude rozdělen mezi volný a uzamčený majetek. Zatím jsme žádné nezamkli, takže váš majetek by měl být volný.

Získejte aktuální cenu za symbol

Aktuální cenu aktiva můžeme získat různými způsoby. Snad nejjednodušší je s následujícím požadavkem:

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

Jak asi tušíte, toto nám poskytne informace o cenách aktiv za posledních dvacet čtyři hodin. Najdete ji v Market > 24hr Ticker Price Change Statistics. Výchozí pár, který nás přivítá jako proměnná symbolu, je BTC/USDT.

Toto můžete rovnou odeslat, abyste viděli rozpis informací o ceně. Můžete také změnit symbol (na BNB/USDT, LTC/USDT atd.) nebo zrušit zaškrtnutí proměnné a vrátit data pro 40 párů.

Máme také jednodušší volání (Market > Symbol Price Ticker), které vrací aktuální cenu, za kterou se aktivum obchoduje:

ZÍSKEJTE /api/v3/price

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

Zkontrolujte aktuální hloubku knihy objednávek

Hloubka knihy objednávek – také označovaná jako hloubka trhu (DOM) – nám může o trhu hodně prozradit. Uskutečníme hovor, který vám vrátí některé užitečné informace:

GET /api/v3/depth

Když to odešleme s výchozími hodnotami (Trh > Kniha objednávek), obdržíme odpověď, která nás informuje o nabídkách a požádá o BTC/USDT. Server testnet nezíská tolik dat jako ten skutečný, takže níže je snímek obrazovky toho, co byste očekávali v reálném prostředí:

Ve zvýrazněné části výše vidíme první nabídku. Protože se díváme na knihu pro BTC/USDT, horní číslo je cena, kterou je někdo ochoten zaplatit za vaše BTC. Níže je částka, kterou jsou ochotni koupit. Proto to říká, že tato objednávka požaduje 0,999 BTC při kurzu 9704,65 USDT za BTC. Pokud bychom pokračovali v rolování dolů, viděli bychom pokles nabídkové ceny – představující kupující, kteří by zaplatili méně.

Nejlepší nabídka bude přirozeně nejatraktivnější, pokud hledáte ránu za své peníze. Přesto, pokud se snažíte prodat například 3 BTC, budete moci prodat pouze 0,999 BTC za nejlepší cenu. Budete muset využít následující (levnější) nabídky, dokud nebude vaše objednávka vyplněna.

Pokračujte v posouvání a uvidíte dotazy. Funkčně jsou podobné nabídkám, s výjimkou toho, že představují příkazy k prodeji BTC za USDT.

Zadejte zkušební objednávku

Nyní zveřejníme zkušební objednávku.

POST /api/v3/order/test

I když používáme pouze prostředky testnetu, tento požadavek ve skutečnosti nezadá objednávku. Může být užitečné pro testování objednávek před jejich skutečným odesláním. Najdete jej v části Obchod > Testovat novou objednávku (TRADE).

Můžete vidět, že máme mnohem více zahrnutých parametrů. Pojďme si projít ty zaškrtnuté:

  • symbol – na tento jsme již narazili. Toto je pár, který chcete obchodovat.

  • strana – zde určíte, zda chcete KOUPIT nebo PRODAT. U páru BTC/USDT BUY znamená, že chcete koupit BTC za USDT, zatímco prodej 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 příkaz provést:

    • GTC (good till cancelled) – možná nejoblíbenější nastavení, GTC zajistí, že vaše objednávka bude platná, dokud nebude vyplněna nebo zrušena.

    • FOK (fill or kill) – FOK dá pokyn burze, aby provedla příkaz najednou. Pokud to burza nemůže udělat, objednávka je okamžitě zrušena.

    • IOC (okamžité nebo zrušení) – buď celý příkaz nebo jeho část musí být provedena okamžitě, nebo je zrušena. Na rozdíl od FOK se objednávky neruší, pokud je lze částečně vyplnit.

  • množství – množství aktiva, které chcete koupit nebo prodat.

  • cena – cena, za kterou chcete prodat. U páru BTC/USDT 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ý usnadní pozdější dotazování. V opačném případě je náhodně generován burzou.

Dobře! Nyní vytvoříme zkušební objednávku. Budeme pokračovat s automaticky generovanými hodnotami: limitní příkaz k prodeji 0,1 BTC za USDT za 9000 USD. Stiskněte Odeslat. Pokud se to podaří, dostaneme jako odpověď {}.

Zadejte skutečnou objednávku

Čas zadat skutečnou objednávku.

POST /api/v3/order

Přejděte na Obchod > Nová objednávka. S testovacími objednávkami jste již obeznámeni, takže zde uvedené parametry nebudou žádným překvapením. Necháme všechny hodnoty tak, jak jsou, ale změňme cenu, kterou prodáváme, na 40 000 USD. Upravte hodnotu ceny tak, aby to odrážela. Poté stiskněte Odeslat.

Vaše odpověď v případě úspěchu vrátí spoustu podrobností o objednávce.

Zkontrolujte stav otevřené objednávky

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

ZÍSKEJTE /api/v3/openOrders

Najdete to v Obchod > Aktuální otevřené objednávky (USER_DATA). Ve výchozím nastavení je vybrán BTC/USDT. Pokud stisknete Odeslat, dostanete všechny své otevřené objednávky BTC/USDT (zatím byste měli vidět pouze ty, které jsme nastavili dříve). Můžete se také rozhodnout neuvádět 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 a limit jsou volitelné parametry, které vám mohou pomoci upřesnit vyhledávání. Vynecháme je zde, takže zrušte zaškrtnutí. Stiskněte Odeslat a uvidíte stejnou odpověď jako předtím. Pokud byste měli nějaké uzavřené nebo zrušené objednávky, uvidíte je také zde.

Nakonec se můžeme zeptat na konkrétní objednávky pomocí následujícího:

ZÍSKEJTE /api/v3/order

Získejte to v části Obchod > Dotazový příkaz (USER_DATA). Budete muset zadat buď orderId, nebo origClientOrderId (volitelný tag „newClientOrderId“, který můžete přidat k objednávkám). Zrušte zaškrtnutí objednávky ID. Pro origClientOrderId poskytneme výchozí značku z dříve – „my_order_id_1“. Vyplňte pole a stiskněte Odeslat pro získání odpovědi.

Zrušit objednávku

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

DELETE /api/v3/order

V části Obchod > Zrušit objednávku je požadavek, který nám umožní vyčlenit objednávky ke zrušení. Zrušte zaškrtnutí objednávky 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 přejdete dolů na „stav“, uvidíte, že je skutečně zrušeno. Chcete-li to potvrdit, použijte znovu koncový bod GET /api/v3/openOrders (získáte prázdný seznam) nebo GET /api/v3/order s origClientOrderId.

Zadejte objednávku, která se vyplní okamžitě

Naše předchozí objednávka nebyla vyplněna, protože se jednalo o limitní příkaz, který se spustí pouze tehdy, když cena BTC dosáhne 40 000 USD. S tržním příkazem v podstatě říkáme: „Nakupujte nebo prodávejte za jakoukoli cenu, za kterou se aktivum aktuálně obchoduje.“ To se okamžitě vyplní.

Vraťme se proto zpět na Obchod > Nový řád. Ukážeme si typ odpovědi (newOrderRespType), což je parametr, který můžeme vyladit v závislosti na odpovědi, kterou od serveru požadujeme. Zde jsou tři možnosti: ACK, RESULT nebo FULL – příklady každé odpovědi můžete vidět zde. Půjdeme s ACK, což nám dává jednoduché potvrzení, že objednávka byla přijata.

Níže můžete vidět, že se chystáme odeslat 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:

Můžete ověřit, že objednávka byla vyplněna koncovým bodem /api/v3/allOrders.

Kontrola vašich obchodů

Podívejme se nakonec na koncový bod pro kontrolu vašich obchodů:

ZÍSKEJTE /api/v3/myTrades

Nachází se v části Obchod > Účet Trade List (USER_DATA). Umožňuje vám zkontrolovat každý obchod na konkrétní symbol. Pokud chcete vidět všechny své obchody pro výchozí symbol (BTC/USDT), jednoduše zrušte zaškrtnutí políčka startTime, endTime a fromId. Odpověď vrátí až 500 obchodů – jednoduše upravte limit, pokud chcete vidět více.

Ladění s pošťákem

V Postman je možné dále odhalit nezpracovaný HTTP požadavek a odpověď.

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

Začněte s Binance API

Účelem této příručky bylo jemně vás seznámit s Binance API bez psaní jediného řádku kódu. Pokud jste to sledovali, měli byste nyní mít představu o tom, jak můžeme požadovat a odesílat informace.

Otázky mezitím? Navštivte naše rostoucí fórum Binance Developer Community nebo se podívejte na dokumentaci.

Další čtení

  • Slovník: Aplikační programovací rozhraní (API)

  • Co je to API klíč a jak jej bezpečně používat?

  • Jak bezpečně používat klíč API: 5 tipů od Binance