Desde sgcWebSockets 2022.10.0 el exchange de criptomonedas Bybit es compatible. APIs soportadas
- WebSocket API: conecta con un servidor WebSocket y proporciona datos de mercado en tiempo real, cambios de cuenta y más.
- REST API: envÃa solicitudes HTTP para obtener datos de mercado, colocar órdenes, datos de cuenta...
Se implementan las siguientes APIs de producto:
- Spot (V3)
- USDT Perpetual (Futures V2)
- Inverse Perpetual (Futures V2)
- Inverse Futures (Futures V2)
Propiedades
Puedes configurar las siguientes propiedades en la propiedad Bybit.
- ApiKey: puedes solicitar una nueva api key en tu cuenta de Bybit; simplemente copia el valor a esta propiedad. Si la ApiKey está establecida, el cliente se conectará al servidor WebSocket privado. Si está vacÃa, se conectará al servidor WebSocket público.
- ApiSecret: es el valor secreto de la api.
- SignatureExpires: número de segundos tras los que expira la firma (por defecto 10 segundos).
- TestNet: si está habilitado, se conectará a la cuenta TestNet Demo de Bybit (deshabilitado por defecto).
Conexión
Cuando el cliente se conecta correctamente a los servidores de Bybit, se dispara el evento OnConnect. Tras el evento OnConnect, puedes empezar a enviar y recibir mensajes desde/hacia los servidores de Bybit. Si te conectas al canal WebSocket privado, debes esperar hasta que se dispare el evento OnBybitAuthentication y comprobar que el parámetro success es true antes de suscribirte a cualquier canal.
El cliente soporta varias APIs; usa la propiedad BybitClient para indicar qué API quieres usar:
- bybSpot
- bybInversePerpetual
- bybUSDTPerpetual
- bybInverseFutures
A continuación tienes un ejemplo de conexión a la API WebSocket Spot privada.
oClient := TsgcWebSocketClient.Create(nil);
oBybit := TsgcWSAPI_Bybit.Create(nil);
oBybit.Client := oClient;
oBybit.Bybit.ApiKey := 'alsdjk23kandfnasbdfdkjhsdf';
oBybit.Bybit.ApiSecret := 'aldskjfk3jkadknfajndsjfj23j';
oBybit.BybitClient := bybSpot;
oClient.Active := True;
procedure OnConnect(Connection: TsgcWSConnection);
begin
DoLog('#Bybit Connected');
end;
Tras una conexión correcta al servidor WebSocket Spot, puedes empezar a suscribirte a canales WebSocket; basta con acceder a la propiedad SPOT y llamar a cualquiera de los métodos subscribe/unsubscribe disponibles.
Esta es la lista de objetos de APIs de Bybit:
- SPOT
- INVERSE_PERPETUAL
- USDT_PERPETUAL
- INVERSE_FUTURES
Suscribirse a canales WebSocket
A continuación tienes un ejemplo de suscripción a los canales WebSocket Spot privados tras una autenticación correcta.
oClient := TsgcWebSocketClient.Create(nil);
oBybit := TsgcWSAPI_Bybit.Create(nil);
oBybit.Client := oClient;
oBybit.Bybit.ApiKey := 'alsdjk23kandfnasbdfdkjhsdf';
oBybit.Bybit.ApiSecret := 'aldskjfk3jkadknfajndsjfj23j';
oBybit.BybitClient := bybSpot;
oClient.Active := True;
procedure OnBybitAuthentication(Sender: TObject; aSuccess: Boolean; const aError, aRawMessage: string)
begin
if aSuccess then
begin
oClient.SubscribeOrder;
oClient.SubscribeStopOrder;
end;
end;
Colocar órdenes
A continuación tienes un ejemplo de colocación de una orden Market para USDT Perpetual.
oClient := TsgcWebSocketClient.Create(nil);
oBybit := TsgcWSAPI_Bybit.Create(nil);
oBybit.Client := oClient;
oBybit.Bybit.ApiKey := 'alsdjk23kandfnasbdfdkjhsdf';
oBybit.Bybit.ApiSecret := 'aldskjfk3jkadknfajndsjfj23j';
oBybit.BybitClient := bybUSDTPerpetual;
oBybit.USDT_PERPETUAL.REST_API.PlaceMarketOrder('BTCUSDT', bbosBuy, 1);
