A partir do sgcWebSockets 4.5.0, a FTX API é suportada.
APIs suportadas
- WebSockets API: conecta-se a um servidor WebSocket público e fornece atualizações de dados de mercado em tempo real.
- REST API: a REST API possui endpoints para gerenciamento de contas e ordens, além de dados públicos de mercado.
FTX WebSocket API
Para conectar-se à FTX WebSocket API, basta criar um novo cliente FTX API e vinculá-lo ao TsgcWebSocketClient.
Veja abaixo um exemplo:
oClient := TsgcWebSocketClient.Create(nil); oFTX := TsgcWSAPI_FTX.Create(nil); oFTX.Client := oClient; oClient.Active := True;
A FTX oferece uma variedade de canais nos quais você pode assinar para receber atualizações em tempo real de dados de mercado, ordens...
Veja abaixo um exemplo de como assinar um 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;
FTX REST API
A FTX oferece Dados de Mercado públicos através de Endpoints REST; ao chamar um desses endpoints, você obterá um snapshot dos dados de mercado solicitados.
Os Endpoints de Dados de Mercado não exigem autenticação, portanto estão disponíveis gratuitamente para todos os usuários.
Exemplo: para obter um snapshot do mercado BTC-PERP, faça a seguinte chamada
oFTX := TsgcWSAPI_FTX.Create(nil);
ShowMessage(oFTX.REST_API.GetMarket('BTC-PERP'));
A FTX REST API oferece endpoints públicos e privados. Os endpoints privados exigem que as mensagens sejam assinadas para aumentar a segurança das transações.
Primeiro você deve fazer login na sua conta FTX e criar uma nova API; você receberá os seguintes valores:
- ApiKey
- ApiSecret
Esses campos devem ser configurados na propriedade FTX do componente cliente FTX API.
Uma vez configurado, você pode começar a fazer requisições privadas à FTX REST API
oFTX := TsgcWSAPI_FTX.Create(nil); oFTX.FTX.ApiKey := '<your api key>'; oFTX.FTX.ApiSecret := '<your api secret>'; ShowMessage(oFTX.REST_API.GetAccount);
Colocar Ordens
Ordem a Mercado
Coloca uma nova Ordem a Mercado, comprando 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));
Ordem Limitada
Coloca uma nova Ordem Limitada, comprando 0,002 contratos de BTC-PERP com preço limite 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));
