Il prossimo rilascio di sgcWebSockets — versione 2026.5.0 — aggiunge il supporto nativo all'API Forex.com / StoneX / CityIndex Trading: gestione degli ordini REST più streaming Lightstreamer in tempo reale, il tutto offerto attraverso un singolo componente Delphi che puoi trascinare su una form.
Tre nuovi componenti coprono l'intera superficie: TsgcHTTP_API_Forex per il trading REST, TsgcWSPClient_Lightstreamer per il canale di streaming nativo Lightstreamer TLCP 2.5 e TsgcWSAPI_Forex come facciata unificata che li collega e pubblica eventi tipizzati OnForex* per prezzi, ordini, posizioni, quote e margine dell'account.
Cosa è incluso
Ogni endpoint e adapter di streaming che il server live di Forex.com serve oggi è supportato pronto all'uso.
|
Trading REST LogOn / LogOff / Ping / GetServiceStatus, più i cinque endpoint per gli ordini: NewTradeOrder, UpdateTradeOrder, NewStopLimitOrder, UpdateStopLimitOrder e CancelOrder. Ciascuno è disponibile in tre overload: JSON grezzo, parametri scalari oppure un oggetto ordine tipizzato con bracket IfDone completi e supporto della chiusura parziale. |
Account e dati di mercato GetClientAndTradingAccount, ListOpenPositions, ListActiveStopLimitOrders, GetOrder, ListTradeHistory, ListStopLimitOrderHistory, SimulateTrade, GetMarketInformation, ListCfdMarkets, FullSearchWithTags, GetPriceBars e GetPriceTicks. |
|
Streaming in tempo reale Cinque data adapter Lightstreamer nell'adapter set STREAMINGALL: PRICES, ORDERS, QUOTES, CLIENTACCOUNTMARGIN e TRADEMARGIN. Ciascuno inoltra i record analizzati a un evento tipizzato: OnForexPriceTick, OnForexOrderUpdate, OnForexPositionUpdate, OnForexAccountMargin, OnForexQuote. |
Componente facciata unificato TsgcWSAPI_Forex aggrega il client REST e il client Lightstreamer interno dietro un unico componente visuale. Chiama Connect: viene eseguito prima il LogOn REST, il suo token Session viene inoltrato all'handshake Lightstreamer come LS_password e lo streaming parte. Un componente, una chiamata. |
|
Riconnessione automatica Gestita dal WatchDog del client WebSocket sottostante. Prima di ogni tentativo di riconnessione la facciata aggiorna il token di sessione REST; i frame TLCP LOOP rebindano e ripetono ogni sottoscrizione attiva dopo una caduta di rete. La scadenza della sessione riesegue LogOn in modo trasparente. |
Copertura delle piattaforme Da Delphi 7 a Delphi 13, edizione Professional e superiori. Windows, macOS, Linux, iOS e Android dove il compilatore lo supporta. Include una controparte .NET (net40+, .NET Standard 2.0, .NET 5-9) basata sulla DLL nativa sgcWebSockets. |
Sotto il cofano
La parte di streaming di questa integrazione è il pezzo più interessante. Forex.com fornisce dati in tempo reale tramite Lightstreamer, un protocollo di streaming proprietario usato da diversi broker e fornitori di dati finanziari. Finora non esisteva un client TLCP nativo per Delphi; le integrazioni esistenti con piattaforme basate su Lightstreamer si appoggiano tutte all'SDK Lightstreamer in JavaScript o Java tramite embed nel browser o processi esterni.
TsgcWSPClient_Lightstreamer è un'implementazione nativa da zero del protocollo Lightstreamer TLCP 2.5: create_session, bind_session, control (subscribe / unsubscribe), l'handler di auto-rebind LOOP e il replay delle sottoscrizioni dopo la riconnessione, dichiarato sul wire tramite l'header subprotocol Sec-WebSocket-Protocol: TLCP-2.5.0.lightstreamer.com. Questo rende sgcWebSockets la prima libreria di componenti Delphi con supporto TLCP nativo, e il client è volutamente generico: viene distribuito come componente riutilizzabile a sé, non saldato a Forex.com, così lo stesso percorso di codice supporta qualsiasi broker basato su Lightstreamer (ad esempio IG Markets) o fornitore di dati.
Indirizzamento degli item. Ogni adapter di Forex.com usa la stessa forma di item ID.{numericId}: l'id numerico è un MarketId, ClientAccountId o TradingAccountId, e il selettore DataAdapter sul frame SUB (PRICES / ORDERS / QUOTES / CLIENTACCOUNTMARGIN / TRADEMARGIN) decide quale dataset viene trasmesso per quell'id. Non ci sono prefissi legacy PRICE.{id}.
Pattern dell'oggetto ordine. Le richieste di trade seguono lo stesso design in stile Kucoin usato altrove nella libreria: TsgcHTTPForexTradeOrder, TsgcHTTPForexStopLimitOrder e TsgcHTTPForexCancelOrder. Costruisci l'ordine una volta, modifica alcuni campi, invialo di nuovo. I bracket tipizzati IfDone (stop / limit / guaranteed-stop / trailing-stop allegati), gli array Close per la semantica di chiusura parziale, PositionMethodId (netting vs. hedging) e i campi client Reference sono tutti di prima classe.
Esempio di codice
Inserisci la facciata su una form, imposta le credenziali, collega l'evento di tick di prezzo, chiama Connect e WatchMarket. Lo snippet qui sotto è un esempio completo e funzionante.
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
Una demo VCL completa si trova in Demos\05.Crypto\22.Forex. È suddivisa in tre tab:
- Login — campi UserName / Password / AppKey, Connect / Disconnect / Ping, toggle AutoReconnect, ID di sessione / account live e un log eventi in tempo reale. Le credenziali vengono salvate in
sgcForexDemo.inicosì le digiti una sola volta. - Trading REST — ricerca di mercati (FullSearchWithTags), NewTradeOrder / UpdateTradeOrder / NewStopLimitOrder / UpdateStopLimitOrder / CancelOrder, SimulateTrade, GetOrder, ListOpenPositions, ListActiveStopLimitOrders, ListTradeHistory e ListStopLimitOrderHistory.
- Streaming — WatchMarket / UnwatchMarket, griglia prezzi live, list-view di posizioni e ordini aggiornate in tempo reale dall'adapter set STREAMINGALL e un pannello live del margine dell'account (Cash / Margin / NetEquity / TradeableFunds / Currency).
Disponibilità
Disponibile nel prossimo rilascio di sgcWebSockets, versione 2026.5.0. Gli attuali titolari di licenze Enterprise e All-Access lo ricevono come parte della loro sottoscrizione; le licenze Professional lo ricevono con il rinnovo.
Registrati per un account demo Forex.com gratuito (inclusi UserName / Password / AppKey) su www.forex.com, con il riferimento API completo su docs.labs.gaincapital.com.
Link
- Documentazione del componente: esegece.com/help/sgcwebsockets/
- Cartella demo:
Demos\05.Crypto\22.Forex - Registrazione Forex.com: www.forex.com
- Riferimento API: docs.labs.gaincapital.com
- Specifica Lightstreamer TLCP 2.5: PDF TLCP 2.5
- Pagina prodotto sgcWebSockets: esegece.com
