Saturs

  • Ievads

  • Priekšnoteikumi

    • Pārbaudiet tīkla atslēgas

    • Lejupielādējiet un instalējiet Postman

  • Vides veidošana

  • Importēt kolekciju

  • Pieprasījumu izpilde

  • Pēdējās domas


Ievads

Kriptovalūtu tirdzniecības API izpratne un izmantošana var pavērt iespēju pasauli, kad runa ir par pozīciju ieiešanu un iziešanu no tām. Izmantojot dažas pamata programmēšanas zināšanas, varat izveidot savienojumu ar biržas aizmugursistēmu, lai automatizētu savas tirdzniecības stratēģijas. Apejot vietni, jūs varat daudz ātrāk piekļūt atbilstošam dzinējam augstas veiktspējas lietojumprogrammām.

Šīs sērijas mērķis ir iepazīstināt jūs ar Binance REST API un iemācīt ar to mijiedarboties. Galu galā jums vajadzētu būt pārliecinātam par savu spēju noskaidrot tirgus un savas pozīcijas, kā arī veikt dažādus pasūtījumu veidus.

Šajā rakstā mēs izmantosim Pastnieku, lai sazinātos ar biržu. Neuztraucieties – mēs nepakļausim riskam reālu naudu.


Priekšnoteikumi

Pārbaudiet tīkla atslēgas

Mēs saviem mērķiem izmantosim testtīklu. Tas mums dos dažus līdzekļus, kuriem nav reālas vērtības un ar kuriem mēs varam eksperimentēt. Tie darbojas tieši tāpat kā īstas monētas un žetoni, tāpēc, kad esat pieradis pie API, varat sākt to izmantot, lai tirgotu īstu naudu.


  1. Sāciet, dodoties uz Spot Test Network.

  2. Lai iegūtu piekļuvi, jums ir jāpierakstās ar GitHub kontu. Izveidojiet to, ja vēl neesat to izdarījis.

  3. Noklikšķiniet uz "Autentificēt" un pierakstieties, izmantojot GitHub.

  4. Sadaļā "API atslēgas" redzēsit, ka jums nav reģistrētu atslēgu. Noklikšķiniet uz Ģenerēt HMAC_SHA256 atslēgu, lai ģenerētu pāri.

  5. Nākamajā ekrānā piešķiriet taustiņiem etiķeti. Nosauciet tos, kā vēlaties, un noklikšķiniet uz "Ģenerēt".

  6. Jums tiks parādītas divas atslēgas: API atslēga un slepenā atslēga. Ir svarīgi tos pierakstīt tagad. Ja to nedarīsit, atslēgu ģenerēšanas process būs jāsāk no jauna. Ieteicams tos saglabāt datora piezīmju lietojumprogrammā, lai vēlāk varētu viegli kopēt.

Piezīme. Atslēgām ir jāmarķē, izmantojot reāllaika apmaiņu, lai pārvaldītu dažādas atslēgas. Jūsu kontam var būt vairākas atslēgas ar dažādām atļaujām. Ja izmantojat vairākus tirdzniecības robotus, izmantojot atsevišķas atslēgas ar aprakstošām etiķetēm, ir vieglāk pārvaldīt atļaujas vai noņemt atsevišķas atslēgas, nemainot visus robotus.


Lejupielādējiet un instalējiet Postman

Postman ir platforma API sadarbībai. Tas mums ir ideāls sākumpunkts — mums būs piekļuve Binance vaicājumu kolekcijām, lai pārbaudītu, neierakstot nevienu koda rindiņu.

Programma ir pieejama operētājsistēmām Mac, Windows un Linux. Dodieties uz lapu Lejupielādes un lejupielādējiet .zip failu.

Pēc tam atrodiet to pārlūkprogrammā un instalējiet to. Lai sāktu, atveriet lietotni. Lūdzu, ņemiet vērā, ka varat izveidot kontu, lai pieteiktos, taču tas nav obligāti. Ja vēlaties izlaist šo darbību, vienkārši atlasiet atbilstošo opciju loga apakšā.


Vides veidošana

Šajā brīdī jums vajadzētu būt interfeisam, kas ir līdzīgs tālāk norādītajam.



Pirmkārt, jums ir jāizveido vide. Tas ir tikai veids, kā pievienot mainīgos vaicājumu kopai, ar kuru mēs strādāsim. Lai to izdarītu, mums vispirms ir jāiegūst kāda informācija no Binance GitHub repozitorija. Dodieties šeit un lejupielādējiet .zip failu.



Lejupielāde neaizņems ilgu laiku. Atrodiet to savā failu pārlūkā un izpakojiet to. Pēc tam mēs varam atgriezties pie Pastnieka.



Noklikšķiniet uz zobrata ikonas augšējā labajā stūrī (kā parādīts iepriekš). Jūs redzēsit uznirstošo logu "Pārvaldīt vidi".

  1. Atlasiet "Importēt" un dodieties uz tikko izspiesto mapi (binance-postman-api).

  2. Pēc tam ievadiet vides mapi.

  3. Tagad jūs redzēsit divus failus (vienu galvenajam tīklam, vienu testa tīklam). Mēs meklējam binance_com_spot_testnet_api.postman_environment.json. Noteikti izvēlieties pareizo, jo mūsu atslēgas nedarbojas ar citiem.



Gandrīz pabeigts. Noklikšķiniet uz "Binance Spot Testnet API", un tālāk redzēsit mainīgos. Rediģējiet divus sarkanā krāsā iezīmētos parametrus, ievietojot iepriekš saglabātos taustiņus. Noklikšķiniet uz "Atjaunināt" un aizveriet uznirstošo logu.



Šajā ekrānā atstājiet laukus “laikspiedols” un “paraksts” tukšus. Šīs divas vērtības tiks automātiski ģenerētas katrā pieprasījumā.

Joprojām ir kaut kas jādara. Pa labi no zobrata ikonas, uz kuras noklikšķinājām, lai iestatītu vidi agrāk, jūs redzēsiet nolaižamo izvēlni, kurā pašlaik ir rakstīts "Nav vides". Noklikšķiniet uz tā un atlasiet "Binance Spot Testnet API".


Importēt kolekciju

Tagad mēs importēsim kolekciju, kas ir liela vaicājumu kopa, kas mums ir ļoti svarīga. Lai augšupielādētu to mūsu vidē, rīkojieties šādi:

  1. Augšējā kreisajā stūrī noklikšķiniet uz "Importēt".

  2. Uznirstošajā logā cilnē "Fails" atlasiet "Augšupielādēt failus".

  3. Mēs atkal meklējam mapi binance-postman-api. Atrodiet un atveriet to.

  4. Šoreiz apakšdirektorijā ievadiet "kolekcijas".

  5. Šeit atkal ir divi faili. Viens darbam ar nākotnes API. Taču mēs strādājam ar spot, tāpēc jums ir jāatlasa fails binance_spot_api_v1.postman_collection.json.

  6. Tagad jums vajadzētu redzēt apstiprinājuma ekrānu, kas identificē importēšanu kā Pastnieka kolekcijas formātu. Izvēlieties "Importēt".

Cilnē "Kolekcijas" loga kreisajā pusē tagad pamanīsit, ka mums ir mape ar vairāk nekā 100 pieprasījumiem. Apsveicam! Viss kārtībā. Nākamajā sadaļā apskatīsim, kādus pieprasījumus varam nosūtīt.


Pieprasījumu izpilde

Ja cilnē Kolekcijas izvērsiet mapes, redzēsit, ka mums ir daudz dažādu vaicājumu, ko varam veikt. No krāsu kodēšanas var redzēt, ka mēs varam izmantot trīs veidu metodes:


  • GET: metodi "GET" izmanto, lai izgūtu datus no servera. Mēs to izmantosim, lai uzzinātu informāciju par jūsu konta atlikumu, aktīvu cenām utt.

  • POST: mēs parasti izmantojam "POST" metodi, lai izveidotu informāciju serverī. Tas ir nepieciešams tādām lietām kā pasūtījumu veikšana, izņemšanas pieprasīšana utt.

  • DZĒST: metode DELETE ir pieprasījums serverim dzēst informāciju. Tas noderēs pasūtījumu atcelšanai.


Meklējiet simbolu sarakstu un tirdzniecības noteikumus

Laiks mūsu pirmajam vaicājumam! Mēs iegūsim simbolus, kurus var tirgot biržā, un tirdzniecības noteikumus:

IEGŪT /exchangeInfo


Šim pieprasījumam nav nepieciešami nekādi papildu parametri — varat to kopēt un ielīmēt adreses joslā, un jūs saņemsit atbildi. Pastnieks atvieglo vaicājumu skatīšanu un modificēšanu, ja mēs iekļaujam vairākus parametrus.

Lai lejupielādētu šo pieprasījumu, atlasiet Market > Exchange Information. Tiks parādīta šāda cilne:



Mums šeit nekas cits nav jādara, tāpēc noklikšķiniet uz "Sūtīt". Jūs saņemsiet atbildi:



Augšējā iezīmētajā sadaļā jūs redzēsiet svarīgu informāciju:

  • atbildes statuss (200 nozīmē, ka pieprasījums ir veiksmīgs, 400-499 nozīmē, ka mums ir problēma)

  • laiks, kas nepieciešams atbildes saņemšanai (mazāk par sekundi)

  • atbildes lielums (~22KB).


Otrajā laukā ir galvenā atbildes daļa. Tas ir skaisti apdrukāts, lai tas būtu nedaudz vieglāk acīm. Tajā ir informācija par pašu biržu, kā arī pāriem, ar kuriem varat tirgoties, un to minimālās/maksimālās summas.

Šķiet, ka informācijas ir daudz, bet formāts ļauj ērti strādāt ar to programmatiski. Rakstot mijiedarbības skriptus, jūs varat viegli atlasīt noteiktus elementu rekvizītus no atbildes.


Konta bilances pārbaude

Pārbaudīsim, kādi aktīvi mums ir un cik daudz:

IEGŪT /kontu

Šo pieprasījumu var atrast sadaļā "Tirdzniecība" > "Konta informācija". Noklikšķiniet uz tā, un jūs redzēsiet izkārtojumu, kas ir līdzīgs iepriekšējam. Tomēr jūs arī pamanīsit, ka mums ir divi jauni mainīgie: "laikspiedols" un "paraksts". Paraksts ir drošības līdzeklis. Tā kā mēs tagad pieprasām konfidenciālu informāciju, tas pierādīs, ka esam konta īpašnieki.

Laika zīmogs norāda serverim, kad pieprasījums tika nosūtīts. Tā kā tīkli var būt neuzticami vai nedarboties, serveris var saņemt mūsu pieprasījumu daudz vēlāk, nekā paredzēts. Ja ir pagājis pārāk daudz laika, tas noraidīs pieprasījumu. Varat norādīt, cik ilgi vēlaties gaidīt, izmantojot parametru "recvWindow", kura noklusējuma vērtība ir 5000 milisekundes.

Pastnieks mūsu vietā nodarbojas ar abu šo lauku izveidi. Noklikšķiniet uz "Sūtīt", un jūs saņemsit atbildi. Sadaļā Atlikumi jums vajadzētu redzēt sešus aktīvus — BNB, BTC, BUSD, ETH, LTC un TRX. Atlikums tiks sadalīts brīvajā un bloķētajā. Mēs vēl neesam neko bloķējuši, tāpēc visiem jūsu līdzekļiem vajadzētu būt bez maksas.

Apsveicam ar jauno (neesošo) bagātību!


Kā uzzināt pašreizējo simbola cenu

Aktīva pašreizējo cenu varam iegūt dažādos veidos. Varbūt visvienkāršākais ir ar šādu pieprasījumu:

IEGŪT /api/v3/ticker/24hr

Kā jūs varētu uzminēt, tas sniegs mums informāciju par aktīvu cenām pēdējās 24 stundās. Atrodiet to sadaļā "Tirgus" > "24 stundu cenu izmaiņu statistika". Noklusējuma pāris, ko mēs redzam kā simbolu mainīgo, ir BTCUSDT.

Varat to nosūtīt tūlīt, lai skatītu cenu informācijas sadalījumu. Varat arī mainīt simbolu (uz BNBBUSD, LTCUSDT utt.) vai arī varat noņemt atzīmi no mainīgā, lai atgrieztu datus par 40 pāriem.

Mums ir arī vienkāršāks izsaukums ("Tirgus" > "Simbolu cenas rādītājs"), kas atgriež pašreizējo cenu, par kādu notiek aktīva tirdzniecība:

IEGŪT /api/v3/price

Tāpat kā iepriekš, jūs varat mainīt simbola mainīgo vai noņemt to pilnībā un iegūt jaunāko cenu visiem simboliem.


Pašreizējā pasūtījumu grāmatas dziļuma pārbaude

Pasūtījumu grāmatas dziļums (saukts arī par tirgus dziļumu vai DOM) var mums daudz pastāstīt par tirgu. Mēs piezvanīsim, lai atgrieztu noderīgu informāciju:

IEGŪT api/v3/depth

Kad mēs to nosūtām ar noklusējuma vērtībām ("Tirgus" > "Pasūtījumu grāmata"), mēs saņemam atbildi, kas mums paziņo cenu un pieprasām BTCUSDT. Testnet serveris neizvadīs tik daudz datu kā faktiskais, tāpēc zemāk ir ekrānuzņēmums ar to, ko jūs varētu redzēt reālā vidē:



Iepriekš iezīmētajā sadaļā mēs redzam pirmo problēmu. Tā kā mēs skatāmies uz BTCUSDT virsgrāmatu, lielākais skaitlis ir cena, ko kāds ir gatavs maksāt par jūsu BTC. Zemāk ir norādīta summa, ko viņi ir gatavi pirkt. Tātad tas liecina, ka šis pasūtījums prasa 0,999 BTC ar likmi 9704,65 USDT par BTC. Ja mēs turpinātu ritināt uz leju, mēs redzēsim piedāvājuma cenas samazināšanos, kas nozīmē, ka pircējam būs jāmaksā mazāk.

Labākais piedāvājums, protams, būs vispievilcīgākais, ja vēlaties gūt peļņu. Tomēr, ja jūs mēģināt pārdot tirgū, piemēram, 3 BTC, jūs varēsiet pārdot tikai 0,999 BTC par labāko cenu. Jums būs jāpieņem turpmāki (lētāki) piedāvājumi, līdz jūsu pasūtījums būs pilnībā aizpildīts.



Turpiniet ritināt, un jūs redzēsit jautājumu. Funkcionāli tie ir līdzīgi piedāvājumiem, izņemot to, ka tie ir rīkojumi pārdot BTC par USDT.


Pārbaudes pasūtījuma veikšana

Tagad mēs veiksim pārbaudes pasūtījumu.

POST api/v3/order/test

Pat ja mēs tikai izmantojam testnet līdzekļus, šis pieprasījums faktiski neizraisīs pasūtījuma veikšanu. Tas var būt noderīgi, lai pārbaudītu pasūtījumus pirms to nosūtīšanas. Atrodiet to sadaļā "Tirdzniecība" > "Pārbaudīt jaunu pasūtījumu (TIRDZNIECĪBA)".



Kā redzat, mums ir vēl vairāk parametru. Iesim cauri iezīmētajam:


  • simbols — mēs to esam redzējuši iepriekš. Šis ir pāris, ar kuru vēlaties tirgoties.

  • pusē – šeit norādāt, vai vēlaties PIRKT vai PĀRDOT. BTCUSDT pārim BUY norāda, ka vēlaties iegādāties BTC par USDT, savukārt SELL pārdos BTC par USDT.

  • tips – pasūtījuma veids, kuru vēlaties nosūtīt. Iespējamās vērtības (sīkāka informācija šeit):

    • LIMIT

    • TIRGUS

    • PĀRTRAUKT ZAUDĒJUMU

    • STOP_LOSS_LIMIT

    • TAKE_PROFIT

    • TAKE_PROFIT_LIMIT

    • LIMIT_MAKER

  • timeInForce – šis parametrs izsaka, kā vēlaties izpildīt pasūtījumu:

    • GTC (Good Until Canceled), iespējams, ir vispopulārākais iestatījums. GTC garantē, ka jūsu pasūtījums ir spēkā līdz tā izpildei vai līdz brīdim, kad to atceļat.

    • FOK (Izpildīt vai Atcelt) – FOK uzdod biržai nekavējoties izpildīt pasūtījumu. Ja apmaiņa to nevar izdarīt, pasūtījums tiks nekavējoties atcelts.

    • IOC (Izpildīt nekavējoties vai atcelt) – pasūtījums ir pilnībā vai daļēji jāizpilda nekavējoties, pretējā gadījumā tas tiks atcelts. Atšķirībā no FOK pasūtījumi netiek atcelti, ja tos var daļēji izpildīt.

  • daudzums ir vienkārši tā aktīva summa, kuru vēlaties pirkt vai pārdot.

  • cena – cena, par kādu vēlaties pārdot. BTCUSDT pārim tas ir izteikts USDT.

  • newClientOrderId – pasūtījuma identifikators. Šis lauks nav obligāts, taču varat to iestatīt uz identifikatoru, kas vēlāk vienkāršos vaicājumu. Pretējā gadījumā tas tiek nejauši ģenerēts biržā.

Labi! Tagad izveidosim testa pasūtījumu. Mēs izmantosim automātiski ģenerētās vērtības: pārdošanas limita pasūtījums 0,1 BTC par USDT par cenu 9000 $. Noklikšķiniet uz "Sūtīt". Ja viss bija veiksmīgi, mēs saņemsim tikai {{}} kā atbildi.

Reāla pasūtījuma veikšana

Laiks veikt īstu viltotu pasūtījumu.

POST /api/v3/order

Dodieties uz Tirdzniecība > Jauns pasūtījums. Jūs jau esat iepazinies ar testa pasūtījumiem, tāpēc šeit norādītie parametri jūs nepārsteigs. Atstāsim visas vērtības tādas, kādas tās ir, bet mainīsim cenu, par kuru pārdodam, uz 40 000 USD. Mainiet cenas vērtību, lai to atspoguļotu. Pēc tam noklikšķiniet uz "Sūtīt".

Ja tas būs veiksmīgs, jūsu atbildē būs detalizēta informācija par pasūtījumu.


Atvērta pasūtījuma statusa pārbaude

Saņēmām apstiprinājumu, ka pasūtījums ir veikts iepriekšējā sadaļā, bet ko darīt, ja vēlamies to pārbaudīt vēlāk? Mūsu rīcībā ir vairāki pieprasījumi.

IEGŪT /api/v3/openOrders

Jūs to atradīsit sadaļā "Tirdzniecība" > "Pašreizējie atvērtie pasūtījumi (USER_DATA)". BTCUSDT ir atlasīts pēc noklusējuma. Nospiežot "Sūtīt", jūs saņemsiet visus savus atvērtos BTCUSDT pasūtījumus (pagaidām jums vajadzētu redzēt tikai to, ko mēs iestatījām iepriekš). Jūs varat atstāt simbolu, kas tā vietā atgriezīs visus jūsu atvērtos pasūtījumus.

IEGŪT /api/v3/allOrders

"Tirdzniecība" > "Visi pasūtījumi (USER_DATA)" sniedz pārskatu par visiem pasūtījumiem, ne tikai par atvērtajiem. Šeit jums jānorāda simbols. "orderId", "startTime", "endTime" ir izvēles parametri, kas var palīdzēt precizēt meklēšanu. Mēs tos atstāsim šeit, tāpēc noņemiet atzīmi no izvēles rūtiņām. Noklikšķiniet uz "Sūtīt", un jūs redzēsit tādu pašu atbildi kā iepriekš. Ja jums ir bijuši slēgti vai atcelti pasūtījumi, tos redzēsiet arī šeit.


Visbeidzot, mēs varam pieprasīt konkrētus pasūtījumus, izmantojot:

IEGŪT /api/v3/order

Iegūstiet to sadaļā "Tirdzniecība" > "Vaicājuma pasūtījums (USER_DATA)". Jums būs jānorāda vai nu "orderId" vai "origClientOrderId" (neobligāts tags "newClientOrderId", ko var pievienot pasūtījumiem). Noņemiet atzīmi no "orderId". Vietnei "origClientOrderId" mēs nodrošināsim noklusējuma tagu, kas tika izmantots iepriekš - "my_order_id_1". Aizpildiet lauku un noklikšķiniet uz "Sūtīt", lai saņemtu atbildi.


Pasūtījuma atcelšana

Pēc kāda laika mēs varam nolemt, ka 40 000 USD mērķis ir pārāk optimistisks, tāpēc vēlamies atcelt pasūtījumu. Šajā gadījumā mēs izmantotu:

DZĒST /api/v3/order

Sadaļā "Tirdzniecība" > "Atcelt pasūtījumu" ir vaicājums, kas ļaus mums izcelt pasūtījumus atcelšanai. Noņemiet atzīmi no "orderId" un "newClientOrderId" un norādiet "my_order_id_1" kā "origClientOrderId" vērtību.

Nosūtot šo pieprasījumu, pasūtījums tiks atgriezts. Ja ritināsit uz leju līdz "statuss", jūs redzēsit, ka tas patiešām ir atcelts. Lai to apstiprinātu, vēlreiz izmantojiet galapunktu GET /api/v3/openOrders (ar tukšu sarakstu) vai GET /api/v3/order ar origClientOrderId .


Pasūtījuma izplūšana, kas tiek aizpildīta uzreiz

Mūsu iepriekšējais pasūtījums netika izpildīts, jo tas bija limita pasūtījums, kas darbosies tikai tad, kad BTC cena sasniegs 40 000 USD. Tirgus pasūtījuma gadījumā mēs būtībā sakām "pirkt/pārdot par jebkuru cenu, par kādu aktīvs pašlaik tiek tirgots". Šis pasūtījums tiks aizpildīts uzreiz.

Šim nolūkam atgriezīsimies pie "Tirdzniecība" > "Jauns pasūtījums". Mēs demonstrēsim atbildes veidu (newOrderRespType), kas ir parametrs, kuru varam konfigurēt atkarībā no atbildes, ko vēlamies saņemt no servera. Šeit ir trīs iespējas: ACK, RESULT vai FULL — šeit varat redzēt katras atbildes piemērus. Mēs izmantosim "ACK", kas sniegs mums vienkāršu apstiprinājumu, ka pasūtījums ir saņemts.

Zemāk varat redzēt, ka mēs nosūtīsim tirgus rīkojumu pārdot BNB par BUSD par pašreizējo tirgus cenu.



Ņemiet vērā, ka atbilde sniedz mums minimālu informāciju:



Varat pārbaudīt, vai pasūtījums ir aizpildīts, izmantojot galapunktu /api/v3/allOrders.


Jūsu piedāvājumu pārbaude

Visbeidzot, apskatīsim darījumu pārbaudes beigu punktu:

IEGŪT /api/v3/myTrades

Pieprasījums atrodas sadaļā "Tirdzniecība" > "Konta darījumu saraksts (USER_DATA)". Tas ļauj pārbaudīt katru darījumu pēc noteikta simbola. Ja vēlaties redzēt visus savus darījumus noklusējuma simbolam (BTCUSDT), vienkārši noņemiet atzīmi no "startTime", "endTime" un "fromId". Atbilde atgriezīsies līdz 500 darījumiem — vienkārši mainiet limitu, ja vēlaties redzēt vairāk.


Atkļūdošana ar Pastnieku

Programmā Postman varat papildus atklāt neapstrādātu HTTP pieprasījumu un atbildi.



Šajā izvēlnē tiks atvērta pastnieka konsole, kurā tiek parādīta katra pieprasījuma informācija.



Pēdējās domas

Šīs rokasgrāmatas mērķis ir iepazīstināt jūs ar Binance API, neierakstot nevienu koda rindiņu. Ja esat pabeidzis visas nepieciešamās darbības, tagad jums vajadzētu saprast, kā mēs varam pieprasīt un nosūtīt informāciju.

Nākamajās šīs sērijas daļās mēs iepazīstināsim ar dažiem kodēšanas pamatjēdzieniem, kas ļauj automatizēt kriptovalūtu un citu digitālo aktīvu pirkšanu un pārdošanu.

Vai jums ir vēl kādi jautājumi? Apmeklējiet mūsu augošo Binance izstrādātāju kopienas forumu vai skatiet dokumentāciju.