高度観念
数式エディター
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] の値を出力します。
- IF 条件では、>=>= 演算子を使用して、[BestAsk] フィールド ブロックの値 (最良売値で利用可能な枚数) と約定価格から 2ティック離れた価格 (前の数式から) を比較します。
- 条件が 「TRUE」 の場合、数式はブール値 「TRUE」 を出力します。
- それ以外は、数式はブール値 「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 ブロックでは、カスタム数式を作成できます。
-
取引ブロック
-
Discrete ブロック
-
Misc ブロック