De volgende sgcWebSockets-release — versie 2026.5.0 — voegt native ondersteuning toe voor de Forex.com / StoneX / CityIndex Trading-API: REST-orderbeheer plus realtime Lightstreamer-streaming, allemaal geleverd via één enkel Delphi-component dat je op een form kunt plaatsen.
Drie nieuwe componenten dekken het hele oppervlak: TsgcHTTP_API_Forex voor REST-trading, TsgcWSPClient_Lightstreamer voor het native Lightstreamer TLCP 2.5-streamingkanaal en TsgcWSAPI_Forex als verenigde facade die ze samenvoegt en getypeerde OnForex*-events publiceert voor prijzen, orders, posities, quotes en account-margin.
Wat is inbegrepen
Elk endpoint en elke streaming-adapter die de live Forex.com-server vandaag bedient, wordt direct ondersteund.
|
REST-trading LogOn / LogOff / Ping / GetServiceStatus, plus de vijf order-endpoints: NewTradeOrder, UpdateTradeOrder, NewStopLimitOrder, UpdateStopLimitOrder en CancelOrder. Elk wordt geleverd met drie overloads — ruwe JSON, scalaire parameters of een getypeerd order-object met volledige IfDone-brackets en partial-close-ondersteuning. |
Account- & marktdata GetClientAndTradingAccount, ListOpenPositions, ListActiveStopLimitOrders, GetOrder, ListTradeHistory, ListStopLimitOrderHistory, SimulateTrade, GetMarketInformation, ListCfdMarkets, FullSearchWithTags, GetPriceBars en GetPriceTicks. |
|
Realtime-streaming Vijf Lightstreamer-data-adapters onder de STREAMINGALL-adapter-set — PRICES, ORDERS, QUOTES, CLIENTACCOUNTMARGIN en TRADEMARGIN. Elke adapter stuurt geparseerde records door naar een getypeerd event: OnForexPriceTick, OnForexOrderUpdate, OnForexPositionUpdate, OnForexAccountMargin, OnForexQuote. |
Verenigde facade-component TsgcWSAPI_Forex bundelt de REST-client en de interne Lightstreamer-client achter één visueel component. Roep Connect aan — REST LogOn loopt eerst, het Session-token wordt doorgegeven aan de Lightstreamer-handshake als LS_password, en de streaming start. Eén component, één aanroep. |
|
Automatische reconnect Wordt afgehandeld door de onderliggende WebSocket-client-WatchDog. Voor elke nieuwe verbindingspoging vernieuwt de facade het REST-sessie-token; TLCP LOOP-frames rebinden en spelen elke actieve abonnement opnieuw af nadat het netwerk wegvalt. Bij verlopen sessie wordt LogOn transparant opnieuw uitgevoerd. |
Platformbereik Delphi 7 tot en met Delphi 13, Professional-editie en hoger. Windows, macOS, Linux, iOS en Android waar de compiler dit ondersteunt. Wordt geleverd met een .NET-spiegel (net40+, .NET Standard 2.0, .NET 5-9) ondersteund door de native sgcWebSockets-DLL. |
Onder de motorkap
De streaming-helft van deze integratie is het meest interessante stuk. Forex.com levert realtime-data via Lightstreamer — een proprietair streamingprotocol dat door een aantal brokers en financiële-dataleveranciers wordt gebruikt. Tot nu toe was er geen native TLCP-client voor Delphi; bestaande integraties met Lightstreamer-aangedreven aanbieders verpakken allemaal de Lightstreamer-JavaScript- of -Java-SDK via browser-embeds of externe processen.
TsgcWSPClient_Lightstreamer is een vanaf nul gemaakte native implementatie van het Lightstreamer TLCP 2.5-protocol: create_session, bind_session, control (subscribe / unsubscribe), de LOOP-auto-rebind-handler en het opnieuw afspelen van abonnementen na reconnect — aangekondigd op de lijn via de subprotocol-header Sec-WebSocket-Protocol: TLCP-2.5.0.lightstreamer.com. Dit maakt sgcWebSockets de eerste Delphi-component-bibliotheek met native TLCP-ondersteuning, en de client is bewust generiek: hij wordt geleverd als zijn eigen herbruikbare component, niet vastgeschroefd aan Forex.com, zodat hetzelfde code-pad elke Lightstreamer-gebaseerde broker (zoals IG Markets) of dataleverancier kan aansturen.
Item-addressering. Elke Forex.com-adapter gebruikt dezelfde ID.{numericId}-itemvorm — de numerieke id is een MarketId, ClientAccountId of TradingAccountId, en de DataAdapter-selector op het SUB-frame (PRICES / ORDERS / QUOTES / CLIENTACCOUNTMARGIN / TRADEMARGIN) bepaalt welke dataset voor die id wordt gestreamd. Er zijn geen legacy PRICE.{id}-prefixes.
Order-object-patroon. Trade-requests volgen hetzelfde Kucoin-achtige ontwerp dat elders in de bibliotheek wordt gebruikt: TsgcHTTPForexTradeOrder, TsgcHTTPForexStopLimitOrder en TsgcHTTPForexCancelOrder. Bouw de order één keer, pas enkele velden aan en verstuur opnieuw. Getypeerde IfDone-brackets (gekoppelde stop / limit / guaranteed-stop / trailing-stop), Close-arrays voor partial-close-semantiek, PositionMethodId (netting versus hedging) en client-Reference-velden zijn allemaal first-class.
Code-voorbeeld
Plaats de facade op een form, stel de credentials in, koppel het prijs-tick-event, roep Connect aan en WatchMarket. Het onderstaande fragment is een compleet werkend voorbeeld.
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
Een volledige VCL-demo staat in Demos\05.Crypto\22.Forex. Hij is verdeeld over drie tabbladen:
- Login — UserName- / Password- / AppKey-velden, Connect / Disconnect / Ping, AutoReconnect-schakelaar, live-sessie-/account-id's en een lopend event-log. Credentials worden bewaard in
sgcForexDemo.inizodat je ze maar één keer hoeft te typen. - REST-trading — marktzoekopdracht (FullSearchWithTags), NewTradeOrder / UpdateTradeOrder / NewStopLimitOrder / UpdateStopLimitOrder / CancelOrder, SimulateTrade, GetOrder, ListOpenPositions, ListActiveStopLimitOrders, ListTradeHistory en ListStopLimitOrderHistory.
- Streaming — WatchMarket / UnwatchMarket, live-prijs-grid, lijstweergaven van posities en orders die in realtime worden bijgewerkt vanuit de STREAMINGALL-adapter-set, en een live-account-margin-paneel (Cash / Margin / NetEquity / TradeableFunds / Currency).
Beschikbaarheid
Beschikbaar in de volgende sgcWebSockets-release — versie 2026.5.0. Bestaande Enterprise- en All-Access-licentiehouders ontvangen deze als onderdeel van hun abonnement; Professional-licenties ontvangen deze bij hun verlenging.
Meld je aan voor een gratis Forex.com-demo-account (inclusief UserName / Password / AppKey) op www.forex.com, met de volledige API-referentie op docs.labs.gaincapital.com.
Links
- Component-documentatie: esegece.com/help/sgcwebsockets/
- Demo-map:
Demos\05.Crypto\22.Forex - Forex.com-registratie: www.forex.com
- API-referentie: docs.labs.gaincapital.com
- Lightstreamer TLCP 2.5-specificatie: TLCP 2.5 PDF
- sgcWebSockets-productpagina: esegece.com
