Coinbase Pro API / Guida di Cryptogeek

Coinbase Pro API / Guida di Cryptogeek
Questa pagina è tradotta automaticamente. Apri la pagina in lingua originale.
Apr 24, 2022 0
Coinbase Pro API / Guida di Cryptogeek

Ogni scambio ha caratteristiche speciali per attirare i commercianti. Coinbase Pro ha un codice speciale che aiuta ad automatizzare e semplificare il trading. Questo codice è l'API Coinbase Pro. 
È assolutamente gratuito creare un account e abilitare l'API Coinbase Pro.

Coinbase e Coinbase Pro Differenze

Le due piattaforme hanno qualcosa in comune. Almeno Coinbase Global Inc possiede entrambi e le interfacce utente si assomigliano.

Tuttavia, è ovvio che Coinbase e Coinbase Pro condividono alcune differenze. Coinbase è piuttosto un mercato di criptovaluta, mentre Coinbase Pro è uno scambio crittografico a tutti gli effetti. Coinbase assomiglia a un portafoglio di criptovaluta, mentre Coinbase Pro è più probabile una piattaforma di trading.

logo
Get profits with HODLing on Binance Earn

Gli attributi e gli endpoint innovativi rendono il trading su Coinbase Pro API molto più veloce e migliore rispetto a Coinbase.

Ora Coinbase Pro API è disponibile per più di 100 paesi.

Pro e contro dell'utilizzo di Coinbase Pro API

Ecco un breve elenco di pro e contro i commercianti dovrebbero prendere in considerazione.

Pro:

● Semplice
● Intuitivo
● Completamente regolamentato negli Stati Uniti
● Elevata liquidità
● Supporta fiat (USD, EUR, GBP)
● Supporta oltre 120 cryptocurrencies

Svantaggio:

● Tasse elevate
● Assistenza clienti lenta
● Troppo complicato per i neofiti

Per riassumere, Coinbase Pro API ha il doppio dei pro piuttosto che dei contro.

Coinbase Pro prende le tasse?

Si', e 'cosi'. Coinbase Pro prende le solite commissioni di trading dai suoi utenti. Succede dopo un periodo di 30 giorni in cui viene calcolato il prezzo finale. Per comodità del commerciante, la somma è presa in USD.

Come di solito, le tasse sono divise in "maker" e “taker”:

1. Un utente diventa un acquirente quando un ordine di mercato viene riempito immediatamente. Quota: dallo 0,04% fino allo 0,50%.

2. Aser diventa un creatore quando un ordine effettuato non viene riempito in una sola volta e va sul libro degli ordini. Quindi c'è bisogno di aspettare fino a quando non viene abbinato da un altro commerciante. Quota: 0,00% fino a 0,50%.

3. E quando l'ordine viene riempito solo parzialmente, entrambe le tasse sono pagate. In un primo momento, una tassa taker corrispondente alla parte riempita è pagato, mentre il resto dell'ordine si muove sul libro degli ordini fino a più tardi. E quando viene abbinato, viene pagata una tassa per il produttore.

Questa tabella mostra il volume di trading corrente per entrambe le commissioni:

Altre borse hanno un'API?

Molti altri scambi hanno un'API. Ecco perché Coinbase Pro API non può essere l'unica scelta per i commercianti. Qui ci sono solo diversi scambi con API:

Binance
BitMEX
HitBTC
Kraken
Gemini
Kucoina
Bittrex
Bitfinex

Dopo aver completato una ricerca adeguata, gli operatori possono scegliere tra gli scambi forniti o trovare altre piattaforme che soddisfino le loro esigenze. Tuttavia, torniamo a Coinbase Pro.

Creazione di un account su Coinbase Pro

I trader hanno solo due metodi per creare un account su questa piattaforma:

1. Se un trader ha già un account Coinbase, l'unica cosa che rimane è collegarlo a Coinbase Pro. Quindi il trasferimento di fondi sarebbe possibile tra i conti.

2. O semplicemente visitare il Pagina iniziale di Coinbase Pro e lanciare un account proprio lì.

Dopo aver fatto clic sul pulsante” Inizia", i nuovi arrivati devono compilare i dettagli di base dell'account, verificare un indirizzo email e abilitare l'autenticazione a due fattori. Per completare la registrazione, gli utenti devono fornire alcune informazioni personali: nome, data di nascita, indirizzo, intento, fonte di fondi, occupazione, inclusa una foto identificativa e un link a un conto bancario.

Che cos'è una chiave API Coinbase?

Per gestire un'API Coinbase Pro, i trader richiedono una chiave API Coinbase. Prima di tutto, fai clic su " API "e poi sul pulsante " + Nuova chiave API". Quindi gli utenti devono scegliere le autorizzazioni per la chiave API, impostare il nickname e una passphrase, un ulteriore livello di autenticazione e una funzionalità di sicurezza realizzata da Coinbase.

Prima che la chiave API possa iniziare a funzionare, i trader devono completare un altro passaggio: inserire un codice di verifica per ottenere una chiave segreta. Inoltre, gli utenti dovrebbero tenere quella chiave segreta in un luogo sicuro per non perderla.

Infine, viene creata l'API Coinbase Pro. Andiamo avanti e parliamo delle sue capacità.

Utili comandi API Python Coinbase Pro

Ogni trader può scegliere il proprio cliente preferito su cinque supportati:

Python
Andare
Java
Ruggine
C#

Python è il client più popolare per la scrittura di comandi su Coinbase Pro API. Ecco perché gli esempi consisterebbero solo di esso.

Cominciamo:

pip installare cbpro

Informazioni sulle coppie di trading con Python Coinbase API

Nella libreria Coinbase Pro API python utilizza get_products endpoint per ottenere le informazioni sulle coppie di trading. Il prossimo passo è importare la libreria, inizializzare il client, ottenere i dati dei prodotti:

importa cbpro 
importa panda come pd 
c = cbpro.PublicClient() 
dati = pd.DataFrame(c. get_products()) 
dati.coda().

Dati sui prezzi con Python Coinbase API

Per ottenere le informazioni sui dati dei prezzi, utilizzare get_product_ticker endpoint e specificare il parametro ticker. Per Cardano sarebbe:

ticker = c. get_product_ticker(product_id= 'ADA-USD') 
ticker

Il secondo modo per ottenere la data è con l'aiuto di API REST di Coinbase Pro endpoint:

importa richieste ticker = requests.get('https://api.pro.coinbase.com/products/ADA-USD/ticker"). json() 
ticker

Dati storici con Python Coinbase API

Per ottenere le informazioni sui dati storici, utilizzare get_product_historic_rates endpoint. È possibile specificare la granularità, la data di inizio e di fine.

Guarda quanto è semplice ottenere dati storici ETH-USD con i parametri predefiniti e organizzarli tutti in un frame di dati ordinato:

storico = pd.DataFrame(c. get_product_historic_rates (product_id= 'ETH-USD')) storico.colonne= ["Data", "Apri","Alto","Basso","Chiudi","Volume"] 
storico ['Date'] = pd. to_datetime(storico ['Date'], unit= 's') 
storico.set_index ('Date', inplace=True) 
storico.sort_values(by= 'Date', ascending = True,inplace = True) 
storico

Se necessario, in seguito questi dati potrebbero essere utilizzati per creare un semplice indicatore e produrre un grafico a candele.

Accesso agli indicatori tecnici con Python Coinbase API

Sfortunatamente, l'API Coinbase Pro non offre indicatori preimpostati. Tuttavia, è possibile renderli utilizzando le funzionalità pandas integrate o semplicemente basandosi sulla libreria btalib.

Ecco come creare un semplice indicatore 20 SMA con i panda:

storico ['20 SMA'] = storico.Vicino.rotolamento(20).significare() 
storico.coda()

E avendo tutti questi dati, è possibile creare un grafico interattivo:

importa plotly.grafo_oggetti come go 
fig = vai.Figura (dati=[vai.Candeliere (x = storico.indice, 
open = storico ['Aperto'], 
alto = storico ['Alto'], 
basso = storico ['Basso'], 
chiudi = storico ['Chiudi'],), 
andare.Scatter (x = storico.indice, y = storico ['20 SMA'], linea = dict (color = 'purple', width=1))]) 
fico.mostrare()

Dati del portafoglio ordini

Per raggiungere i dati del portafoglio ordini, utilizzare get_product_order_book Endpoint API Coinbase Pro. Ecco un esempio di come ottenere dati per BTC-USD e organizzare le offerte e le richieste.

order_book = c. get_product_order_book ('BTC-USD') 
_registrazione

Il prossimo passo è creare i due frame di dati:

offerte = pd . DataFrame(order_book['bids']) 
chiede = pd.DataFrame(order_book ['asks']) 
offerta.testa()

Ora unirli e rinominare le colonne per essere più informativo:

df = pd.unisci(bids, asks, left_index = True, right_index=True) 
df = df.rinomina({"0_x":"Prezzo offerta","1_x":"Dimensione offerta", "2_x": "Importo offerta", 
"0_y": "Ask Price", "1_y":"Ask Size", "2_y": "Ask Amount"}, axis = 'columns') 
df.testa()

Dati commerciali

Per ottenere i dati delle operazioni, utilizzare get_product_trades endpoint. Non dimenticare di inserire la risorsa ottenendo i dati su; ETH-USD in questo esempio.

trades = pd. DataFrame (requests.get ('https://api.pro.coinbase.com/products/ETH-USD/trades"). json ()) 
Trades.coda()

Per non bloccare la libreria Python, utilizzare l'API REST.

Come utilizzare Coinbase Pro WebSocket API?

Per accedere a Coinbase Pro WebSockets utilizzare il WebscoketClient endpoint. Grazie ad esso, gli operatori possono facilmente rimanere aggiornati sui dati interessanti.

importa cbpro 
il sito utilizza cookie tecnici e di terze parti per migliorare la tua esperienza di navigazione., 
canali=["ticker"])

Per chiudere il WebSocket, basta usare un semplice comando:

wsc.vicino()

Il comando successivo aiuta a raccogliere i dati dei prezzi ticker fino a un certo numero di messaggi WebSocket e stamparli:

tempo di importazione, cbpro 
classe myWebsocketClient(cbpro.WebsocketClient): 
def_apri (auto): 
auto.url = " wss: / / ws-feed. pro. coinbase. com/" 
auto.prodotti = ["ETH-USDT"] 
auto.canali=["ticker"] 
auto.message_count = 0 
def on_message(self, msg): 
auto.messaggio_conto += 1 
se 'prezzo' in msg e 'tipo' in msg: 
stampa ("Tipo di messaggio:", msg ["tipo"], 
"\t @ {:.3f}".formato(float(msg["prezzo"]))) 
def_close (auto): 
stampa ("Chiusura") 
wsClient = myWebsocketClient() 
Wscliente.iniziare() 
stampa (wsClient.url, wsClient.prodotti, wsClient.canale) 
mentre (wsClient._conto messaggi < 50): 
stampa ("\nmessage_count =", "{} \n".formato (wsClient.message_count)) 
tempo.sonno(1) 
Wscliente.vicino()

Esecuzione di operazioni su Coinbase Pro API

Con i comandi API python Coinbase, è abbastanza semplice eseguire operazioni. Diamo un'occhiata a due esempi: eseguire uno scambio su ETH quando BTC raggiunge un determinato prezzo ed eseguire uno scambio ETH quando BTC sposta 5% negli ultimi 5 minuti.

Come eseguire uno scambio su ETH quando BTC raggiunge un determinato prezzo?

Ora scopriamo come avviare correttamente un ordine con requisiti specificati: iniziare un commercio su ETH quando BTC raggiunge un determinato prezzo (ad esempio $38500).

1. Impostare un ordine fondazione;
2. Creare un ciclo che verificherà se il livello dei prezzi è colpito o meno;
3. Una volta raggiunto il prezzo, verrà eseguito un ordine di mercato; 
4. Attendere qualche secondo e verificare se l'ordine è stato veramente riempito. 

Dopo aver impostato la logica, è il momento di importare le librerie pertinenti e impostare le API:

importa cbpro 
importa base64 
importa json dal tempo 
importa sonno 
chiave = '' 
segreto = '' 
passphrase = '' 
codificato = json.discariche (segreto).codificare() 
b64secret = base64.codice b64 (codificato) 
auth_client = cbpro.AuthenticatedClient (key = chiave, b64secret = segreto, passphrase=passphrase) 
c = cbpro.PublicClient()

Per quanto riguarda la logica di trading principale, ecco un avviso importante per rendere l'ordine più sicuro. Per fare ciò, inserire un ordine limite prendendo l'attuale prezzo ETH-USD e aggiungendo alcuni dollari in alto.

mentre vero: 
provare: 
ticker = c. get_product_ticker(product_id= 'BTC-USD') 
tranne Eccezione come e: 
stampa (f'Error ottenere dati ticker: {e}') 
se float (ticker ['prezzo']) > = 38500.00: 
provare: 
limit = c. get_product_ticker(product_id= 'ETH-USD') 
tranne Eccezione come e: 
stampa (f'Error ottenere dati ticker: {e}') 
provare: 
ordine = auth_client.place_limit_order (product_id= 'ETH-USDT', 
lato = 'acquista', 
prezzo = float (limite['prezzo'])+2, 
dimensione='0.007') 
tranne Eccezione come e: 
stampa (f'Errore che ordina: {e}') 
sonno(2) 
provare: 
verifica = ordine ['id'] 
check_order = auth_client.get_order(order_id = verifica) 
tranne Eccezione come e: 
stampa (f'Unable per controllare l'ordine. Potrebbe essere respinta. {e}') 
se check_order['stato'] == 'fatto': 
stampa('Ordine effettuato con successo') 
stampa (check_order) 
rompere 
altro: 
stampa('L'ordine non è stato abbinato') 
rompere 
altro: 
stampa (f'il requisito non è raggiunto. Il prezzo del ticker è a {ticker ["price"]}') 
sonno(10)

Come eseguire un commercio ETH quando BTC si muove 5% negli ultimi 5 minuti?

Il compito diventa leggermente complicato. Il nuovo ciclo dovrà ottenere i prezzi delle due criptovalute e calcolare la variazione percentuale tra:

● Se la variazione percentuale è inferiore al 5% , il programma dormirà per altri 5 minuti;

● Se la variazione percentuale è uguale o superiore al 5%, il commercio verrà eseguito.

Attendere alcuni secondi dopo la realizzazione e controllare nuovamente il commercio.

mentre vero: 
provare: 
ticker_old = c. get_product_ticker(product_id= 'BTC-USD') 
tranne Eccezione come e: 
stampa (f'Error ottenere dati ticker: {e}') 
sonno(300) 
provare: 
ticker_new = c. get_product_ticker(product_id= 'BTC-USD') 
tranne Eccezione come e: 
stampa (f'Error ottenere dati ticker: {e}') 
percentuale = ((float(ticker_new['prezzo']) - float (ticker_old['prezzo']))*100)/float (ticker_old['prezzo']) 
se percentuale >= 5: 
provare: 
limit = c. get_product_ticker(product_id= 'ETH-USDT') 
tranne Eccezione come e: 
stampa (f'Error ottenere dati ticker: {e}') 
provare: 
ordine = auth_client.place_limit_order (product_id= 'ETH-USDT', 
lato = 'acquista', 
prezzo = float (limite['prezzo'])+2, 
dimensione='0.007') 
tranne Eccezione come e: 
stampa (f'Errore che ordina: {e}') 
sonno(2) 
provare: 
verifica = ordine ['id'] 
check_order = auth_client.get_order(order_id = verifica) 
tranne Eccezione come e: 
stampa (f'Unable per controllare l'ordine. Potrebbe essere respinta. {e}') 
se check_order['stato'] == 'fatto': 
stampa('Ordine effettuato con successo') 
stampa (check_order) 
rompere 
altro: 
stampa('L'ordine non è stato abbinato') 
rompere 
altro: 
stampa (f'il requisito non è raggiunto. La variazione percentuale è pari a {percentuale}')

Come annullare gli ordini con Coinbase Pro API?

È molto semplice annullare un ordine. Vai al annulla _ordine API endpoint e immettere l'ID ordine come parametro:

cliente.cancel_order (order_id = "ORDINE-ID-QUI")

Conclusione

In questo articolo, abbiamo dato un'occhiata più da vicino a Coinbase Pro API e abbiamo fornito alcuni esempi di codice python. Il codice completo può essere trovato sulla piattaforma GitHub pagina.

Le opinioni e le valutazioni espresse nel testo sono le opinioni dell'autore dell'articolo e potrebbero non rappresentare la posizione di Cryptogeek. Non dimenticare che investire in criptovalute e fare trading in borsa è associato al rischio. Prima di prendere decisioni, assicurati di fare le tue ricerche sul mercato e sui prodotti che ti interessano.


Qui non ci sono ancora commenti. Sarai il primo!