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
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.
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
}
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:
|
| Order Update | Quando uma nova ordem é criada, a mudança de status da ordem enviará esse evento. |
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. |
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.