O protocolo WebSocket permite 2 tipos de requisições: Streaming commands (receber atualizações ao vivo) e Retrieve Trading Data (enviar uma requisição ao servidor recuperando alguma informação).
Você pode configurar as seguintes propriedades na propriedade XTB.
Quando o cliente conecta com sucesso aos servidores XTB, o evento OnXTBConnect é disparado. Se houver qualquer erro ao tentar conectar, o evento OnXTBError será disparado com os detalhes do erro.
Após o evento OnXTBConnect ser disparado, você pode começar a enviar e receber mensagens dos 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;
| Method | Descrição |
| Login | Para realizar qualquer ação, a aplicação cliente precisa realizar o processo de login. Nenhuma funcionalidade está disponível antes do processo de login adequado. O método de login é chamado automaticamente após o cliente se conectar ao servidor websocket e os valores de User/Password serem definidos. |
| Logout |
Você pode se inscrever nos seguintes canais:
| Method | Descrição |
| SubscribeBalance | Permite obter os valores atuais dos indicadores da conta em tempo real, assim que estiverem disponíveis no sistema. |
| SubscribeCandles | Assina e cancela a assinatura de candles de gráfico da API. O intervalo de cada candle é de 1 minuto. Um novo candle chega a cada minuto. |
| SubscribeKeepAlive | Assina e cancela a assinatura de mensagens 'keep alive'. Uma nova mensagem 'keep alive' é enviada pela API a cada 3 segundos. |
| SubscribeNews | Assina e cancela a assinatura de notícias. |
| SubscribeProfits | Faz subscribe e unsubscribe de profits. |
| SubscribeTickPrices |
Estabelece a assinatura para cotações e permite que você obtenha as informações relevantes em tempo real, assim que estiverem disponíveis no sistema. O comando getTickPrices pode ser invocado muitas vezes para o mesmo símbolo, mas apenas uma assinatura para um determinado símbolo será criada. Esteja ciente de que, quando vários registros estão disponíveis, a ordem em que são recebidos não é garantida. |
| SubscribeTrades | Estabelece a assinatura para os dados de status de negociação do usuário e permite obter as informações relevantes em tempo real, assim que estiverem disponíveis no sistema. Esteja ciente de que, quando vários registros estão disponíveis, a ordem em que são recebidos não é garantida. |
| SubscribeTradeStatus | Permite obter o status das requisições de negociação enviadas em tempo real, assim que estiver disponível no sistema. Atenção: quando múltiplos registros estão disponíveis, a ordem em que são recebidos não é garantida |
| SubscribePing | Chamar regularmente esta função é suficiente para atualizar o estado interno de todos os componentes do sistema. A conexão de streaming, quando nenhum comando é enviado pelo cliente na sessão, gera apenas tráfego de rede unidirecional. Recomenda-se que qualquer aplicação que não execute outros comandos chame este comando pelo menos uma vez a cada 10 minutos. |
Você pode enviar as seguintes Requisições:
| Method | Descrição |
| GetAllSymbols | Retorna um array de todos os símbolos disponíveis para o usuário. |
| GetCalendar | Retorna o calendário com eventos de mercado. |
| GetChartLastRequest | Observe que esta função geralmente pode ser substituída por seu equivalente de streaming getCandles, que é a forma preferida de recuperar dados de candle atuais. Retorna informações do gráfico, da data de início até o horário atual. Se o período escolhido de CHART_LAST_INFO_RECORD for maior que 1 minuto, o último candle retornado pela API pode mudar até o fim do período (o candle é atualizado automaticamente a cada minuto). |
| GetChartRangeRequest | Observe que esta função geralmente pode ser substituída por seu equivalente de streaming getCandles, que é a forma preferida de recuperar dados de velas atuais. Retorna informações de gráfico com dados entre as datas de início e fim fornecidas. |
| GetCommissionDef | Retorna o cálculo da comissão e da taxa de câmbio. O valor é calculado como valor esperado e, portanto, pode não ser perfeitamente preciso. |
| GetCurrentUserData |
Retorna informações sobre a moeda da conta e a alavancagem da conta. |
GetIbsHistory |
Retorna dados de IBs do intervalo de tempo fornecido. |
| GetMarginLevel | Observe que esta função geralmente pode ser substituída pelo seu equivalente de streaming getBalance, que é a forma preferida de recuperar indicadores da conta. Retorna diversos indicadores da conta |
| GetMarginTrade | Retorna a margem esperada para um determinado instrumento e volume. O valor é calculado como valor de margem esperado e, portanto, pode não ser perfeitamente exato. |
| GetNews | Observe que esta função geralmente pode ser substituída por seu equivalente de streaming getNews, que é a forma preferida de recuperar dados de notícias. Retorna notícias do servidor de negociação que foram enviadas dentro de um período de tempo especificado. |
| GetProfitCalculation | Calcula o lucro estimado para os dados de negociação fornecidos. Deve ser usado apenas para aplicativos do tipo calculadora. O lucro de transações abertas deve ser obtido do servidor, devido à maior precisão do cálculo do servidor |
| GetServerTime | Retorna o horário atual no servidor de negociação |
| GetStepRules | Retorna uma lista de step rules para DMAs |
| GetSymbol | Retorna informações sobre o símbolo disponível para o usuário |
| GetTickPrices | Observe que esta função pode normalmente ser substituída por seu equivalente de streaming getTickPrices, que é a forma preferida de recuperar dados de ticks. Retorna um array de cotações atuais para os símbolos fornecidos; apenas as cotações que mudaram a partir do timestamp fornecido são retornadas. O novo timestamp obtido da saída será utilizado como argumento da próxima chamada deste comando. |
| GetTradeRecords | Retorna o array de negociações listadas no argumento orders |
| GetTrades | Observe que esta função geralmente pode ser substituída por seu equivalente em streaming getTrades, que é a forma preferida de recuperar dados de negociações. Retorna um array das negociações do usuário. |
| GetTradesHistory | Observe que esta função geralmente pode ser substituída por seu equivalente de streaming getTrades, que é a forma preferida de recuperar dados de negociações. Retorna um array das negociações do usuário que foram fechadas dentro de um período de tempo especificado. |
| GetTradingHours | Retorna cotações e horários de negociação. |
| GetVersion | Retorna a versão atual da API. |
| Ping | Chamar esta função regularmente é suficiente para atualizar o estado interno de todos os componentes do sistema. É recomendado que qualquer aplicação que não execute outros comandos chame este comando pelo menos uma vez a cada 10 minutos. Observe que a contraparte de streaming desta função é a combinação de ping e getKeepAlive |
| TradeTransaction | Inicia a transação de negociação. tradeTransaction envia as informações principais da transação ao servidor. |
| TradeTransactionStatus | Observe que esta função pode normalmente ser substituída por seu equivalente de streaming getTradeStatus, que é a forma preferida de recuperar dados de status de transação. Retorna o status atual da transação. A qualquer momento do processamento da transação, o cliente pode verificar o status da transação no lado do servidor. Para fazer isso, o cliente deve fornecer a ordem única obtida da invocação tradeTransaction. |