API Binance Futures

Binance

 

Binance è un exchange di criptovalute internazionale e multilingue. Offre alcune API per accedere ai dati di Binance. Questo componente consente di ottenere i Binance Futures WebSocket Market Streams.

 

https://binance-docs.github.io/apidocs/futures/en

https://binance-docs.github.io/apidocs/delivery/en

Contratti futures

L'API Binance ha 2 tipi di metodi: pubblici e privati. I metodi pubblici sono accessibili senza autenticazione, ad esempio: ottenere i prezzi del ticker. Alcuni sono privati e relativi ai dati dell'utente; questi metodi richiedono l'uso delle chiavi API Binance.

 

 

Il client può connettersi a USDT o COIN Binance Futures; imposti il contratto che desidera negoziare utilizzando la proprietà FuturesContracts:

 

 

Il client può connettersi agli account Binance di Produzione o Demo. Se la proprietà TestNet è abilitata, si collegherà all'account Demo, altrimenti si collegherà ai server Binance di produzione.

 

 

WebSocket Stream API

Il client può sottoscriversi o annullare la sottoscrizione agli eventi dopo una connessione riuscita.

Sono supportati i seguenti metodi di sottoscrizione/cancellazione della sottoscrizione.

 

Metodo Parametri Descrizione
AggregateTrades Symbol Gli Aggregate Trade Streams inviano informazioni sulle operazioni aggregate per un singolo ordine taker ogni 100 millisecondi.
MarkPrice Symbol, UpdateSpeed Prezzo mark e tasso di finanziamento per un singolo simbolo trasmessi ogni 3 secondi o ogni secondo.
AllMarkPrice UpdateSpeed Mark price e funding rate per tutti i simboli inviati ogni 3 secondi o ogni secondo.
KLine Symbol, Interval Il flusso Kline/Candlestick invia aggiornamenti alle kline/candlestick correnti ogni 250 millisecondi (se esistenti).
MiniTicker Symbol Statistiche mini-ticker su finestra mobile di 24 ore per un singolo simbolo. NON sono le statistiche del giorno UTC, ma una finestra mobile di 24 ore da requestTime alle 24 ore precedenti.
AllMiniTicker   Statistiche mini-ticker della finestra mobile di 24 ore per tutti i simboli. Queste NON sono le statistiche del giorno UTC, ma una finestra mobile di 24 ore da requestTime a 24 ore prima. Si noti che nell'array saranno presenti solo i ticker che sono cambiati.
Ticker Symbol Statistiche del ticker su una finestra mobile di 24 ore per un singolo simbolo. NON sono le statistiche del giorno UTC, bensì una finestra mobile di 24 ore dal momento della richiesta alle 24 ore precedenti.
AllMarketTickers   Statistiche ticker su finestra mobile di 24 ore per tutti i simboli. NON si tratta delle statistiche del giorno UTC, ma di una finestra mobile di 24 ore dal momento della richiesta alle 24 ore precedenti. Si noti che nell'array saranno presenti solo i ticker che hanno subito variazioni.
BookTicker Symbol Invia in tempo reale qualsiasi aggiornamento al prezzo o alla quantità della migliore offerta o domanda per un simbolo specificato.
AllBookTickers   Trasmette in tempo reale qualsiasi aggiornamento al prezzo o alla quantità del miglior bid o ask per tutti i symbol.
LiquidationOrders Symbol Gli stream degli ordini di liquidazione forzata trasmettono le informazioni sugli ordini di liquidazione forzata per un simbolo specifico
AllLiquidationOrders   Gli stream All Liquidation Order inviano informazioni sugli ordini di liquidazione forzata per tutti i simboli nel mercato.
PartialBookDepth Symbol, Depth Migliori offerte e richieste, valori validi: 5, 10 o 20.
DiffDepth Symbol Offerte e richieste, inviate ogni 250 millisecondi, 500 millisecondi, 100 millisecondi o in tempo reale (se disponibili)

 

Dopo una sottoscrizione/annullamento sottoscrizione riuscito, il client riceve un messaggio a riguardo, dove l'id è il risultato del metodo Subscribed/Unsubscribed.

 


{
  "result": null,
  "id": 1
}

User Data Stream API

Richiede un ApiKey valido ottenuto dal proprio account Binance; ApiKey deve essere impostato nella proprietà Binance.ApiKey del componente.

 

I seguenti dati vengono inviati al client ogni volta che si verifica una modifica. Non è necessario sottoscrivere alcun metodo; questa operazione viene eseguita automaticamente se si imposta un ApiKey valido.

 

Metodo Descrizione
Margin Call Quando il rapporto di rischio della posizione dell'utente è troppo elevato, questo stream verrà inviato. Questo messaggio è utilizzato solo come informazione di orientamento sul rischio e non è raccomandato per le strategie di investimento. In caso di mercato altamente volatile, può esistere la possibilità che la posizione dell'utente sia stata liquidata nello stesso momento in cui questo stream viene inviato.
Aggiornamento saldo e posizione

L'aggiornamento del saldo si verifica nelle seguenti situazioni:

 

  • Quando il saldo o la posizione vengono aggiornati, questo evento verrà inviato.
  • Quando "FUNDING FEE" cambia nel saldo dell'utente.
Aggiornamento ordine Quando viene creato un nuovo ordine, verrà inviato un evento di cambio di stato dell'ordine.

 

 

REST API

Tutti gli endpoint restituiscono un oggetto o un array JSON. I dati vengono restituiti in ordine crescente. Prima i più vecchi, poi i più recenti.

 

EndPoint API Pubblici

 

Questi endpoint sono accessibili senza alcuna autorizzazione.

 

EndPoint generali

 

Metodo Parametri Descrizione
Ping   Verifica la connettività all'API Rest.
GetServerTime   Verifica la connettività alla Rest API e ottiene l'ora corrente del server.
GetExchangeInformation   Regole di trading correnti dell'exchange e informazioni sui simboli

 

 

EndPoint dei dati di mercato

 

Metodo Parametri Descrizione
GetOrderBook Symbol Recupera il libro degli ordini.
GetTrades Symbol Ottiene gli scambi recenti
GetHistoricalTrades Symbol Ottiene trade più vecchi.
GetAggregateTrades Symbol Recupera trade aggregati e compressi. I trade eseguiti contemporaneamente, dallo stesso ordine e allo stesso prezzo avranno la quantità aggregata.
GetKLines Symbol, Interval Barre Kline/candlestick per un simbolo. Le Kline sono identificate in modo univoco dal loro orario di apertura.
Get24hrTicker Symbol Statistiche di variazione del prezzo nelle ultime 24 ore a finestra scorrevole. Fare attenzione quando si accede senza specificare un simbolo.
GetPriceTicker Symbol Prezzo più recente per un simbolo o più simboli.
GetBookTicker Symbol Miglior prezzo/quantità sull'order book per un simbolo o più simboli.
GetMarkPrice Symbol Prezzo mark e tasso di finanziamento
GetFundingRateHistory Symbol  
GetOpenInterest Symbol Ottiene l'open interest attuale di un simbolo specifico.
GetOpenInterestStatistics Symbol, Period  
GetTopTraderAccountRatio Symbol, Period  
GetTopTraderPositionRatio Symbol, Period  
GetGlobalAccountRatio Symbol, Period  
GetTakerVolume Symbol, Period
GetContinuousKLines Pair, ContractType, Interval Barre kline/candlestick per un tipo di contratto specifico.
GetIndexPriceKLines Pair, Interval Candele/barre Kline per il prezzo indice di una coppia.
GetMarkPriceKLines Symbol, Interval Barre Kline/candlestick per il prezzo mark di un simbolo.
GetPremiumIndexKLines Symbol, Interval Barre kline dell'indice premium di un simbolo.
GetFundingInfo Ottiene le informazioni sul funding rate per tutti i simboli.
GetPriceTickerV2 Symbol Prezzo più recente per un simbolo o simboli (V2).
GetIndexInfo Symbol Ottenere le informazioni sull'indice.
GetAssetIndex Symbol Ottenere l'indice degli asset per la modalità multi-asset.
GetConstituents Symbol Ottiene i componenti di un indice.
GetDeliveryPrice Coppia Ottieni il prezzo di consegna.
GetBasis Pair, ContractType, Period Ottenere i dati di base.

 

 

EndPoint API Privati

 

Richiede un APIKey e un APISecret per essere autorizzato dal server.

 

Endpoint account e transazioni

 

Metodo Parametri Descrizione
ChangePositionMode DualPosition Modifica la modalità di posizione dell'utente (Hedge Mode o One-way Mode) su OGNI simbolo
GetCurrentPositionMode   Ottiene la modalità di posizione dell'utente (Hedge Mode o One-way Mode) su OGNI simbolo
NewOrder Symbol, Side, PositionSide, Type Invia un nuovo ordine.
PlaceMarketOrder Side, Symbol, Quantity  
PlaceLimitOrder Side, Symbol, Quantity, LimitPrice  
PlaceStopOrder Side, Symbol, Quantity, StopPrice, LimitPrice  
PlaceTrailingStopOrder Side, Symbol, Quantity, aActivationPrice, aCallbackRate  
QueryOrder Symbol Verifica lo stato di un ordine.
CancelOrder Symbol Annulla un ordine attivo. È necessario inviare OrderId o OrigClientOrderId.
CancelAllOpenOrders Symbol  
AutoCancelAllOpenOrders Symbol, CountDownTimer Annulla tutti gli ordini aperti del simbolo specificato alla fine del conto alla rovescia indicato.
QueryCurrentOpenOrder Symbol  
GetOpenOrders Symbol Recupera tutti gli ordini aperti su un simbolo. Prestare attenzione quando si accede senza specificare un simbolo.
GetAllOrders Symbol Ottieni tutti gli ordini dell'account: attivi, annullati o eseguiti.
GetAccountBalance    
GetAccountInformation   Ottieni le informazioni sull'account corrente.
ChangeInitialLeverage Symbol, Leverage Modifica la leva iniziale dell'utente per uno specifico mercato di simboli.
ChangeMarginType Symbol, MarginType  
ModifyIsolatedPositionMargin Simbolo, Quantità, Tipo  
GetPositionMarginChangeHistory Symbol  
GetPositionInformation Symbol  
GetAccountTradeList Symbol  
GetIncomeHistory Symbol  
GetNotionalLeverageBracket Symbol
TestNewOrder Symbol, Side, PositionSide, Type Testa la creazione di un nuovo ordine e la firma/recvWindow lungo. Crea e valida un nuovo ordine ma non lo invia al motore di corrispondenza.
ModifyOrder Symbol Modifica un ordine esistente.
NewBatchOrders BatchOrders Inserisce più ordini.
ModifyBatchOrders BatchOrders Modifica più ordini.
CancelBatchOrders Symbol Annulla più ordini.
GetOrderAmendment Symbol Ottieni la cronologia delle modifiche all'ordine.
CountdownCancelAll Symbol, CountdownTime Annulla tutti gli ordini aperti del simbolo specificato alla fine del conto alla rovescia indicato.
GetForceOrders Symbol Ottieni gli ordini di liquidazione forzata dell'utente.
GetADLQuantile Symbol Ottieni la stima del quantile ADL per le posizioni.
GetAccountBalanceV3 Ottieni il saldo dell'account futures (V3).
GetAccountInformationV3 Recupera le informazioni sull'account corrente (V3).
GetPositionInformationV3 Symbol Recupera le informazioni sulla posizione corrente (V3).
GetCommissionRate Symbol Ottieni il tasso di commissione dell'utente.
GetAccountConfig Ottieni la configurazione dell'account corrente.
GetSymbolConfig Symbol Ottieni la configurazione del simbolo.
GetOrderRateLimit Ottieni il limite di frequenza degli ordini dell'utente.
GetApiTradingStatus Symbol Ottieni indicatori delle regole quantitative di trading API.
ChangeMultiAssetsMode MultiAssetsMargin Modifica la modalità multi-asset dell'utente. Modalità Multi-Asset: true; Modalità Single-Asset: false.
GetMultiAssetsMode Recupera la modalità multi-asset corrente dell'utente.
SetFeeBurn FeeBurn Modifica lo stato di burn della commissione BNB dell'utente.
GetFeeBurn Ottieni lo stato di riduzione delle commissioni BNB dell'utente.
CreateListenKey Avvia un nuovo stream di dati utente. Lo stream verrà chiuso dopo 60 minuti a meno che non venga inviato un keepalive.
KeepAliveListenKey Mantieni attivo un flusso di dati utente per evitare un timeout.
CloseListenKey Chiude un user data stream.

 

 

 

Eventi

I messaggi Binance Futures vengono ricevuti nel componente TsgcWebSocketClient; è possibile utilizzare i seguenti eventi:

 

OnConnect

Dopo una connessione riuscita al server Binance.

OnDisconnect

Dopo una disconnessione dal server Binance

OnMessage

I messaggi inviati dal server al client vengono gestiti in questo evento.

OnError

In caso di qualsiasi errore nel protocollo, verrà chiamato questo evento.

OnException

Se si verifica un'eccezione non gestita, verrà chiamato questo evento.

 

Inoltre, esiste un evento specifico nel componente API Binance, chiamato OnBinanceHTTPException, che viene generato ogni volta che si verifica un errore nella chiamata di una richiesta HTTP (API REST o WebSocket User Stream).

 

(*) A causa di modifiche nei server Binance, le versioni di Indy precedenti a Rad Studio 10.1 non saranno in grado di connettersi ai Test Server. Questo problema non interessa la Enterprise Edition o se la versione di Indy è stata aggiornata all'ultima disponibile.