A próxima versão do sgcWebSockets — versão 2026.5.0 — adiciona suporte nativo à API de Trading Forex.com / StoneX / CityIndex: gerenciamento de ordens REST mais streaming Lightstreamer em tempo real, tudo entregue por um único componente Delphi que você pode soltar em um formulário.
Três novos componentes cobrem toda a superfície: TsgcHTTP_API_Forex para trading via REST, TsgcWSPClient_Lightstreamer para o canal de streaming Lightstreamer TLCP 2.5 nativo, e TsgcWSAPI_Forex como fachada unificada que os conecta e publica eventos OnForex* tipados para preços, ordens, posições, cotações e margem de conta.
O que Está Incluído
Todos os endpoints e adaptadores de streaming que o servidor Forex.com ativo oferece hoje são suportados imediatamente.
|
REST Trading LogOn / LogOff / Ping / GetServiceStatus, mais os cinco endpoints de ordem: NewTradeOrder, UpdateTradeOrder, NewStopLimitOrder, UpdateStopLimitOrder e CancelOrder. Cada um vem com três sobrecargas — JSON bruto, parâmetros escalares ou um objeto de ordem tipado com suporte completo a brackets IfDone e fechamento parcial. |
Dados de Conta & Mercado GetClientAndTradingAccount, ListOpenPositions, ListActiveStopLimitOrders, GetOrder, ListTradeHistory, ListStopLimitOrderHistory, SimulateTrade, GetMarketInformation, ListCfdMarkets, FullSearchWithTags, GetPriceBars e GetPriceTicks. |
|
Streaming em Tempo Real Cinco adaptadores de dados Lightstreamer no conjunto de adaptadores STREAMINGALL — PRICES, ORDERS, QUOTES, CLIENTACCOUNTMARGIN e TRADEMARGIN. Cada um despacha registros analisados para um evento tipado: OnForexPriceTick, OnForexOrderUpdate, OnForexPositionUpdate, OnForexAccountMargin, OnForexQuote. |
Componente de Fachada Unificada TsgcWSAPI_Forex agrega o cliente REST mais o cliente Lightstreamer interno em um único componente visual. Chame Connect — o REST LogOn é executado primeiro, seu token Session é encaminhado ao handshake do Lightstreamer como LS_password e o streaming começa. Um componente, uma chamada. |
|
Reconexão Automática Tratada pelo WatchDog do cliente WebSocket subjacente. Antes de cada tentativa de reconexão, a fachada atualiza o token de sessão REST; frames TLCP LOOP reconnectam e reproduzem todas as subscrições ativas após a queda da rede. A expiração da sessão re-executa o LogOn de forma transparente. |
Alcance de Plataformas Delphi 7 ao Delphi 13, edição Professional e superior. Windows, macOS, Linux, iOS e Android onde o compilador suporta. Inclui um espelho .NET (net40+, .NET Standard 2.0, .NET 5-9) suportado pela DLL nativa do sgcWebSockets. |
Por Dentro
A metade de streaming desta integração é a parte mais interessante. O Forex.com entrega dados em tempo real via Lightstreamer — um protocolo de streaming proprietário usado por corretoras e fornecedores de dados financeiros. Até agora não havia um cliente TLCP nativo para Delphi; as integrações existentes com plataformas baseadas em Lightstreamer todas empacotam o SDK JavaScript ou Java do Lightstreamer via embeds de browser ou processos externos.
TsgcWSPClient_Lightstreamer é uma implementação nativa do zero do protocolo Lightstreamer TLCP 2.5: create_session, bind_session, control (subscribe / unsubscribe), o handler de auto-rebind LOOP e replay de subscrições após reconexão — anunciado na rede através do cabeçalho de subprotocolo Sec-WebSocket-Protocol: TLCP-2.5.0.lightstreamer.com. Isso torna o sgcWebSockets a primeira biblioteca de componentes Delphi com suporte nativo a TLCP, e o cliente é deliberadamente genérico: é fornecido como seu próprio componente reutilizável, não vinculado ao Forex.com, para que o mesmo caminho de código acione qualquer corretora baseada em Lightstreamer (IG Markets, por exemplo) ou fornecedor de dados.
Endereçamento de itens. Todos os adaptadores do Forex.com usam o mesmo formato de item ID.{numericId} — o id numérico é um MarketId, ClientAccountId ou TradingAccountId, e o seletor DataAdapter no frame SUB (PRICES / ORDERS / QUOTES / CLIENTACCOUNTMARGIN / TRADEMARGIN) decide qual conjunto de dados é transmitido para aquele id. Não há prefixos legados PRICE.{id}.
Padrão de objeto de ordem. As requisições de trade seguem o mesmo design estilo KuCoin usado em outros lugares da biblioteca: TsgcHTTPForexTradeOrder, TsgcHTTPForexStopLimitOrder e TsgcHTTPForexCancelOrder. Monte a ordem uma vez, modifique alguns campos, envie novamente. Brackets IfDone tipados (stop / limit / guaranteed-stop / trailing-stop anexados), arrays Close para semântica de fechamento parcial, PositionMethodId (netting vs. hedging) e campos Reference do cliente são todos de primeira classe.
Exemplo de Código
Solte a fachada em um formulário, defina as credenciais, conecte o evento de tick de preço, chame Connect e WatchMarket. O trecho abaixo é um exemplo completo e funcional.
var
Forex: TsgcWSAPI_Forex;
begin
Forex := TsgcWSAPI_Forex.Create(nil);
Try
Forex.Credentials.UserName := 'YOUR_USER';
Forex.Credentials.Password := 'YOUR_PASSWORD';
Forex.Credentials.AppKey := 'YOUR_APPKEY';
Forex.OnForexPriceTick := OnPriceTick;
Forex.Connect; // REST LogOn + Lightstreamer
Forex.WatchMarket(401484830); // EUR/USD
Forex.WatchAccount; // ORDERS + margin
// ... run app, receive ticks and order updates ...
Finally
Forex.Free;
End;
end;
procedure TForm1.OnPriceTick(Sender: TObject;
const aTick: TsgcForexPriceTick);
begin
Memo1.Lines.Add(Format('%d bid=%.5f offer=%.5f audit=%s',
[aTick.MarketId, aTick.Bid, aTick.Offer, aTick.AuditId]));
end;
Demo
Uma demo VCL completa está em Demos\05.Crypto\22.Forex. Ela está dividida em três abas:
- Login — campos UserName / Password / AppKey, Connect / Disconnect / Ping, alternância de AutoReconnect, ids de sessão / conta em tempo real e um log de eventos contínuo. As credenciais são salvas em
sgcForexDemo.inipara você digitá-las apenas uma vez. - REST Trading — busca de mercado (FullSearchWithTags), NewTradeOrder / UpdateTradeOrder / NewStopLimitOrder / UpdateStopLimitOrder / CancelOrder, SimulateTrade, GetOrder, ListOpenPositions, ListActiveStopLimitOrders, ListTradeHistory e ListStopLimitOrderHistory.
- Streaming — WatchMarket / UnwatchMarket, grade de preços em tempo real, visualizações de posições e ordens atualizadas em tempo real do conjunto de adaptadores STREAMINGALL e um painel de margem de conta em tempo real (Cash / Margin / NetEquity / TradeableFunds / Currency).
Disponibilidade
Disponível na próxima versão do sgcWebSockets — versão 2026.5.0. Titulares de licenças Enterprise e All-Access existentes recebem como parte de sua assinatura; licenças Professional recebem com a renovação.
Cadastre-se para uma conta demo gratuita do Forex.com (incluindo UserName / Password / AppKey) em www.forex.com, com a referência completa da API em docs.labs.gaincapital.com.
Links
- Documentação do componente: esegece.com/help/sgcwebsockets/
- Pasta de demos:
Demos\05.Crypto\22.Forex - Cadastro no Forex.com: www.forex.com
- Referência da API: docs.labs.gaincapital.com
- Especificação Lightstreamer TLCP 2.5: TLCP 2.5 PDF
- Página do produto sgcWebSockets: esegece.com
