離散ブロック

離散ブロック

Value Bucket ブロック

[Value Bucket] ブロックを使って、必要に応じて取得ができる、複数の数値のペアを保存できます。各ペアは、ユーザーが特定のペアの場所を検出できるように KEY と VALUE で構成されています。これはユーザーにとって実際の数字の時価を示します。入力離散イベント メッセージによりトリガーされると、[Value Bucket] ブロックは KEY に対して数式を計算し、エントリのキー部分を定義して、VALUE に対しその数式を使って関連値を決定します。[Value Bucket] キーは固有である必要があります。メッセージが既存のキーを使用するようにエントリに要請すると、ブロックの Mode プロパティは3つの方法のうちの1つで矛盾を解消できます。

  • キーの既存のエントリへの値の追加。
  • 既存の値を新規の値と既存の値の平均で置き換え。
  • 既存の値を新規の値で置き換え。

[Value Bucket] ブロックは以下の方法で作動します。

  1. [Store]store] ポートを通じて受信した離散イベント メッセージが [Value Bucket] ブロックをトリガーします。

  2. トリガーされると、[Value Bucket] ブロックは内部のハッシュ表に (ハッシュ表にういての詳細表示は、内部データの収集を参照してください)、KEY と VALUE で構成されている新規エントリを追加します。

  3. 新規エントリの追加後、[Value Bucket] ブロックは入力メッセージを検索し、内部ハッシュ表の中を検索して、キー値が入力 ルックアップ ポートに一致するキーのエントリを検出します。

  4. 適切なエントリを検出すると、[val] 出力ポートを通じてエントリの値を出力します。

  5. その後、その [out] ポートを通じて、元のメッセージをそのまま変更せずに渡します。

  6. オプションで、離散イベント メッセージが [reset] ポートをトリガーすると、内部ハッシュ表を空にし、値を NaN (Not A Number) にリセットするように、[Value Bucket] ブロックを設定できます。

: [Value Bucket] ブロックが [MsgInfo Extractor] ブロックからの離散イベント メッセージによりトリガーされると、ブロックは内部数式を使って KEY として取引価格を、VALUE として取引枚数を使用し、これらの値を [Value Bucket] ブロックの新規エントリとして加算します。ブロックはまた [lookup] ポートを通じて [tradePrice] を受信します。[Value Bucket] ブロックはこれを使って [tradePrice] の KEY を含むエントリの検出を行います。このエントリの VALUE は、[val] ポートを通じて出力されます。ブロックはまた [out] ポートを通じて元の離散イベント メッセージを下流ロジックに渡します。

この例では、取引が発生するたびに、[Value Bucket] ブロックを使って価格と枚数の保存を行います。取引が発生すると、始値よりも低い取引価格を使って、各取引において内部収集から一致枚数を出力します。出力は、しきい値を交差すると、下流のロジックにて使用されます。[Value Bucket] ブロックも、各取引に対し受信メッセージを出力し、下流のロジックがそのメッセージを処理します。

[Value Bucket] ブロックは [Fields Formula Editor] を使って、それぞれの [storeKey] と [storeVal] 欄の取引価格 (tradePrice) と取引枚数 (tradeQuantity) 値を指定します。

内部データ収集

[Value Bucket] ブロックの内部ハッシュ表は、2つの列 [KEY] と [VALUE] を使って単純な表として観念化できます。以下の例にて、特定の限月で取引が発生するたびに、[Value Bucket] ブロックが離散イベント メッセージによりトリガーされる場合を想定します。トリガーされると、[Value Bucket] は各新規エントリの [KEY] として取引価格を、[VALUE] として取引枚数を抽出して使用します。ユーザーはこのような表を作成して、取引セッション中に異なった価格で実行中の出来高を管理して使用できます。

  1. 以下の説明図に示されているように、[Value Bucket] ブロックにてすでに、内部ハッシュ表に3つのエントリが含まれている場合を想定します。

  2. 新規の取引が 1290 25 の価格で、3 枚発生することを想定します。この情報を含んでいる離散イベント メッセージが [Value Bucket] ブロックをトリガーします。トリガーされると、ブロックは、取引価格と取引枚数を使って内部ハッシュ表に、新規のエントリを抽出して追加します。

  3. ユーザーが #bars 入力を 1289 50 と指定することを想定します。ブロックは内部ハッシュ表を検索し、これらの KEY 値が入力 #bars 値に一致するエントリを検出します。後に、「7」として該当する VALUE を出力します。

ブロック プロパティ

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

プロパティ 説明
名前 ADL キャンバスのブロックの下に表示される名前。
Mode (モード)

時として、ハッシュ表の2つのエントリが同じ KEY となる場合があります。この場合、[Value Bucket] はユーザーが選択した3つの方法のうち1つを通じて矛盾を解決します。

  • Sum (合計): 2つの矛盾エントリの値を合計し、1つのエントリに統合します。
  • Average (平均): 2つの矛盾エントリの値の合計の平均をとり、1つのエントリに統合します。
  • Last (最新): 最新のエントリを保持して古いエントリを削除します。
Formulas (数式)

エントリのキーの値と値のペアを計算するのに使用される等式。

編集リンクにより [Fields Formula Editor] が起動されます。