次期 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 つの注文エンドポイント(NewTradeOrder、UpdateTradeOrder、NewStopLimitOrder、UpdateStopLimitOrder、CancelOrder)をサポートします。それぞれ 3 種類のオーバーロード(生 JSON・スカラーパラメーター・完全な IfDone ブラケットと部分クローズをサポートする型付き注文オブジェクト)があります。 |
口座 & 市場データ GetClientAndTradingAccount、ListOpenPositions、ListActiveStopLimitOrders、GetOrder、ListTradeHistory、ListStopLimitOrderHistory、SimulateTrade、GetMarketInformation、ListCfdMarkets、FullSearchWithTags、GetPriceBars、GetPriceTicks を提供します。 |
|
リアルタイムストリーミング STREAMINGALL アダプターセット配下の 5 つの Lightstreamer データアダプター(PRICES、ORDERS、QUOTES、CLIENTACCOUNTMARGIN、TRADEMARGIN)をサポートします。それぞれパース済みレコードを型付きイベント(OnForexPriceTick、OnForexOrderUpdate、OnForexPositionUpdate、OnForexAccountMargin、OnForexQuote)へ配信します。 |
統合ファサードコンポーネント 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_session、bind_session、control(サブスクライブ / アンサブスクライブ)、LOOP 自動再バインドハンドラー、再接続後のサブスクリプション再生を実装しており、Sec-WebSocket-Protocol: TLCP-2.5.0.lightstreamer.com サブプロトコルヘッダーで通知されます。これにより sgcWebSockets はネイティブ TLCP サポートを持つ最初の Delphi コンポーネントライブラリとなります。クライアントは意図的に汎用設計されており、Forex.com に固有ではなく、同じコードパスで任意の Lightstreamer ベースのブローカー(IG Markets など)やデータベンダーを駆動できます。
アイテムアドレッシング。すべての Forex.com アダプターは ID.{numericId} 形式を使用します。数値 ID は MarketId、ClientAccountId、または TradingAccountId で、SUB フレームの DataAdapter セレクター(PRICES / ORDERS / QUOTES / CLIENTACCOUNTMARGIN / TRADEMARGIN)がその ID に対してストリーミングするデータセットを決定します。従来の PRICE.{id} プレフィックスは使用しません。
注文オブジェクトパターン。取引リクエストはライブラリ内で統一された Kucoin スタイルの設計に従います。TsgcHTTPForexTradeOrder、TsgcHTTPForexStopLimitOrder、TsgcHTTPForexCancelOrder を使用します。一度注文を作成し、いくつかのフィールドを変更して再送信するだけです。型付き 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 つのタブに分かれています。
- Login — UserName / Password / AppKey フィールド、Connect / Disconnect / Ping、AutoReconnect トグル、ライブセッション / 口座 ID、実行中のイベントログ。認証情報は
sgcForexDemo.iniに保存されるため、一度入力するだけで済みます。 - REST Trading — マーケット検索(FullSearchWithTags)、NewTradeOrder / UpdateTradeOrder / NewStopLimitOrder / UpdateStopLimitOrder / CancelOrder、SimulateTrade、GetOrder、ListOpenPositions、ListActiveStopLimitOrders、ListTradeHistory、ListStopLimitOrderHistory。
- Streaming — WatchMarket / UnwatchMarket、ライブ価格グリッド、STREAMINGALL アダプターセットからリアルタイム更新されるポジション・注文リストビュー、ライブ口座証拠金パネル(Cash / Margin / NetEquity / TradeableFunds / Currency)。
提供時期
次期 sgcWebSockets リリース(バージョン 2026.5.0)で利用可能になります。既存の Enterprise および All-Access ライセンス保有者はサブスクリプションの一部として受け取ります。Professional ライセンスは更新時に受け取ります。
Forex.com の無料デモ口座(UserName / Password / AppKey を含む)は www.forex.com で登録できます。完全な API リファレンスは docs.labs.gaincapital.com にあります。
リンク
- コンポーネントドキュメント: esegece.com/help/sgcwebsockets/
- デモフォルダー:
Demos\05.Crypto\22.Forex - Forex.com 登録: www.forex.com
- API リファレンス: docs.labs.gaincapital.com
- Lightstreamer TLCP 2.5 仕様書: TLCP 2.5 PDF
- sgcWebSockets 製品ページ: esegece.com
