El protocolo WebSocket permite 2 tipos de solicitudes: Comandos en streaming (recibir actualizaciones en tiempo real) y Recuperar Datos de Trading (enviar una solicitud al servidor para recuperar información).
Puede configurar las siguientes propiedades en la propiedad XTB.
Cuando el cliente se conecta correctamente a los servidores XTB, se activa el evento OnXTBConnect . Si se produce algún error al intentar conectarse, se activará el evento OnXTBError con los detalles del error.
Después de que se dispare el evento OnXTBConnect, puede comenzar a enviar y recibir mensajes desde los servidores XTB.
oClient := TsgcWebSocketClient.Create(nil);
oXTB := TsgcWSAPI_XTB.Create(nil);
oXTB.Client := oClient;
oXTB.XTB.User := 'user_0001';
oXTB.XTB.Password := 'secret_0001';
oClient.Active := True;
procedure OnXTBConnect(Sender: TObject; const aStreamSessionId: string);
begin
DoLog('#XTB Connected');
end;
procedure OnXTBError(Sender: TObject; aCode, aDescription, aRawMessage: string);
begin
DoLog('#error: ' + aDescription);
end;
| Método | Descripción |
| Login | Para realizar cualquier acción, la aplicación cliente debe llevar a cabo el proceso de inicio de sesión. Ninguna funcionalidad está disponible antes de completar correctamente dicho proceso. El método de inicio de sesión se invoca automáticamente después de que el cliente se conecta al servidor WebSocket y los valores User/Password están establecidos. |
| Cerrar sesión |
Puede suscribirse a los siguientes canales:
| Método | Descripción |
| SubscribeBalance | Permite obtener los valores reales de los indicadores de cuenta en tiempo real, en cuanto estén disponibles en el sistema. |
| SubscribeCandles | Suscribe y cancela la suscripción a velas de gráfico de la API. El intervalo de cada vela es de 1 minuto. Llega una nueva vela cada minuto. |
| SubscribeKeepAlive | Suscribe y cancela la suscripción a mensajes de «keep alive». La API envía un nuevo mensaje de «keep alive» cada 3 segundos. |
| SubscribeNews | Suscribe y cancela la suscripción a noticias. |
| SubscribeProfits | Se suscribe y cancela la suscripción a beneficios. |
| SubscribeTickPrices |
Establece una suscripción para cotizaciones y le permite obtener la información relevante en tiempo real, tan pronto como esté disponible en el sistema. El comando getTickPrices puede invocarse varias veces para el mismo símbolo, pero solo se creará una suscripción para un símbolo determinado. Tenga en cuenta que cuando hay varios registros disponibles, no se garantiza el orden en que se reciben. |
| SubscribeTrades | Establece una suscripción para los datos de estado de las operaciones del usuario y le permite obtener la información relevante en tiempo real, en cuanto esté disponible en el sistema. Tenga en cuenta que cuando hay varios registros disponibles, el orden en que se reciben no está garantizado. |
| SubscribeTradeStatus | Permite obtener el estado de las solicitudes de operación enviadas en tiempo real, tan pronto como estén disponibles en el sistema. Tenga en cuenta que cuando hay varios registros disponibles, no se garantiza el orden en que se reciben. |
| SubscribePing | Llamar a esta función regularmente es suficiente para actualizar el estado interno de todos los componentes del sistema. La conexión en streaming, cuando el cliente no envía ningún comando durante la sesión, genera únicamente tráfico de red unidireccional. Se recomienda que cualquier aplicación que no ejecute otros comandos llame a este comando al menos una vez cada 10 minutos. |
Puede enviar las siguientes Solicitudes:
| Método | Descripción |
| GetAllSymbols | Devuelve un array con todos los símbolos disponibles para el usuario. |
| GetCalendar | Devuelve el calendario con eventos del mercado. |
| GetChartLastRequest | Tenga en cuenta que esta función normalmente puede reemplazarse por su equivalente en streaming getCandles, que es la forma preferida de recuperar los datos de velas actuales. Devuelve información del gráfico desde la fecha de inicio hasta el momento actual. Si el período elegido de CHART_LAST_INFO_RECORD es superior a 1 minuto, la última vela devuelta por la API puede cambiar hasta el final del período (la vela se actualiza automáticamente cada minuto). |
| GetChartRangeRequest | Tenga en cuenta que esta función normalmente puede reemplazarse por su equivalente de streaming getCandles, que es la forma preferida de obtener datos de velas actuales. Devuelve información del gráfico con datos entre las fechas de inicio y fin indicadas. |
| GetCommissionDef | Devuelve el cálculo de comisión y tipo de cambio. El valor se calcula como valor esperado y, por tanto, puede no ser del todo preciso. |
| GetCurrentUserData |
Devuelve información sobre la divisa de la cuenta y el apalancamiento de la cuenta. |
GetIbsHistory |
Devuelve datos de IB del rango de tiempo especificado. |
| GetMarginLevel | Tenga en cuenta que esta función generalmente puede reemplazarse por su equivalente de streaming getBalance, que es la forma preferida de recuperar indicadores de cuenta. Devuelve varios indicadores de cuenta |
| GetMarginTrade | Devuelve el margen esperado para el instrumento y volumen dados. El valor se calcula como margen esperado y, por tanto, puede no ser completamente preciso. |
| GetNews | Tenga en cuenta que esta función puede sustituirse habitualmente por su equivalente en streaming getNews, que es la forma preferida de recuperar datos de noticias. Devuelve noticias del servidor de trading que se enviaron dentro del período de tiempo especificado. |
| GetProfitCalculation | Calcula el beneficio estimado para los datos de una operación dada. Solo debe utilizarse para aplicaciones tipo calculadora. El beneficio de las transacciones abiertas debe obtenerse del servidor, debido a la mayor precisión del cálculo en el servidor. |
| GetServerTime | Devuelve la hora actual del servidor de trading |
| GetStepRules | Devuelve una lista de reglas de pasos para DMAs |
| GetSymbol | Devuelve información sobre el símbolo disponible para el usuario |
| GetTickPrices | Tenga en cuenta que esta función normalmente puede ser reemplazada por su equivalente en streaming getTickPrices, que es la forma preferida de recuperar datos de ticks. Devuelve un array de cotizaciones actuales para los símbolos indicados; solo se devuelven las cotizaciones que han cambiado desde la marca de tiempo indicada. La nueva marca de tiempo obtenida de la salida se utilizará como argumento de la siguiente llamada a este comando. |
| GetTradeRecords | Devuelve un array de operaciones listadas en el argumento de órdenes |
| GetTrades | Tenga en cuenta que esta función puede ser sustituida normalmente por su equivalente en streaming getTrades, que es el método preferido para recuperar datos de operaciones. Devuelve un array con las operaciones del usuario. |
| GetTradesHistory | Tenga en cuenta que esta función generalmente puede reemplazarse por su equivalente de streaming getTrades, que es la forma preferida de recuperar datos de operaciones. Devuelve un array de operaciones del usuario que se cerraron en el período de tiempo especificado. |
| GetTradingHours | Devuelve cotizaciones y horarios de negociación. |
| GetVersion | Devuelve la versión actual de la API. |
| Ping | Llamar a esta función con regularidad es suficiente para actualizar el estado interno de todos los componentes del sistema. Se recomienda que cualquier aplicación que no ejecute otros comandos llame a este comando al menos una vez cada 10 minutos. Tenga en cuenta que el equivalente de streaming de esta función es la combinación de ping y getKeepAlive. |
| TradeTransaction | Inicia la transacción de operación. tradeTransaction envía la información principal de la transacción al servidor. |
| TradeTransactionStatus | Tenga en cuenta que esta función generalmente puede sustituirse por su equivalente en streaming getTradeStatus, que es la forma preferida de recuperar datos del estado de la transacción. Devuelve el estado actual de la transacción. En cualquier momento del procesamiento de la transacción, el cliente puede comprobar el estado de la transacción en el servidor. Para ello, el cliente debe proporcionar el identificador único de la orden obtenido de la invocación de tradeTransaction. |