仮想化とは、アルゴリズムの指定の部分に適用して、指定の部分の複数の「コピー」を作成し、同時に執行できるようにするプロパティです。概念は複雑に見えますが、例で説明すると、仮想化の必要性が明確になります。
以下の例で示すとおり、ユーザーは E-ミニ S&P 500 限月で単純なマーケット メイクのアルゴリズムを設計して実行する例を紹介します。
現在の最良買値が 1313.75 でアルゴリズムのエントリ ロジックが、この価格で 10 エントリ側の限月をクォートすることを想定します。次に 10 限月中 1 つの限月が 1313.75 で約定します。それに対して、アルゴリズムのエグジット ロジックが 1314.25 で1限月を、約定値より高い 2増分を提供します。
マーケットは高値に移動し、最良値は 1314.00 に変化することを想定します。Step 2 からのオフセット限月が 1314.25 でリセットされますが、アルゴリズムのエントリ ロジックは残りの 9 エントリ側限月を 1314.00 に変更します。次に 9 エントリ側のうち 2 エントリ側が 1314.00 で約定します。この時点で、アルゴリズムの合計約定数は、手順2 からの最初の部分約定も含めて 3 となります。アルゴリズムのエグジット側のロジックが合計約定数と最新の約定値のみを使用するように設計されている場合、1314.50 で3つのオフセット限月と、最新の約定値より2つ高い増分を提供します。さらに、アルゴリズムのエグジット ロジックは一度に1注文のみクォートできるので、1314.25 で残存するオフセット限月を削除しました (手順 2 より)。
この動作が発生しないようにするには、ユーザーはこのアルゴリズムのエグジット ロジックを仮想化する必要があります。仮想化では、エントリ側の約定が発生するたびに、エグジット ロジックの新規コピーが作成されるので、各オフセット注文が独立したロジックで作動できます。
ブロックのグループを仮想化すると、ユーザーは、指定の離散イベント (約定など) が発生するたびに、グループの新規コピーが作成されるように整理できます。つまり、ユーザーはブロック1組をグループ化し、グループを仮想化して、仮想グループ ブロックに離散イベント メッセージへの道筋を結びつける必要があります。この道筋を通じて離散イベント メッセージが仮想ブロックに入った場合、新たなコピーが作成され、各コピーはそれぞれ独立して作動します。ブロックの構造では同一である各コピーは、独自の入力と出力によりそれぞれ独立して作動できます。
注: 仮想ブロックの複数コピーが同時に存在できるので、[Designer Canvas] は仮想ブロック内に含まれるブロックの動的出力値を正確に表示しない場合があります。