Forex.com API REST & Lightstreamer

· Bileşenler

Bir sonraki sgcWebSockets sürümü, 2026.5.0, Forex.com / StoneX / CityIndex Trading API için yerel destek ekler: REST sipariş yönetimi ve gerçek zamanlı Lightstreamer akışı, hepsi bir forma bırakabileceğiniz tek bir Delphi bileşeniyle sunulur.

Üç yeni bileşen tüm yüzeyi kapsar: REST işlemleri için TsgcHTTP_API_Forex, yerel Lightstreamer TLCP 2.5 akış kanalı için TsgcWSPClient_Lightstreamer ve bunları birbirine bağlayıp fiyatlar, siparişler, pozisyonlar, kotasyonlar ve hesap teminatı için tipli OnForex* olayları yayımlayan birleşik cephe (facade) olarak TsgcWSAPI_Forex.

Neler Dahil

Canlı Forex.com sunucusunun bugün sunduğu her uç nokta ve akış bağdaştırıcısı kutudan çıkar çıkmaz desteklenir.

REST İşlemleri
LogOn / LogOff / Ping / GetServiceStatus ve beş sipariş uç noktası: NewTradeOrder, UpdateTradeOrder, NewStopLimitOrder, UpdateStopLimitOrder ve CancelOrder. Her biri üç aşırı yükleme (overload) ile gelir: ham JSON, skaler parametreler veya tam IfDone dirsekleri ve kısmi kapatma desteği olan tipli bir sipariş nesnesi.
Hesap & Piyasa Verileri
GetClientAndTradingAccount, ListOpenPositions, ListActiveStopLimitOrders, GetOrder, ListTradeHistory, ListStopLimitOrderHistory, SimulateTrade, GetMarketInformation, ListCfdMarkets, FullSearchWithTags, GetPriceBars ve GetPriceTicks.
Gerçek Zamanlı Akış
STREAMINGALL bağdaştırıcı kümesi altında beş Lightstreamer veri bağdaştırıcısı: PRICES, ORDERS, QUOTES, CLIENTACCOUNTMARGIN ve TRADEMARGIN. Her biri ayrıştırılmış kayıtları tipli bir olaya gönderir: OnForexPriceTick, OnForexOrderUpdate, OnForexPositionUpdate, OnForexAccountMargin, OnForexQuote.
Birleşik Cephe (Facade) Bileşeni
TsgcWSAPI_Forex, REST istemcisini ve dahili Lightstreamer istemcisini tek bir görsel bileşenin arkasında toplar. Connect çağırın: önce REST LogOn çalışır, Session belirteci Lightstreamer el sıkışmasına LS_password olarak iletilir ve akış başlar. Tek bileşen, tek çağrı.
Otomatik Yeniden Bağlanma
Alttaki WebSocket istemcisi WatchDog tarafından yönetilir. Her yeniden bağlanma girişiminden önce cephe, REST oturum belirtecini yeniler; TLCP LOOP çerçeveleri, ağ kesintisinden sonra her etkin aboneliği yeniden bağlar ve yeniden oynatır. Oturum sona erdiğinde LogOn şeffaf bir şekilde yeniden çalıştırılır.
Platform Erişimi
Delphi 7'den Delphi 13'e, Professional sürümü ve üzeri. Derleyicinin desteklediği yerlerde Windows, macOS, Linux, iOS ve Android. Yerel sgcWebSockets DLL'i ile desteklenen bir .NET kopyasıyla (net40+, .NET Standard 2.0, .NET 5-9) gelir.

Kaputun Altında

Bu entegrasyonun akış yarısı en ilginç parçadır. Forex.com, gerçek zamanlı verileri Lightstreamer üzerinden sunar; bu, bir dizi aracı kurum ve finansal veri sağlayıcısı tarafından kullanılan özel bir akış protokolüdür. Şimdiye kadar Delphi için yerel bir TLCP istemcisi yoktu; Lightstreamer destekli platformlarla mevcut entegrasyonların tümü, Lightstreamer JavaScript veya Java SDK'sını tarayıcı gömüleri veya harici işlemler aracılığıyla sarmalıyordu.

TsgcWSPClient_Lightstreamer, Lightstreamer TLCP 2.5 protokolünün sıfırdan yerel bir uygulamasıdır: create_session, bind_session, control (abone ol / abonelikten çık), LOOP otomatik yeniden bağlanma işleyicisi ve yeniden bağlandıktan sonra abonelik yeniden oynatma; hat üzerinde Sec-WebSocket-Protocol: TLCP-2.5.0.lightstreamer.com alt protokol başlığı aracılığıyla bildirilir. Bu, sgcWebSockets'i yerel TLCP desteğine sahip ilk Delphi bileşen kütüphanesi yapar ve istemci kasıtlı olarak geneldir: Forex.com'a kaynaklanmamış, kendi yeniden kullanılabilir bileşeni olarak gelir; böylece aynı kod yolu, Lightstreamer tabanlı herhangi bir aracı kurumu (örneğin IG Markets) veya veri sağlayıcısını yönlendirir.

Öğe adresleme. Her Forex.com bağdaştırıcısı aynı ID.{numericId} öğe biçimini kullanır; sayısal kimlik bir MarketId, ClientAccountId veya TradingAccountId'dir ve SUB çerçevesindeki DataAdapter seçici (PRICES / ORDERS / QUOTES / CLIENTACCOUNTMARGIN / TRADEMARGIN), o kimlik için hangi veri kümesinin akıtılacağına karar verir. Eski PRICE.{id} önekleri yoktur.

Sipariş nesnesi kalıbı. İşlem istekleri, kütüphanenin başka yerlerinde kullanılan aynı Kucoin tarzı tasarımı izler: TsgcHTTPForexTradeOrder, TsgcHTTPForexStopLimitOrder ve TsgcHTTPForexCancelOrder. Siparişi bir kez oluşturun, birkaç alanı değiştirin, tekrar gönderin. Tipli IfDone dirsekleri (ekli stop / limit / garantili stop / iz süren stop), kısmi kapatma anlamı için Close dizileri, PositionMethodId (netleştirme - hedging) ve istemci Reference alanlarının tümü birinci sınıftır.

Kod Örneği

Cepheyi bir forma bırakın, kimlik bilgilerini ayarlayın, fiyat tick olayını bağlayın, Connect ve WatchMarket'i çağırın. Aşağıdaki kod parçası tam ve çalışan bir örnektir.

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

Tam bir VCL demosu Demos\05.Crypto\22.Forex klasöründe bulunur. Üç sekmeye bölünmüştür:

Kullanılabilirlik

Bir sonraki sgcWebSockets sürümünde, 2026.5.0, mevcuttur. Mevcut Enterprise ve All-Access lisans sahipleri bunu abonelikleri kapsamında alır; Professional lisansları yenilemeleriyle birlikte alır.

Ücretsiz bir Forex.com demo hesabı (UserName / Password / AppKey dahil) için www.forex.com adresinden kaydolun; tam API referansı docs.labs.gaincapital.com adresindedir.

Bağlantılar