高度観念

高度観念

数式エディター

ADL ブロックでは、ブロックの出力値を計算するための数式を定義できます。このようなブロックは、それぞれの [ブロックプロパティ] パネルから [Formula Editor] を開くことができます。

[Formula Editor] には、以下のような、数式で使用できる値や演算子が表示されます。

  • 算術演算子 (+、 -、% など)
  • 括弧など、演算の順序を定義するための様々な記号
  • 比較演算子 (<、>=、==、!= など)
  • 論理演算子 (IF、AND、OR、! など)

    : IF 演算子は、[Alert] ブロックで現在サポートされていません。

  • 数値とブール値
  • 変数で、他の ADL ブロック出力コネクターからの値やブロックに入る離散イベントメッセージからの値を含みます。
    • ブロック コネクターを使って、数式の他のブロックからの出力を使用できます。
    • メッセージ欄により、受信した離散イベント メッセージからの情報を数式にて使用できます。

Formula Editor ではオート コンプリート機能を提供していて、アルゴですでに利用可能な情報を簡単に参照できます。特殊文字を入力すると (@または#)、数式に変数として挿入できる項目のリストがエディターに表示されます。また記号の後に文字を入力すると、その文字で始まる項目に絞り込まれます。

    # を入力すると、受信した離散イベント メッセージで利用可能なすべての欄のリストが表示されます。
    @ を入力すると、キャンバスに1つ以上の連続出力ポートを含むブロックのリストが表示されます。

サンプル数式

以下のサンプルでは、基本的な数式タイプを説明しています。

ブール数式

以下の数式は、単純にブール値「TRUE」を出力し、他の下流ブロックが使用できるようにするものです。

算術数式

[ExitPrice Value Extractor] ブロックの次の数式は、買注文の約定値よりも2ティック高い価格を計算します。そしてこれを使用して、買注文の約定値よりも2ティック高いエグジット売注文を発注できます。

    [fillPrice] メッセージ欄の値にアクセスするには、# を入力して欄を選択します。
    [TickSize Field ] ブロックの値にアクセスするには、@ を入力して希望するブロックを選択します。

条件付き数式

次の数式は、現在の反対側のインサイドマーケットが、約定値より2ティック高いかどうかに基づいて、[TRUE] または [FALSE] の値を出力します。

  1. IF 条件では、>=>= 演算子を使用して、[BestAsk] フィールド ブロックの値 (最良売値で利用可能な枚数) と約定価格から 2ティック離れた価格 (前の数式から) を比較します。
  2. 条件が 「TRUE」 の場合、数式はブール値 「TRUE」 を出力します。
  3. それ以外は、数式はブール値 「FALSE」 を出力します。

変数欄

[Formula Editor] には、アルゴが実行されるにつれ、動的に更新する値を追加できる、ドロップダウン メニューが含まれています。

  • connectors: アルゴリズムの他のブロックから、連続出力ポートの値を参照できるようにします。また [block.connector] の形式でコネクターを入力することもできます。

    [Formula Editor] 内の以下のコネクターにより、アルゴリズム内の Analytics0 という Analytics ブロックからの連続出力ポートが表示されます。

    :

    • 以上の例で、@Analytics0 または @Analytics0- (ダッシュ付き) を入力して、出力ポートをより細かく検索できます。
    • [Formula Editor] では、アルゴリズムの他のブロックからの連続出力ポートを最大100個のみ表示できます。
  • messages: 離散イベント メッセージに埋め込まれた以下の情報を抽出できます。また {fieldName} の形式でコネクターを入力することもできます。

    • limitPrice: 新規注文の価格。
    • orderQuantity: 合計注文枚数。
    • workingQuantity: 注文の約定待ち枚数。
    • fillPrice: 約定の価格。
    • fillQuantity: 約定の枚数。
    • cumQuantity: 約定枚数の合計。
    • disclosedQuantity: 市場で表示される公開注文の枚数。
    • deletedQuantity: 削除された注文の取消し枚数。
    • tradeQuantity: 指定した限月の直近枚数。
    • tradePrice: 指定した限月の直近値。
    • stopTrigger: 該当のストップ注文が有効化される価格。
    • isBuy: 約定が買側の執行であるかどうか。
    • isQuotingOrder: メッセージが送信済みのクォート注文により生成されたかどうか (Autospreader 注文ブロックにのみ有効)。
    • isHedgeOrder: メッセージが送信済みのヘッジ注文により生成されたかどうか (Autospreader 注文ブロックにのみ有効)。
    • isExternalEvent: メッセージがアルゴリズム以外の情報から生成されたかどうか。
    • isTriggered: 注文がトリガー条件から発生したものであるかどうか。
    • Instrument:: メッセージに関連した限月。
    • userFieldN: Value Injector により生成でき、Value Extractor がアクセスできる、4つの空白欄の1つ。
  • "string": (Alert ブロックのみ) メッセージ文字にカスタム文字を追加できます。

Formula Editor を使用するブロック

以下の ADL ブロックでは、カスタム数式を作成できます。