Główne dania na wynos

  • Interfejsy API to fragmenty kodu, które umożliwiają aplikacjom udostępnianie informacji i mogą być wykorzystywane do ulepszania strategii handlu kryptowalutami.

  • Postman to platforma API, która upraszcza proces budowania i używania API.

  • Dowiedz się więcej o używaniu Postmana do handlu spot w ekosystemie Binance API.

Binance API Series Pt. I – Spot Trading with Postman

Wstęp

Zrozumienie i wykorzystanie API do handlu kryptowalutami może otworzyć świat możliwości wchodzenia i wychodzenia z pozycji. Mając prostą wiedzę na temat kodowania, możesz podłączyć się do backendu giełdy, aby zautomatyzować swoje strategie handlowe. Omijając witrynę, możesz obrać znacznie szybszą ścieżkę do odpowiedniego silnika dla aplikacji o wysokiej wydajności.

W tym artykule do komunikacji z giełdą wykorzystamy Postman, uproszczoną platformę API. Nie martw się – nie będziemy narażać żadnych realnych środków na ryzyko.

Warunki wstępne

Klucze sieci testowej

Będziemy używać sieci testowej do naszych bieżących celów. Ta funkcja symulacji zapewni nam trochę funduszy, które nie mają żadnej wartości w świecie rzeczywistym. Działają tak samo jak prawdziwe monety i tokeny, więc gdy już oswoisz się z interfejsem API, możesz zacząć go używać do handlu prawdziwymi środkami.

  1. Zacznij od przejścia do sieci testów punktowych.

  2. Aby uzyskać dostęp, zaloguj się na konto GitHub. Musisz go utworzyć, jeśli jeszcze tego nie zrobiłeś.

  3. Kliknij Uwierzytelnij i zaloguj się poprzez GitHub.

  4. W obszarze Klucze API zostaniesz poinformowany, że nie masz zarejestrowanych kluczy. Kliknij opcję Generuj klucz HMAC_SHA256, aby utworzyć parę.

  5. Na następnym ekranie nadaj klawiszom etykietę. Nazwij ich jak chcesz i naciśnij Generuj.

  6. Otrzymasz dwa klucze: klucz API i tajny klucz. Ważne jest, aby je teraz nagrać. Jeśli nie, musisz ponownie rozpocząć proces tworzenia klucza. Zalecamy przechowywanie ich w aplikacji do notatek na komputerze, aby później móc je łatwo skopiować i wkleić.

Uwaga: warto oznaczyć klucze, jeśli używasz prawdziwej giełdy do zarządzania różnymi kluczami. Twoje konto może mieć wiele kluczy z różnymi uprawnieniami. Jeśli używasz kilku botów handlowych, użycie oddzielnych kluczy z opisowymi etykietami ułatwia zarządzanie uprawnieniami lub usuwanie poszczególnych kluczy bez zmiany wszystkich botów.

Pobieranie i instalowanie Postmana

Postman to platforma współpracy API. To dla nas idealny punkt wyjścia – będziemy mieli dostęp do kolekcji żądań Binance, które będziemy testować bez konieczności pisania ani jednej linijki kodu.

Program jest dostępny dla komputerów Mac, Windows i Linux. Przejdź na stronę Pobieranie i pobierz plik .zip.

Po zakończeniu zlokalizuj go w eksploratorze plików i zainstaluj. Uruchom aplikację i gotowe! Możesz utworzyć konto, aby się zalogować, ale nie jest to konieczne. Jeśli chcesz pominąć ten krok, po prostu wybierz odpowiednią opcję u dołu okna.

Tworzenie środowiska

Na tym etapie powinieneś mieć interfejs podobny do poniższego.

Po pierwsze, chcemy stworzyć nasze środowisko. Ten krok to tylko sposób na dodanie zmiennych do żądań, z którymi będziemy pracować. Najpierw będziemy musieli pobrać pewne informacje z repozytorium Binance GitHub. Udaj się tutaj i pobierz plik .zip.

Pobieranie nie powinno zająć dużo czasu. Możesz go znaleźć w eksploratorze plików i rozpakować. Następnie możemy wrócić do Postmana.

Kliknij ikonę koła zębatego w prawym górnym rogu (jak pokazano powyżej). Zostaniesz powitany wyskakującym okienkiem Zarządzaj środowiskami.

  1. Wybierz Importuj i przejdź do wyodrębnionego folderu (binance-postman-api).

  2. Wprowadź go, a następnie wejdź do folderu środowisk.

  3. Zobaczysz teraz dwa pliki (jeden dla sieci głównej i jeden dla sieci testowej). Ten, którego szukamy, to binance_com_spot_testnet_api.postman_environment.json. Upewnij się, że masz właściwy, ponieważ nasze klucze nie będą działać z drugim.

Prawie na miejscu. Kliknij Binance Spot Testnet API, aby zobaczyć poniższe zmienne. Edytuj dwa parametry zaznaczone na czerwono, wklejając zapisane wcześniej klucze. Kliknij opcję Aktualizuj i wyjdź z wyskakującego okienka.

Na tym ekranie pozostaw pola znacznika czasu i podpisu puste. Te dwie wartości będą tworzone automatycznie przy każdym żądaniu.

Jest jeszcze jedna rzecz do zrobienia. Po prawej stronie ikony koła zębatego, którą kliknęliśmy wcześniej, aby skonfigurować środowisko, zobaczysz menu rozwijane, które obecnie zawiera komunikat Brak środowiska. Kliknij i wybierz Binance Spot Testnet API.

Importowanie kolekcji

Teraz zaimportujemy kolekcję – jest to obszerny asortyment żądań, który wykonuje za nas ciężką pracę podczas wykonywania połączeń. Aby załadować go do naszego środowiska:

  1. Kliknij Importuj w lewym górnym rogu.

  2. W wyskakującym okienku na karcie Plik wybierz opcję Prześlij pliki.

  3. Ponownie szukamy folderu binance-postman-api. Znajdź i otwórz go.

  4. Tym razem wprowadź kolekcje w podkatalogu.

  5. Znów są tu dwa pliki. Jeden dotyczy pracy z interfejsem API kontraktów futures. Ale my pracujemy z tym spotem, więc musisz wybrać plik Binance Spot API.postman_collection.json.

  6. Powinieneś teraz zobaczyć ekran potwierdzenia identyfikujący import w formacie Postman Collection. Wybierz opcję Importuj.

W zakładce Kolekcje po lewej stronie okna zauważysz, że mamy folder zawierający ponad 100 żądań. Gratulacje! Możemy już iść. W następnej sekcji przyjrzymy się rodzajom żądań, jakie możemy składać.

Składanie próśb

Jeśli rozwiniesz foldery w zakładce Kolekcje, zobaczysz, że możemy składać wiele różnych żądań. Z kodowania kolorami można zauważyć, że istnieją trzy rodzaje metod, których możemy użyć:

  • GET: Metoda GET służy do pobierania danych z serwera. Wykorzystamy to, aby znaleźć informacje o saldzie Twojego konta, cenach aktywów itp.

  • POST: Zwykle będziemy używać metody POST do tworzenia informacji na serwerze. Ta metoda jest potrzebna do składania zamówień, żądania wypłat itp.

  • DELETE: Metoda DELETE żąda od serwera usunięcia informacji. Przyda się przy anulowaniu zamówień.

Znajdź listę symboli i zasady handlu

Czas na naszą pierwszą prośbę! Otrzymamy symbole, którymi możemy handlować na giełdzie i zasady handlu:

POBIERZ /api/v3/exchangeInfo

Ten nie wymaga żadnych dodatkowych parametrów – możesz go skopiować i wkleić w pasku adresu, a otrzymasz odpowiedź. Ale Postman ułatwia przeglądanie i modyfikowanie żądań, w których uwzględniamy kilka parametrów.

Aby załadować to żądanie, wybierz Rynek > Informacje o giełdzie. Pojawi się zakładka podobna do poniższej:

Nie musimy tutaj robić nic więcej, więc śmiało kliknij Wyślij. Otrzymasz wówczas odpowiedź:

W najwyżej podświetlonej sekcji zobaczysz kilka ważnych informacji:

  • Status odpowiedzi (200 oznacza, że ​​powiodło się, 400-499 oznacza, że ​​napotkaliśmy problem).

  • Czas potrzebny na otrzymanie odpowiedzi (mniej niż sekunda).

  • Rozmiar odpowiedzi (~22 KB).

W drugim polu znajduje się większość odpowiedzi. To pole zawiera informacje na temat giełdy, par, którymi możesz handlować, oraz ich minimalnych/maksymalnych kwot.

Wygląda na to, że zawiera dużo informacji, ale format ułatwia pracę programową. Pisząc skrypty umożliwiające interakcję z nim, z łatwością będziesz w stanie wybrać z odpowiedzi określone właściwości konkretnych elementów.

Sprawdź saldo konta

Sprawdźmy, jakie mamy aktywa i ile każdego z nich:

POBIERZ /api/v3/konto

Znajdziesz go w obszarze Handel > Informacje o koncie. Kliknij na nią, aby zobaczyć układ podobny do poprzedniego. Zauważysz jednak również, że mamy dwie nowe zmienne: znacznik czasu i podpis. Podpis jest środkiem bezpieczeństwa. Ponieważ teraz prosimy o podanie wrażliwych informacji, będzie to dowód na to, że jesteśmy właścicielami konta.

Znacznik czasu informuje serwer, kiedy żądanie zostało wysłane. Ponieważ sieci mogą działać zawodnie lub grozić przestojami, serwer może otrzymać nasze żądanie znacznie później, niż było to zamierzone. Jeśli minęło zbyt dużo czasu, żądanie zostanie odrzucone. Możesz określić, jak długo chcesz czekać, za pomocą parametru recvWindow, który domyślnie wynosi 5000 milisekund.

Postman zajmuje się za nas generacją obu tych pól. Kliknij wyślij, a otrzymasz odpowiedź. Pod saldami powinieneś zobaczyć sześć aktywów – BNB, BTC, BUSD, ETH, LTC i TRX. Saldo zostanie podzielone na wolne i zablokowane aktywa. Jeszcze żadnego nie zablokowaliśmy, więc wszystkie Twoje aktywa powinny być bezpłatne.

Uzyskaj aktualną cenę symbolu

Możemy uzyskać aktualną cenę składnika aktywów na różne sposoby. Być może najprościej jest z następującą prośbą:

POBIERZ /api/v3/ticker/24hr

Jak można się domyślić, da nam to informacje o cenach aktywów z ostatnich dwudziestu czterech godzin. Znajdziesz go w sekcji Rynek > Statystyki zmian cen Tickera w ciągu 24 godzin. Domyślną parą, którą witamy jako zmienną symboliczną, jest BTC/USDT.

Możesz wysłać to od razu, aby zobaczyć zestawienie informacji o cenie. Możesz także zmienić symbol (na BNB/USDT, LTC/USDT itp.) lub odznaczyć zmienną, aby zwrócić dane dla 40 par.

Mamy również prostsze wywołanie (Rynek > Symbol ceny Ticker), które zwraca aktualną cenę, po której handluje się aktywem:

POBIERZ /api/v3/cena

Podobnie jak w przypadku poprzedniego, możesz zmienić zmienną symbolu lub całkowicie ją usunąć i uzyskać najnowszą cenę za wszystkie symbole.

Sprawdź aktualną głębokość księgi zamówień

Głębokość księgi zamówień – zwana także głębokością rynku (DOM) – może nam wiele powiedzieć o rynku. Wykonamy połączenie, które zwróci przydatne informacje:

POBIERZ /api/v3/głębię

Kiedy wyślemy to z wartościami domyślnymi (Rynek > Księga zamówień), otrzymamy odpowiedź, która poinformuje nas o ofertach i zapyta o BTC/USDT. Serwer testnetowy nie dostarczy tak dużej ilości danych jak rzeczywisty, dlatego poniżej znajduje się zrzut ekranu przedstawiający to, czego można się spodziewać w prawdziwym środowisku:

W wyróżnionej sekcji powyżej możemy zobaczyć pierwszą ofertę. Ponieważ patrzymy na księgę BTC/USDT, górna liczba to cena, jaką ktoś jest skłonny zapłacić za Twoje BTC. Poniżej znajduje się kwota, jaką są skłonni kupić. Oznacza to zatem, że w tym zamówieniu żąda się 0,999 BTC po kursie 9704,65 USDT za BTC. Gdybyśmy nadal przewijali w dół, zaobserwowalibyśmy spadek ceny oferty – reprezentujący kupujących, którzy zapłacą mniej.

Najwyższa oferta będzie oczywiście najatrakcyjniejsza, jeśli szukasz zysku za każdą złotówkę. Mimo to, jeśli na przykład próbujesz sprzedać 3 BTC, będziesz w stanie sprzedać tylko 0,999 BTC po najlepszej cenie. Będziesz musiał korzystać z kolejnych (tańszych) ofert, aż Twoje zamówienie zostanie zrealizowane.

Przewijaj dalej, a zobaczysz pytania. Są funkcjonalnie podobne do ofert, z tą różnicą, że reprezentują zlecenia sprzedaży BTC za USDT.

Złóż zamówienie testowe

Teraz opublikujemy zamówienie testowe.

POST /api/v3/order/test

Mimo że korzystamy tylko ze środków sieci testowej, to żądanie w rzeczywistości nie powoduje złożenia zamówienia. Może to być pomocne przy testowaniu zamówień przed ich faktycznym przesłaniem. Znajdź go w obszarze Handel > Przetestuj nowe zamówienie (HANDEL).

Jak widać, mamy do czynienia z znacznie większą liczbą parametrów. Przejdźmy przez zaznaczone:

  • symbol – spotkaliśmy się z nim już wcześniej. To jest para, którą chcesz handlować.

  • strona – tutaj określisz, czy chcesz KUPIĆ, czy SPRZEDAĆ. W przypadku pary BTC/USDT KUP oznacza, że ​​chcesz kupić BTC za USDT, natomiast sprzedaż spowoduje sprzedaż BTC za USDT.

  • typ – rodzaj zamówienia, jakie chcesz złożyć. Możliwe wartości (szczegółowo tutaj):

    • LIMIT

    • RYNEK

    • STOP_STRATA

    • STOP_LOSS_LIMIT

    • MIEĆ ZYSK

    • TAKE_PROFIT_LIMIT

    • LIMIT_MAKER

  • timeInForce – ten parametr wyraża sposób, w jaki chcesz wykonać zlecenie:

    • GTC (dobre do anulowania) – być może najpopularniejsza konfiguracja, GTC zapewni, że Twoje zamówienie będzie ważne do momentu jego realizacji lub anulowania.

    • FOK (fill or kill) – FOK zleca giełdzie wykonanie całego zlecenia na raz. Jeżeli giełda nie może tego zrobić, zamówienie zostaje natychmiast anulowane.

    • IOC (natychmiastowe lub anulowane) – całość lub część zlecenia musi zostać zrealizowana natychmiast lub zostaje anulowana. W odróżnieniu od FOK, zamówienia nie są anulowane, jeśli można je częściowo zrealizować.

  • ilość – ilość aktywa, którą chcesz kupić lub sprzedać.

  • cena – cena, po której chcesz sprzedać. W przypadku pary BTC/USDT jest to wyrażone w USDT.

  • newClientOrderId – identyfikator zamówienia. Nie jest to pole obowiązkowe, ale możesz ustawić w nim identyfikator, który ułatwi późniejsze wysyłanie zapytań. W przeciwnym razie jest on losowo generowany przez giełdę.

Dobra! Utwórzmy teraz zamówienie testowe. Będziemy kontynuować automatycznie wygenerowane wartości: zlecenie z limitem sprzedaży 0,1 BTC za USDT po cenie 9000 USD. Naciśnij Wyślij. Jeśli się powiedzie, w odpowiedzi otrzymamy {}.

Złóż prawdziwe zamówienie

Czas złożyć realne zamówienie.

POST /api/v3/zamówienie

Przejdź do opcji Handel > Nowe zamówienie. Zlecenia testowe już znasz, więc parametry tutaj nie będą zaskoczeniem. Zostawmy wszystkie wartości bez zmian, ale zmieńmy cenę, którą sprzedajemy na 40 000 USD. Zmień wartość ceny, aby to odzwierciedlić. Następnie naciśnij Wyślij.

Twoja odpowiedź zwróci wiele szczegółów na temat zamówienia, jeśli się powiedzie.

Sprawdź status otwartego zamówienia

Dostaliśmy potwierdzenie, że zamówienie zostało złożone w poprzednim dziale, ale co jeśli będziemy chcieli to jeszcze raz sprawdzić później? Mamy do dyspozycji kilka próśb.

POBIERZ /api/v3/openOrders

Znajdziesz to w Handel > Bieżące otwarte zamówienia (USER_DATA). Domyślnie wybrana jest opcja BTC/USDT. Jeśli naciśniesz Wyślij, otrzymasz wszystkie swoje otwarte zlecenia BTC/USDT (jak dotąd powinieneś zobaczyć tylko to, które ustawiliśmy wcześniej). Możesz także nie podawać symbolu, co spowoduje zwrócenie wszystkich otwartych zleceń.

POBIERZ /api/v3/allOrders

Handel > Wszystkie zamówienia (USER_DATA) daje przegląd wszystkich zleceń – nie tylko otwartych. Tutaj należy podać symbol. OrderId, startTime, endTime i limit to parametry opcjonalne, które mogą pomóc w zawężeniu wyszukiwania. Zostawimy je tutaj, więc odznacz je. Naciśnij Wyślij, a zobaczysz tę samą odpowiedź, co poprzednio. Jeśli masz jakieś zamknięte lub anulowane zamówienia, zobaczysz je również tutaj.

Na koniec możemy zapytać o konkretne zamówienia za pomocą następujących poleceń:

POBIERZ /api/v3/order

Zdobądź to w obszarze Handel > Zapytanie o zamówienie (USER_DATA). Musisz podać identyfikator zamówienia lub origClientOrderId (opcjonalny tag „newClientOrderId”, który możesz dodać do zamówień). Odznacz identyfikator zamówienia. Dla origClientOrderId udostępnimy domyślny tag z wcześniejszego źródła – ”my_order_id_1”. Wypełnij pole i naciśnij Wyślij, aby otrzymać odpowiedź.

Anuluj zamówienie

Po pewnym czasie możemy uznać, że cel na poziomie 40 000 USD jest zbyt optymistyczny, dlatego chcemy go anulować. W takim przypadku użylibyśmy następujących informacji:

USUŃ /api/v3/order

W obszarze Handel > Anuluj zamówienie znajduje się prośba, która pozwoli nam wyróżnić zamówienia do anulowania. Odznacz OrderId i newClientOrderId i podaj „my_order_id_1” jako wartość origClientOrderId.

Po wysłaniu tego żądania zamówienie zostanie zwrócone. Jeśli przewiniesz w dół do „statusu”, zobaczysz, że rzeczywiście został on anulowany. Aby to potwierdzić, użyj ponownie punktu końcowego GET /api/v3/openOrders (dając pustą listę) lub GET /api/v3/order z origClientOrderId.

Złóż zamówienie, które wypełnia się natychmiast

Nasze poprzednie zlecenie nie zostało zrealizowane, ponieważ było to zlecenie z limitem, które zostało uruchomione dopiero wtedy, gdy cena BTC osiągnęła 40 000 USD. W przypadku zlecenia rynkowego zasadniczo mówimy: „Kupuj lub sprzedawaj po dowolnej cenie, po której aktualnie notowane są aktywa”. To wypełni się natychmiast.

W tym celu wróćmy do Handel > Nowy porządek. Zademonstrujemy typ odpowiedzi (newOrderRespType), czyli parametr, który możemy dostosować w zależności od odpowiedzi, jakiej oczekujemy od serwera. Dostępne są trzy opcje: POTWIERDZENIE, WYNIK lub PEŁNY – tutaj możesz zobaczyć przykłady każdej odpowiedzi. Wybierzemy opcję ACK, która daje nam proste potwierdzenie otrzymania zamówienia.

Poniżej możesz zobaczyć, że mamy zamiar złożyć zlecenie rynkowe sprzedaży BNB za BUSD po aktualnej cenie rynkowej.

Pamiętaj, że odpowiedź dostarcza nam minimalnych informacji:

Możesz sprawdzić, czy zamówienie zostało zrealizowane za pomocą punktu końcowego /api/v3/allOrders.

Sprawdzanie Twoich transakcji

Na koniec przyjrzyjmy się punktowi końcowemu sprawdzania transakcji:

POBIERZ /api/v3/myTrades

Znajduje się ono w obszarze Handel > Lista transakcji kont (USER_DATA). Pozwala sprawdzić każdą transakcję pod kątem konkretnego symbolu. Jeśli chcesz zobaczyć wszystkie swoje transakcje dla domyślnego symbolu (BTC/USDT), po prostu odznacz startTime, endTime i fromId. Odpowiedź zwróci do 500 transakcji – po prostu dostosuj limit, jeśli chcesz zobaczyć więcej.

Debugowanie za pomocą listonosza

W Postmanie możliwe jest dalsze ujawnienie surowego żądania i odpowiedzi HTTP.

To menu otworzy konsolę Postman, która drukuje szczegóły każdego żądania.

Rozpocznij korzystanie z API Binance

Celem tego przewodnika było delikatne wprowadzenie Cię do API Binance bez pisania ani jednej linijki kodu. Jeśli śledziłeś dalej, powinieneś już wiedzieć, w jaki sposób możemy poprosić o informacje i je przesłać.

Masz pytania w międzyczasie? Odwiedź nasze rozwijające się forum społeczności programistów Binance lub przejrzyj dokumentację.

Dalsze czytanie

  • Słowniczek: Interfejs programowania aplikacji (API)

  • Co to jest klucz API i jak go bezpiecznie używać?

  • Jak bezpiecznie korzystać z klucza API: 5 wskazówek od Binance