数式エディター
ADL ブロックの多くでは、数式を定義して、ブロックの出力値を計算することができます。このようなブロックでは、各 [Block Properties] パネルから [Formula Editor] を起動できます。
[Formula Editor] では、以下の演算子を含む、数式で利用できる値や演算子のタイプが表示されます。
- 算術演算子 (i.e. +、-、%)
- 括弧など、演算子の順序を定義するその他の記号。
- 比較演算子 (i.e. <, >=, ==, !=)
- 論理演算子 (i.e. IF, AND, OR, !)注: IF 演算子は、Alert ブロックでは現在サポートされていません。
- 数値とブール値
- ブロックを入力する離散イベント メッセージからの値や、他の ADL ブロック出力コネクターからの値を含む、変数。
- Block コネクターを使って、数式にて別のブロックからの出力を使用できます。
- メッセージ欄を使って、受信する離散イベントメッセージからの情報を使用できます。
[Formula Editor] では、アルゴですでに利用可能な情報に簡単にアクセスできるように、オートコンプリート機能を提供しています。1つ以上の文字を入力すると (@ または #)、エディターには、数式に変数として挿入できる項目の一覧が表示されます。また、特殊記号の後に文字を入力すると、これらの文字で始まる項目の一覧をフィルターできます。
# を入力すると、受信するイベント メッセージで利用可能なすべての欄の一覧が表示されます。 | |
@ を入力すると、1つ以上の連続出力ポートを含んだ、キャンバスのブロックの一覧が表示されます。 |
サンプル数式
以下のサンプルで、基本の数式タイプを示しています。
ブール値数式
以下の数式は単純に、[TRUE] の Boolean 値を出力します。これは他のダウンストリーム ブロックで使用できます。
算術数式
[ExitPrice Value Extractor] ブロックの以下の数式は、約定値よりも2ティック高値を計算します。これは、買注文約定の価格よりも2ティック高くでエグジット売値を発注するのに使用できます。
「fillPrice」メッセージ欄にアクセスするには、# を入力して欄を選択します。 | |
TickSizeField ブロックの値にアクセスするには、@ を入力して希望のブロックを選択します。 |
条件数式
以下の数式は現在の反対のインサイド マーケットが約定の価格よりも2ティック高いかどうかに基づいて、[TRUE/FALSE] 値を出力します。
- IF 条件が >= 演算子を使って、約定価格 (以前の数式からの) から2ティック離れた価格で、BestAsk Field ブロックの値を比較します (最良売値で利用可能な枚数)。
- 条件が [TRUE] の場合、数式は Boolean 値 TRUE を出力します。
- それ以外は数式は Boolean 値 FALSE を出力します。
変数欄
[Formula Editor] には、アルゴが実行されると動的に更新を行う値を追加することのできる、ドロップダウンが含まれています。
-
connectors: アルゴリズムでその他のブロックの連続出力ポートを参照することができます。形式 [block.connector] にコネクターを入力することもできます。
-
messages: 離散イベント メッセージ内に組み込まれた以下の情報のうち任意ののものを抽出できます。形式 [fieldName] にてコネクターを入力することもできます。
- limitPrice: 新注文の価格。
- orderQuantity: 合計注文枚数。
- workingQuantity: 注文の約定待ち枚数。
- fillPrice: 約定の価格。
- fillQuantity: 約定の枚数。
- cumQuantity: 約定枚数の合計。
- disclosedQuantity: 市場で表示される公開注文の枚数。
- deletedQuantity: 削除済み注文の取消枚数。
- tradeQuantity: 特定の限月の直近値の枚数。
- tradePrice: 特定の限月の直近値。
- stopTrigger: 各ストップ注文が有効化される価格。
- isBuy: 約定が買サイドの執行であるかどうか。
- isQuotingOrder: メッセージが発注済みクォート注文により生成されたかどうか (Autospreader 注文ブロックのみ有効)。
- isHedgeOrder: メッセージが発注済みヘッジ注文により生成されたかどうか (Autospreader 注文ブロックのみ有効)。
- isExternalEvent: メッセージがアルゴリズム外から生成されたかどうか。
- isTriggered: 注文がトリガー条件から発生したかどうか。
- Instrument:: メッセージに関連する限月。
- userFieldN: 4つの空白の欄のうち1つはValue Injector で生成され、Value Extractor によりアクセスされます。
-
"string": (Alert ブロックのみ) メッセージ文字列にカスタム文字を追加することができます。
Formula Editor を使用するブロック
以下の ADL ブロックでは、カスタム数式を作成することができます。
-
Trading ブロック
-
Discrete ブロック
-
その他のブロック