A partir de sgcWebSockets 4.5.0 se admite la API de FTX.
APIs compatibles
- API WebSockets: conéctate a un servidor websocket público y obtén en tiempo real actualizaciones de datos de mercado.
- API REST: la API REST tiene endpoints para la gestión de cuenta y órdenes, así como datos públicos de mercado.
API WebSocket de FTX
Para conectar a la API WebSocket de FTX, basta con crear un nuevo cliente FTX API y asociarlo a un TsgcWebSocketClient.
A continuación tienes un ejemplo:
oClient := TsgcWebSocketClient.Create(nil); oFTX := TsgcWSAPI_FTX.Create(nil); oFTX.Client := oClient; oClient.Active := True;
FTX ofrece varios canales a los que puedes suscribirte para recibir actualizaciones en tiempo real de datos de mercado, órdenes...
A continuación tienes un ejemplo de cómo suscribirse a un Ticker:
oClient := TsgcWebSocketClient.Create(nil);
oFTX := TsgcWSAPI_FTX.Create(nil);
oFTX.Client := oClient;
oFTX.SubscribeTicker('BTC-PERP');
procedure OnFTXMessage(Sender: TObject; aType, aRawMessage: string);
begin
// here you will receive the ticker updates
end;
API REST de FTX
FTX ofrece datos públicos de mercado mediante endpoints REST. Cuando llamas a uno de estos endpoints, obtienes una instantánea de los datos de mercado solicitados.
Los endpoints de Market Data no requieren autenticación, por lo que están disponibles libremente para todos los usuarios.
Ejemplo: para obtener una instantánea del mercado BTC-PERP, haz la siguiente llamada
oFTX := TsgcWSAPI_FTX.Create(nil);
ShowMessage(oFTX.REST_API.GetMarket('BTC-PERP'));
La API REST de FTX ofrece endpoints públicos y privados. Los endpoints privados requieren que los mensajes vayan firmados para aumentar la seguridad de las transacciones.
Primero debes iniciar sesión en tu cuenta de FTX y crear una nueva API; obtendrás los siguientes valores:
- ApiKey
- ApiSecret
Estos campos deben configurarse en la propiedad FTX del componente cliente FTX API.
Una vez configurados, puedes empezar a hacer peticiones privadas a la API REST de FTX
oFTX := TsgcWSAPI_FTX.Create(nil); oFTX.FTX.ApiKey := '<your api key>'; oFTX.FTX.ApiSecret := '<your api secret>'; ShowMessage(oFTX.REST_API.GetAccount);
Crear órdenes
Market Order
Coloca una nueva orden de mercado: compra 0.002 contratos de BTC-PERP
oFTX := TsgcWSAPI_FTX.Create(nil);
oFTX.FTX.ApiKey := 'your api key';
oFTX.FTX.ApiSecret := 'your api secret';
ShowMessage(oFTX.REST_API.PlaceMarketOrder('BTC-PERP', ftosBuy, 0.002));
Limit Order
Coloca una nueva orden limitada: compra 0.002 contratos de BTC-PERP con un precio límite de 10000
oFTX := TsgcWSAPI_FTX.Create(nil);
oFTX.FTX.ApiKey := 'your api key';
oFTX.FTX.ApiSecret := 'your api secret';
ShowMessage(oFTX.REST_API.PlaceLimitOrder('BTC-PERP', ftosBuy, 0.002, 10000));
