Punti principali
Le API sono pezzi di codice che consentono alle applicazioni di condividere informazioni e possono essere utilizzate per migliorare le strategie di trading di criptovalute.
Postman è una piattaforma API che semplifica il processo di creazione e utilizzo delle API.
Scopri di più sull'utilizzo di Postman per il trading spot nell'ecosistema API di Binance.
introduzione
Comprendere e utilizzare un'API per il trading di criptovalute può aprire un mondo di possibilità per entrare e uscire da posizioni. Con alcune semplici conoscenze di codifica, puoi collegarti al backend di uno scambio per automatizzare le tue strategie di trading. Evitando il sito web, puoi intraprendere un percorso molto più veloce verso il motore di corrispondenza per applicazioni ad alte prestazioni.
In questo articolo utilizzeremo Postman, una piattaforma API semplificata, per comunicare con l'exchange. Non preoccuparti: non metteremo a rischio i fondi reali.
Prerequisiti
Chiavi della rete di prova
Utilizzeremo il testnet per i nostri scopi attuali. Questa funzionalità di simulazione ci fornirà alcuni fondi senza valore nel mondo reale con cui giocare. Funzionano allo stesso modo delle monete e dei gettoni reali, quindi una volta che avrai acquisito dimestichezza con l'API, potrai iniziare a utilizzarla per scambiare fondi reali.
Inizia andando alla rete Spot Test.
Per ottenere l'accesso, accedi con un account GitHub. Dovrai crearne uno se non l'hai già fatto.
Fare clic su Autentica e accedere tramite GitHub.
Sotto Chiavi API, verrai informato che non hai chiavi registrate. Fare clic su Genera chiave HMAC_SHA256 per creare una coppia.
Nella schermata successiva, assegna un'etichetta ai tasti. Chiamali come vuoi e premi Genera.
Ti vengono presentate due chiavi: la chiave API e la chiave segreta. È importante registrarli ora. In caso contrario dovrai avviare nuovamente il processo di creazione della chiave. Ti consigliamo di memorizzarli nell'app delle note del tuo computer per poterli facilmente copiare e incollare in seguito.
Nota: vale la pena etichettare le chiavi quando si utilizza la borsa reale per gestire chiavi diverse. Il tuo account può avere più chiavi con autorizzazioni diverse. Se utilizzi diversi bot di trading, l'utilizzo di chiavi separate con etichette descrittive semplifica la gestione delle autorizzazioni o l'eliminazione di singole chiavi senza modificare tutti i bot.
Download e installazione di Postman
Postman è una piattaforma di collaborazione API. È un punto di partenza perfetto per noi: avremo accesso a raccolte di richieste Binance che testeremo senza dover scrivere una singola riga di codice.
Il programma è disponibile per Mac, Windows e Linux. Vai alla pagina Download e scarica il file .zip.
Una volta completato, individualo in Esplora file e installalo. Avvia l'applicazione e siamo a posto! Puoi creare un account per accedere, ma non è necessario. Se vuoi saltare questo passaggio, seleziona semplicemente l'opzione per farlo nella parte inferiore della finestra.
Creare l'ambiente
A questo punto, dovresti avere un'interfaccia simile alla seguente.
Innanzitutto, vogliamo creare il nostro ambiente. Questo passaggio è solo un modo per aggiungere variabili alle richieste con cui lavoreremo. Dovremo prima prendere alcune informazioni dal repository Binance GitHub. Vai qui e scarica il file .zip.
Il download non dovrebbe richiedere molto tempo. Puoi trovarlo in Esplora file e decomprimerlo. Quindi, possiamo tornare a Postman.
Fai clic sull'icona a forma di ingranaggio nell'angolo in alto a destra (illustrata sopra). Verrai accolto con un popup Gestisci ambienti.
Seleziona Importa e vai alla cartella estratta (binance-postman-api).
Inseriscilo, quindi entra nella cartella degli ambienti.
Ora vedrai due file (uno per mainnet e uno per testnet). Quello che stiamo cercando è binance_com_spot_testnet_api.postman_environment.json. Assicurati di avere quello corretto perché le nostre chiavi non funzioneranno con l'altra.
Quasi lì. Fai clic su Binance Spot Testnet API per vedere le variabili di seguito. Modifica i due parametri delineati in rosso incollando le chiavi salvate in precedenza. Fare clic su Aggiorna ed uscire dal popup.
In questa schermata, lascia vuoti i campi timestamp e firma. Questi due valori verranno creati automaticamente ad ogni richiesta.
C'è un'ultima cosa da fare. A destra dell'icona a forma di ingranaggio su cui abbiamo fatto clic in precedenza per impostare l'ambiente, vedrai un menu a discesa che attualmente dice Nessun ambiente. Fai clic e seleziona Binance Spot Testnet API.
Importazione della raccolta
Ora importeremo la raccolta: si tratta di un vasto assortimento di richieste che svolgono il lavoro pesante per noi quando effettuiamo le chiamate. Per caricarlo nel nostro ambiente:
Fai clic su Importa nell'angolo in alto a sinistra.
Nel popup, nella scheda File, seleziona Carica file.
Stiamo cercando di nuovo la cartella binance-postman-api. Individuarlo e aprirlo.
Questa volta, inserisci le raccolte nella sottodirectory.
Ci sono ancora due file qui. Uno è per lavorare con l'API dei futures. Ma stiamo lavorando con quello spot, quindi devi selezionare il file Binance Spot API.postman_collection.json.
Ora dovresti vedere una schermata di conferma che identifica l'importazione come nel formato Postman Collection. Seleziona Importa.
Nella scheda Raccolte a sinistra della finestra, ora noterai che abbiamo una cartella con oltre 100 richieste. Congratulazioni! Siamo a posto. Nella prossima sezione, esamineremo i tipi di richieste che possiamo avanzare.
Facendo richieste
Se espandi le cartelle nella scheda Raccolte, vedrai che possiamo fare molte richieste diverse. Dalla codifica a colori, potresti notare che esistono tre tipi di metodi che possiamo utilizzare:
GET: il metodo GET viene utilizzato per recuperare materiale da un server. Lo useremo per trovare informazioni sul saldo del tuo conto, sui prezzi degli asset, ecc.
POST: generalmente utilizzeremo il metodo POST per creare informazioni su un server. Questo metodo è necessario per cose come effettuare ordini, richiedere prelievi, ecc.
DELETE: il metodo DELETE richiede al server di eliminare le informazioni. Ti tornerà utile per annullare gli ordini.
Trova l'elenco dei simboli e le regole del trading
È il momento della nostra prima richiesta! Otterremo i simboli che possiamo scambiare in borsa e le regole di trading:
OTTIENI /api/v3/exchangeInfo
Questo non richiede parametri aggiuntivi: potresti copiarlo e incollarlo nella barra degli indirizzi e otterresti una risposta. Ma Postman semplifica la visualizzazione e la modifica delle richieste in cui includiamo diversi parametri.
Per caricare questa richiesta, seleziona Mercato > Scambia informazioni. Apparirà una scheda come la seguente:
Non abbiamo bisogno di fare nient'altro qui, quindi vai avanti e premi Invia. Riceverai quindi una risposta:
Nella sezione evidenziata in alto, vedrai alcune informazioni importanti:
Lo stato della risposta (200 significa che abbiamo avuto successo, 400-499 significa che abbiamo riscontrato un problema).
Il tempo impiegato per ricevere la risposta (meno di un secondo).
La dimensione della risposta (~22KB).
Nella seconda casella c'è la maggior parte della risposta. Questa casella contiene informazioni sull'exchange, sulle coppie che puoi scambiare e sui loro importi minimi/massimi.
Sembrano molte informazioni, ma il formato semplifica il lavoro a livello di programmazione. Quando scrivi script per interagire con esso, sarai facilmente in grado di individuare proprietà specifiche di elementi specifici dalla risposta.
Controlla i saldi dei conti
Controlliamo quali risorse abbiamo e quanto di ciascuna:
OTTIENI /api/v3/account
Puoi trovarlo in Commercio > Informazioni sull'account. Fare clic su di esso per visualizzare un layout simile al precedente. Noterai anche, tuttavia, che abbiamo due nuove variabili: timestamp e firma. La firma è una misura di sicurezza. Poiché ora chiediamo informazioni sensibili, dimostreremo che siamo il titolare del conto.
Il timestamp indica al server quando è stata inviata la richiesta. Poiché le reti possono essere inaffidabili o andare incontro a tempi di inattività, il server potrebbe ricevere la nostra richiesta molto più tardi del previsto. Se è trascorso troppo tempo, rifiuterà la richiesta. Puoi specificare quanto tempo vuoi attendere con il parametro recvWindow, che per impostazione predefinita è 5000 millisecondi.
Postman gestisce per noi la generazione di entrambi questi campi. Fai clic su Invia e riceverai una risposta. Sotto i saldi, dovresti vedere sei asset: BNB, BTC, BUSD, ETH, LTC e TRX. Il saldo sarà suddiviso tra risorse libere e bloccate. Non ne abbiamo ancora bloccato nessuno, quindi le tue risorse dovrebbero essere tutte gratuite.
Ottieni il prezzo corrente per un simbolo
Possiamo ottenere il prezzo corrente di un asset in diversi modi. Forse il più semplice è con la seguente richiesta:
OTTIENI /api/v3/ticker/24hr
Come puoi immaginare, questo ci fornirà informazioni sui prezzi degli asset nelle ultime ventiquattro ore. Puoi trovarlo in Mercato > Statistiche sulla variazione dei prezzi del ticker 24 ore. La coppia predefinita con cui siamo accolti come variabile simbolo è BTC/USDT.
Puoi inviarlo immediatamente per visualizzare un'analisi dettagliata delle informazioni sui prezzi. Puoi anche modificare il simbolo (in BNB/USDT, LTC/USDT, ecc.) o deselezionare la variabile per restituire dati per 40 coppie.
Abbiamo anche una chiamata più semplice (Mercato > Symbol Price Ticker) che restituisce il prezzo corrente a cui viene scambiato un asset:
OTTIENI /api/v3/prezzo
Come nel caso precedente, puoi modificare la variabile simbolo o rimuoverla completamente e ottenere il prezzo più recente per tutti i simboli.
Controlla la profondità attuale del book degli ordini
La profondità del portafoglio ordini, chiamata anche profondità del mercato (DOM), può dirci molto sul mercato. Effettueremo una chiamata che restituirà alcune informazioni utili:
OTTIENI /api/v3/depth
Quando lo inviamo con i valori predefiniti (Mercato > Libro ordini), riceviamo una risposta che ci informa sulle offerte e richiede BTC/USDT. Il server testnet non produrrà tanti dati quanto quello reale, quindi di seguito è riportato uno screenshot di ciò che ti aspetteresti di vedere in un ambiente reale:
Nella sezione evidenziata sopra, possiamo vedere la prima offerta. Dato che stiamo esaminando il book per BTC/USDT, il numero superiore è il prezzo che qualcuno è disposto a pagare per il tuo BTC. Di seguito è riportato l’importo che sono disposti ad acquistare. Pertanto, questo dice che questo ordine richiede 0,999 BTC ad un tasso di 9704,65 USDT per BTC. Se continuassimo a scorrere verso il basso, vedremmo diminuire il prezzo dell'offerta, rappresentando gli acquirenti che pagherebbero di meno.
L’offerta migliore sarà naturalmente la più interessante se stai cercando un ottimo rapporto qualità-prezzo. Tuttavia, se stai cercando di vendere 3 BTC, ad esempio, sarai in grado di vendere solo 0,999 BTC al prezzo migliore. Dovrai accettare le offerte successive (più economiche) fino a quando il tuo ordine non sarà stato evaso.
Continua a scorrere e vedrai le domande. Sono funzionalmente simili alle offerte, tranne che rappresentano ordini di vendita di BTC in cambio di USDT.
Effettua un ordine di prova
Ora pubblicheremo un ordine di prova.
POST /api/v3/ordine/test
Anche se utilizziamo solo fondi testnet, questa richiesta non effettuerà effettivamente un ordine. Può essere utile testare gli ordini prima di inviarli effettivamente. Lo trovi in Commercio > Prova nuovo ordine (COMMERCIO).
Puoi vedere che abbiamo molti più parametri coinvolti. Esaminiamo quelli selezionati:
simbolo: lo abbiamo già incontrato in precedenza. Questa è la coppia che vuoi scambiare.
lato – qui stabilirai se vuoi ACQUISTARE o VENDERE. Con la coppia BTC/USDT, BUY indica che desideri acquistare BTC per USDT, mentre sell venderà BTC per USDT.
type – il tipo di ordine che desideri inviare. Valori possibili (dettagliati qui):
LIMITE
MERCATO
STOP_LOSS
STOP_LOSS_LIMIT
AVERE UN PROFITTO
TAKE_PROFIT_LIMIT
LIMIT_MAKER
timeInForce – questo parametro esprime il modo in cui desideri che l'ordine venga eseguito:
GTC (valido fino all'annullamento): forse la configurazione più popolare, GTC garantirà che il tuo ordine sia valido fino a quando non verrà evaso o annullato.
FOK (riempi o uccidi) – FOK ordina all'exchange di eseguire un ordine tutto in una volta. Se lo scambio non può farlo, l’ordine viene annullato immediatamente.
IOC (immediato o annullato): l'ordine, tutto o parte di esso, deve essere eseguito immediatamente, altrimenti verrà annullato. A differenza del FOK, gli ordini non vengono annullati se possono essere parzialmente evasi.
quantità – la quantità del bene che desideri acquistare o vendere.
prezzo – il prezzo al quale vuoi vendere. Per la coppia BTC/USDT, questo è espresso in USDT.
newClientOrderId – un identificatore per l'ordine. Questo non è un campo obbligatorio, ma puoi impostarlo su un identificatore che faciliterà l'esecuzione di query in seguito. Altrimenti, viene generato casualmente dallo scambio.
Va bene! Creiamo ora un ordine di prova. Procederemo con i valori generati automaticamente: un ordine limite per vendere 0,1 BTC per USDT a $ 9000. Premi Invia. Se l'operazione ha esito positivo, riceveremo {} come risposta.
Effettua un ordine reale
È ora di effettuare un vero ordine.
POST /api/v3/ordine
Vai su Commercio > Nuovo ordine. Ormai hai familiarità con gli ordini di prova, quindi i parametri qui non saranno una sorpresa. Lasciamo tutti i valori così come sono, ma cambiamo il prezzo che stiamo vendendo a 40.000 USD. Modifica il valore del prezzo per riflettere questo. Quindi, premi Invia.
La tua risposta restituisce una serie di dettagli sull'ordine in caso di esito positivo.
Controlla lo stato di un ordine aperto
Abbiamo ricevuto la conferma che l'ordine è stato effettuato nella sezione precedente, ma cosa succede se vogliamo ricontrollarlo in seguito? Abbiamo alcune richieste a nostra disposizione.
OTTIENI /api/v3/openOrders
Lo troverai in Commercio > Ordini aperti correnti (USER_DATA). BTC/USDT è selezionato per impostazione predefinita. Se premi Invia, riceverai tutti i tuoi ordini BTC/USDT aperti (finora dovresti vedere solo quello che abbiamo impostato in precedenza). Puoi anche scegliere di non specificare un simbolo, che restituirà invece tutti i tuoi ordini aperti.
OTTIENI /api/v3/allOrders
Trade > All Orders (USER_DATA) ti offre una panoramica di tutti gli ordini, non solo di quelli aperti. Qui devi fornire un simbolo. orderId, startTime, endTime e limit sono parametri facoltativi che possono aiutarti a perfezionare la ricerca. Li lasceremo qui, quindi deselezionali. Premi Invia e vedrai la stessa risposta di prima. Se avessi ordini chiusi o annullati, li vedresti anche qui.
Infine, possiamo interrogare ordini specifici con quanto segue:
OTTIENI /api/v3/order
Ottienilo in Commercio > Query ordine (USER_DATA). Dovrai fornire orderId o origClientOrderId (il tag facoltativo "newClientOrderId" che puoi aggiungere agli ordini). Deseleziona l'ID ordine. Per origClientOrderId, forniremo il tag predefinito di prima: "my_order_id_1". Compila il campo e premi Invia per ottenere la risposta.
Annulla un ordine
Dopo un po’ di tempo, potremmo decidere che l’obiettivo di 40.000 USD è troppo ottimistico, quindi vogliamo annullarlo. In tal caso, utilizzeremmo quanto segue:
ELIMINA /api/v3/order
Sotto Trade > Cancel Order c'è una richiesta che ci permetterà di individuare gli ordini per la cancellazione. Deseleziona orderId e newClientOrderId e passa "my_order_id_1" come valore per origClientOrderId.
Quando invii questa richiesta, l'ordine verrà restituito. Se scorri verso il basso fino a "stato", vedrai che è effettivamente annullato. Per confermarlo, utilizza nuovamente l'endpoint GET /api/v3/openOrders (ottenendo un elenco vuoto) o GET /api/v3/order con origClientOrderId.
Effettua un ordine che viene eseguito immediatamente
Il nostro ordine precedente non è stato eseguito perché era un ordine limite che si sarebbe attivato solo quando il prezzo di BTC avesse raggiunto i 40.000 USD. Con un ordine di mercato, in sostanza diciamo: “Compra o vendi a qualunque prezzo l’asset sia attualmente scambiato”. Questo si riempirà all'istante.
Per questo, torniamo a Commercio> Nuovo ordine. Dimostreremo il tipo di risposta (newOrderRespType), che è un parametro che possiamo modificare a seconda della risposta che vogliamo dal server. Ci sono tre opzioni qui: ACK, RESULT o FULL: puoi vedere esempi di ciascuna risposta qui. Utilizzeremo ACK, che ci dà una semplice conferma che l'ordine è stato ricevuto.
Di seguito puoi vedere che stiamo per inviare un ordine di mercato per vendere BNB in cambio di BUSD al prezzo di mercato corrente.
Tieni presente che la risposta ci fornisce informazioni minime:
Puoi verificare che l'ordine sia stato eseguito con l'endpoint /api/v3/allOrders.
Controllare le tue operazioni
Diamo infine un’occhiata all’endpoint per controllare le tue operazioni:
OTTIENI /api/v3/myTrades
Si trova in Commercio > Elenco scambi account (USER_DATA). Ti consente di controllare ogni operazione per un particolare simbolo. Se vuoi vedere tutte le tue operazioni per il simbolo predefinito (BTC/USDT), deseleziona semplicemente startTime, endTime e fromId. La risposta restituirà fino a 500 operazioni: modifica semplicemente il limite se vuoi vederne di più.
Debug con Postman
In Postman, è possibile rivelare ulteriormente la richiesta HTTP grezza e la risposta.
Questo menu aprirà la console Postman, che stampa i dettagli di ogni richiesta.
Inizia con l'API Binance
Lo scopo di questa guida era di introdurti delicatamente all'API Binance senza scrivere una sola riga di codice. Se hai seguito, ora dovresti avere un'idea di come possiamo richiedere e inviare informazioni.
Domande nel frattempo? Vai al nostro crescente forum della Binance Developer Community o dai un'occhiata alla documentazione.
Ulteriori letture
Glossario: API (Application Programming Interface)
Cos'è una chiave API e come utilizzarla in modo sicuro?
Come utilizzare una chiave API in modo sicuro: 5 suggerimenti da Binance