Coinbase Pro API / Leitfaden von Cryptogeek

Coinbase Pro API / Leitfaden von Cryptogeek
Diese Seite wird automatisch übersetzt. Öffnen Sie die Seite in der Originalsprache.
Apr 24, 2022 0
Coinbase Pro API / Leitfaden von Cryptogeek

Jede Börse hat Besonderheiten, um Händler anzulocken. Coinbase Pro verfügt über einen speziellen Code, der den Handel automatisiert und vereinfacht. Dieser Code ist die Coinbase Pro-API. 
Es ist absolut kostenlos, ein Konto zu erstellen und die Coinbase Pro-API zu aktivieren.

Unterschiede zwischen Coinbase und Coinbase Pro

Die beiden Plattformen haben etwas gemeinsam. Zumindest Coinbase Global Inc besitzt beide und die Benutzeroberflächen ähneln sich.

Es ist jedoch offensichtlich, dass Coinbase und Coinbase Pro einige Unterschiede aufweisen. Coinbase ist eher ein Kryptowährungsmarktplatz, während Coinbase Pro eine vollwertige Kryptobörse ist. Coinbase ähnelt einer Kryptowährungs-Brieftasche, während Coinbase Pro eher eine Handelsplattform ist.

Innovative Attribute und Endpunkte machen den Handel auf der Coinbase Pro API viel schneller und besser als auf Coinbase.

Jetzt ist die Coinbase Pro-API für mehr als verfügbar 100 länder.

Vor- und Nachteile der Verwendung der Coinbase Pro-API

Hier ist eine kurze Liste der Vor- und Nachteile, die Händler berücksichtigen sollten.

Profi:

● Einfach
● Intuitiv
● Vollständig in den USA reguliert
● Hohe Liquidität
● Unterstützt Fiat (USD, EUR, GBP)
● Unterstützt über 120 Kryptowährungen

Nachteil:

● Hohe Gebühren
● Langsamer Kundensupport
● Zu kompliziert für Neulinge

Zusammenfassend hat die Coinbase Pro-API doppelt so viele Vor- als Nachteile.

Erhebt Coinbase Pro Gebühren?

Ja, das tut es. Coinbase Pro erhebt die üblichen Handelsgebühren von seinen Nutzern. Dies geschieht nach einem Zeitraum von 30 Tagen, in dem der endgültige Preis berechnet wird. Für die Bequemlichkeit des Händlers wird die Summe in USD genommen.

Wie üblich werden die Gebühren in "Maker" und "Taker" unterteilt:

1. Ein Benutzer wird zum Abnehmer, wenn eine platzierte Marktorder sofort ausgeführt wird. Gebühr: von 0,04% bis zu 0,50%.

2. Aser wird zum Maker, wenn eine aufgegebene Order nicht sofort ausgeführt wird und in das Orderbuch aufgenommen wird. Es muss also gewartet werden, bis es von einem anderen Händler abgeglichen wird. Gebühr: 0,00% bis 0,50%.

3. Und wenn die Bestellung nur teilweise ausgefüllt wird, werden beide Gebühren bezahlt. Zunächst wird eine Taker-Gebühr gezahlt, die dem gefüllten Teil entspricht, während der Rest der Bestellung erst später im Orderbuch erscheint. Und wenn es abgeglichen wird, wird eine Herstellergebühr gezahlt.

Diese Tabelle zeigt das aktuelle Handelsvolumen für beide Gebühren:

Haben andere Börsen eine API?

Viele andere Börsen haben eine API. Aus diesem Grund kann die Coinbase Pro-API nicht die einzige Wahl für Händler sein. Hier sind nur einige Börsen mit API:

Binance
BitMEX
HitBTC
Kraken
Zwillinge
KuCoin
Bittrex
Bitfinex

Nach Abschluss der ordnungsgemäßen Recherche können Händler zwischen den bereitgestellten Börsen wählen oder andere Plattformen finden, die ihren Anforderungen entsprechen. Kehren wir jedoch zu Coinbase Pro zurück.

Erstellen eines Kontos bei Coinbase Pro

Händler haben nur zwei Methoden, um ein Konto auf dieser Plattform zu erstellen:

1. Wenn ein Händler bereits ein Coinbase-Konto hat, müssen Sie es nur noch mit Coinbase Pro verbinden. Dann wäre eine Überweisung zwischen den Konten möglich.

2. Oder besuchen Sie einfach die Coinbase Pro Startseite und starten Sie genau dort ein Konto.

Nachdem Sie auf die Schaltfläche "Erste Schritte" geklickt haben, müssen Neulinge ihre grundlegenden Kontodaten eingeben, eine E-Mail-Adresse überprüfen und die Zwei-Faktor-Authentifizierung aktivieren. Um die Registrierung abzuschließen, müssen Benutzer einige persönliche Informationen angeben: Name, Geburtsdatum, Adresse, Absicht, Geldquelle, Beruf, einschließlich eines Ausweisfotos und eines Links zu einem Bankkonto.

Was ist ein Coinbase API-Schlüssel?

Um mit einer Coinbase Pro-API umgehen zu können, benötigen Händler einen Coinbase-API-Schlüssel. Klicken Sie zunächst auf die Schaltfläche "API" und dann auf die Schaltfläche "+ Neuer API-Schlüssel". Dann müssen Benutzer Berechtigungen für den API-Schlüssel auswählen, den Spitznamen und eine Passphrase festlegen, eine zusätzliche Authentifizierungsstufe und eine von Coinbase realisierte Sicherheitsfunktion.

Bevor der API-Schlüssel funktionieren kann, müssen Händler einen weiteren Schritt ausführen: Geben Sie einen Bestätigungscode ein, um einen geheimen Schlüssel zu erhalten. Darüber hinaus sollten Benutzer diesen geheimen Schlüssel an einem sicheren Ort aufbewahren, um ihn nicht zu verlieren.

Schließlich wird die Coinbase Pro API erstellt. Lass uns weitermachen und über seine Fähigkeiten sprechen.

Nützliche Python Coinbase Pro API-Befehle

Jeder Händler kann seinen Lieblingskunden aus fünf unterstützten auswählen:

Pythonschlange
Gehen
Java
Rost
C#

Python ist der beliebteste Client zum Schreiben von Befehlen auf der Coinbase Pro-API. Deshalb würden Beispiele nur daraus bestehen.

Fangen wir an:

pip cbpro installieren

Handelspaarinformationen mit Python Coinbase API

In der Coinbase Pro API verwendet die Python-Bibliothek get_produkte endpunkt, um die Informationen über Handelspaare zu erhalten. Der nächste Schritt besteht darin, die Bibliothek zu importieren, den Client zu initialisieren und Produktdaten abzurufen:

cbpro importieren 
pandas als pd importieren 
in: c = cbpro.PublicClient() 
daten = pd.Datenrahmen (c.get_products ()) 
Daten.Schwanz().

Preisdaten mit Python Coinbase API

Um Informationen zu Preisdaten zu erhalten, verwenden Sie get_produkt_ticker endpunkt und geben Sie den Ticker-Parameter an. Für Cardano wäre es:

ticker = c.get_product_ticker(Produkt-ID = 'ADA-USD') 
Ticker

Der zweite Weg, um das Datum zu erhalten, ist mit Hilfe von Coinbase Pro REST API Endpunkt:

anfragen importieren ticker = Anfragen.get('https://api.pro.coinbase.com/products/ADA-USD/ticker ').json() 
Ticker

Historische Daten mit Python Coinbase API

Um Informationen zu historischen Daten zu erhalten, verwenden Sie get_produkt_historische Preise Endpunkt. Es ist möglich, die Granularität, das Start- und Enddatum anzugeben.

Schauen Sie, wie einfach es ist, historische ETH-USD-Daten mit den Standardparametern abzurufen und alles in einem geordneten Datenrahmen anzuordnen:

historisch = pd.DataFrame(c.get_product_historic_rates(product_id ='ETH-USD')) historisch.spalten = ["Datum", "Öffnen", "Hoch", "Niedrig", "Schließen", "Lautstärke"] 
historisch ['Datum'] = pd.to_datetime (historisch ['Datum'], Einheit = 's') 
historisch.set_index ('Datum', inplace = Wahr) 
historisch.sortierwerte (nach = 'Datum', aufsteigend = Wahr, an Ort und Stelle = Wahr) 
historisch

Bei Bedarf können diese Daten später verwendet werden, um einen einfachen Indikator zu erstellen und ein Candlestick-Diagramm zu erstellen.

Zugriff auf technische Indikatoren mit der Python Coinbase API

Leider bietet die Coinbase Pro-API keine voreingestellten Indikatoren. Es ist jedoch möglich, sie mit integrierten Pandas-Funktionen zu erstellen oder sich einfach auf die btalib-Bibliothek zu verlassen.

So erstellen Sie mit Pandas einen einfachen 20-SMA-Indikator:

historical['200'] = historisch.Schließen.rollen(20).bedeuten() 
historisch.Schwanz()

Mit all diesen Daten ist es möglich, ein interaktives Diagramm zu erstellen:

importieren Sie plotly.graph_objects als los 
abb. = los.Abbildung(Daten =[gehen.Kerzenhalter(x = historisch.Index, 
open = historisch['Offen'], 
hoch = historisch ['Hoch'], 
niedrig = historisch ['Niedrig'], 
schließen = historisch['Schließen'], ), 
gehen.Streuen(x = historisch.index, y = historisch ['200'], Zeile = Diktat (Farbe = 'lila', Breite = 1))]) 
Abb.Karte()

Auftragsbuchdaten

Um zu den Orderbuchdaten zu gelangen, verwenden Sie die get_produkt_bestellung_buch Coinbase Pro API-Endpunkt. Hier ist ein Beispiel für das Abrufen von Daten für BTC-USD und das Arrangieren der Gebote und Anfragen.

bestellbuch = c.get_product_order_book('BTC-USD') 
Auftragsbestand

Der nächste Schritt ist das Erstellen der beiden Datenrahmen:

gebote = pd.DataFrame(Bestellbuch['Gebote']) 
fragt = pd.Datenrahmen (order_book ['fragt']) 
hotelangebotwillkommen.Kopf()

Führen Sie sie jetzt zusammen und benennen Sie die Spalten um, um informativer zu sein:

df = pd.zusammenführen (Gebote, Anfragen, left_index = True, right_index = True) 
df = df.rename({"0_x": "Gebotspreis", "1_x": "Gebotsgröße", "2_x": "Gebotsbetrag", 
"0_y": "Briefkurs","1_y":"Briefgröße", "2_y": "Briefbetrag"}, axis='Spalten') 
df.Kopf()

Handelsdaten

Um die Handelsdaten zu erhalten, verwenden Sie die get_produkt_handel Endpunkt. Vergessen Sie nicht, den Vermögenswert einzugeben, auf dem die Daten abgerufen werden. ETH-USD in diesem Beispiel.

trades = pd.DataFrame(Anfragen.get('https://api.pro.coinbase.com/products/ETH-USD/trades ').json()) 
Handel.Schwanz()

Verwenden Sie die REST-API, um die Python-Bibliothek nicht hängen zu lassen.

Wie verwende ich die Coinbase Pro WebSocket API?

Um auf Coinbase Pro-WebSockets zuzugreifen, verwenden Sie die WebscoketClient Endpunkt. Dank dessen können Händler leicht über die interessanten Daten auf dem Laufenden bleiben.

cbpro importieren 
wsc = cbpro.WebsocketClient(url = "wss://ws-feed.pro.coinbase.com", Produkte = "ADA-USD"), 
kanäle =["ticker"])

Um den WebSocket zu schließen, verwenden Sie einfach einen einfachen Befehl:

wsc.schließen()

Der nächste Befehl hilft, die Tickerpreisdaten bis zu einer bestimmten Anzahl von WebSocket-Nachrichten zu sammeln und auszudrucken:

importzeit, cbpro 
klasse myWebsocketClient(cbpro.WebsocketClient): 
def on_open(selbst): 
selbst.url = " <url>/" 
selbst.produkte = ["ETH-USDT"] 
selbst.kanäle =["ticker"] 
selbst.anzahl der Nachrichten = 0 
def on_message (selbst, Nachricht): 
selbst.anzahl der Nachrichten + = 1 
wenn 'Preis' in Nachricht und 'Typ' in Nachricht: 
print ("Nachrichtentyp:", msg["Typ"], 
"\ t@ {:.3f}".format(float(msg["Preis"]))) 
def on_close(selbst): 
drucken("Schließen") 
wsClient = myWebsocketClient() 
In: wsClient.beginnen() 
drucken(wsClient.url, wsClient.produkte, wsClient.TV) 
während (wsClient.anzahl der Nachrichten < 50): 
drucken ("\nmessage_count =", "{} \ n".formatieren(wsClient.message_count)) 
Zeit.schlafen(1) 
In: wsClient.schließen()

Ausführen von Trades über die Coinbase Pro-API

Mit den Python-Coinbase-API-Befehlen ist es ganz einfach, Trades auszuführen. Schauen wir uns zwei Beispiele an: Ausführen eines Handels mit der ETH, wenn BTC einen bestimmten Preis erreicht, und Ausführen eines ETH-Handels, wenn BTC in den letzten 5 Minuten 5% bewegt.

Wie führe ich einen Handel mit ETH aus, wenn BTC einen bestimmten Preis erreicht?

Lassen Sie uns nun herausfinden, wie Sie eine Order mit festgelegten Anforderungen ordnungsgemäß starten: Beginnen Sie einen Handel mit der ETH, wenn BTC einen bestimmten Preis erreicht (z. B. 38500 USD).

1. Legen Sie eine Bestellgrundlage fest;
2. Erstellen Sie eine Schleife, die überprüft, ob das Preisniveau erreicht ist oder nicht;
3. Sobald der Preis erreicht ist, wird eine Marktorder ausgeführt; 
4. Warten Sie einige Sekunden und prüfen Sie, ob die Bestellung wirklich ausgefüllt wurde. 

Nach dem Festlegen der Logik ist es an der Zeit, die relevanten Bibliotheken zu importieren und die APIs einzurichten:

cbpro importieren 
base64 importieren 
json aus der Zeit importieren 
schlaf importieren 
Schlüssel = '' 
Geheimnis = '' 
Passwortsatz = '' 
codiert = json.deponien(geheim).codieren() 
b64secret = base64.b64encode (verschlüsselt) 
auth_client = cbpro.AuthenticatedClient (Schlüssel = Schlüssel, b64secret = Geheimnis, Passphrase = Passphrase) 
in: c = cbpro.PublicClient()

In Bezug auf die Haupthandelslogik finden Sie hier einen wichtigen Hinweis, um die Bestellung sicherer zu machen. Platzieren Sie dazu eine Limit-Order, indem Sie den aktuellen ETH-USD-Preis nehmen und oben ein paar Dollar hinzufügen.

während wahr: 
versuchen: 
ticker = c.get_product_ticker(Produkt-ID = 'BTC-USD') 
außer Ausnahme als e: 
print (f'Fehler beim Abrufen von Tickerdaten: {e}') 
wenn float(ticker ['Preis']) > = 38500,00: 
versuchen: 
limit = c.get_product_ticker(Produkt-ID = 'ETH-USD') 
außer Ausnahme als e: 
print (f'Fehler beim Abrufen von Tickerdaten: {e}') 
versuchen: 
reihenfolge = auth_client.place_limit_order(Produkt-ID='ETH-USDT'), 
seite ='kaufen', 
preis= float(limit['preis'])+2, 
größe = '0,007') 
außer Ausnahme als e: 
print (f'Fehler bei der Bestellung: {e}') 
schlafen(2) 
versuchen: 
check = Bestellung ['id'] 
check_order = auth_client.get_order (Bestellnummer = prüfen) 
außer Ausnahme als e: 
print(f'Unfähig, die Reihenfolge zu überprüfen. Es könnte abgelehnt werden. {e}') 
if check_order['status'] == 'erledigt': 
print('Bestellung erfolgreich aufgegeben') 
drucken (check_order) 
brechen 
anderes: 
print('Bestellung wurde nicht gefunden') 
brechen 
anderes: 
print(f'Die Anforderung wird nicht erreicht. Der Tickerpreis liegt bei {ticker["price"]}') 
schlafen(10)

Wie führe ich einen ETH-Trade aus, wenn sich BTC in den letzten 5 Minuten um 5% bewegt?

Die Aufgabe wird etwas kompliziert. Die neue Schleife muss die Preise der beiden Kryptowährungen ermitteln und die prozentuale Änderung dazwischen berechnen:

● Wenn die prozentuale Änderung weniger als 5% beträgt, schläft das Programm noch 5 Minuten;

● Wenn die prozentuale Änderung gleich oder mehr als 5% beträgt, wird der Trade ausgeführt.

Warten Sie nach der Ausführung einige Sekunden und überprüfen Sie den Handel erneut.

während wahr: 
versuchen: 
ticker_old = c.get_product_ticker(Produkt-ID = 'BTC-USD') 
außer Ausnahme als e: 
print (f'Fehler beim Abrufen von Tickerdaten: {e}') 
schlafen(300) 
versuchen: 
ticker_new = c.get_product_ticker(Produkt-ID = 'BTC-USD') 
außer Ausnahme als e: 
print (f'Fehler beim Abrufen von Tickerdaten: {e}') 
prozent = ((float(ticker_neu ['preis']) - float(ticker_alt ['Preis'])) *100) / float(ticker_alt ['Preis']) 
wenn Prozent > = 5: 
versuchen: 
limit = c.get_product_ticker(Produkt-ID = 'ETH-USDT') 
außer Ausnahme als e: 
print (f'Fehler beim Abrufen von Tickerdaten: {e}') 
versuchen: 
reihenfolge = auth_client.place_limit_order(Produkt-ID='ETH-USDT'), 
seite ='kaufen', 
preis= float(limit['preis'])+2, 
größe = '0,007') 
außer Ausnahme als e: 
print (f'Fehler bei der Bestellung: {e}') 
schlafen(2) 
versuchen: 
check = Bestellung ['id'] 
check_order = auth_client.get_order (Bestellnummer = prüfen) 
außer Ausnahme als e: 
print(f'Unfähig, die Reihenfolge zu überprüfen. Es könnte abgelehnt werden. {e}') 
if check_order['status'] == 'erledigt': 
print('Bestellung erfolgreich aufgegeben') 
drucken (check_order) 
brechen 
anderes: 
print('Bestellung wurde nicht gefunden') 
brechen 
anderes: 
print(f'Die Anforderung wird nicht erreicht. Die prozentuale Änderung liegt bei {Prozent} ')

Wie storniere ich Bestellungen mit der Coinbase Pro API?

Es ist sehr einfach, eine Bestellung zu stornieren. Gehe zu den stornieren_bestellung API-Endpunkt und geben Sie die Bestell-ID als Parameter ein:

Client.cancel_order(order_id = "BESTELL-ID-HIER")

Schlussfolgerung

In diesem Artikel haben wir uns die Coinbase Pro API genauer angesehen und einige Python-Codebeispiele gegeben. Den vollständigen Code finden Sie auf der Plattform GitHub Seite.

Die im Text geäußerten Meinungen und Einschätzungen sind die Ansichten des Autors des Artikels und stimmen möglicherweise nicht mit der Position von Cryptogeek überein. Vergessen Sie nicht, dass die Investition in Kryptowährungen und der Handel an der Börse mit Risiken verbunden sind. Stellen Sie vor dem Treffen von Entscheidungen sicher, dass Sie Ihre eigenen Recherchen zum Markt und zu den Produkten durchführen, an denen Sie interessiert sind.


Hier sind noch keine Kommentare. Sei der Erste!