Depuis sgcWebSockets 4.5.0, l'API FTX est prise en charge.
APIs prises en charge
- API WebSockets : connecte-toi à un serveur websocket public et fournit des mises à jour de marché en temps réel.
- API REST : l'API REST dispose d'endpoints pour la gestion des comptes et des ordres ainsi que des données publiques de marché.
API WebSocket FTX
Pour te connecter à l'API WebSocket FTX, il te suffit de créer un nouveau client API FTX et de le rattacher à TsgcWebSocketClient.
Voici un exemple :
oClient := TsgcWebSocketClient.Create(nil); oFTX := TsgcWSAPI_FTX.Create(nil); oFTX.Client := oClient; oClient.Active := True;
FTX propose une variété de canaux auxquels tu peux t'abonner pour recevoir des mises à jour en temps réel des données de marché, des ordres...
Voici un exemple d'abonnement à 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 FTX
FTX propose des données de marché publiques via des endpoints REST, quand tu appelles l'un de ces endpoints, tu obtiens un instantané des données de marché demandées.
Les endpoints de données de marché ne nécessitent pas d'authentification, ils sont donc librement disponibles pour tous les utilisateurs.
Exemple : pour obtenir un instantané du marché BTC-PERP, effectue l'appel suivant
oFTX := TsgcWSAPI_FTX.Create(nil);
ShowMessage(oFTX.REST_API.GetMarket('BTC-PERP'));
L'API REST FTX propose des endpoints publics et privés. Les endpoints privés nécessitent que les messages soient signés pour renforcer la sécurité des transactions.
Tu dois d'abord te connecter à ton compte FTX et créer une nouvelle API, tu obtiendras les valeurs suivantes :
- ApiKey
- ApiSecret
Ces champs doivent être configurés dans la propriété FTX du composant client API FTX.
Une fois configurés, tu peux commencer à effectuer des requêtes privées vers l'API REST FTX
oFTX := TsgcWSAPI_FTX.Create(nil); oFTX.FTX.ApiKey := '<your api key>'; oFTX.FTX.ApiSecret := '<your api secret>'; ShowMessage(oFTX.REST_API.GetAccount);
Passer des ordres
Ordre au marché
Place un nouvel ordre au marché, achète 0.002 contrats 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));
Ordre à cours limité
Place un nouvel ordre à cours limité, achète 0.002 contrats de BTC-PERP au prix 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));
