API XTB

XTB

 

APIs suportadas

 

Properties

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.

 

Conexão

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;

 

Comandos de Conexão

 

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  

 

 

Comandos de Streaming

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.

 

 

Recuperando Dados de Negociação

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.