API Binance Futures

Binance

 

A Binance é uma exchange internacional de criptomoedas multilíngue. Ela oferece algumas APIs para acessar os dados da Binance. Este componente permite que você obtenha os Market Streams WebSocket da Binance Futures.

 

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

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

Futures Contracts

A API da Binance tem 2 tipos de métodos: públicos e privados. Os métodos públicos podem ser acessados sem autenticação, por exemplo: obter preços de ticker. Alguns são privados e relacionados a dados do usuário; esses métodos exigem o uso das API keys da Binance.

 

 

O cliente pode conectar a Binance Futures USDT ou COIN, defina qual contrato você quer negociar usando a propriedade FuturesContracts:

 

 

O cliente pode se conectar às contas Production ou Demo da Binance. Se a propriedade TestNet estiver habilitada, ele se conectará à conta Demo; caso contrário, conectará aos servidores de produção da Binance.

 

 

WebSocket Stream API

O cliente pode assinar / cancelar a assinatura de eventos após uma conexão bem-sucedida.

Os seguintes métodos de Assinatura / Cancelamento de assinatura são suportados.

 

Method Parâmetros Descrição
AggregateTrades Symbol Os Aggregate Trade Streams enviam informações de negociação agregadas para uma única ordem taker a cada 100 milissegundos.
MarkPrice Symbol, UpdateSpeed Mark price e funding rate para um único símbolo, enviados a cada 3 segundos ou a cada segundo.
AllMarkPrice UpdateSpeed Mark price e funding rate para todos os símbolos enviados a cada 3 segundos ou a cada segundo.
KLine Symbol, Interval O Kline/Candlestick Stream envia atualizações via push para as klines/candlestick atuais a cada 250 milissegundos (se existentes).
MiniTicker Symbol Estatísticas de mini-ticker de janela móvel de 24h para um único símbolo. Estas NÃO são as estatísticas do dia UTC, mas uma janela móvel de 24h do requestTime até 24h antes.
AllMiniTicker   Estatísticas do mini-ticker da janela móvel de 24h para todos os símbolos. Estas NÃO são as estatísticas do dia UTC, mas uma janela móvel de 24h a partir do requestTime até 24h antes. Observe que apenas os tickers que mudaram estarão presentes no array.
Ticker Symbol Estatísticas de ticker de janela móvel de 24h para um único símbolo. Estas NÃO são as estatísticas do dia UTC, mas uma janela móvel de 24h do requestTime até 24h antes.
AllMarketTickers   Estatísticas de ticker de janela deslizante de 24h para todos os símbolos. Estas NÃO são as estatísticas do dia UTC, mas uma janela deslizante de 24h do requestTime até 24h antes. Note que apenas os tickers que mudaram estarão presentes no array.
BookTicker Symbol Envia qualquer atualização do melhor preço ou quantidade de bid ou ask em tempo real para um símbolo especificado.
AllBookTickers   Envia qualquer atualização no preço ou na quantidade do melhor bid ou ask em tempo real para todos os símbolos.
LiquidationOrders Symbol Os Liquidation Order Streams enviam informações de ordens de liquidação forçada para um símbolo específico
AllLiquidationOrders   Os All Liquidation Order Streams enviam informações de ordens de liquidação forçada para todos os símbolos no mercado.
PartialBookDepth Symbol, Depth Bids e asks do topo, valores válidos são 5, 10 ou 20.
DiffDepth Symbol Bids e asks, enviados a cada 250 milissegundos, 500 milissegundos, 100 milissegundos ou em tempo real (se existente)

 

Após uma assinatura / cancelamento de assinatura bem-sucedido, o cliente recebe uma mensagem sobre isso, onde id é o resultado do método Subscribed / Unsubscribed.

 


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

User Data Stream API

Requer uma ApiKey válida obtida da sua conta binance, e a ApiKey deve ser definida na propriedade Binance.ApiKey do componente.

 

Os dados a seguir são enviados ao cliente toda vez que há uma alteração. Não há necessidade de assinar nenhum método; isso é feito automaticamente se você definir uma ApiKey válida.

 

Method Descrição
Margin Call Quando a razão de risco da posição do usuário está muito alta, este stream será enviado. Esta mensagem é usada apenas como informação de orientação de risco e não é recomendada para estratégias de investimento. No caso de um mercado altamente volátil, pode haver a possibilidade de que a posição do usuário tenha sido liquidada ao mesmo tempo em que este stream é enviado.
Balance and Position Update

A atualização de saldo ocorre durante o seguinte:

 

  • Quando o saldo ou a posição forem atualizados, este evento será enviado.
  • Quando a "FUNDING FEE" altera o saldo do usuário.
Order Update Quando uma nova ordem é criada, a mudança de status da ordem enviará esse evento.

 

 

REST API

Todos os endpoints retornam um objeto ou array JSON. Os dados são retornados em ordem ascendente. Mais antigos primeiro, mais recentes por último.

 

EndPoints da API Pública

 

Esses endpoints podem ser acessados sem nenhuma autorização.

 

General EndPoints

 

Method Parâmetros Descrição
Ping   Testa a conectividade com a Rest API.
GetServerTime   Testar a conectividade com a Rest API e obter a hora atual do servidor.
GetExchangeInformation   Regras de negociação atuais do exchange e informações do símbolo

 

 

Market Data EndPoints

 

Method Parâmetros Descrição
GetOrderBook Symbol Obtém o Order Book.
GetTrades Symbol Obter negociações recentes
GetHistoricalTrades Symbol Obtém negociações mais antigas.
GetAggregateTrades Symbol Obtém negociações agregadas e compactadas. Negociações que são executadas ao mesmo tempo, da mesma ordem, com o mesmo preço terão a quantidade agregada.
GetKLines Symbol, Interval Barras de Kline/candlestick de um símbolo. As Klines são identificadas exclusivamente pelo seu open time.
Get24hrTicker Symbol Estatísticas de variação de preço da janela móvel de 24 horas. Tenha cuidado ao acessar isto sem um símbolo.
GetPriceTicker Symbol Preço mais recente de um símbolo ou símbolos.
GetBookTicker Symbol Melhor preço/quantidade no order book para um símbolo ou símbolos.
GetMarkPrice Symbol Mark Price e Funding Rate
GetFundingRateHistory Symbol  
GetOpenInterest Symbol Obtém o open interest atual de um símbolo específico.
GetOpenInterestStatistics Symbol, Period  
GetTopTraderAccountRatio Symbol, Period  
GetTopTraderPositionRatio Symbol, Period  
GetGlobalAccountRatio Symbol, Period  
GetTakerVolume Symbol, Period
GetContinuousKLines Pair, ContractType, Interval Barras de kline/candlestick para um tipo de contrato específico.
GetIndexPriceKLines Pair, Interval Barras de Kline/candlestick para o preço de índice de um par.
GetMarkPriceKLines Symbol, Interval Barras de Kline/candlestick para o mark price de um símbolo.
GetPremiumIndexKLines Symbol, Interval Barras de kline do índice premium de um símbolo.
GetFundingInfo Obtém informações da taxa de financiamento para todos os símbolos.
GetPriceTickerV2 Symbol Preço mais recente para um símbolo ou símbolos (V2).
GetIndexInfo Symbol Obter informações do índice.
GetAssetIndex Symbol Obtém o índice de ativos para o modo multi-assets.
GetConstituents Symbol Obter os constituintes do índice.
GetDeliveryPrice Pair Obtém o preço de entrega.
GetBasis Pair, ContractType, Period Obtém dados de base.

 

 

EndPoints da API Privada

 

Requer uma APIKey e uma APISecret para ser autorizado pelo servidor.

 

EndPoints de Conta e Negociações

 

Method Parâmetros Descrição
ChangePositionMode DualPosition Alterar o modo de posição do usuário (Hedge Mode ou One-way Mode) em TODOS os símbolos
GetCurrentPositionMode   Obtém o modo de posição do usuário (Hedge Mode ou One-way Mode) em TODOS os símbolos
NewOrder Symbol, Side, PositionSide, Type Envia uma nova ordem.
PlaceMarketOrder Side, Symbol, Quantity  
PlaceLimitOrder Side, Symbol, Quantity, LimitPrice  
PlaceStopOrder Side, Symbol, Quantity, StopPrice, LimitPrice  
PlaceTrailingStopOrder Side, Symbol, Quantity, aActivationPrice, aCallbackRate  
QueryOrder Symbol Verifica o status de uma ordem.
CancelOrder Symbol Cancela uma ordem ativa. OrderId ou OrigClientOrderId deve ser enviado.
CancelAllOpenOrders Symbol  
AutoCancelAllOpenOrders Symbol, CountDownTimer Cancela todas as ordens abertas do símbolo especificado ao final da contagem regressiva especificada.
QueryCurrentOpenOrder Symbol  
GetOpenOrders Symbol Obter todas as ordens abertas em um símbolo. Tenha cuidado ao acessar isto sem um símbolo.
GetAllOrders Symbol Obtém todas as ordens da conta; ativas, canceladas ou preenchidas.
GetAccountBalance    
GetAccountInformation   Obtém as informações da conta atual.
ChangeInitialLeverage Symbol, Leverage Alterar a alavancagem inicial do usuário em um mercado de símbolo específico.
ChangeMarginType Symbol, MarginType  
ModifyIsolatedPositionMargin Symbol, Amount, Type  
GetPositionMarginChangeHistory Symbol  
GetPositionInformation Symbol  
GetAccountTradeList Symbol  
GetIncomeHistory Symbol  
GetNotionalLeverageBracket Symbol
TestNewOrder Symbol, Side, PositionSide, Type Testa a criação de nova ordem e a assinatura/recvWindow long. Cria e valida uma nova ordem, mas não a envia ao matching engine.
ModifyOrder Symbol Modificar uma ordem existente.
NewBatchOrders BatchOrders Coloca múltiplas ordens.
ModifyBatchOrders BatchOrders Modificar múltiplas ordens.
CancelBatchOrders Symbol Cancela múltiplas ordens.
GetOrderAmendment Symbol Obtém o histórico de modificações de ordens.
CountdownCancelAll Symbol, CountdownTime Cancela todas as ordens abertas do símbolo especificado ao final da contagem regressiva especificada.
GetForceOrders Symbol Obtém as ordens de liquidação forçada do usuário.
GetADLQuantile Symbol Obtém a estimativa de quantil ADL para posições.
GetAccountBalanceV3 Obtém o saldo da conta de futures (V3).
GetAccountInformationV3 Obtém as informações atuais da conta (V3).
GetPositionInformationV3 Symbol Obtém as informações de posição atuais (V3).
GetCommissionRate Symbol Obtém a taxa de comissão do usuário.
GetAccountConfig Obtém a configuração atual da conta.
GetSymbolConfig Symbol Obtém a configuração do símbolo.
GetOrderRateLimit Obtém o rate limit de ordens do usuário.
GetApiTradingStatus Symbol Obtém os indicadores de regras quantitativas de negociação da API.
ChangeMultiAssetsMode MultiAssetsMargin Altera o modo multi-assets do usuário. Multi-Assets Mode: true; Single-Asset Mode: false.
GetMultiAssetsMode Obtém o modo multi-assets atual do usuário.
SetFeeBurn FeeBurn Altera o status de fee burn de BNB do usuário.
GetFeeBurn Obtém o status de queima de taxa BNB do usuário.
CreateListenKey Inicia um novo user data stream. O stream será fechado após 60 minutos, a menos que um keepalive seja enviado.
KeepAliveListenKey Mantém vivo um user data stream para evitar um timeout.
CloseListenKey Fechar um user data stream.

 

 

 

Eventos

As mensagens de Binance Futures são recebidas no componente TsgcWebSocketClient, você pode utilizar os seguintes eventos:

 

OnConnect

Após uma conexão bem-sucedida ao servidor Binance.

OnDisconnect

Após uma desconexão do servidor Binance

OnMessage

Mensagens enviadas pelo servidor ao cliente são tratadas neste evento.

OnError

Se houver algum erro no protocolo, este evento será chamado.

OnException

Se houver uma exceção não tratada, este evento será chamado.

 

Além disso, há um evento específico no Componente da API Binance, chamado OnBinanceHTTPException, que é disparado cada vez que há um erro ao chamar uma Requisição HTTP (REST API ou WebSocket User Stream).

 

(*) Devido a alterações nos Servidores da Binance, as versões do Indy anteriores ao Rad Studio 10.1 não conseguirão conectar aos Servidores de Teste. Este problema não afeta a Enterprise Edition nem se a versão do Indy tiver sido atualizada para a mais recente.