Das nächste sgcWebSockets-Release — Version 2026.5.0 — bringt native Unterstützung für die Forex.com- / StoneX- / CityIndex-Trading-API: REST-Order-Management plus Echtzeit-Streaming über Lightstreamer, alles über eine einzige Delphi-Komponente, die du auf ein Formular ziehst.
Drei neue Komponenten decken die gesamte Oberfläche ab: TsgcHTTP_API_Forex für REST-Trading, TsgcWSPClient_Lightstreamer für den nativen Lightstreamer-TLCP-2.5-Streaming-Kanal und TsgcWSAPI_Forex als vereinheitlichende Fassade, die beide verbindet und typisierte OnForex*-Ereignisse für Preise, Orders, Positionen, Quotes und Account Margin veröffentlicht.
Was enthalten ist
Jeder Endpunkt und jeder Streaming-Adapter, den der Forex.com-Live-Server heute bereitstellt, wird out of the box unterstützt.
|
REST-Trading LogOn / LogOff / Ping / GetServiceStatus, plus die fünf Order-Endpunkte: NewTradeOrder, UpdateTradeOrder, NewStopLimitOrder, UpdateStopLimitOrder und CancelOrder. Jeder kommt mit drei Überladungen — rohes JSON, skalare Parameter oder ein typisiertes Order-Objekt mit vollständigen IfDone-Brackets und Unterstützung für Teil-Schließungen. |
Account- & Marktdaten GetClientAndTradingAccount, ListOpenPositions, ListActiveStopLimitOrders, GetOrder, ListTradeHistory, ListStopLimitOrderHistory, SimulateTrade, GetMarketInformation, ListCfdMarkets, FullSearchWithTags, GetPriceBars und GetPriceTicks. |
|
Echtzeit-Streaming Fünf Lightstreamer-Datenadapter unter dem Adapter-Set STREAMINGALL — PRICES, ORDERS, QUOTES, CLIENTACCOUNTMARGIN und TRADEMARGIN. Jeder gibt geparste Datensätze an ein typisiertes Ereignis weiter: OnForexPriceTick, OnForexOrderUpdate, OnForexPositionUpdate, OnForexAccountMargin, OnForexQuote. |
Vereinheitlichte Fassaden-Komponente TsgcWSAPI_Forex bündelt den REST-Client und den internen Lightstreamer-Client hinter einer visuellen Komponente. Rufe Connect auf — REST-LogOn läuft zuerst, sein Session-Token wird im Lightstreamer-Handshake als LS_password mitgegeben, und das Streaming startet. Eine Komponente, ein Aufruf. |
|
Automatischer Reconnect Übernommen vom darunterliegenden WebSocket-Client WatchDog. Vor jedem Reconnect-Versuch erneuert die Fassade das REST-Session-Token; TLCP-LOOP-Frames binden neu und spielen nach einem Netzwerkabbruch jedes aktive Abonnement erneut ein. Bei Session-Ablauf läuft LogOn transparent erneut. |
Plattform-Reichweite Delphi 7 bis Delphi 13, Professional Edition aufwärts. Windows, macOS, Linux, iOS und Android, sofern der Compiler es unterstützt. Mit einem .NET-Pendant (net40+, .NET Standard 2.0, .NET 5–9), das auf der nativen sgcWebSockets-DLL aufsetzt. |
Unter der Haube
Die Streaming-Hälfte dieser Integration ist das spannendste Stück. Forex.com liefert Echtzeitdaten über Lightstreamer aus — ein proprietäres Streaming-Protokoll, das von etlichen Brokern und Finanzdaten-Anbietern eingesetzt wird. Bisher gab es keinen nativen TLCP-Client für Delphi; bestehende Integrationen mit Lightstreamer-Plattformen wrappen alle das Lightstreamer-JavaScript- oder -Java-SDK per Browser-Einbettung oder externen Prozess.
TsgcWSPClient_Lightstreamer ist eine von Grund auf neue native Implementierung des Lightstreamer-TLCP-2.5-Protokolls: create_session, bind_session, control (subscribe / unsubscribe), der LOOP-Auto-Rebind-Handler und das Replay von Abonnements nach Reconnect — angekündigt auf der Leitung über den Subprotokoll-Header Sec-WebSocket-Protocol: TLCP-2.5.0.lightstreamer.com. Damit ist sgcWebSockets die erste Delphi-Komponentenbibliothek mit nativer TLCP-Unterstützung, und der Client ist bewusst generisch: er kommt als eigenständige, wiederverwendbare Komponente und ist nicht an Forex.com gekoppelt, sodass derselbe Code-Pfad jeden Lightstreamer-basierten Broker (etwa IG Markets) oder Datenanbieter ansteuert.
Item-Adressierung. Jeder Forex.com-Adapter nutzt dieselbe Item-Form ID.{numericId} — die numerische ID ist eine MarketId, ClientAccountId oder TradingAccountId, und der DataAdapter-Selektor im SUB-Frame (PRICES / ORDERS / QUOTES / CLIENTACCOUNTMARGIN / TRADEMARGIN) entscheidet, welches Dataset für diese ID gestreamt wird. Es gibt keine veralteten PRICE.{id}-Präfixe.
Order-Objekt-Muster. Trade-Requests folgen demselben Kucoin-artigen Design, das die Bibliothek auch sonst verwendet: TsgcHTTPForexTradeOrder, TsgcHTTPForexStopLimitOrder und TsgcHTTPForexCancelOrder. Order einmal bauen, ein paar Felder anpassen, erneut senden. Typisierte IfDone-Brackets (Stop / Limit / Guaranteed-Stop / Trailing-Stop), Close-Arrays für Teil-Schließungen, PositionMethodId (Netting vs. Hedging) und Client-Reference-Felder sind alle erstklassig unterstützt.
Code-Beispiel
Lege die Fassade auf ein Formular, setze die Zugangsdaten, verbinde das Price-Tick-Ereignis und rufe Connect und WatchMarket auf. Das Snippet unten ist ein vollständiges, funktionierendes Beispiel.
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
Eine vollständige VCL-Demo liegt unter Demos\05.Crypto\22.Forex. Sie ist in drei Tabs aufgeteilt:
- Login — Felder für UserName / Password / AppKey, Connect / Disconnect / Ping, AutoReconnect-Schalter, Live-Anzeige von Session- / Account-IDs sowie ein laufendes Event-Log. Die Zugangsdaten werden in
sgcForexDemo.inipersistiert, sodass du sie nur einmal eingeben musst. - REST-Trading — Markt-Suche (FullSearchWithTags), NewTradeOrder / UpdateTradeOrder / NewStopLimitOrder / UpdateStopLimitOrder / CancelOrder, SimulateTrade, GetOrder, ListOpenPositions, ListActiveStopLimitOrders, ListTradeHistory und ListStopLimitOrderHistory.
- Streaming — WatchMarket / UnwatchMarket, Live-Preisraster, Positions- und Order-Listenansichten, die in Echtzeit vom STREAMINGALL-Adapter-Set aktualisiert werden, sowie ein Live-Panel für Account Margin (Cash / Margin / NetEquity / TradeableFunds / Currency).
Verfügbarkeit
Verfügbar im nächsten sgcWebSockets-Release — Version 2026.5.0. Bestehende Enterprise- und All-Access-Lizenznehmer erhalten es im Rahmen ihres Abonnements; Professional-Lizenzen bekommen es mit ihrer Verlängerung.
Registriere dich für ein kostenloses Forex.com-Demo-Konto (inklusive UserName / Password / AppKey) unter www.forex.com; die vollständige API-Referenz findest du unter docs.labs.gaincapital.com.
Links
- Komponenten-Dokumentation: esegece.com/help/sgcwebsockets/
- Demo-Ordner:
Demos\05.Crypto\22.Forex - Forex.com-Registrierung: www.forex.com
- API-Referenz: docs.labs.gaincapital.com
- Lightstreamer-TLCP-2.5-Spezifikation: TLCP 2.5 PDF
- sgcWebSockets-Produktseite: esegece.com
