Binance es un exchange de criptomonedas internacional y multilingüe. Ofrece algunas APIs para acceder a los datos de Binance. Este componente le permite obtener los Binance Futures WebSocket Market Streams.
https://binance-docs.github.io/apidocs/futures/en
https://binance-docs.github.io/apidocs/delivery/en
La API de Binance tiene 2 tipos de métodos: públicos y privados. Los métodos públicos son accesibles sin autenticación, por ejemplo: obtener precios de tickers. Algunos son privados y están relacionados con datos del usuario; esos métodos requieren el uso de claves API de Binance.
El cliente puede conectarse a los futuros Binance USDT o COIN; establezca el contrato que desea negociar usando la propiedad FuturesContracts:
El cliente puede conectarse a cuentas de Binance de Producción o Demo. Si la propiedad TestNet está habilitada, se conectará a la cuenta Demo; de lo contrario, se conectará a los servidores de producción de Binance.
El cliente puede suscribirse o cancelar la suscripción a eventos tras una conexión exitosa.
Se admiten los siguientes métodos de suscripción / cancelación de suscripción.
| Método | Parámetros | Descripción |
| AggregateTrades | Symbol | Los Aggregate Trade Streams transmiten información de operaciones agregadas para una única orden de tomador cada 100 milisegundos. |
| MarkPrice | Symbol, UpdateSpeed | Precio de marca y tasa de financiación para un único símbolo, enviados cada 3 segundos o cada segundo. |
| AllMarkPrice | UpdateSpeed | Precio de marca y tasa de financiación para todos los símbolos enviados cada 3 segundos o cada segundo. |
| KLine | Symbol, Interval | El flujo de Kline/Vela japonesa envía actualizaciones de las klines/velas actuales cada 250 milisegundos (si existen). |
| MiniTicker | Symbol | Estadísticas del mini-ticker de la ventana móvil de 24 horas para un solo símbolo. Estas NO son las estadísticas del día UTC, sino una ventana móvil de 24 horas desde requestTime hasta 24 horas antes. |
| AllMiniTicker | Estadísticas mini-ticker de ventana deslizante de 24 horas para todos los símbolos. NO son las estadísticas del día UTC, sino una ventana deslizante de 24 horas desde requestTime hasta 24 horas antes. Tenga en cuenta que solo estarán presentes en el array los tickers que hayan cambiado. | |
| Ticker | Symbol | Estadísticas del ticker de la ventana móvil de 24 horas para un símbolo concreto. NO son las estadísticas del día UTC, sino una ventana móvil de 24 horas desde requestTime hasta 24 horas antes. |
| AllMarketTickers | Estadísticas del ticker en una ventana deslizante de 24 horas para todos los símbolos. Estas NO son las estadísticas del día UTC, sino una ventana deslizante de 24 horas desde requestTime hasta 24 horas antes. Tenga en cuenta que en el array solo aparecerán los tickers que hayan cambiado. | |
| BookTicker | Symbol | Envía en tiempo real cualquier actualización del mejor precio o cantidad de oferta o demanda para un símbolo especificado. |
| AllBookTickers | Envía en tiempo real cualquier actualización del precio o cantidad de la mejor oferta o demanda para todos los símbolos. | |
| LiquidationOrders | Symbol | Los flujos de Órdenes de Liquidación envían información de órdenes de liquidación forzosa para un símbolo específico |
| AllLiquidationOrders | Los All Liquidation Order Streams envían información de órdenes de liquidación forzada para todos los símbolos del mercado. | |
| PartialBookDepth | Símbolo, Profundidad | Las mejores ofertas de compra y venta; los valores válidos son 5, 10 o 20. |
| DiffDepth | Symbol | Ofertas de compra y venta enviadas cada 250 milisegundos, 500 milisegundos, 100 milisegundos o en tiempo real (si existen) |
Tras una suscripción o cancelación de suscripción exitosa, el cliente recibe un mensaje al respecto, donde el id es el resultado del método Subscribed / Unsubscribed.
{
"result": null,
"id": 1
}
Requiere una ApiKey válida obtenida de su cuenta de Binance, y la ApiKey debe estar configurada en la propiedad Binance.ApiKey del componente.
Los siguientes datos se envían al cliente cada vez que hay un cambio. No es necesario suscribirse a ningún método; esto se realiza automáticamente si se establece un ApiKey válido.
| Método | Descripción |
| Margin Call | Cuando el ratio de riesgo de posición del usuario es demasiado alto, se enviará este stream. Este mensaje se utiliza únicamente como información orientativa de riesgo y no se recomienda para estrategias de inversión. En el caso de un mercado muy volátil, existe la posibilidad de que la posición del usuario haya sido liquidada al mismo tiempo que se envía este stream. |
| Actualización de Saldo y Posición |
La Actualización de Saldo ocurre durante lo siguiente:
|
| Actualización de orden | Cuando se crea una nueva orden, se enviará este evento cuando cambie el estado de la orden. |
Todos los endpoints devuelven un objeto o array JSON. Los datos se devuelven en orden ascendente: los más antiguos primero, los más recientes al final.
Endpoints de la API pública
Se puede acceder a estos endpoints sin ninguna autorización.
EndPoints generales
| Método | Parámetros | Descripción |
| Ping | Prueba la conectividad con la API REST. | |
| GetServerTime | Compruebe la conectividad con la Rest API y obtenga la hora actual del servidor. | |
| GetExchangeInformation | Reglas de negociación actuales del exchange e información del símbolo |
Endpoints de datos de mercado
| Método | Parámetros | Descripción |
| GetOrderBook | Symbol | Obtener el libro de órdenes. |
| GetTrades | Symbol | Obtener operaciones recientes |
| GetHistoricalTrades | Symbol | Obtener operaciones más antiguas. |
| GetAggregateTrades | Symbol | Obtenga operaciones agregadas y comprimidas. Las operaciones que se ejecutan al mismo tiempo, desde la misma orden y al mismo precio tendrán la cantidad agregada. |
| GetKLines | Symbol, Interval | Barras Kline/velas para un símbolo. Las Klines se identifican de forma única por su tiempo de apertura. |
| Get24hrTicker | Symbol | Estadísticas de cambio de precio en ventana deslizante de 24 horas. Tenga cuidado al acceder sin símbolo. |
| GetPriceTicker | Symbol | Último precio de un símbolo o varios símbolos. |
| GetBookTicker | Symbol | Mejor precio/cantidad en el libro de órdenes para un símbolo o símbolos. |
| GetMarkPrice | Symbol | Precio de marca y tasa de financiación |
| GetFundingRateHistory | Symbol | |
| GetOpenInterest | Symbol | Obtiene el interés abierto actual de un símbolo específico. |
| GetOpenInterestStatistics | Symbol, Period | |
| GetTopTraderAccountRatio | Symbol, Period | |
| GetTopTraderPositionRatio | Symbol, Period | |
| GetGlobalAccountRatio | Symbol, Period | |
| GetTakerVolume | Symbol, Period | |
| GetContinuousKLines | Pair, ContractType, Interval | Barras Kline/velas para un tipo de contrato específico. |
| GetIndexPriceKLines | Pair, Interval | Barras Kline/candlestick para el precio índice de un par. |
| GetMarkPriceKLines | Symbol, Interval | Barras de Kline/velas para el precio de marca de un símbolo. |
| GetPremiumIndexKLines | Symbol, Interval | Barras de kline del índice premium de un símbolo. |
| GetFundingInfo | Obtiene información de la tasa de financiación para todos los símbolos. | |
| GetPriceTickerV2 | Symbol | Último precio para uno o varios símbolos (V2). |
| GetIndexInfo | Symbol | Obtener información del índice. |
| GetAssetIndex | Symbol | Obtener el índice de activos para el modo multi-activos. |
| GetConstituents | Symbol | Obtener los componentes del índice. |
| GetDeliveryPrice | Par | Obtener precio de entrega. |
| GetBasis | Pair, ContractType, Period | Obtener datos de base. |
Puntos de acceso de la API privada
Requiere una APIKey y un APISecret para ser autorizado por el servidor.
Puntos de conexión de cuenta y operaciones
| Método | Parámetros | Descripción |
| ChangePositionMode | DualPosition | Cambiar el modo de posición del usuario (Modo de cobertura o Modo unidireccional) en TODOS los símbolos |
| GetCurrentPositionMode | Obtiene el modo de posición del usuario (Hedge Mode o One-way Mode) en TODOS los símbolos | |
| NewOrder | Symbol, Side, PositionSide, Type | Enviar una nueva orden. |
| PlaceMarketOrder | Side, Symbol, Quantity | |
| PlaceLimitOrder | Side, Symbol, Quantity, LimitPrice | |
| PlaceStopOrder | Side, Symbol, Quantity, StopPrice, LimitPrice | |
| PlaceTrailingStopOrder | Side, Symbol, Quantity, aActivationPrice, aCallbackRate | |
| QueryOrder | Symbol | Comprueba el estado de un pedido. |
| CancelOrder | Symbol | Cancelar una orden activa. Debe enviarse OrderId u OrigClientOrderId. |
| CancelAllOpenOrders | Symbol | |
| AutoCancelAllOpenOrders | Symbol, CountDownTimer | Cancela todas las órdenes abiertas del símbolo especificado al final de la cuenta atrás especificada. |
| QueryCurrentOpenOrder | Symbol | |
| GetOpenOrders | Symbol | Obtiene todas las órdenes abiertas de un símbolo. Tenga cuidado al acceder sin especificar símbolo. |
| GetAllOrders | Symbol | Obtener todas las órdenes de la cuenta: activas, canceladas o ejecutadas. |
| GetAccountBalance | ||
| GetAccountInformation | Obtiene la información actual de la cuenta. | |
| ChangeInitialLeverage | Symbol, Leverage | Cambia el apalancamiento inicial del usuario para un 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 | Prueba la creación de nuevas órdenes y la firma/recvWindow largo. Crea y valida una nueva orden pero no la envía al motor de emparejamiento. |
| ModifyOrder | Symbol | Modificar una orden existente. |
| NewBatchOrders | BatchOrders | Colocar múltiples órdenes. |
| ModifyBatchOrders | BatchOrders | Modificar múltiples órdenes. |
| CancelBatchOrders | Symbol | Cancela múltiples órdenes. |
| GetOrderAmendment | Symbol | Obtiene el historial de modificaciones de órdenes. |
| CountdownCancelAll | Symbol, CountdownTime | Cancela todas las órdenes abiertas del símbolo especificado al final de la cuenta atrás especificada. |
| GetForceOrders | Symbol | Obtener las órdenes de liquidación forzada del usuario. |
| GetADLQuantile | Symbol | Obtiene la estimación de cuantiles ADL para posiciones. |
| GetAccountBalanceV3 | Obtiene el saldo de la cuenta de futuros (V3). | |
| GetAccountInformationV3 | Obtener información actual de la cuenta (V3). | |
| GetPositionInformationV3 | Symbol | Obtiene información sobre la posición actual (V3). |
| GetCommissionRate | Symbol | Obtener la tasa de comisión del usuario. |
| GetAccountConfig | Obtiene la configuración actual de la cuenta. | |
| GetSymbolConfig | Symbol | Obtener la configuración del símbolo. |
| GetOrderRateLimit | Obtiene el límite de tasa de órdenes del usuario. | |
| GetApiTradingStatus | Symbol | Obtiene los indicadores de reglas cuantitativas de trading de la API. |
| ChangeMultiAssetsMode | MultiAssetsMargin | Cambiar el modo multi-activos del usuario. Modo Multi-Activos: true; Modo Activo Único: false. |
| GetMultiAssetsMode | Obtener el modo multi-activos actual del usuario. | |
| SetFeeBurn | FeeBurn | Cambiar el estado de quema de comisiones BNB del usuario. |
| GetFeeBurn | Obtener el estado de reducción de comisiones BNB del usuario. | |
| CreateListenKey | Inicia un nuevo flujo de datos de usuario. El flujo se cerrará tras 60 minutos a menos que se envíe un keepalive. | |
| KeepAliveListenKey | Mantiene activa una secuencia de datos de usuario para evitar un tiempo de espera. | |
| CloseListenKey | Cerrar un flujo de datos de usuario. |
Los mensajes de Binance Futures se reciben en el componente TsgcWebSocketClient; puede utilizar los siguientes eventos:
OnConnect
Tras una conexión exitosa al servidor Binance.
OnDisconnect
Tras una desconexión del servidor de Binance
OnMessage
Los mensajes enviados por el servidor al cliente se gestionan en este evento.
OnError
Si hay algún error en el protocolo, se llamará a este evento.
OnException
Si hay una excepción no controlada, se invocará este evento.
Además, existe un evento específico en el componente Binance API, llamado OnBinanceHTTPException, que se lanza cada vez que se produce un error al llamar a una solicitud HTTP (REST API o WebSocket User Stream).
(*) Debido a cambios en los servidores de Binance, las versiones de Indy anteriores a Rad Studio 10.1 no podrán conectarse a los servidores de prueba. Este problema no afecta a la edición Enterprise ni si la versión de Indy se ha actualizado a la más reciente.