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.