WebSocketプロトコルは2種類のリクエストを許可します: Streamingコマンド(ライブ更新を受信)およびRetrieve Trading Data(何らかの情報を取得するリクエストをサーバーに送信)。
XTB プロパティで以下のプロパティを設定できます。
クライアントがXTBサーバーに正常に接続すると、OnXTBConnect イベントが発生します。接続を試みる際にエラーが発生した場合は、エラーの詳細とともにOnXTBError イベントが発生します。
OnXTBConnect イベントが発生した後、XTBサーバーからのメッセージの送信および受信を開始できます。
oClient := TsgcWebSocketClient.Create(nil);
oXTB := TsgcWSAPI_XTB.Create(nil);
oXTB.Client := oClient;
oXTB.XTB.User := 'user_0001';
oXTB.XTB.Password := 'secret_0001';
oClient.Active := True;
procedure OnXTBConnect(Sender: TObject; const aStreamSessionId: string);
begin
DoLog('#XTB Connected');
end;
procedure OnXTBError(Sender: TObject; aCode, aDescription, aRawMessage: string);
begin
DoLog('#error: ' + aDescription);
end;
| メソッド | 説明 |
| ログイン | クライアントアプリケーションは何らかのアクションを実行するためにログインプロセスを実行する必要があります。適切なログインプロセスの前には機能が利用できません。ログインメソッドはクライアントが WebSocket サーバーに接続し、User/Password の値が設定された後に自動的に呼び出されます。 |
| Logout |
以下のチャンネルをサブスクライブできます:
| メソッド | 説明 |
| SubscribeBalance | システムで利用可能になり次第、実際のアカウント指標の値をリアルタイムで取得できます。 |
| SubscribeCandles | API チャートキャンドルのサブスクライブとアンサブスクライブを行います。各キャンドルの間隔は 1 分です。新しいキャンドルは 1 分ごとに届きます。 |
| SubscribeKeepAlive | 「キープアライブ」メッセージを購読および購読解除します。新しい「キープアライブ」メッセージは API によって 3 秒ごとに送信されます。 |
| SubscribeNews | ニュースのサブスクライブおよびサブスクライブ解除を行います。 |
| SubscribeProfits | 利益の購読および購読解除を行います。 |
| SubscribeTickPrices |
相場のサブスクリプションを確立し、システムで利用可能になり次第リアルタイムで関連情報を取得できます。getTickPrices コマンドは同じシンボルに対して何度も呼び出せますが、特定のシンボルのサブスクリプションは 1 つだけ作成されます。複数のレコードが利用可能な場合、受信順序は保証されません。 |
| SubscribeTrades | ユーザーの取引ステータスデータのサブスクリプションを確立し、システムで利用可能になり次第リアルタイムで関連情報を取得できます。複数のレコードが利用可能な場合、受信順序は保証されませんのでご注意ください。 |
| SubscribeTradeStatus | 送信されたトレードリクエストのステータスをリアルタイムで、システムで利用可能になり次第取得できます。複数のレコードが利用可能な場合、受信順序は保証されないことにご注意ください。 |
| SubscribePing | この関数を定期的に呼び出すだけで、システム内のすべてのコンポーネントの内部状態を更新するのに十分です。ストリーミング接続では、クライアントがセッション内でコマンドを送信しない場合、一方向のネットワークトラフィックのみが生成されます。他のコマンドを実行しないアプリケーションは、少なくとも 10 分に 1 回はこのコマンドを呼び出すことをお勧めします。 |
次のリクエストを送信できます:
| メソッド | 説明 |
| GetAllSymbols | ユーザーが利用可能なすべてのシンボルの配列を返します。 |
| GetCalendar | 市場イベントのカレンダーを返します。 |
| GetChartLastRequest | この機能は通常、現在のローソク足データを取得するための優先される方法であるストリーミング同等の getCandles に置き換えることができます。開始日から現在まで、チャート情報を返します。CHART_LAST_INFO_RECORD で選択した期間が1分を超える場合、API によって返される最後のローソク足は期間の終了まで変化する可能性があります(ローソク足は毎分自動的に更新されます)。 |
| GetChartRangeRequest | この関数は通常、現在のローソク足データを取得する際に推奨されるストリーミング等価物 getCandles で置き換えられることにご注意ください。指定された開始日と終了日の間のデータを含むチャート情報を返します。 |
| GetCommissionDef | 手数料と為替レートの計算結果を返します。値は期待値として計算されるため、完全に正確ではない可能性があります。 |
| GetCurrentUserData |
アカウントの通貨、アカウントのレバレッジに関する情報を返します。 |
GetIbsHistory |
指定した時間範囲から IB データを返します。 |
| GetMarginLevel | この関数は通常、ストリーミング版の getBalance で置き換えられることに注意してください。getBalance はアカウント指標を取得する推奨方法です。さまざまなアカウント指標を返します |
| GetMarginTrade | 指定されたインストゥルメントとボリュームの予想マージンを返します。値は予想マージン値として計算されるため、完全に正確ではない場合があります。 |
| GetNews | この関数は通常、ニュースデータ取得の推奨方法であるストリーミング版の getNews に置き換えられることに注意してください。指定された期間内に取引サーバーから送信されたニュースを返します。 |
| GetProfitCalculation | 指定した取引データに基づいて推定利益を計算します。計算機のようなアプリにのみ使用してください。オープン中の取引の利益は、サーバーの計算精度が高いためサーバーから取得してください。 |
| GetServerTime | 取引サーバーの現在時刻を返します |
| GetStepRules | DMA のステップルールリストを返します。 |
| GetSymbol | ユーザーが利用可能なシンボルに関する情報を返します。 |
| GetTickPrices | この関数は通常、ストリーミングの同等版であるgetTickPricesで置き換えることができ、これがティックデータを取得する推奨される方法であることに注意してください。指定されたシンボルの現在のクオートの配列を返します。指定されたタイムスタンプから変更されたクオートのみが返されます。出力から得られた新しいタイムスタンプは、このコマンドの次の呼び出しの引数として使用されます。 |
| GetTradeRecords | orders 引数に一覧されている注文の取引配列を返します |
| GetTrades | この関数は通常、取引データを取得する優先方法であるストリーミング対応の getTrades に置き換えられることに注意してください。ユーザーの取引の配列を返します。 |
| GetTradesHistory | この関数は通常、ストリーミング版の getTrades で置き換えることができます。これが取引データを取得する推奨の方法です。指定した期間内にクローズされたユーザーの取引の配列を返します。 |
| GetTradingHours | クォートと取引時間を返します。 |
| GetVersion | 現在の API バージョンを返します。 |
| Ping | この関数を定期的に呼び出すだけで、システム内のすべてのコンポーネントの内部状態を更新するのに十分です。他のコマンドを実行しないアプリケーションは、少なくとも 10 分に 1 回はこのコマンドを呼び出すことが推奨されます。この関数のストリーミング相当物は ping と getKeepAlive の組み合わせであることに注意してください。 |
| TradeTransaction | 取引トランザクションを開始します。tradeTransaction はメイントランザクション情報をサーバーに送信します。 |
| TradeTransactionStatus | この関数は通常、トランザクションステータスデータを取得する推奨方法であるストリーミング相当のgetTradeStatusで置き換えることができることに注意してください。現在のトランザクションステータスを返します。トランザクション処理のどの時点でも、クライアントはサーバー側でトランザクションのステータスを確認できます。そのためには、クライアントはtradeTransaction呼び出しから取得した一意のorderを提供する必要があります。 |