Kraken API Update sgcWebSockets

· Recursos
Integração da API Kraken Spot e Futures em Delphi

Kraken é uma das corretoras de criptomoedas mais antigas e confiáveis, oferecendo mercados spot e de futuros. Os componentes TsgcWSAPI_Kraken e TsgcWSAPI_Kraken_Futures para Delphi fornecem acesso completo às APIs WebSocket e REST da Kraken, permitindo streaming de dados de mercado em tempo real, gerenciamento de conta, colocação de ordens e negociação de futuros a partir de uma única base de código.

Índice

Visão geral

A API da Kraken é dividida em duas plataformas distintas, cada uma com seu próprio componente:

Component Mercado Descrição
TsgcWSAPI_Kraken Spot Negocie criptomoedas na corretora spot da Kraken com suporte a WebSocket e REST
TsgcWSAPI_Kraken_Futures Futures Negocie contratos futuros perpétuos e de vencimento fixo com posições alavancadas

Ambos os componentes oferecem uma abordagem de canal duplo: conexões WebSocket para streaming de dados em tempo real com baixa latência, e endpoints REST para operações de requisição/resposta, como consulta de saldos, colocação de ordens e recuperação de dados históricos.

Configuração

Tanto o componente Spot quanto o Futures exigem credenciais de API para operações privadas (autenticadas). Endpoints públicos, como dados de mercado, não requerem autenticação.

Propriedade Tipo Descrição
Kraken.ApiKey String Sua chave de API da Kraken, gerada na página de configurações da conta Kraken
Kraken.ApiSecret String Seu segredo de API da Kraken, usado para assinar requisições privadas
Nota: Gere suas chaves de API em kraken.com > Security > API. Atribua apenas as permissões que seu aplicativo necessita. Para dashboards somente leitura, desative completamente as permissões de negociação e saque.

API WebSocket Spot

A API WebSocket Spot fornece streaming em tempo real para dados de mercado e eventos privados de conta. Os métodos são divididos em canais públicos (sem autenticação) e canais privados (exigem um token WebSocket válido).

Canais Públicos

Método Descrição
SubscribeTicker / UnSubscribeTicker Informações de ticker em tempo real, incluindo melhor bid/ask, volume 24h e estatísticas de preço
SubscribeOHLC / UnSubscribeOHLC Dados OHLC (candlestick) em tempo real em intervalos configuráveis
SubscribeTrade / UnSubscribeTrade Feed de execução de trades em tempo real mostrando todas as negociações na corretora
SubscribeBook / UnSubscribeBook Snapshots e atualizações incrementais do livro de ordens em profundidade configurável
SubscribeSpread / UnSubscribeSpread Atualizações em tempo real do melhor spread bid/ask
SubscribeAll / UnSubscribeAll Assinar ou cancelar todos os canais públicos de um par de uma só vez

Canais Privados

Método Descrição
SubscribeOwnTrades / UnSubscribeOwnTrades Feed em tempo real das suas próprias negociações executadas
SubscribeOpenOrders / UnSubscribeOpenOrders Atualizações em tempo real das suas ordens abertas (novas, modificadas, canceladas, executadas)
AddOrder Colocar uma nova ordem via WebSocket (menor latência que REST)
CancelOrder Cancelar uma ordem existente via WebSocket
// Subscribe to public ticker data for BTC/USD
oKraken.SubscribeTicker('XBT/USD');
// Subscribe to the order book with 10-level depth
oKraken.SubscribeBook('XBT/USD');
// Subscribe to real-time trades
oKraken.SubscribeTrade('ETH/USD');
// Subscribe to private channels (requires API key)
oKraken.SubscribeOwnTrades;
oKraken.SubscribeOpenOrders;

API REST Spot

A API REST Spot é acessada pela propriedade REST_API do componente TsgcWSAPI_Kraken. Ela fornece um conjunto abrangente de endpoints para consultas de dados de mercado, gerenciamento de conta, negociação e operações de fundos.

Métodos REST Públicos

Método Descrição
GetServerTime Retorna a hora atual do servidor (útil para sincronização de relógio)
GetAssets Lista todos os ativos disponíveis e suas propriedades (decimais, nome de exibição)
GetAssetPairs Lista todos os pares de ativos negociáveis com estrutura de taxas e informações de margem
GetTicker Retorna dados de ticker para um ou mais pares (bid, ask, último, volume, VWAP)
GetOHLC Retorna dados de candle OHLC para um par e intervalo específicos
GetOrderBook Retorna o livro de ordens atual de um par na profundidade especificada
GetTrades Retorna negociações recentes de um par específico
GetSpread Retorna dados de spread recentes de um par específico

Métodos REST Privados - Conta e Negociação

Método Descrição
GetAccountBalance Retorna os saldos de todos os ativos na sua conta
GetTradeBalance Retorna informações de saldo de negociação (patrimônio, margem, margem livre, P&L)
GetOpenOrders Retorna todas as ordens abertas no momento
GetClosedOrders Retorna ordens fechadas recentemente
QueryOrders Consultar ordens específicas por ID de transação
GetTradesHistory Retorna seu histórico de negociações
QueryTrades Consultar negociações específicas por ID de trade
GetLedgers Retorna entradas do ledger (depósitos, saques, negociações, taxas)
QueryLedgers Consultar entradas específicas do ledger por ID
GetTradeVolume Retorna seu volume de negociação dos últimos 30 dias e faixa de taxa
AddOrder Colocar uma nova ordem via REST
CancelOrder Cancelar uma ordem existente via REST
GetWebSocketsToken Gera um token necessário para assinaturas privadas de WebSocket

Métodos REST Privados - Exportação e Relatórios

Método Descrição
AddExport Solicitar uma exportação de dados (negociações ou entradas de ledger)
ExportStatus Verificar o status de uma solicitação de exportação pendente
RetrieveExport Baixar um arquivo de exportação concluído
RemoveExport Excluir um relatório de exportação

Métodos REST Privados - Fundos

Método Descrição
GetDepositMethods Retorna os métodos de depósito disponíveis para um ativo específico
GetDepositAddresses Retorna endereços de depósito para um ativo e método específicos
GetStatusOfRecentDeposits Retorna o status das transações de depósito recentes
GetWithdrawalInformation Retorna detalhes de saque (taxa, mínimo, limite) para um ativo específico
WithdrawFunds Iniciar um saque para um endereço externo
GetStatusOfRecentWithdraws Retorna o status das transações de saque recentes
RequestWithdrawalCancelation Tentar cancelar um saque pendente
RequestWalletTransfer Transferir fundos entre carteiras Kraken (ex.: spot para futures)
// Public REST: Get ticker data
ShowMessage(oKraken.REST_API.GetTicker('XBTUSD'));
// Public REST: Get OHLC data
ShowMessage(oKraken.REST_API.GetOHLC('XBTUSD'));
// Private REST: Get account balance
ShowMessage(oKraken.REST_API.GetAccountBalance);
// Private REST: Get open orders
ShowMessage(oKraken.REST_API.GetOpenOrders);

API WebSocket Futures

O componente TsgcWSAPI_Kraken_Futures fornece streaming em tempo real para os mercados de futuros da Kraken, incluindo contratos perpétuos e futuros de vencimento fixo.

Canais Públicos

Método Descrição
SubscribeTicker / UnSubscribeTicker Dados de ticker de futuros em tempo real, incluindo preço mark, preço index e taxa de financiamento
SubscribeTrade / UnSubscribeTrade Feed de execução de trades em tempo real para mercados de futuros
SubscribeBook / UnSubscribeBook Snapshots e atualizações incrementais do livro de ordens para contratos futuros
SubscribeHeartBeat / UnSubscribeHeartBeat Monitoramento de saúde da conexão via mensagens periódicas de heartbeat
SubscribeTickerLite / UnSubscribeTickerLite Ticker leve com payload reduzido para monitoramento de alta frequência

Canais Privados

Método Descrição
SubscribeOpenOrdersVerbose / UnSubscribeOpenOrdersVerbose Atualizações detalhadas de ordens abertas em tempo real com informações completas da ordem
SubscribeOpenPositions / UnSubscribeOpenPositions Atualizações em tempo real de posições abertas em futuros
SubscribeAccountLog / UnSubscribeAccountLog Log de atividades da conta em tempo real (financiamento, liquidações, etc.)
SubscribeFills / UnSubscribeFills Notificações de preenchimento em tempo real para suas ordens de futuros
SubscribeOpenOrders / UnSubscribeOpenOrders Atualizações leves de status de ordens abertas
SubscribeAccountBalanceAndMargins / UnSubscribeAccountBalanceAndMargins Atualizações em tempo real de saldo e margem da sua conta de futuros
SubscribeNotifications / UnSubscribeNotifications Notificações e alertas do sistema para sua conta

API REST Futures

A API REST Futures é acessada pela propriedade REST_API de TsgcWSAPI_Kraken_Futures. Ela fornece endpoints para dados de mercado, gerenciamento de ordens, consultas de conta e transferências de fundos.

Métodos REST Públicos

Método Descrição
GetFeeSchedules Retorna a tabela de taxas atual para negociação de futuros
GetHistory Retorna dados históricos de mercado para contratos futuros
GetInstruments Lista todos os instrumentos de futuros disponíveis e suas especificações de contrato
GetTickers Retorna dados de ticker para todos os contratos futuros

Métodos REST Privados - Conta e Ordens

Método Descrição
GetAccounts Retorna saldos e informações de margem da conta de futuros
GetFills Retorna o histórico de preenchimentos recentes das suas ordens de futuros
GetHistoricalExecutions Retorna execuções históricas de ordens
GetHistoricalOrders Retorna dados históricos de ordens
GetHistoricalTriggers Retorna eventos de gatilho históricos para ordens condicionais
GetOpenPositions Retorna todas as posições abertas de futuros no momento
GetNotifications Retorna notificações da conta

Métodos REST Privados - Gerenciamento de Ordens

Método Descrição
SendMarketOrder Colocar uma ordem a mercado pelo melhor preço atual
SendLimitOrder Colocar uma ordem limitada a um preço específico
SendStopOrder Colocar uma ordem stop que é acionada a um preço específico
SendTakeProfit Colocar uma ordem de take-profit
CancelAllOrders Cancelar todas as ordens abertas de futuros de uma só vez
CancelOrderByOrderId Cancelar uma ordem específica usando o ID de ordem da Kraken
CancelOrderByCliOrderId Cancelar uma ordem específica usando seu ID de ordem do cliente
EditOrderByOrderId Modificar uma ordem existente usando o ID de ordem da Kraken
EditOrderByCliOrderId Modificar uma ordem existente usando seu ID de ordem do cliente

Métodos REST Privados - Transferências e Relatórios

Método Descrição
Transfer Transferir fundos entre subcontas de futuros
WalletTransfer Transferir entre tipos de carteira
SubAccountTransfer Transferir entre subcontas
WithdrawalToSpotWallet Mover fundos da carteira de futuros de volta para a carteira spot
GetFeeScheduleVolumes Retorna seu volume para cálculo da faixa de taxa
GetAccountLogCSV Baixar o log de atividades da conta como arquivo CSV

Exemplo de Código Completo

O exemplo a seguir demonstra como conectar à API Kraken Spot, buscar dados de mercado via REST, consultar o saldo da sua conta e assinar um feed de ticker em tempo real via WebSocket.

var
  oClient: TsgcWebSocketClient;
  oKraken: TsgcWSAPI_Kraken;
begin
  // Create and configure the WebSocket client
  oClient := TsgcWebSocketClient.Create(nil);
  oKraken := TsgcWSAPI_Kraken.Create(nil);
  oKraken.Client := oClient;
  // Configure API credentials for private endpoints
  oKraken.Kraken.ApiKey := 'your_api_key';
  oKraken.Kraken.ApiSecret := 'your_api_secret';
  // Connect to Kraken
  oClient.Active := True;
  // REST: Get ticker data for BTC/USD
  ShowMessage(oKraken.REST_API.GetTicker('XBTUSD'));
  // REST: Get account balance (requires API key)
  ShowMessage(oKraken.REST_API.GetAccountBalance);
  // WebSocket: Subscribe to real-time ticker
  oKraken.SubscribeTicker('XBT/USD');
end;

Exemplo de Futures

A configuração do componente Futures segue o mesmo padrão, usando TsgcWSAPI_Kraken_Futures no lugar:

var
  oClient: TsgcWebSocketClient;
  oFutures: TsgcWSAPI_Kraken_Futures;
begin
  oClient := TsgcWebSocketClient.Create(nil);
  oFutures := TsgcWSAPI_Kraken_Futures.Create(nil);
  oFutures.Client := oClient;
  // Configure API credentials
  oFutures.Kraken.ApiKey := 'your_futures_api_key';
  oFutures.Kraken.ApiSecret := 'your_futures_api_secret';
  oClient.Active := True;
  // REST: Get all available futures instruments
  ShowMessage(oFutures.REST_API.GetInstruments);
  // REST: Get account information
  ShowMessage(oFutures.REST_API.GetAccounts);
  // WebSocket: Subscribe to futures ticker
  oFutures.SubscribeTicker('PI_XBTUSD');
  // WebSocket: Subscribe to private account updates
  oFutures.SubscribeOpenPositions;
  oFutures.SubscribeAccountBalanceAndMargins;
end;

Notas e Boas Práticas

Chaves de API Spot vs. Futures

A Kraken usa chaves de API separadas para negociação spot e futures. Gere chaves dedicadas para cada plataforma na página de configurações da Kraken. Não reutilize a mesma chave nos dois componentes.

Token WebSocket para Canais Privados

Assinaturas privadas de WebSocket na corretora spot exigem um token temporário obtido via o método REST GetWebSocketsToken. O componente lida com isso automaticamente quando as credenciais de API estão configuradas, mas esteja ciente de que os tokens expiram e serão renovados conforme necessário.

Limites de Taxa

A Kraken aplica limites de taxa nas APIs REST e WebSocket. Os endpoints REST usam um sistema baseado em contador, em que cada chamada incrementa um contador que decai com o tempo. Exceder o limite resulta em bloqueio temporário. Use assinaturas WebSocket para dados em tempo real em vez de fazer polling nos endpoints REST.

Nomenclatura de Pares de Ativos

Nota: A Kraken usa convenções de nomenclatura diferentes para as APIs REST e WebSocket. Endpoints REST geralmente usam nomes concatenados como XBTUSD, enquanto os canais WebSocket usam o formato com barra XBT/USD. O componente lida com essa distinção, mas leve isso em conta ao processar as respostas. Use GetAssetPairs para descobrir os nomes exatos de todos os pares disponíveis.