A partir de sgcWebSockets 2022.6.0 se admite el bróker de criptomonedas OKX. OKX, anteriormente conocido como OKEx, es uno de los mayores exchanges de spot y derivados de criptomonedas. OKX es un exchange de criptomonedas con sede en Seychelles que proporciona una plataforma para operar con distintos instrumentos como spot y derivados. Entre sus características principales destacan el trading spot y de derivados.
sgcWebSockets admite la API WebSocket incluyendo los canales públicos y privados. También se admite colocar órdenes.
Configuración
Los canales WebSocket se dividen en dos categorías: canales públicos y privados.
- Canales públicos: incluyen el canal de tickers, el canal de K-Line, el canal de limit price, el canal de order book y el canal de mark price, entre otros — no requieren login.
- Canales privados: incluyen el canal de account, el canal de order y el canal de position, entre otros — requieren login.
Puedes configurar las siguientes propiedades dentro de la propiedad OKS.
- ApiKey: puedes solicitar una nueva api key en tu cuenta de OKX; simplemente copia el valor en esta propiedad.
- ApiSecret: es el valor secreto de la api.
- Passphrase: es la cadena personalizada definida al crear una nueva api key.
- IsDemo: si está habilitado, se conectará a la cuenta demo de OKX (deshabilitado por defecto).
- IsPrivate: si está habilitado, podrás conectarte a canales privados (deshabilitado por defecto).
Conexión
Cuando el cliente se conecta correctamente a los servidores de OKX, se dispara el evento OnOKXConnect. Si se produce algún error al intentar conectar, se disparará el evento OnOKXError con los detalles del error.
Una vez disparado el evento OnOKXConnect, ya puedes empezar a enviar y recibir mensajes desde los servidores de OKX.
oClient := TsgcWebSocketClient.Create(nil);
oOKX := TsgcWSAPI_OKX.Create(nil);
oOKX.Client := oClient;
oOKX.OKX.ApiKey := 'alsdjk23kandfnasbdfdkjhsdf';
oOKX.OKX.ApiSecret := 'aldskjfk3jkadknfajndsjfj23j';
oOKX.OKX.Passphrase := 'secret_passphrase';
oClient.Active := True;
procedure OnOKXConnect(Sender: TObject; aMessage, aCode, aRawMessage: string);
begin
DoLog('#OKX Connected');
end;
procedure OnOKXError(Sender: TObject; aCode, aMessage, aRawMessage: string);
begin
DoLog('#error: ' + aMessage);
end;
Suscribirse a canales
El feed websocket proporciona actualizaciones de datos de mercado en tiempo real para órdenes y trades. El feed tiene varios canales públicos como ticker, trades...
oClient := TsgcWebSocketClient.Create(nil); oOKX := TsgcWSAPI_OKX.Create(nil); oOKX.Client := oClient; oOKX.OKX.ApiKey := 'alsdjk23kandfnasbdfdkjhsdf'; oOKX.OKX.ApiSecret := 'aldskjfk3jkadknfajndsjfj23j'; oOKX.OKX.Passphrase := 'secret_passphrase'; oClient.Active := True; procedure OnOKXConnect(Sender: TObject; aMessage, aCode, aRawMessage: string); begin oOKX.SubscribeInstruments(okxitFutures); end;
Colocar órdenes
Sólo puedes colocar una orden si tienes fondos suficientes.
// Place Martket Order TsgcWSAPI_OKX1.PlaceMarketOrder(okxosBuy, 'ETH-BTC', 1); // Place Limit Order TsgcWSAPI_OKX1.PlaceLimitOrder(okxosBuy, 'ETH-BTC', 1, 0.25);
