取引ブロック

取引ブロック

Single Order Container ブロック

[Single Order Container] とは、別の取引ブロックにより生成された1つの注文を管理する取引ブロックです。取引ブロック (Order ブロックなど) が注文を発注する際、その特定の注文に対し固有の注文キーを保持します。取引ブロックは次に、注文キーを含んだ離散イベント メッセージを出力します。[Single Order Container] は離散イベント メッセージを受信し、そこから注文キーを抽出して、識別済みの注文を制御できます。

[Single Order Container] は、既存の注文に関する情報を含んだ離散イベント メッセージを受信し、その注文を制御します。これは、直近値が元の注文の価格より1ティック以上を上回った場合、注文を削除するように設定されています。この条件が発生した場合は、[del] 入力ポートは [TRUE] になり、[Single Order Container] に、管理している注文を削除するように指示します。ブロックが約定待ち注文と注文の蓄積枚数を出力し、[msgs] 出力ポートを通じて、関連する離散イベント メッセージ (「Del OK」や「Fill」など) を送信します。

以下のポートのみ [Single Order Container] に接続できます。

[Single Order Container] は、最後の注文メッセージがブロックをトリガーして以来に達成した、約定のメモリを保持します。[wrk qty] ポートは約定待ちを続けている枚数を出力し、[cum qty] ポートは約定枚数を出力します。

[Single Order Container] により制御されている注文を、ユーザーが手動で削除または変更すると、ユーザーに対し制御を放棄させることになりますが、それでも予定の時間に適切な出力ポートから、離散イベントメッセージは生成されます。ユーザーがアルゴリズムを一時停止して再開すると、注文コンテナは管理注文を再び指定して、再び制御を取ろうとします。

[Single Order Container] の注文管理方法

[Single Order Container] は、価格入力と枚数入力に基づいて、管理注文を変更します。さらに:

  • 管理注文が最初にストップ トリガーで発注されると、[Single Order Container] はストップ トリガーに一致して管理注文を変更します。ただしストップ トリガーは、ストップ トリガーを使わずに元々作成された注文に接続できないことに注意してください。

  • [Single Order Container] は、公開枚数入力 (がある場合は) これに準拠して、管理注文を変更します。管理注文が公開枚数を使わずに最初に発注されると、[Single Order Container] は、管理注文を取引所が識別するアイスバーグ注文に変更します。

  • [del] 入力が [TRUE] に変わると、[Single Order Container] は管理注文を削除しますが、[FALSE] に戻ったときに、新規の注文を発注しません。[Order] ブロックが最初の注文メッセージを生成すると、[Order] ブロックは入力を再評価して、新規注文を送信すべきかどうかを決定します。[Single Order Container] は新規注文を管理します。

[Demultiplexer] ブロックに接続されている [Single Order Container]

[Single Order Container] と一緒に [Demultiplexer] ブロックを使用すると、取引所から、注文の追加や約定、変更の確認を受信した際に、離散イベント メッセージを生成することで、低度の制御が可能になります。Demultiplexer ブロックは、出力離散メッセージを取得し、メッセージのタイプを決定し、適切な出力ポートを通じて、メッセージを送信します。

ブロック プロパティ

ブロックをカスタマイズするには、[Block Properties] を更新します。

プロパティ 説明
Name (名前) ADL キャンバスのブロックの下に表示される名前。
When Ext Mod Occurs (外部変更の発生時) 注文がアルゴリズム外で変更された場合に取る操作。
  • [Ignore] は、ブロック入力を使用し続けて、外部変更を無視します。
  • [StopManaging] は、ブロック入力を無視して、代わりに外部変更を使用します。
  • [Detach] は、ブロック入力を無視して、ブロック出力の送信を中止します。