Forex.com API REST / Lightstreamer

· コンポーネント

次期 sgcWebSockets リリース(バージョン 2026.5.0)では、Forex.com / StoneX / CityIndex トレーディング API のネイティブサポートを追加します。REST 注文管理とリアルタイム Lightstreamer ストリーミングを、フォームにドロップするだけの単一 Delphi コンポーネントで提供します。

3 つの新コンポーネントが全機能をカバーします。REST 取引用の TsgcHTTP_API_Forex、ネイティブ Lightstreamer TLCP 2.5 ストリーミング用の TsgcWSPClient_Lightstreamer、そして両者をつなぎ合わせて価格・注文・ポジション・気配値・口座証拠金の型付き OnForex* イベントを公開するファサード TsgcWSAPI_Forex です。

含まれる機能

現在の Forex.com ライブサーバーが提供するすべてのエンドポイントとストリーミングアダプターをそのまま(設定なし)でサポートしています。

REST 取引
LogOn / LogOff / Ping / GetServiceStatus、および 5 つの注文エンドポイント(NewTradeOrderUpdateTradeOrderNewStopLimitOrderUpdateStopLimitOrderCancelOrder)をサポートします。それぞれ 3 種類のオーバーロード(生 JSON・スカラーパラメーター・完全な IfDone ブラケットと部分クローズをサポートする型付き注文オブジェクト)があります。
口座 & 市場データ
GetClientAndTradingAccountListOpenPositionsListActiveStopLimitOrdersGetOrderListTradeHistoryListStopLimitOrderHistorySimulateTradeGetMarketInformationListCfdMarketsFullSearchWithTagsGetPriceBarsGetPriceTicks を提供します。
リアルタイムストリーミング
STREAMINGALL アダプターセット配下の 5 つの Lightstreamer データアダプター(PRICESORDERSQUOTESCLIENTACCOUNTMARGINTRADEMARGIN)をサポートします。それぞれパース済みレコードを型付きイベント(OnForexPriceTickOnForexOrderUpdateOnForexPositionUpdateOnForexAccountMarginOnForexQuote)へ配信します。
統合ファサードコンポーネント
TsgcWSAPI_Forex は REST クライアントと内部 Lightstreamer クライアントを 1 つのビジュアルコンポーネントにまとめます。Connect を呼び出すと、まず REST LogOn が実行され、Session トークンが LS_password として Lightstreamer ハンドシェイクに転送され、ストリーミングが開始します。コンポーネント 1 つ、呼び出し 1 回で完結します。
自動再接続
基盤となる WebSocket クライアントの WatchDog が処理します。再接続試行のたびにファサードが REST セッショントークンを更新し、ネットワーク切断後は TLCP LOOP フレームがすべてのアクティブなサブスクリプションを再バインド・再生します。セッション期限切れ時は透過的に LogOn を再実行します。
対応プラットフォーム
Delphi 7 ~ Delphi 13、Professional エディション以上。コンパイラがサポートする Windows、macOS、Linux、iOS、Android に対応します。ネイティブ sgcWebSockets DLL を基盤とする .NET ミラー(net40+、.NET Standard 2.0、.NET 5–9)も同梱されます。

内部の仕組み

この統合のストリーミング部分は最も興味深い部分です。Forex.com は、多くのブローカーや金融データベンダーが使用している独自ストリーミングプロトコル Lightstreamer を通じてリアルタイムデータを配信します。これまで Delphi 向けのネイティブ TLCP クライアントは存在せず、Lightstreamer 対応の取引所との既存統合はすべて、ブラウザ埋め込みや外部プロセス経由で Lightstreamer JavaScript または Java SDK をラップしていました。

TsgcWSPClient_Lightstreamer は Lightstreamer TLCP 2.5 プロトコルのゼロから実装です。create_sessionbind_sessioncontrol(サブスクライブ / アンサブスクライブ)、LOOP 自動再バインドハンドラー、再接続後のサブスクリプション再生を実装しており、Sec-WebSocket-Protocol: TLCP-2.5.0.lightstreamer.com サブプロトコルヘッダーで通知されます。これにより sgcWebSockets はネイティブ TLCP サポートを持つ最初の Delphi コンポーネントライブラリとなります。クライアントは意図的に汎用設計されており、Forex.com に固有ではなく、同じコードパスで任意の Lightstreamer ベースのブローカー(IG Markets など)やデータベンダーを駆動できます。

アイテムアドレッシング。すべての Forex.com アダプターは ID.{numericId} 形式を使用します。数値 ID は MarketIdClientAccountId、または TradingAccountId で、SUB フレームの DataAdapter セレクター(PRICES / ORDERS / QUOTES / CLIENTACCOUNTMARGIN / TRADEMARGIN)がその ID に対してストリーミングするデータセットを決定します。従来の PRICE.{id} プレフィックスは使用しません。

注文オブジェクトパターン。取引リクエストはライブラリ内で統一された Kucoin スタイルの設計に従います。TsgcHTTPForexTradeOrderTsgcHTTPForexStopLimitOrderTsgcHTTPForexCancelOrder を使用します。一度注文を作成し、いくつかのフィールドを変更して再送信するだけです。型付き IfDone ブラケット(ストップ / リミット / 確定ストップ / トレーリングストップ)、部分クローズ用 Close 配列、PositionMethodId(ネッティング vs. ヘッジング)、クライアント Reference フィールドすべてが一級サポートされます。

コードサンプル

フォームにファサードをドロップし、認証情報を設定して価格ティックイベントをワイヤリングし、Connect と WatchMarket を呼び出します。以下のスニペットは完全な動作例です。

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;

デモ

完全な VCL デモは Demos\05.Crypto\22.Forex にあります。3 つのタブに分かれています。

提供時期

次期 sgcWebSockets リリース(バージョン 2026.5.0)で利用可能になります。既存の Enterprise および All-Access ライセンス保有者はサブスクリプションの一部として受け取ります。Professional ライセンスは更新時に受け取ります。

Forex.com の無料デモ口座(UserName / Password / AppKey を含む)は www.forex.com で登録できます。完全な API リファレンスは docs.labs.gaincapital.com にあります。

リンク