Następne wydanie sgcWebSockets — wersja 2026.5.0 — dodaje natywną obsługę API tradingowego Forex.com / StoneX / CityIndex: zarządzanie zleceniami REST plus streaming Lightstreamer w czasie rzeczywistym, wszystko dostarczone przez jeden komponent Delphi, który możesz umieścić na formularzu.
Trzy nowe komponenty pokrywają całą funkcjonalność: TsgcHTTP_API_Forex dla handlu REST, TsgcWSPClient_Lightstreamer dla natywnego kanału streamingowego Lightstreamer TLCP 2.5 oraz TsgcWSAPI_Forex jako zunifikowana fasada łącząca je razem i publikująca typizowane zdarzenia OnForex* dla cen, zleceń, pozycji, kwotowań i marży konta.
Co jest zawarte
Każdy punkt końcowy i adapter strumieniowy, który aktualnie serwuje serwer Forex.com, jest obsługiwany od razu po instalacji.
|
Trading REST LogOn / LogOff / Ping / GetServiceStatus, plus pięć punktów końcowych zleceń: NewTradeOrder, UpdateTradeOrder, NewStopLimitOrder, UpdateStopLimitOrder i CancelOrder. Każdy dostępny w trzech przeciążeniach — surowy JSON, parametry skalarne lub typizowany obiekt zlecenia z pełnymi nawiasami IfDone i obsługą częściowego zamknięcia. |
Konto i dane rynkowe GetClientAndTradingAccount, ListOpenPositions, ListActiveStopLimitOrders, GetOrder, ListTradeHistory, ListStopLimitOrderHistory, SimulateTrade, GetMarketInformation, ListCfdMarkets, FullSearchWithTags, GetPriceBars i GetPriceTicks. |
|
Streaming w czasie rzeczywistym Pięć adapterów danych Lightstreamer w zestawie adapterów STREAMINGALL — PRICES, ORDERS, QUOTES, CLIENTACCOUNTMARGIN i TRADEMARGIN. Każdy przekazuje sparsowane rekordy do typizowanego zdarzenia: OnForexPriceTick, OnForexOrderUpdate, OnForexPositionUpdate, OnForexAccountMargin, OnForexQuote. |
Zunifikowany komponent fasady TsgcWSAPI_Forex agreguje klienta REST oraz wewnętrzny klient Lightstreamer za jednym wizualnym komponentem. Wywołaj Connect — najpierw uruchamia się REST LogOn, jego token Session jest przekazywany do handshake Lightstreamer jako LS_password, a streaming startuje. Jeden komponent, jedno wywołanie. |
|
Automatyczne ponowne połączenie Obsługiwane przez wbudowany mechanizm WatchDog klienta WebSocket. Przed każdą próbą ponownego połączenia fasada odświeża token sesji REST; ramki TLCP LOOP ponownie wiążą i odtwarzają wszystkie aktywne subskrypcje po utracie połączenia sieciowego. Wygaśnięcie sesji powoduje przezroczyste ponowne uruchomienie LogOn. |
Zasięg platformowy Delphi 7 do Delphi 13, edycja Professional i wyższe. Windows, macOS, Linux, iOS i Android tam, gdzie kompilator to obsługuje. Dostarczany z lustrzaną wersją .NET (net40+, .NET Standard 2.0, .NET 5-9) wspieraną przez natywną bibliotekę DLL sgcWebSockets. |
Pod maską
Część strumieniowa tej integracji jest najciekawszym elementem. Forex.com dostarcza dane w czasie rzeczywistym przez Lightstreamer — zastrzeżony protokół strumieniowy używany przez wielu brokerów i dostawców danych finansowych. Do tej pory nie istniał natywny klient TLCP dla Delphi; istniejące integracje z platformami opartymi na Lightstreamer owijały SDK JavaScript lub Java Lightstreamer przez osadzenia przeglądarki lub procesy zewnętrzne.
TsgcWSPClient_Lightstreamer to napisana od zera natywna implementacja protokołu Lightstreamer TLCP 2.5: create_session, bind_session, control (subskrybuj / odsubskrybuj), handler automatycznego ponownego wiązania LOOP i odtwarzanie subskrypcji po ponownym połączeniu — reklamowana w sieci przez nagłówek subprotokołu Sec-WebSocket-Protocol: TLCP-2.5.0.lightstreamer.com. Czyni to sgcWebSockets pierwszą biblioteką komponentów Delphi z natywną obsługą TLCP, a klient jest celowo ogólny: dostarczany jako własny wielokrotnego użytku komponent, niezwiązany z Forex.com, więc ta sama ścieżka kodu obsługuje dowolnego brokera opartego na Lightstreamer (np. IG Markets) lub dostawcę danych.
Adresowanie elementów. Każdy adapter Forex.com używa tego samego formatu elementu ID.{numericId} — numeryczny id to MarketId, ClientAccountId lub TradingAccountId, a selektor DataAdapter na ramce SUB (PRICES / ORDERS / QUOTES / CLIENTACCOUNTMARGIN / TRADEMARGIN) decyduje, który zestaw danych jest strumieniowany dla tego id. Nie ma przestarzałych prefiksów PRICE.{id}.
Wzorzec obiektu zlecenia. Żądania transakcji stosują ten sam projekt w stylu Kucoin używany w innych miejscach biblioteki: TsgcHTTPForexTradeOrder, TsgcHTTPForexStopLimitOrder i TsgcHTTPForexCancelOrder. Zbuduj zlecenie raz, zmień kilka pól, wyślij ponownie. Typizowane nawiasy IfDone (dołączony stop / limit / gwarantowany stop / trailing stop), tablice Close dla semantyki częściowego zamknięcia, PositionMethodId (netting vs. hedging) oraz pola Reference klienta są tu pełnoprawnymi elementami.
Przykład kodu
Umieść fasadę na formularzu, ustaw dane uwierzytelniające, podłącz zdarzenie price tick, wywołaj Connect i WatchMarket. Poniższy fragment to kompletny, działający przykład.
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
Pełne demo VCL znajduje się w Demos\05.Crypto\22.Forex. Jest podzielone na trzy zakładki:
- Login — pola UserName / Password / AppKey, Connect / Disconnect / Ping, przełącznik AutoReconnect, aktywne id sesji / konta oraz bieżący log zdarzeń. Dane uwierzytelniające są zapisywane w
sgcForexDemo.ini, więc wpisujesz je tylko raz. - Trading REST — wyszukiwanie rynków (FullSearchWithTags), NewTradeOrder / UpdateTradeOrder / NewStopLimitOrder / UpdateStopLimitOrder / CancelOrder, SimulateTrade, GetOrder, ListOpenPositions, ListActiveStopLimitOrders, ListTradeHistory i ListStopLimitOrderHistory.
- Streaming — WatchMarket / UnwatchMarket, siatka cen na żywo, widoki listy pozycji i zleceń aktualizowane w czasie rzeczywistym z zestawu adapterów STREAMINGALL oraz panel marży konta na żywo (Cash / Margin / NetEquity / TradeableFunds / Currency).
Dostępność
Dostępne w następnym wydaniu sgcWebSockets — wersja 2026.5.0. Posiadacze licencji Enterprise i All-Access otrzymują je w ramach swojej subskrypcji; licencje Professional otrzymują je przy odnowieniu.
Zarejestruj darmowe konto demo Forex.com (w tym UserName / Password / AppKey) na www.forex.com, z pełną dokumentacją API na docs.labs.gaincapital.com.
Linki
- Dokumentacja komponentu: esegece.com/help/sgcwebsockets/
- Folder demo:
Demos\05.Crypto\22.Forex - Rejestracja Forex.com: www.forex.com
- Dokumentacja API: docs.labs.gaincapital.com
- Specyfikacja Lightstreamer TLCP 2.5: TLCP 2.5 PDF
- Strona produktu sgcWebSockets: esegece.com
