Binance Websocket, księga zamówień i dane świec (skrypty Python)

>

Binance jest powszechnie znane jako największa giełda na rynku kryptowalut. Jeśli chodzi o wolumen obrotu, nie ma innych giełd, które są bliskie ogromnemu wolumenowi wykonywanemu codziennie na Binance.

Imponująca płynność na Binance zapewnia idealną platformę dla traderów, instytucji i inwestorów do agregacji. W połączeniu z ich niskimi opłatami transakcyjnymi, istnieje niewiele giełd, które są lepsze do handlu dziennego, jeśli w ogóle.

Niestety, wiele osób nadal ma trudności ze zbieraniem danych niezbędnych do analizy strategii handlowych, testów historycznych i analizy portfela. Ten artykuł zapewni każdemu skuteczny i opłacalny sposób na dostęp do kompleksowych aktualnych i historycznych danych rynkowych z Binance.

Korzystając z Pythona będziemy mogli zbierać i przechowywać dowolne dane, które nam się podobają. Każdy skrypt rozbije inny fragment danych, który może być dla Ciebie interesujący.

Nie zapomnij dołączyć do Deweloper Telegram Group przeznaczona dla konstruktorów, którzy tworzą ekscytujące aplikacje wykorzystujące dane z giełd. Chcielibyśmy usłyszeć, co tworzysz, i pomóc Ci zacząć!

Uzyskaj historyczne dane z bazy monet

Uzyskaj dostęp do miliardów historycznych punktów danych dla Coinbase Pro. Dostępne są zrzuty ekranowe książek, historia handlu i żywe gniazda internetowe.

Pierwsze kroki

W tej sekcji skonfigurujemy biblioteki i interfejsy API, których będziemy potrzebować, aby rozpocząć zbieranie danych giełdowych Binance.

Instalowanie Shrimpy Python

Zacznij od zainstalowania Biblioteka Shrimpy Python.

pip install shrimpy-python

Klucze API Shrimpy

Po zainstalowaniu Shrimpy Python Library będziemy musieli stworzyć zestaw Shrimpy API Master Keys. Te klucze będą używane do uzyskiwania dostępu do danych.

Zarejestruj się w Shrimpy Developer APIs, następnie postępuj zgodnie z instrukcjami tutaj aby uzyskać dostęp do swoich kluczy głównych.

Uwaga: przed uruchomieniem tych skryptów będziemy musieli włączyć uprawnienia „Dane” w kluczach głównych interfejsu API. Te skrypty nie wymagają żadnych innych uprawnień.

W każdym przykładowym skrypcie zobaczysz dwie linie, które wyglądają jak poniżej. Tutaj przypiszesz własne publiczne i tajne klucze API, które wygenerowałeś na swoim koncie programisty Shrimpy.

shrimpy_public_key = ‘…’

shrimpy_secret_key = ‘…’

Wymiana danych na żywo

Dzięki Shrimpy istnieją dwa sposoby zbierania danych na żywo. Opcje są dostępne za pośrednictwem interfejsów API REST lub gniazd internetowych. Obie te metody będą używać nieco innych skryptów w celu uzyskania dostępu do danych. Zmienią również sposób, w jaki gromadzisz i przetwarzasz dane.

Uwaga: interfejsy API Live REST są dostępne bezpłatnie bez subskrypcji premium. Jednak, aby uzyskać dostęp do tych punktów końcowych, gniazda sieciowe wymagają abonamentu „Osobisty” lub „Startup”. Ponieważ w tych przykładach nie będziemy używać punktów końcowych handlu, nie będziemy potrzebować planu „Użytkownik” / „Handel”.

Punkty końcowe danych rynkowych interfejsu API REST

Jak omówiono, skrypty w tej sekcji nie wymagają płatnej subskrypcji premium. Możesz skopiować dowolny z tych skryptów i natychmiast zacząć ich używać.

Dostępne aktywa

Korzystając z punktu końcowego get_exchange_assets, możemy pobrać zasoby, które są dostępne na Binance.

import krewetek

# Przypisz publiczne i tajne klucze API Shrimpy Master

shrimpy_public_key = ‘…’

shrimpy_secret_key = ‘…’

# Utwórz klienta Shrimpy REST API

client = shrimpy.ShrimpyApiClient (shrimpy_public_key, shrimpy_secret_key)

exchange_assets = client.get_exchange_assets (‘binance’)

Dostępne pary handlowe

Korzystając z punktu końcowego get_trading_pairs, możemy uzyskać dostęp do dostępnych par handlowych na Binance.

import krewetek

# Przypisz publiczne i tajne klucze API Shrimpy Master

shrimpy_public_key = ‘…’

shrimpy_secret_key = ‘…’

# Utwórz klienta Shrimpy REST API

client = shrimpy.ShrimpyApiClient (shrimpy_public_key, shrimpy_secret_key)

trading_pairs = client.get_trading_pairs (‘binance’)

Prosty pasek cenowy

Poniższy przykład przedstawia prosty pasek ceny. Ticker użyje wywołania REST API get_ticker, aby zebrać dane dotyczące cen specyficznych dla aktywów na Binance.

Punkt końcowy paska jest aktualizowany co 1 minutę.

import krewetek

# Przypisz publiczne i tajne klucze API Shrimpy Master

shrimpy_public_key = ‘…’

shrimpy_secret_key = ‘…’

# Utwórz klienta Shrimpy REST API

client = shrimpy.ShrimpyApiClient (shrimpy_public_key, shrimpy_secret_key)

# Poproś o ticker dla wszystkich aktywów na Binance

ticker = client.get_ticker (‘binance’)

Prosta migawka książki zamówień na żywo

W tym przykładzie uzyskamy dostęp do aktualnego stanu księgi zamówień Binance, wywołując punkt końcowy REST API dla get_order_books.

import krewetek

shrimpy_public_key = ‘…’

shrimpy_secret_key = ‘…’

# Utwórz klienta API dla wywołań REST

client = shrimpy.ShrimpyApiClient (shrimpy_public_key, shrimpy_secret_key)

# Pobierz książkę zamówień na żywo

orderbooks = client.get_orderbooks (

‘binance’, # wymiana

„ETH”, # base_symbol

„BTC”, # quote_symbol

Limit 10 #

)

Proste świeczniki na żywo

Następny punkt końcowy danych rynkowych zapewnia dostęp do świec handlowych poprzez punkt końcowy get_candles. Świece są aktualizowane w czasie rzeczywistym w miarę wykonywania nowych transakcji na giełdzie. Poniższy skrypt powróci tylko do ostatnich 1000 świec. Aby pobrać dodatkowe dane świecowe, należy użyć „historycznego” punktu końcowego świecy.

import krewetek

importuj plotly.graph_objects jako go

# zarejestruj się w Shrimpy Developer APIs, aby otrzymać darmowe klucze API

shrimpy_public_key = ‘…’

shrimpy_secret_key = ‘…’

# zebrać historyczne dane świecowe

client = shrimpy.ShrimpyApiClient (shrimpy_public_key, shrimpy_secret_key)

świece = client.get_candles (

‘binance’, # wymiana

„ETH”, # base_trading_symbol

„BTC”, # quote_trading_symbol

Interwał # 1d

)

daty = []

open_data = []

high_data = []

low_data = []

close_data = []

# sformatuj dane, aby pasowały do ​​biblioteki wydruku

dla świec w świecach:

daty.append (świeca [‘czas’])

open_data.append (świeca [‘otwórz’])

high_data.append (candle [‘high’])

low_data.append (świeca [‘niski’])

close_data.append (świeca [‘zamknij’])

# wykreśl świeczniki

fig = go.Figure (data = [go.Candlestick (x = dates,

open = open_data, high = high_data,

low = low_data, close = close_data)])

fig.show ()

Punkty końcowe danych Websocket Market

Następny zestaw przykładowych skryptów będzie używał interfejsów API sieci Web do zbierania danych rynkowych w czasie rzeczywistym z giełdy Binance.

Te skrypty wymagają wykupienia abonamentu „Osobisty” lub „Startup”. Jeśli planujesz używać tylko websocketów i nie masz danych historycznych, zalecany jest plan „Osobisty”.

Websocket Price Ticker

Poniższy przykład przedstawia bardziej złożony sposób implementacji wskaźnika ceny. Jeśli dla Twojej usługi wymagane są dane w czasie rzeczywistym, ta opcja byłaby idealna, aby zapewnić korzystanie z najbardziej aktualnych danych. Ta opcja może zastąpić „prosty pasek ruchu”, który został omówiony wcześniej.

W tym przykładzie zastosowano gniazda internetowe do handlu w czasie rzeczywistym.

import krewetek

shrimpy_public_key = ‘…’

shrimpy_secret_key = ‘…’

# To jest przykładowa obsługa, po prostu drukuje przychodzącą wiadomość na konsolę

def error_handler (err):

print (err)

# To jest przykładowa obsługa, po prostu drukuje przychodzącą wiadomość na konsolę

def handler (msg):

print (msg [‘content’] [0] [‘price’])

# Utwórz klienta websocket przy użyciu surowego tokenu pobranego przez REST API

api_client = shrimpy.ShrimpyApiClient (shrimpy_public_key, shrimpy_secret_key)

raw_token = api_client.get_token ()

client = shrimpy.ShrimpyWsClient (error_handler, raw_token [‘token’])

# Dane subskrypcji dla Websocket

subscribe_data = {

"rodzaj": "Subskrybuj",

"Wymieniać się": "binance",

"para": "eth-btc",

"kanał": "handel"}

# Rozpocznij przetwarzanie strumienia Shrimpy Websocket!

client.connect ()

client.subscribe (subscribe_data, handler)

# Po zakończeniu zatrzymaj klienta

client.disconnect ()

Książka zamówień Websocket Live

Podobnie jak w przykładzie elementu giełdowego Websocket, w poniższym przykładzie do zbierania danych księgi zamówień na żywo będą używane gniazda sieciowe.

import krewetek

shrimpy_public_key = ‘…’

shrimpy_secret_key = ‘…’

# To jest przykładowa obsługa, po prostu drukuje przychodzącą wiadomość na konsolę

def error_handler (err):

print (err)

# To jest przykładowa obsługa, po prostu drukuje przychodzącą wiadomość na konsolę

def handler (msg):

drukuj (msg)

# Utwórz klienta websocket, pobierając surowy token.

api_client = shrimpy.ShrimpyApiClient (shrimpy_public_key, shrimpy_secret_key)

raw_token = api_client.get_token ()

ws_client = shrimpy.ShrimpyWsClient (error_handler, raw_token [‘token’])

subscribe_data = {

"rodzaj": "Subskrybuj",

"Wymieniać się": "binance",

"para": "eth-btc",

"kanał": "księga zamówień"}

# Rozpocznij przetwarzanie strumienia Shrimpy Websocket!

ws_client.connect ()

ws_client.subscribe (subscribe_data, handler)

# Po zakończeniu zatrzymaj klienta

ws_client.disconnect ()

Wymiana historycznych danych rynkowych

W tej sekcji omówimy przykłady gromadzenia historycznych danych rynkowych z Binance. Każdy przykład będzie dotyczył określonego typu danych, które odpowiadają Twoim potrzebom.

Wywołania do punktów końcowych danych historycznych będą wymagały subskrypcji „Startup”. Ponieważ będziemy gromadzić tylko dane, nie potrzebujemy żadnych kredytów użytkownika / kredytów handlowych. Oznacza to, że możesz przesunąć suwak „Plan użytkownika” do pozycji „0 aktywnych użytkowników”. Suwak „Plan danych” powinien być dostosowany do poziomu danych historycznych, do których chcesz uzyskać dostęp.

Dostępne dane historyczne

Poniższy skrypt pobierze aktualnie dostępną listę danych historycznych. W ten sposób możesz przeglądać katalog danych Shrimpy i określić, jakie dane chcesz zebrać. Spowoduje to użycie punktu końcowego get_historical_instruments.

import krewetek

# zarejestruj się w Shrimpy Developer APIs, aby otrzymać darmowe klucze API

shrimpy_public_key = ‘…’

shrimpy_secret_key = ‘…’

# zebrać historyczne dane świecowe

client = shrimpy.ShrimpyApiClient (shrimpy_public_key, shrimpy_secret_key)

instrumenty = client.get_historical_instruments (‘binance’)

Historyczne świeczniki

Pod pewnymi względami podobnie jak w przypadku żywych świec, historyczny punkt końcowy świecy umożliwia gromadzenie historycznych danych świecowych. Główną różnicą między tym skryptem a poprzednim skryptem świecowym jest użycie zakresu dat, który może zawierać dowolny dostępny zakres czasu. W tym skrypcie użyjemy punktu końcowego get_historical_candles.

Dzięki temu skryptowi nie ograniczamy się tylko do zebrania ostatnich 1000 świec. Możemy zbierać 1-minutowe świece z 2012 roku lub 5-minutowe świece z 2015 roku (uwaga: dane Binance nie sięgają tak daleko, ale inne giełdy mają dane sięgające aż do 2011 roku). Wszystkie potrzebne dane są dostępne.

import krewetek

import plotly.graph_objects jako go

# zarejestruj się w Shrimpy Developer APIs, aby otrzymać darmowe klucze API

public_key = ‘…’

secret_key = ‘…’

client = shrimpy.ShrimpyApiClient (public_key, secret_key)

świece = client.get_historical_candles (

‘binance’, # wymiana

„ETH”, # base_trading_symbol

„BTC”, # quote_trading_symbol

‘2017-02-11T00: 00: 00.000Z’, # start_time

„2019-10-20T00: 00: 00.000Z”, # end_time

1000, # num_candles

Interwał # 1d

)

daty = []

open_data = []

high_data = []

low_data = []

close_data = []

dla świec w świecach:

daty.append (świeca [‘czas’])

open_data.append (świeca [‘otwórz’])

high_data.append (candle [‘high’])

low_data.append (świeca [‘niski’])

close_data.append (świeca [‘zamknij’])

fig = go.Figure (data = [go.Candlestick (x = dates,

open = open_data, high = high_data,

low = low_data, close = close_data)])

fig.show ()

Transakcje historyczne

Poniższy skrypt pokaże, jak zbierać dane handlowe tick-by-tick dla dowolnej dostępnej pary handlowej na Binance. Ten skrypt używa punktu końcowego get_historical_trades.

import krewetek

# zarejestruj się w Shrimpy Developer APIs, aby otrzymać darmowe klucze API

public_key = ‘…’

secret_key = ‘…’

client = shrimpy.ShrimpyApiClient (public_key, secret_key)

trades = client.get_historical_trades (

„binance”,

„ETH”,

„BTC”,

„2019-05-19T00: 00: 00.000Z”,

„2019-05-20T00: 00: 00.000Z”,

100

)

Migawki historii zamówień

Nasz ostateczny skrypt użyje punktu końcowego get_historical_orderbooks do zbierania jednominutowych migawek książek zamówień.

import krewetek

# zarejestruj się w Shrimpy Developer APIs, aby otrzymać darmowe klucze API

public_key = ‘…’

secret_key = ‘…’

client = shrimpy.ShrimpyApiClient (public_key, secret_key)

orderbooks = client.get_historical_orderbooks (

„binance”,

„ETH”,

„BTC”,

„2019-05-19T00: 00: 00.000Z”,

„2019-05-20T00: 00: 00.000Z”,

100

)

O Shrimpy

Krewetki to aplikacja do konstruowania niestandardowych funduszy indeksów kryptowalut, równoważenia i zarządzania zróżnicowanym portfelem aktywów cyfrowych. Zautomatyzuj swoje portfolio, łącząc się z dowolną z 17 obsługiwanych przez nas giełd kryptowalut.

Shrimpy’s Universal Crypto Exchange APIs są przeznaczone dla programistów. Integracja z naszymi ujednoliconymi interfejsami API zapewnia natychmiastowy dostęp do jednolitych punktów końcowych do handlu, gromadzenia danych, zarządzania użytkownikami i nie tylko na każdej większej giełdzie kryptowalut.

Aby uzyskać dostęp do wszystkich bibliotek Python i Node, skorzystaj z tych linków:

Węzeł

Pyton

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me