Principalele produse la pachet

  • API-urile sunt fragmente de cod care permit aplicațiilor să partajeze informații și pot fi folosite pentru a îmbunătăți strategiile de tranzacționare cu criptomonede.

  • Postman este o platformă API care simplifică procesul de construire și utilizare a API-urilor.

  • Aflați mai multe despre utilizarea Postman pentru tranzacționarea spot în ecosistemul API Binance.

Binance API Series Pt. I – Spot Trading with Postman

Introducere

Înțelegerea și utilizarea unui API pentru tranzacționarea cu criptomonede poate deschide o lume de posibilități de intrare și ieșire din poziții. Cu niște cunoștințe simple de codificare, vă puteți conecta la backend-ul unei burse pentru a vă automatiza strategiile de tranzacționare. Ocolind site-ul web, puteți lua o cale mult mai rapidă către motorul de potrivire pentru aplicații de înaltă performanță.

În acest articol, vom folosi Postman, o platformă API simplificată, pentru a comunica cu schimbul. Nu vă faceți griji - nu vom pune în pericol niciun fond real.

Cerințe preliminare

Chei Testnet

Vom folosi rețeaua de testare în scopurile noastre actuale. Această funcție de simulare ne va oferi niște fonduri fără valoare reală cu care să ne jucăm. Ele funcționează la fel ca monede și jetoane reale, așa că odată ce vă simțiți confortabil cu API-ul, puteți începe să îl utilizați pentru a tranzacționa fonduri reale.

  1. Începeți prin a vă îndrepta către rețeaua de testare la fața locului.

  2. Pentru a obține acces, conectați-vă cu un cont GitHub. Va trebui să creați unul dacă nu ați făcut-o deja.

  3. Faceți clic pe Autentificare și conectați-vă prin GitHub.

  4. Sub Chei API, veți fi informat că nu aveți chei înregistrate. Faceți clic pe Generare HMAC_SHA256 Key pentru a crea o pereche.

  5. Pe ecranul următor, dați cheilor o etichetă. Sună-le cum vrei și apasă pe Generare.

  6. Vi se prezintă două chei: cheia API și cheia secretă. Este important să le înregistrați acum. Dacă nu, va trebui să începeți din nou procesul de creare a cheii. Vă recomandăm să le stocați în aplicația de note a aparatului dvs. pentru a le copia și lipi mai târziu.

Notă: etichetarea cheilor merită făcută atunci când utilizați schimbul real pentru a gestiona diferite chei. Contul dvs. poate avea mai multe chei cu permisiuni diferite. Dacă utilizați mai mulți roboți de tranzacționare, utilizarea cheilor separate cu etichete descriptive facilitează gestionarea permisiunilor sau ștergerea cheilor individuale fără a modifica toți roboții.

Descărcarea și instalarea Postman

Postman este o platformă de colaborare API. Este un punct de plecare perfect pentru noi – vom avea acces la colecții de solicitări Binance pe care le vom testa fără a fi nevoie să scriem o singură linie de cod.

Programul este disponibil pentru Mac, Windows și Linux. Mergeți la pagina Descărcări și descărcați fișierul .zip.

Odată ce este finalizat, localizați-l în exploratorul de fișiere și instalați-l. Porniți aplicația și suntem gata! Vă puteți crea un cont pentru a vă conecta, dar nu este necesar. Dacă doriți să săriți peste acest pas, pur și simplu selectați opțiunea de a face acest lucru în partea de jos a ferestrei.

Crearea mediului

În această etapă, ar trebui să aveți o interfață care seamănă cu următoarea.

În primul rând, vrem să ne creăm mediul. Acest pas este doar o modalitate de a adăuga variabile la solicitările cu care vom lucra. Mai întâi va trebui să luăm câteva informații din depozitul Binance GitHub. Mergeți aici și descărcați fișierul .zip.

Descărcarea nu ar trebui să dureze foarte mult. Îl puteți găsi în exploratorul de fișiere și îl puteți dezarhiva. Apoi, ne putem întoarce în Postman.

Faceți clic pe pictograma roată din colțul din dreapta sus (ilustrat mai sus). Veți fi întâmpinat cu o fereastră pop-up Gestionați mediile.

  1. Selectați Import și navigați la folderul extras (binance-postman-api).

  2. Introduceți-l, apoi introduceți folderul medii.

  3. Acum veți vedea două fișiere (unul pentru rețeaua principală și unul pentru rețeaua de test). Cel pe care îl urmărim este binance_com_spot_testnet_api.postman_environment.json. Asigurați-vă că o aveți pe cea corectă, deoarece cheile noastre nu vor funcționa cu cealaltă.

Aproape acolo. Faceți clic pe Binance Spot Testnet API pentru a vedea variabilele de mai jos. Editați cei doi parametri subliniați în roșu lipind cheile pe care le-ați salvat mai devreme. Faceți clic pe actualizare și ieșiți din fereastra pop-up.

Pe acest ecran, lăsați câmpurile pentru marca temporală și semnătură necompletate. Aceste două valori vor fi create automat la fiecare solicitare.

Mai e un ultim lucru de făcut. În partea dreaptă a pictogramei roată pe care am făcut clic pentru a configura mediul mai devreme, veți vedea un meniu drop-down care spune în prezent Fără mediu. Faceți clic pe el și selectați Binance Spot Testnet API.

Importul colecției

Acum vom importa colecția - acesta este o gamă largă de solicitări care ne fac munca grea atunci când facem apeluri. Pentru a-l încărca în mediul nostru:

  1. Faceți clic pe Import în colțul din stânga sus.

  2. În fereastra pop-up, sub fila Fișier, selectați Încărcați fișiere.

  3. Căutăm din nou folderul binance-postman-api. Găsiți-l și deschideți-l.

  4. De data aceasta, introduceți colecții în subdirector.

  5. Există din nou două fișiere aici. Unul este pentru lucrul cu API-ul futures. Dar lucrăm cu spot, așa că trebuie să selectați fișierul Binance Spot API.postman_collection.json.

  6. Ar trebui să vedeți acum un ecran de confirmare care identifică importul ca fiind în formatul Postman Collection. Selectați Import.

Sub fila Colecții din stânga ferestrei, veți observa acum că avem un folder cu peste 100 de solicitări. Felicitări! Suntem gata de plecare. În secțiunea următoare, ne vom uita la tipurile de solicitări pe care le putem face.

Efectuarea de Cereri

Dacă extindeți folderele din fila Colecții, veți vedea că putem face multe solicitări diferite. Din codificarea culorilor, puteți observa că există trei tipuri de metode pe care le putem folosi:

  • GET: Metoda GET este folosită pentru a prelua elemente de pe un server. Vom folosi aceasta pentru a găsi informații despre soldul contului dvs., prețurile activelor etc.

  • POST: Vom folosi în general metoda POST pentru a crea informații pe un server. Această metodă este necesară pentru lucruri precum plasarea comenzilor, solicitarea retragerilor etc.

  • DELETE: Metoda DELETE solicită serverului să șteargă informații. Va fi util pentru anularea comenzilor.

Găsiți lista de simboluri și regulile de tranzacționare

E timpul pentru prima noastră cerere! Vom obține simbolurile pe care le putem tranzacționa pe bursă și regulile de tranzacționare:

GET /api/v3/exchangeInfo

Acesta nu ia niciun parametri suplimentari - ați putea să copiați și să lipiți-l în bara de adrese și veți primi un răspuns. Dar Postman facilitează vizualizarea și modificarea cererilor în care includem mai mulți parametri.

Pentru a încărca această solicitare, selectați Piață > Informații de schimb. Va apărea o filă ca următoarea:

Nu trebuie să facem altceva aici, așa că mergeți mai departe și apăsați Trimite. Veți primi apoi un răspuns:

În secțiunea evidențiată de sus, veți vedea câteva informații importante:

  • Starea răspunsului (200 înseamnă că am avut succes, 400-499 înseamnă că am întâlnit o problemă).

  • Timpul necesar pentru a primi răspunsul (mai puțin de o secundă).

  • Dimensiunea răspunsului (~22KB).

În a doua casetă se află cea mai mare parte a răspunsului. Această casetă conține informații despre schimb, perechile pe care le puteți tranzacționa și sumele minime/maxime ale acestora.

Pare o mulțime de informații, dar formatul facilitează lucrul programatic. Când scrieți scripturi pentru a interacționa cu acesta, veți putea cu ușurință să alegeți proprietăți specifice ale elementelor specifice din răspuns.

Verificați soldurile contului

Să verificăm ce active avem și cât de mult din fiecare:

GET /api/v3/account

Pe acesta îl puteți găsi în Comerț > Informații despre cont. Faceți clic pe el pentru a vedea un aspect similar cu cel precedent. Veți observa, de asemenea, că avem două variabile noi: marcaj de timp și semnătură. Semnătura este o măsură de securitate. Deoarece acum solicităm informații sensibile, se va dovedi că suntem titularul contului.

Marca temporală spune serverului când a fost trimisă cererea. Deoarece rețelele pot fi nesigure sau se confruntă cu perioade de nefuncționare, serverul ar putea primi solicitarea noastră mult mai târziu decât era prevăzut. Dacă a trecut prea mult timp, aceasta va respinge cererea. Puteți specifica cât timp doriți să așteptați cu parametrul recvWindow, care este implicit la 5000 de milisecunde.

Poștașul se ocupă de generarea ambelor domenii pentru noi. Faceți clic pe trimite și veți primi un răspuns. Sub solduri, ar trebui să vedeți șase active - BNB, BTC, BUSD, ETH, LTC și TRX. Soldul va fi împărțit între active gratuite și blocate. Nu am blocat încă niciunul, așa că bunurile dvs. ar trebui să fie toate gratuite.

Obțineți prețul curent pentru un simbol

Putem obține prețul actual al unui activ în diferite moduri. Poate cel mai simplu este cu următoarea cerere:

GET /api/v3/ticker/24hr

După cum ați putea ghici, acest lucru ne va oferi informații despre prețurile activelor din ultimele douăzeci și patru de ore. Îl puteți găsi în Piață > Statistici de modificare a prețului Ticker 24 de ore. Perechea implicită cu care suntem întâmpinați ca variabilă simbol este BTC/USDT.

Puteți trimite acest lucru imediat pentru a vedea o defalcare a informațiilor despre preț. De asemenea, puteți schimba simbolul (în BNB/USDT, LTC/USDT etc.) sau debifați variabila pentru a returna date pentru 40 de perechi.

Avem, de asemenea, un apel mai simplu (Piață > Symbol Price Ticker) care returnează prețul curent la care se tranzacționează un activ:

GET /api/v3/price

Ca și în cazul precedentului, puteți modifica variabila simbol sau o puteți elimina complet și puteți obține cel mai recent preț pentru toate simbolurile.

Verificați adâncimea actuală a registrului de comenzi

Profunzimea registrului de comenzi – denumită și adâncimea pieței (DOM) – ne poate spune multe despre piață. Vom efectua un apel care va returna câteva informații utile:

GET /api/v3/depth

Când trimitem aceasta cu valorile implicite (Piață > Registrul comenzilor), primim un răspuns care ne informează despre oferte și ne solicită BTC/USDT. Serverul testnet nu va furniza la fel de multe date ca cel real, așa că mai jos este o captură de ecran a ceea ce v-ați aștepta să vedeți într-un mediu real:

În secțiunea evidențiată de mai sus, putem vedea prima ofertă. Deoarece ne uităm la cartea pentru BTC/USDT, numărul de sus este prețul pe care cineva este dispus să-l plătească pentru BTC-ul tău. Mai jos este suma pe care sunt dispuși să o cumpere. Prin urmare, aceasta spune că această comandă cere 0,999 BTC la o rată de 9704,65 USDT per BTC. Dacă am continua să derulăm în jos, am vedea scăderea prețului ofertei – reprezentând cumpărători care ar plăti mai puțin.

Oferta de top va fi, desigur, cea mai atractivă dacă sunteți în căutarea unui profit pentru banii dvs. Totuși, dacă încercați să vindeți 3 BTC, de exemplu, veți putea vinde doar 0,999 BTC la cel mai bun preț. Va trebui să acceptați ofertele ulterioare (mai ieftine) până când comanda dvs. este completată.

Continuați să defilați și veți vedea întrebările. Ele sunt similare din punct de vedere funcțional cu ofertele, cu excepția faptului că reprezintă ordine de vânzare BTC pentru USDT.

Plasați o comandă de testare

Acum vom posta o comandă de testare.

POST /api/v3/order/test

Chiar dacă folosim doar fonduri testnet, această solicitare nu va plasa de fapt o comandă. Poate fi util pentru testarea comenzilor înainte de a le trimite efectiv. Găsiți-l în Comerț > Testați o comandă nouă (TRADE).

Puteți vedea că avem mulți alți parametri implicați. Să trecem prin cele bifate:

  • simbol – l-am întâlnit anterior. Aceasta este perechea pe care doriți să o tranzacționați.

  • lateral – aici, vei specifica dacă vrei să CUMPĂRĂ sau VINDEȚI. Cu perechea BTC/USDT, BUY indică faptul că doriți să cumpărați BTC pentru USDT, în timp ce sell va vinde BTC pentru USDT.

  • tip – tipul de comandă pe care doriți să o trimiteți. Valori posibile (detaliate aici):

    • LIMITĂ

    • PIAŢĂ

    • STOP_LOSS

    • STOP_LOSS_LIMIT

    • IA PROFIT

    • TAKE_PROFIT_LIMIT

    • LIMIT_MAKER

  • timeInForce – acest parametru exprimă modul în care doriți să se execute comanda:

    • GTC (bun până la anulare) – poate cea mai populară configurație, GTC se va asigura că comanda dumneavoastră este valabilă până când este completată sau anulată.

    • FOK (fill or kill) – FOK instruiește schimbul să execute un ordin dintr-o dată. Dacă schimbul nu poate face acest lucru, comanda este anulată imediat.

    • IOC (imediat sau anulat) – fie în întregime, fie în parte a comenzii trebuie executată imediat, fie este anulată. Spre deosebire de FOK, comenzile nu sunt anulate dacă pot fi parțial completate.

  • cantitate – cantitatea activului pe care doriți să îl cumpărați sau să îl vindeți.

  • preț – prețul la care doriți să vindeți. Pentru perechea BTC/USDT, aceasta este exprimată în USDT.

  • newClientOrderId – un identificator pentru comandă. Acesta nu este un câmp obligatoriu, dar îl puteți seta la un identificator care va facilita interogarea ulterioară. În caz contrar, este generat aleatoriu de schimb.

Bine! Să creăm o comandă de testare acum. Vom continua cu valorile generate automat: un ordin limită pentru a vinde 0,1 BTC pentru USDT la 9000 USD. Apăsați Trimiteți. Dacă acest lucru are succes, vom primi {} ca răspuns.

Plasați o comandă reală

E timpul să plasezi o comandă reală.

POST /api/v3/order

Navigați la Comerț > Comandă nouă. Sunteți familiarizat cu comenzile de testare până acum, așa că parametrii de aici nu vor fi o surpriză. Să lăsăm toate valorile așa cum sunt, dar să schimbăm prețul pe care îl vindem la 40.000 USD. Modificați valoarea prețului pentru a reflecta acest lucru. Apoi, apăsați pe Trimitere.

Răspunsul dvs. returnează o grămadă de detalii despre comandă dacă are succes.

Verificați starea unei comenzi deschise

Am primit confirmarea că comanda a fost plasată în secțiunea anterioară, dar dacă vrem să o verificăm din nou mai târziu? Avem la dispoziție câteva solicitări.

GET /api/v3/openOrders

Veți găsi acest lucru în Comerț > Comenzi deschise curente (USER_DATA). BTC/USDT este selectat implicit. Dacă apăsați Trimiteți, veți primi toate comenzile BTC/USDT deschise (până acum, ar trebui să vedeți doar pe cea pe care am setat-o ​​anterior). De asemenea, puteți alege să nu specificați un simbol, care va returna toate comenzile deschise.

GET /api/v3/allOrders

Comerț > Toate comenzile (USER_DATA) vă oferă o imagine de ansamblu asupra tuturor comenzilor, nu doar a celor deschise. Aici, trebuie să furnizați un simbol. orderId, startTime, endTime și limit sunt parametri opționali care vă pot ajuta să vă rafinați căutarea. Le vom lăsa aici, așa că debifează-le. Apăsați Trimiteți și veți vedea același răspuns ca înainte. Dacă ați avut comenzi închise sau anulate, le-ați vedea și aici.

În cele din urmă, putem interoga anumite comenzi cu următoarele:

GET /api/v3/order

Obțineți acest lucru din Comerț > Comandă de interogare (USER_DATA). Va trebui să furnizați fie orderId, fie origClientOrderId (eticheta opțională „newClientOrderId” pe care o puteți adăuga la comenzi). Debifați orderId. Pentru origClientOrderId, vom furniza eticheta implicită de mai devreme – „my_order_id_1”. Completați câmpul și apăsați Trimite pentru a primi răspunsul.

Anulați o comandă

După ceva timp, am putea decide că ținta de 40.000 USD este prea optimistă, așa că vrem să o anulăm. În acest caz, vom folosi următoarele:

ȘTERGE /api/v3/order

Sub Comerț > Anulare comandă este o solicitare care ne va permite să selectăm comenzile pentru anulare. Debifați orderId și newClientOrderId și transmiteți „my_order_id_1” ca valoare pentru origClientOrderId.

Când trimiteți această solicitare, comanda va fi returnată. Dacă derulați în jos la „stare”, veți vedea că este într-adevăr anulat. Pentru a confirma acest lucru, utilizați din nou punctul final GET /api/v3/openOrders (oferându-vă o listă goală) sau GET /api/v3/order cu origClientOrderId.

Plasați o comandă care se umple instantaneu

Comanda noastră anterioară nu a fost completată, deoarece era un ordin limită care se declanșa doar atunci când prețul BTC atinge 40.000 USD. Cu un ordin de piață, spunem în esență: „Cumpărați sau vindeți la orice preț la care se tranzacționează activul în prezent”. Aceasta se va umple instantaneu.

Pentru asta, să ne întoarcem la Comerț > Comandă nouă. Vom demonstra tipul de răspuns (newOrderRespType), care este un parametru pe care îl putem modifica în funcție de răspunsul pe care îl dorim de la server. Există trei opțiuni aici: ACK, RESULT sau FULL – puteți vedea exemple pentru fiecare răspuns aici. Vom merge cu ACK, care ne oferă o simplă confirmare că comanda a fost primită.

Mai jos, puteți vedea că suntem pe cale să trimitem un ordin de piață pentru a vinde BNB pentru BUSD la prețul actual de piață.

Rețineți că răspunsul ne oferă informații minime:

Puteți verifica dacă comanda a fost completată cu punctul final /api/v3/allOrders.

Verificarea tranzacțiilor dvs

În sfârșit, să ne uităm la punctul final pentru verificarea tranzacțiilor:

GET /api/v3/myTrades

Acesta se află sub Comerț > Listă de tranzacții de cont (USER_DATA). Vă permite să verificați fiecare tranzacție pentru un anumit simbol. Dacă doriți să vedeți toate tranzacțiile pentru simbolul implicit (BTC/USDT), pur și simplu debifați startTime, endTime și fromId. Răspunsul va returna până la 500 de tranzacții - pur și simplu ajustați limita dacă doriți să vedeți mai multe.

Depanare cu Poștaș

În Postman, este posibil să dezvăluiți solicitarea și răspunsul HTTP brut în continuare.

Acest meniu va deschide consola Postman, care tipărește detaliile fiecărei cereri.

Începeți cu API-ul Binance

Scopul acestui ghid a fost de a vă prezenta ușor API-ul Binance fără a scrie o singură linie de cod. Dacă ați urmat, acum ar trebui să aveți o idee despre cum putem solicita și trimite informații.

Întrebări între timp? Accesați forumul comunității de dezvoltatori Binance în creștere sau consultați documentația.

Lectură suplimentară

  • Glosar: Interfață de programare a aplicațiilor (API)

  • Ce este o cheie API și cum să o folosești în siguranță?

  • Cum să utilizați o cheie API în siguranță: 5 sfaturi de la Binance