図1は、セキュリティを売買するオーダを処理するために使用される従来のアルゴリズム取引プラットフォーム(アルゴプラットフォーム)100の一般的なシステムアーキテクチャを示すハイレベルブロック図である。アルゴリズムオーダ(アルゴオーダ)105は、機関オーダ管理システム(OMS)または実施管理システム(EMS)110から発行され、アルゴプラットフォーム100に送信される。アルゴオーダ105は、サイド(買いまたは売り)、数量、および指値を指定する。新アルゴオーダ105は、オープンアルゴオーダに関する情報を追跡するために使用されるアルゴオーダテーブル120に追加される。アルゴオーダテーブル120のアルゴオーダが処理されるように選択されると、アルゴリズムオーダ管理130は、アルゴオーダを多くのより小さい離散的子オーダに分割するように動作する。子オーダ135は、指定された実施アルゴリズムにしたがって親から連続的に「スライス」される。新アルゴオーダ105は、また、実施を時間にわたっておよび/または市場量にわたって分散させるように子スライスを制御するために、アルゴオーダ管理130によって使用される一般的な指示を有することもできる。
子オーダ135は、子オーダをさらに小さい離散的孫オーダ145に分割するスマートオーダルータ(「SOR」)140によって処理される。SOR140は、孫オーダ145を選択されたPIT(ポイントインタイム)取引ベニュー150に向ける。各取引ベニュー150は、ポイントインタイム(PIT)取引を実施し、受信したオーダをコントラオーダとマッチングし、各マッチングについて、一定価格および一時点で交換されているセキュリティの単一の離散量の単一の実施を行う。実施情報155は、それぞれのPIT取引ベニュー150からアルゴ取引プラットフォーム100に戻され、これを用いて、適宜、孫、子、および初期オーダ145、135、105に関連する内部データを更新する。
PIT取引ベニュー150で発注されたオーダが条件付きである場合、PIT取引ベニューは、そのオーダに対するオーダとのマッチングを検出すると、SOR140などのオーダ発信者に招待を送り、確定応答オーダを送るように招待する。確定応答オーダ160が受信された場合、確定応答オーダは、キャンセルされた条件付きオーダを置き換え、代わりに確定応答オーダが処理される。
図2Aは、従来のアルゴオーダ管理130の一般的な動作のハイレベルフローチャートである。図2Bは、従来のSOR140の一般的な動作のハイレベルフローチャートである。図2Aおよび図2Bを参照すると、例えば、セキュリティXYZのNシェアを購入するために、初期アルゴリズムオーダが受信されると(ステップ202)、シェアの初期数を含むオーダに関する情報が、アルゴリズムオーダテーブルに追加される(ステップ204)。初期または次の子スライスが必要とされる場合、適切なアルゴリズムおよびオーダパラメータが適用され、新しい子オーダ(例えば、nシェアについて)がスライスされる(ステップ206、208)。ここで、nはNよりはるかに小さくてもよい。子オーダが下流処理のためにSORに発行され(ステップ210)、アルゴオーダ表(または他の適切なデータセット)は、オリジナルのアルゴオーダにおける潜在シェア数、例えば、発行された子オーダに割り当てられておらず、したがって、さらなる子オーダにスライスされ、実施のために送出されることが可能であるシェア数を示すように更新される。(ステップ212)。潜在シェアがアルゴオーダに残っている場合(ステップ214)、システムは適用されたアルゴリズムにしたがって子オーダをスライスオフし、発行し続ける(ステップ206~212)。残りの潜在シェアがなくなると(ステップ214)、追加の子オーダをスライスする必要がなくなる。
図2Bを参照すると、SORがアルゴオーダ管理から子オーダを受け取ると(ステップ216)、孫オーダを生成し、次に実施のためにPIT取引ベニューにそれらを発行する(ステップ218、210)。PIT取引ベニューからの実施情報がSORによって受信され(ステップ222)、実施データがアルゴオーダ管理に戻される(ステップ224)。
図2Aに戻ると、子オーダ実施データがSORから受信されると(ステップ226)、アルゴオーダ管理は、実施された取引で交換されたシェアの量を反映するように、アルゴオーダテーブルのアルゴオーダに関する情報を更新する(ステップ228)。実施された全シェア数がアルゴーダの全シェア数未満(例えば、N未満)である場合(ステップ230)、アルゴオーダ管理は、SORからの追加の実施データを待ち続ける。(ステップ226)。残りのシェアがない場合、アルゴオーダ全体が満たされている(ステップ330)。交付されたアルゴオーダ、子オーダ、および/または孫オーダがそれぞれのオーダを適宜確定するための条件付きオーダである場合には、追加のステップを講じることができる。
図3は、ストラテジマッチングプラットフォームを使用してストラテジオーダを実施することができ、従来のアルゴリズム取引システムと共に実施および動作することができる、改善された取引システムアーキテクチャ300のハイレベルブロック図である。
アルゴリズムオーダと同様に、ストラテジオーダは、オーダセキュリティ(または他の取引可能なアイテム)、サイド(例えば、買いまたは売り)、および指値を指定する。さらに、従来の取引システムとは対照的に、ストラテジオーダは、また、所定のセットのストラテジから選択されるストラテジタイプを指定する。各ストラテジオーダタイプは、異なる実施レートまたはレートの範囲を有することができる。有利には、ストラテジマッチングシステムは、一定期間に市場で取引される量の100%を超えて実施するなど、従来のアルゴシステムによってサポートされない取引ストラテジを実施することができる。
多種多様な異なるストラテジタイプを定義することができる。様々な所定のセットのストラテジを、様々な状況での使用、異なるタイプの取引可能アイテムの取引での使用、および様々な事業体による使用のために利用可能にすることができる。各機関トレーダまたはブローカディーラは、それ自体のカスタマイズされた独自のストラテジタイプのセットを有することができる。各ストラテジタイプは、レートまたはレートの範囲を有し、それ自体にマッチさせることができ、所定のセットの1つ以上の他のストラテジタイプにマッチングさせることができ、場合によっては他の所定のストラテジセットでマッチングさせることができる。ストラテジマッチングに優先順位を付けることができる。一実施形態では、ストラテジは、相対流動性率にしたがって優先順位を付けることができる。1つのストラテジが2つ以上の他のストラテジによってマッチングされ得る場合、より高いレートを提供するマッチングストラテジは、より高い優先度を与えられ得る。
多種多様な異なるストラテジを定義することができるが、一実施形態では、ストラテジは、3つの基本クラスに分類される。第1ストラテジクラスは、100%以下の基準レートまたは基準レートの範囲を有するストラテジを備える。以下でさらに述べるように、ストラテジの基準レートは、例えば、実施量が、問題のアイテムの取引量の特定の記録に適用される一定レートから決定される、ストラテジオーダの実施レートを決定する際に使用される。第2ストラテジクラスは、基準レートまたは100%を超える基準レートの範囲を有するストラテジを備える。第3のストラテジクラスは、流動性検索であり、ストラテジオーダ処理中に許容される最大レートが使用されることを示す非数値レート(または無限大)を備える。
図3に戻ると、高効率レート最適化(Hight Efficiency Rate Optimizer(HERO))システムエンジン310は、1つ以上のストラテジマッチングベニュー315に接続される。HEROシステムは、ストラテジマッチングベニュー315にストラテジオーダを発行するように動作する。ストラテジマッチングベニュー315は、受信されたストラテジオーダを同じセキュリティで互換性のあるストラテジを有するコントラストラテジオーダとマッチングさせようと試みる。
ストラテジマッチングベニュー315によってマッチングが見つかると、マッチングされたオーダについてのそれぞれのストラテジタイプの互換性のある態様にしたがって、マッチングされたオーダについて一連の実施が実施される。PIT取引ベニュー150で動作する従来のアルゴ取引システム100で行われるように、離散的かつ独立的なサブオーダをマッチングさせる代わりに、ストラテジマッチングベニュー135のマッチングは、オープンエンドであり、マッチングされたストラテジオーダに利用可能な最大限まで流動性を最大化することができる。単一のマッチングは、基準レートおよび統合された取引量に基づいて、フィルの連続的な流れをもたらすことができ、ストラテジマッチングは、これが連続的な市場にアクセスする必要なしに行われることができるように実施される。実施価格は、市場取引データによって反映されるセキュリティの現在の市場価格と、オーダの取引ストラテジおよび市場データによって反映されるセキュリティの取引量などの現在の基準市場データの機能として決定される実施量とに基づくことができる。フィルの流れは、マッチングしたストラテジオーダ間の市場性のある流動性が使い果たされたときに終了する。
以下でさらに説明するように、アルゴオーダは、アルゴ取引プラットフォームがマッチングを試みる目標レートなど、関連するアルゴリズム制約を有することができる。ストラテジオーダは、所定のストラテジマッピングルールにしたがって、所定のセットのストラテジからストラテジを選択することによって、アルゴオーダのために生成されることができる。ストラテジマッピングルールの異なるセットは、異なるシステムユーザによって定義することができ、使用される特定のマッピングテーブルは、たとえば、初期オーダを発行した当事者に応じて選択することができる。予め定義されたストラテジマッピングルールは、静的であってもよく、アルゴオーダ目標レートに基づいて特定のストラテジにマッピングされてもよい。ストラテジマッピングルールは、動的であってもよく、マッピングされるストラテジは、完了したアルゴオーダのパーセンテージ、問題のセキュリティに関連する市場データ入力、および/または他の直接的または間接的要因などの要因に依存する。
図19は、どちらのストラテジタイプがどちらの他のタイプおよび優先順位とマッチングするのかを示す所定のセットのストラテジタイプと行列の例である。図示の実施形態では、低のレート範囲ストラテジが5%~15%の基準レート範囲を有するものとして定義され、中のストラテジが10%~30%の基準レート範囲を有するものとして定義される。低ストラテジを有するストラテジオーダは、オーダがマッチングしたときに、以下でさらに説明するように、マッチングした1つ以上のコントラオーダのストラテジに依存する実際のレートで、関連する取引量の5%~15%のレートで実施されるように、ストラテジマッチングベニューで処理される。同様に、中ストラテジを有するストラテジオーダは、関連する取引量の10%~30%の間のレートでストラテジマッチングベニューにおいて実施される。100%~200%および100%~400%のレートストラテジは、100%を超える実施レート範囲を示す。正確なレートストラテジは、ストラテジマッチングベニューの実施に対して、7%のような単一の基準レートを指定する。ストラテジは、他の範囲を有することもできる。ストラテジセットの所定のストラテジ数は、変化することができ、ストラテジ数を増加させることは、様々なストラテジ間のレート細分性を増加させることができる。ストラテジは、重なり合うストラテジが互いにクロスマッチングされることを可能にするために、意図的な重なり合いで定義されることができる。
低ストラテジと中ストラテジとの両方が10%と15%との間のレートを許容し、したがって、低ストラテジタイプに関連する取引を使用して、いずれかのオーダの指定されたストラテジレート範囲に違反することなく、中ストラテジオーダ(より高いレートで実施される)によって行われるコントラ取引の少なくとも一部を満たすことができるので、低ストラテジと中ストラテジとは互いにマッチングすることができる。実際にはストラテジマッチングベニューでの実施に使用されるレートは、重なりの最大レートであり、ここでは15%であるが、代替の実施形態では、特定の取引状況に適切であると考えられる場合にはより低いレートを使用することができる。同様に、100%~200%および100%~400%のストラテジタイプは、100~400%のストラテジを有するオーダが200%のストラテジを有するオーダによって少なくとも部分的に満たすことができるので、この点で互換性がある。流動性検索ストラテジは、すべての金利ベースのストラテジおよび流動性検索ストラテジとマッチングする。
所定のストラテジを、複数の異なる互換性のあるコントラストラテジにマッチングさせることができる場合、優先順位を最も高い潜在的流動性を有するマッチングに与えることができる。図19では、ストラテジマッチング優先順位は、シーケンス番号1~5によって例示的に示され、1は最高優先順位を示す。例として、中(10%~30%)ストラテジを有する買いオーダは、流動性検索ストラテジを有するコントラオーダに優先的にマッチングされ、媒体ストラテジに利用可能なものがない場合、および低(5%~15%)ストラテジオーダに利用可能なものがない場合、マッチングされる。
ストラテジオーダがコントラストラテジオーダにマッチングされると、ストラテジオーダに利用可能な追加の容量がある場合、そのストラテジオーダは別のコントラストラテジオーダにマッチングすることができ、他のコントラオーダは、互換性がない可能性があるストラテジを有することもできる。例えば、5~15%のストラテジを指定するストラテジオーダは、11%の正確なストラテジレートを有するコントラストラテジオーダに対してマッチングさせることができる。ストラテジマッチングは、11%レートで実施されるので、初期ストラテジオーダは(初期ストラテジマッチングが有効である間に)15%~11%=4%の残りの容量を有し、したがって、<=4%のストラテジ(または残りのストラテジ容量)を有する第2コントラオーダに対して同時にマッチングさせることができる。
ストラテジマッチングルールのセットでは、目標取引レートXを有するアルゴオーダがAからBまでの範囲の基準レートを有するストラテジにマッピングされる傾向があり、ここでは、A<=X<=Bである。ただし、これはユーザが必要とするマッピングを指定する必要はない。さらに、この条件内であっても、2つ以上のストラテジがXを包含する基準レート範囲を有する場合、異なるユーザは、オーダを異なるストラテジにマッピングする自身のストラテジマッチングルールを定義することができる。例えば、第1ユーザは、5%~15%ストラテジへの12%マッピングのアルゴ目標レートを指定するアルゴオーダをもたらすルールを指定することができ、第2ユーザは、15%~30%ストラテジへの12%マッピングの同じ目標レートを伴うアルゴオーダをもたらすルールを指定することができる。第3ユーザは、5%と12.5%との間の基準レートを有する任意のアルゴオーダが5%~15%のストラテジにマッピングされ、一方、12.5%を超え35%未満の基準レートを有するオーダが10%~30%のストラテジにマッピングされることを指定することができる。
図19のストラテジから選択されたストラテジを有するストラテジオーダAおよびBの実施例を関連するセキュリティ10000の取引量Vについて以下に示す。これらの例は、ストラテジオーダに市場性があり、それぞれが、交換されるべき決定された数量に対して利用可能な容量を有すると仮定する。いずれかのオーダの容量が計算された量よりも小さい場合、最も低い容量が交換される量を決定する。
運用上、ストラテジマッチングベニュー315は、マッチングの一連の取引を実施し続ける。取引は、適用された参照レートおよび直近の取引量(対応する取引価格)から計算された数量を用いる、または、マッチングしたペアのオーダの容量が枯渇したり、オーダのうちの1つが市場性を欠いたりするまで、マッチングを求める流動性を求めるブロックの現在のビッドオファーの中間を用いる。
HEROシステム310は、HEROシステム(本明細書ではHERO認識アルゴプラットフォームと呼ぶことができる)と連携して動作するように構成されたアルゴ取引プラットフォームエンジン320とも通信する。アルゴ取引プラットフォーム320およびHEROシステム310は、すべて、セルサイドまたはバイサイドのブローカディーラシステム全体の一部として実施することができ、システムを統合する様々な方法がある。適格なアルゴオーダがアルゴ取引プラットフォーム320に送信されると、HEROシステム310は、対応するストラテジオーダを生成し、このストラテジオーダをストラテジマッチングベニュー315に発行する。1つのストラテジマッチングベニュー315が示されているが、利用可能な複数のストラテジマッチングベニューがあってもよく、HEROシステム310は、所望に応じて適切なストラテジマッチングベニューを選択するように構成されてもよい。所定のストラテジオーダに使用されるストラテジマッチングベニューは、事前に定義することができ、または、発行されている取引可能アイテムのタイプまたはオーダに関する他の詳細などの様々な要因に基づいて動的に選択することができる。
HEROシステム310およびそれぞれのストラテジマッチングベニュー315によるストラテジオーダの全体的な処理、ならびにアルゴ取引プラットフォーム320およびPITベニューによる対応するアルゴオーダの処理は、大まかに並行して起こる。ストラテジオーダに対するストラテジマッチングは、対応するアルゴオーダのアルゴリズム処理よりも優先される。メッセージは、HEROシステム310とアルゴ取引プラットフォーム320との間で交換され、HEROシステム310は、ストラテジマッチングベニューによるストラテジマッチングからのフィルのストリーミング中に、アルゴオーダのアルゴリズム処理を開始および停止するように、アルゴ取引プラットフォーム320に命令する。メッセージは、また、HEROシステム310およびアルゴ取引プラットフォーム320の両方を、それぞれのアルゴオーダおよび対応するストラテジオーダを満たす状態に関して最新の状態に保つために交換される。
ストラテジマッチングから生じる実施されたシェアの総数は、ストラテジマッチングベニュー315によってマッチングが行われた時点では未知であり得る。ストラテジマッチングベニュー315はマッチングを検出すると、関連するストラテジオーダについて、本明細書では「ストリームオン」条件とも呼ばれる、マッチングが見つかった条件メッセージの存在をHEROシステム310に通知する。続いて、HEROシステム310は、アルゴ取引プラットフォーム320にストリームオン状態を通知し、アルゴ取引プラットフォーム320に対応するアルゴオーダについての新たな子オーダのスライスを停止するように指示する。
フィルのストリームがストラテジマッチングベニュー315で終了すると、HEROシステム310に、「ストリームオフ」条件とも呼ばれるマッチングブレーク条件メッセージを関連するストラテジオーダのために送信する。HEROシステム310は、また、ストラテジマッチングベニュー315によって、ストラテジマッチングベニューでフィルが実施されている間、またはストリームが終了した後の合計など、ストラテジマッチング中に実施されたフィルの合計数を通知される。HEROシステム310は、ストラテジオーダに関連する内部記録を更新する。また、それは、アルゴ取引プラットフォーム320に、ストリームオフ状態と、(その情報がまだ提供されていない場合には)フィルの総数とを通知する。次いで、アルゴ取引プラットフォーム320は、対応するアルゴオーダについてそれ自体の内部記録を更新することができる。アルゴオーダが完全に満たされていない場合、アルゴ取引プラットフォーム320は残りのアルゴリズム処理を再開することができ、HEROシステム310およびストラテジマッチングベニュー315は、対応するストラテジオーダを処理するために並行して継続することができる。
条件付きオーダを確定するために、または所定のオーダと交換することができるシェア量を決定するために、必要に応じて、ストラテジマッチングベニュー315と、HEROシステム310と、アルゴ取引プラットフォーム320との間で追加のメッセージを送信することもできる。ストラテジオーダがシェアの総数を指定する場合、ストラテジオーダ更新は、HEROシステム310によってストラテジマッチングベニュー315に送信されて、対応するアルゴオーダを作業するアルゴシステムの活動から生じる実施を反映することができる。
一実施形態では、HEROシステム310はアルゴ取引プラットフォーム320の内部態様と通信することから、HEROシステムモジュール310は、一般的に、アルゴ取引プラットフォーム320を含む同じブローカディーラシステムに統合することができる。したがって、ブローカ/ディーラは、HEROシステムをその取引システムにインストールし、そのアルゴオーダ管理を修正することができ、HEROシステムと適切に通信し、必要に応じてアルゴリズムオーダ処理を開始および停止することができる。そのようなアルゴシステムは、その後、より効率的な方法で、全体的にまたは部分的に、対応するオーダを満たすことができる個別のオーダ処理システムと並列に配置された対応するオーダの処理に有利になるように、アルゴリズムオーダのアルゴリズム処理を一時停止し、再開するように制御可能である。
アルゴ取引プラットフォームシステムは、また、適切なAPIまたは他のプログラムフックを有するように設計または修正されることができ、内部制御は、HEROシステムが最初に利用可能でないか、または利用可能であるが、個別のシステムとして実施される場合であっても、HEROシステムと協働するために必要とされる。アルゴプラットフォームと通信するために適切なAPIインターフェースを備えたHEROシステムモジュールを別々に追加することができる。HEROシステム310を、従来のアルゴ取引プラットフォーム320に実装し、統合することができる様々な方法がある。以下、特定の実施形態について説明する。
図4は、HEROシステム315のアーキテクチャのハイレベル図である。一つ以上のコンピュータプロセッサ405は、プログラムメモリ410に記憶されたコンピュータソフトウェアを実施する。プロセッサ405は、アルゴリズムオーダに基づくストラテジオーダの生成に使用され、ストラテジオーダテーブル415、ストラテジマッピングルールの1つ以上のセット、および他の動作データ425などの1つ以上のデータリポジトリを含むデータメモリ412へのアクセスを有する。
HEROシステム310を外部システムに接続するために、適切な通信インターフェース430が使用される。図示の実施形態では、LAN435は、HEROシステム310とアルゴ取引プラットフォーム320との間の通信を提供し、一方、別体のWAN440は、HEROシステム310と1つ以上のストラテジマッチングベニュー315との間の通信を提供する。HEROシステムを実施するために使用されるコンピュータプラットフォームは、期待される取引量をサポートするのに十分なデータスループットおよび処理能力を有する1つ以上の高速コンピュータとすることができる。LANおよびWANネットワーク435、440は、高速光ファイバデータネットワーク、または金融取引ネットワークで従来使用されている他のネットワークシステムとすることができる。適切なコンピュータプラットフォームは、当業者に知られている。
プログラムメモリ410およびデータメモリ412は、全部または一部において、同一または異なる構成要素で実施することができる。メモリ410、420は、1つ以上の内部RAMおよびファームウェア、固体または磁気ドライブなどの局所電子データ記憶装置、USBまたはネットワークを介してアクセス可能な他のデータケーブルを介して物理的に結合されたメモリによって提供される外部データ記憶装置を含むことができる。ソフトウェアおよびデータを記憶する他のコンピュータ可読媒体を使用することもできる。HEROシステム310は、1つ以上のコンピュータサーバ、パーソナルコンピュータ、または他のコンピュータシステムで実施することができる。
別体のユーザインターフェース445を設けることができ、PCなどの計算装置450がHEROシステム310にアクセスし、承認されたユーザがHEROシステム性能メトリックの監視、オーダマップおよび取引履歴の表示、システム構成の調整などの様々な管理機能を実施できる。遠隔装置450は、HEROシステム310に局所的に接続することができ、またはインターネット上のイントラネットまたは安全なVPNのようなネットワーク455を介して接続することができ、遠隔監視を提供することができる。
HEROシステム310は、所定のブローカディーラシステムのインフラストラクチャの内部コンピュータシステムとして実施することができ、一実施形態では、アルゴ取引プラットフォーム320と同じ物理コンピュータ上で実施され、プロセッサ405は、アルゴおよびHEROシステムコードの両方を実施し、プログラムメモリ410は両方のシステムの機能を記憶する。このより緊密に結合された実施形態では、HEROシステム310と、アルゴ取引プラットフォーム320のソフトウェアモジュールとの間の通信は、当業者に知られている様々な内部APIまたは他のメッセージプロトコルを使用して、より低いレベルで実施することができ、別体のLAN接続は必要ない場合がある。
代替的に、HEROシステム310は、LAN435およびWAN440への接続にそれぞれ適した光ファイバポート、イーサネット、USBポート、または他のデータ通信ポートなどのネットワークポートを備える通信インターフェース430を備えた高速サーバなどのスタンドアロンコンピュータシステムとして実施することもできる。そのような構成を実施するための様々なプログラミング技法が当業者に知られている。
並列に動作する複数のHEROシステムを、アルゴ取引プラットフォーム320と共に使用することができる。負荷バランスおよび他の技術を使用することができ、HEROシステムに適切なアルゴオーダを割り当てることができる。同様に、いくつかの内部アルゴリズムオーダ管理を有するブローカディーラは、それぞれを共通のHEROシステムと統合することができる。
図5は、(i)HEROシステム310とHEROシステム認識アルゴオーダ管理580を有するアルゴ取引プラットフォーム320の構成要素との間、および(ii)HEROシステム310と1つ以上のそれぞれのストラテジレベルストラテジマッチングベニュー315との間のHEROシステム310の一実施形態の機能的態様およびデータ通信を示すハイレベル図である。HEROシステム310およびシステム間通信の一実施形態の内部機能については、図7および図8のフローチャートを参照してより詳細に説明する。
図示のHEROシステム310は、ストラテジオーダを追跡し、その詳細をストラテジオーダテーブル415に記憶することができ、情報およびメッセージをアルゴおよびストラテジオーダに関するアルゴ取引プラットフォームと交換することに主に関係する機能を含むストラテジオーダ管理505を備える。なお、アルゴオーダテーブル120とストラテジオーダテーブル415とに記憶されるオーダ量は、互いに関連付けられているが、同じでなくてもよい。HEROシステムは、ストラテジオーダでの使用のために利用可能とされるように、初期オーダ105で指定された総数量の一部分のみへのアクセスを与えられてもよい。この差は、過剰実施のリスクを防止するためのバッファとして働くことができる。
ストラテジオーダ管理505とストラテジマッチングベニュー315との間の通信は、ストラテジオーダ管理505と1つ以上のストラテジマッチングベニュー315との間のストラテジオーダに関する通信をルーティン化するストラテジSOR510によってサポートすることができ、2つ以上が利用可能である場合に適切なストラテジマッチングベニューを選択する機能を有することができる。ストラテジSOR510は、ストラテジオーダ管理505とは離れて示されているが、機能は、統合されたソフトウェアプログラムに組み合わされてもよい。同様に、ストラテジオーダ管理505の機能は、複数のソフトウェアコンポーネントで実施されてもよい。
様々なメッセージを、HEROシステム310とそれぞれのストラテジマッチングベニュー315との間で送ることができる。これらのメッセージは、ストラテジマッチングベニュー315に送られるストラテジオーダ520と、ストラテジマッチングベニュー315から受信されるストリームオン条件およびストリームオフ条件メッセージ525と、フィルに関するストラテジマッチングベニュー315からのストリーミングオーダ実施データ530とを備える。確定オーダおよび他の確定関連メッセージ540は、条件付きストラテジオーダの処理に使用される。FIX(Financial Information Exchange)プロトコルなどの様々なメッセージプロトコルを使用することができる。
様々なメッセージを、HEROシステム310とアルゴ取引プラットフォーム320の構成要素との間で送ることができる。使用されるメッセージプロトコルは、HEROシステム310およびアルゴ取引プラットフォーム320が互いに統合される方法に依存する。当業者には、様々な適切なメッセージプロトコルが知られるであろう。
アルゴーダまたはアルゴオーダ更新がアルゴ取引プラットフォーム320によって受信されると、オーダ更新メッセージ550をHEROシステム310に送信することができる。アルゴ取引プラットフォーム320がアルゴオーダを行うことから、オーダステータスに関する情報、そのような残オーダ量更新565を、HEROシステム310に送ることができ、その結果、HEROシステムは、ストラテジマッチングのために利用可能な対応するストラテジオーダのためのシェア数を通知されたままである。それぞれのストラテジマッチングベニュー315がストリームオン/オフ条件メッセージ525を送ると、対応するストリームオン/オフ条件メッセージ560がHEROシステムからアルゴオーダ管理580に送られる。同様に、ストラテジマッチングベニュー315から受信された実施データ530は、実施メッセージ555として送られてもよく、その結果、アルゴ取引プラットフォーム320は、対応するアルゴオーダに関するその内部記録を更新することができる。
HEROシステム310は、新たなアルゴオーダを検出するか、または通知されると、対応するストラテジオーダを生成することができる。これを行うことができる1つの方法は、図6を参照すると、使用ストラテジマッピングルール420によるものである。ストラテジマッピングルール420は、参加ユーザの様々な取引選択を反映するように事前に定義することができる。マッピングは、このプロセスで使用可能な任意のアルゴオーダの詳細を使用して実施することができる。追加データを参照することもできる。例えば、OMS/EMS110によってアルゴ取引プラットフォームに送信されるアルゴオーダ105の補足オーダデータフィールドは、例えば、特定のストラテジを直接指定するために、ストラテジマッピングルールによって使用するための追加情報を提供するために使用することができる。
異なる機関OMS/EMS110またはブローカディーラは、1ペアの所定のストラテジにおけるストラテジに対する様々な属性によるアルゴリズムオーダのマッピングの仕方に関して、異なる選択を有することができる。アルゴ取引プラットフォーム320のプロバイダは、オーダと共に使用するための自身のマッピングルールを定義することができる、またはユーザが定義することができる。2セット以上のルール420が利用可能である場合、HEROシステムは、ルールの適切なセットを選択するか、またはどのセットを使用するかを通知され得る。
上記のような静的な1対1のマッピングに加えて、よりインテリジェントな動的ルールを定義して、現在または過去の市場データ610のような、特定のアルゴオーダの外部の情報に基づいて対応するストラテジの選択を可能にすることができる。12%容量オーダの上記の例では、変換マッピングは、インデックスが30日平均を上回るなど、指定された市場条件が存在する場合には、10~30%ストラテジへのマッチングを指定し、条件が存在しない場合には、5~15%ストラテジへのマッチングを指定することができる。HEROシステムは、また、関連する市場データを監視し、既存のストラテジオーダに対するストラテジを応答可能に調整するように動作することができる。既存のストラテジオーダのために選択されたストラテジが時間変更されることが許される場合、HEROシステムは、ストラテジオーダテーブルのそのようなストラテジオーダのためのストラテジを定期的に再評価し、必要に応じてストラテジを更新し、この変更を反映するのに適切なように、ストラテジオーダ変更メッセージをストラテジマッチングベニューに送信することができる。
ストラテジマッピングルールは、利用可能なあらゆるストラテジへのマッピングを可能にする必要はない。特定のストラテジ、例えば、100%を超える基準レートを有するストラテジは、アルゴリズム取引プラットフォームによって受信されるアルゴリズムオーダのためのアルゴリズム制約の期待されるセットに適していない場合がある。このような未使用のストラテジは、他の情報源によってストラテジマッチングベニューに配置されたストラテジオーダに依然として指定されている可能性がある。
一実施形態では、HEROシステム310は、新しいアルゴオーダを検出するためにアルゴ取引プラットフォーム320を監視し、次いで対応するストラテジオーダを生成する。異なる実施形態では、アルゴ取引プラットフォーム320は、新しいアルゴオーダをアルゴオーダテーブル120に追加するためのプロセスの一部として、その時点で対応するストラテジオーダを生成し、ストラテジオーダをHEROシステム310に発行することもできる。
図7Aおよび7Bは、HEROシステム認識アルゴオーダ管理580の動作および完了によるアルゴオーダの処理のハイレベルフローチャートである。簡単にするために、機能は、一般的に、単一の親オーダの処理に対処される。複数の独立したオーダを処理するためのシステムおよび方法における機能を実施するための様々な技術が当業者には知られている。
図7Aを参照すると、新しいアルゴオーダが受信されると(ステップ702)、オーダはアルゴオーダテーブル120に追加され、HEROシステム310にも送られる。ストリームオン条件が存在しない場合(ステップ706)、子スライスは、問題の特定のアルゴリズムにしたがって生成され、HEROシステムなしのアルゴシステム100の動作に類似した方法でSOR140に発行される(ステップ708~712)。アルゴオーダに対する潜在シェア数は減少する。また、データは、ストラテジマッチングに利用可能な数量に影響を及ぼし得る、アルゴオーダのための利用可能な潜在シェアの変化を反映して、HEROシステム315に提供され得る(ステップ714)。スライスプロセスは、潜在シェアが残らなくなるまで続く(ステップ716)。
ストリームオン条件が存在する場合(ステップ706)、子スライスプロセスは、中断され、アルゴオーダ管理580は、ストリームオフ条件が発生するのを待つ(ステップ722)。一実施形態では、すでに発行されているが、満たされていない子オーダは、オープンのままとすることができ、その場合、最終的に満たされることになる。代替実施形態では、ストリームオンメッセージが受信されると、アルゴリズムオーダ管理580は、未実施の子オーダの一部またはすべてをキャンセルすることができる(ステップ718)。うまくキャンセルされた子オーダは、潜在シェア数を減少させ、ストラテジマッチングに利用可能なシェア数を増加させる。HEROシステムには、キャンセルの成功(または失敗)および潜在シェア数の関連する変更が通知される(ステップ720)。
図7Bは、実施通知を処理する監視プロセススレッドのハイレベル機能である。実施通知がアルゴ取引プラットフォームSORまたはHEROシステム130から受信されると(ステップ724)、作業アルゴオーダテーブル120の対応するオーダに対する適切な値が更新される(ステップ726)。キャンセルオーダリクエストがHEROシステム130から受信されると(ステップ728)、関連するアルゴオーダに対する未処理の子オーダがキャンセルされ(ステップ730)、キャンセル完了指示が、例えばHEROシステム130に提供される(ステップ732)。アルゴオーダに対するすべてのシェアが満たされたか、またはオーダ終了条件が発生し、オーダがキャンセルされると(ステップ734)、オーダの処理は完了する。
図8A~8Cは、処理オーダにおけるHEROシステムの一実施形態の動作のハイレベルフローチャートである。簡単にするために、機能は、一般的に、単一のオーダの処理を対象とし、機能は、別のプログラムエンジンスレッドA~Eとして示されている。独立して実施するプログラムスレッドの使用は必要なく、1つ以上のスレッドの機能を組み合わせることができる。複数の独立したオーダを処理するためのシステムおよび方法においてこれらの機能を実施するための様々な技術が当業者には知られているのであろう。
スレッドA801は、新しいアルゴオーダを処理する。新しいアルゴオーダは、アルゴオーダ管理580によって送信されるメッセージを介して、またはアルゴオーダテーブル120のHEROシステム310による監視、またはアルゴ取引プラットフォームの他のデータを介してなど、検出することができる。ストラテジオーダ処理のための最小オーダサイズが定義されている場合、新しいアルゴリズムオーダサイズがチェックされる(ステップ802)。アルゴオーダが所定の最小サイズより大きい場合、関連するストラテジマッピングルールを使用してアルゴオーダのストラテジが決定される。関連するストラテジオーダデータを有する新しいストラテジオーダ記録が、ストラテジオーダテーブルに追加される(ステップ804、806)。
スレッドB811は、ストラテジオーダテーブル415のストラテジオーダをストラテジマッチングベニューにいつ発行すべきかを決定する。ストラテジマッチングベニューで保留中でないストラテジオーダが利用可能であるかどうか、および任意選択で、定義されている場合に、他の条件が満たされるかどうかの判定が行われる(ステップ812)。ストラテジオーダが利用可能である場合、ストラテジSOR510などを介して、適切なストラテジオーダがストラテジマッチングベニューに発行される(ステップ814)。好ましくは、HEROシステム315は、最小バッファサイズを維持し、そのストラテジオーダに対する潜在シェア数が最小バッファ値を超える場合にのみ、ストラテジマッチングベニューにストラテジオーダを送信する。最小オーダサイズが指定されている場合、最小サイズを下回るストラテジオーダは、もはや適格とはみなされない。
スレッドC815は、オーダ更新機能を提供する。対応するストラテジオーダを有するアルゴオーダのある部分が満たされたことを示すメッセージなど、既存のアルゴオーダに対する更新に関するアルゴオーダ管理580(またはアルゴ取引プラットフォーム320の他の態様)からのメッセージが受信される場合、対応するストラテジオーダのためのストラテジオーダテーブル415の適切な記録が更新される。更新された情報は、関連するストラテジマッピングルール420によって定義されるように、対応するストラテジオーダのために選択されたストラテジを変更することが可能である。このような場合、ストラテジオーダテーブル415に指定されたストラテジは、それに応じて更新される。問題のストラテジオーダがストラテジマッチングベニュー315で未処理である場合、メッセージをストラテジマッチングベニューに送り、そのオーダのストラテジを更新することもできる(ステップ818)。ストリーミング実施を反映するデータメッセージがストラテジマッチングベニュー315から受信されると、関連するストラテジオーダに関するストラテジオーダ表のデータが必要に応じて更新される。少なくともオーダインジケータおよび満たされた金額(例えば、シェア数)を含む実施データもアルゴオーダ管理580に送信される(ステップ822)。
スレッドD823は、ストリームオンおよびストリームオフ信号を処理する。ストラテジマッチングベニュー315からストリームオン条件メッセージが受信されると(ステップ824)、それぞれのオーダに対するストリームオン条件がアルゴオーダ管理580に送られる(ステップ826)。実施の詳細に応じて、対応するアルゴオーダの未処理の子オーダをキャンセルするようにアルゴオーダ管理580に指示する信号を送信することもでき、その結果、それらの未処理の子オーダからの潜在的フィルをストラテジマッチングに利用可能とすることができる(ステップ828)。ストラテジマッチングベニュー315からストリームオフメッセージが受信されると(ステップ830)、それぞれのオーダに対するストリームオフがアルゴオーダ管理580に送られる(ステップ832)。実施の詳細に応じて、ストリームオフ信号は、それ自体で対応するアルゴオーダのための新しい子オーダのスライスを再開するための指示としてアルゴオーダ管理580によって扱われてもよく、または新しい子オーダのスライスを再開するようにアルゴオーダ管理580に明示的に指示する追加の信号が送信されてもよく、したがって、HEROシステムは、所定のストラテジオーダのためのストリームオフが受信されたが、条件がその時点で新しい子オーダのスライスを再開することを保証しない取引シナリオに対処することを可能にする。
スレッドE833は、所定のストラテジオーダに利用可能な潜在シェアを監視する。対応するアルゴオーダに対する子オーダが満たされた結果として生じるような、利用可能な潜在シェアの変化が検出された場合(ステップ834)、ストラテジマッチングのためのストラテジオーダに利用可能なシェア数が決定される(ステップ836)。その数がストラテジマッチングのための所定の最小シェア数よりも小さい場合(ステップ838)、ストラテジオーダはキャンセルされ、ストラテジオーダテーブル415から削除することができる(ステップ842)。関連するストラテジオーダがストラテジマッチングベニュー315で未処理である場合、ストラテジオーダに利用可能な更新された数量を有するメッセージをストラテジマッチングベニュー315に送信することができる。
スレッドF843は、条件付きストラテジオーダの態様を処理するためのものである。HEROシステム310によってストラテジマッチングベニュー315に発行される条件付きストラテジオーダは、オーダに利用可能なシェア総数を含むか、または省略することができる。ストラテジマッチングベニューがマッチングを検出した場合、条件付きストラテジオーダを確定し、数量値を提供するために、HEROシステムにリクエストを発行することができる。ストラテジオーダに対する確定リクエストが受信されると(ステップ844)、アルゴオーダ管理580は、対応するアルゴオーダに対する未処理の子オーダの一部または全部をキャンセルするように指示される(ステップ846)。確定リクエストに応答して、アルゴオーダ子オーダキャンセルプロセスが完了した後、HEROシステムは、その時点での潜在シェア数、バッファサイズ、および他の要因に基づいて、ストラテジマッチングに利用可能なシェアの利用可能な数を決定し(ステップ848)、確定応答メッセージをストラテジマッチングベニュー315に送信することができる(ステップ850)。確定応答は、例えば、非条件付きストラテジオーダまたはメッセージ形式とすることができる。非条件付きストラテジオーダは、条件付きストラテジを置き換え、メッセージは、ストラテジマッチングベニュー315を命令し、条件付きストラテジオーダの態様を非条件付きに更新し、利用可能なシェア数などの他の態様を適宜変更する。ストラテジマッチングベニュー315は、オーダが確定するまで、ストラテジマッチングを開いたままにすることができる。これが、ストラテジマッチングベニューで定義されたタイムアウトなど、指定された期間内に発生しない場合、マッチングはドロップされる。オーダが確定した後、ストラテジマッチングベニューは、ストリームオン条件メッセージを発行する。
図9Aおよび9Bは、並行して動作し、処理が進行するにつれてシステム間の様々なオーダ関連データ値の伝播方向を示す、HERO知覚アルゴ取引プラットフォーム320およびHEROシステム310による、100000シェアを売却するためのサンプル親アルゴオーダ処理および対応するストラテジオーダの処理を示す。この例では、HEROシステム310は、15K潜在シェアのバッファを維持するように構成される。
時刻T0では、何らかのアクションが取られる前に、親オーダの100Kシェアは全て潜在的である。T1において、子オーダの最初の5Kは、アルゴオーダ管理によってスライスされ、SOR140に発行され、SORは、取引ベニュー150に発行される孫オーダに細分化する。潜在シェア数は95Kに削減される。親オーダは、ストラテジマッチングに利用可能な80K潜在シュアを有する(95K潜在シェア-15kバッファ値)。80Kストラテジオーダは、ストラテジマッチングベニューに発行される。
時刻T2では、アルゴ子オーダに対して5Kシェアがある。2Kのアルゴオーダ実施が受信され、未処理値を3Kに削減する。次に、2Kの子オーダがスライスされ、SOR140に発行され、発行済みのアルゴ子オーダシェア総数が5Kに戻され、潜在シェア数が93Kに戻される。したがって、ストラテジマッチングに利用可能なシェア数は78Kに削減され、変更された量を示すストラテジオーダ更新がストラテジマッチングベニューに発行される。時間T3は、5Kアルゴオーダフィルとそれに続く5Kの子オーダのスライス、潜在シェア数の削減、およびその後の78Kから73Kへのストラテジオーダの更新の結果を示す。
時刻T4では、ストラテジマッチングベニューは、ストラテジオーダに対するマッチングを検出し、ストリームオン条件が存在する。ストラテジマッチングベニューストリームが満たされると、フィル数に関する情報が戻される。この例では、30Kのストリーミングフィル(より小さいフィルのシーケンスに反映されてもよい)が示されている。潜在シェア数は30K削減する。アルゴサイドにも5Kの子オーダがある。
時刻T5では、アルゴシステムは、子オーダの未処理の5Kの4Kが満たされたことを示す実施メッセージを受信する。アルゴ子オーダの発行済シェア数は、現在1Kである。子オーダは既に考慮されているので、潜在シェア数は変化しない。ストリームオン状態のために、アルゴ取引プラットフォーム320による新たな子オーダの発行は一時停止される。
時刻T6では、未処理オーダの43Kの追加のストリーミングフィルが示され、潜在シェア数が15Kに削減される。ストリーミングされたストラテジマッチングフィルの総数は、ストラテジオーダの現在のサイズである73Kに達している。ストラテジマッチングベニューは、そのオーダを閉じ、ストリームオフ条件が示される。
ストリームオフ条件を受信すると、アルゴ取引プラットフォーム320は、オーダの残りのアルゴリズム処理を再開する。子スライスが発行され、親オーダが完全に満たされた時刻T7からT10まで満たされる。
図10Aおよび10Bは、並行して動作し、処理が進行するにつれてシステム間の様々なオーダ関連データ値の伝播方向を示す、HERO認識アルゴ取引プラットフォーム320およびHEROシステム310による、100000シェアを売却するためのサンプル親アルゴオーダおよび対応するストラテジオーダの処理を示す。図10の例は、図9A~Bの例と同様であるが、HEROシステムからのストリームオン指標の受信に応答して、未処理の子オーダをキャンセルするように構成されたアルゴ取引プラットフォーム320をそれらのオーダが満たされるようにする代わりに使用する。
時刻T0からT3までのシステムの動作は、図9A~9Bと同じである。時刻T4では、ストリームオン条件に応答して、アルゴ取引プラットフォーム320は、未処理の子オーダの5Kをキャンセルする。潜在シェア数は5K増加する。ストラテジストリーミングのためにより多くのシェアが現在利用可能であるので、ストラテジオーダは、73Kから78Kに更新される。オーダ処理の残りの部分は、図9A~9Bのものと同様の方法で継続する。
いくつかの状況では、ストラテジマッチングベニューでのストラテジオーダ処理によって提供される利点が望まれる場合があるが、HEROシステム対応プラットフォームは、そのようなオーダを受け取るためにブローカ/ディーラで利用可能ではない。本発明のさらなる態様では、従来のアルゴシステム100にオーダを送ることもできるOMS/EMSシステムと共に使用するために、事前/事後ルーティン最適化(Pre/Post Routing Optimizer「PRO」)システムを提供することができる。PROシステムは、クライアントOMS/EMS110から直接など、非HEROアルゴプラットフォーム100よりも高いレベルで初期オーダを受け取る。次いで、PROシステムは(必要であれば)対応するストラテジオーダを生成し、ストラテジマッチングベニューに送ることによって、HEROシステムと同様の方法でオーダを処理する。また、OMS/EMSは、オリジナルオーダを、自身のアルゴシステムで処理する従来のブローカ/ディーラに送ることもできる。
PROシステムは、ブローカ/ディーラのアルゴシステム100に結合されていないので、PROシステムは、ストリームオン条件メッセージによって示されるように、対応するストラテジオーダに対するマッチングが見つかったときに、アルゴオーダのアルゴリズム処理を開始または停止するようにアルゴシステム100に伝えることができない。これを補償するために、発行されたストラテジオーダは条件付きである。ストラテジマッチングベニューがストラテジオーダに対してストラテジマッチングが利用可能であることを示す場合、例えば、確定リクエストを送信することによって、PROシステムは、ブローカ/ディーラのアルゴシステムで発注されたオーダがキャンセルされるべきであり、次いで、対応するストラテジオーダが確定されるべきであることを信号で伝えることができる。ストラテジマッチングベニューが例えば、ストリームオフ条件メッセージ、または確定が成功しなかったという表示で、ストラテジマッチングが終了したことを示した後、PROシステムは、新しいオーダがオリジナルのオーダの任意の残りのために、OMS/EMS1100からブローカ/ディーラのアルゴシステム100に送信されることを知らせることができる。オーダ実施の進行が追跡され、オーダ実施が合計オーダサイズを超えないように、アルゴオーダおよびストラテジオーダが処理されるにしたがって、様々なプラットフォーム部品間で情報が交換される。
図11は、取引オーダ管理1115に結合されたPROシステムエンジン1110を備えるオーダ管理および実施管理システム(OMS/EMS)1100を有する取引プラットフォームの一実施形態のシステムアーキテクチャのハイレベルブロック図である。OMS/EMS1100は、取引デスク1125を介してポートフォリオ管理1120によって発行されたオーダを受け取ることができる。OMS/EMS1100は、従来の交換ベニュー150にオーダを発行する従来のアルゴリズム取引システム100を使用するブローカ/ディーラと通信する。従来の交換ベニュー150では、他の従来のブローカ/ディーラおよびHFT会社などの他の市場参加者によって発行されたマッチングするコントラオーダに対してオーダが満たされる。OMS/EMS1100は、また、PROシステムからのストラテジオーダを発行することができる1つ以上のストラテジマッチングベニュー315と通信し、このストラテジオーダは、初期オーダに基づいて生成することができる。複数のストラテジマッチングベニュー315が利用可能である場合、PROシステムは、所望に応じて適切なストラテジマッチングベニューを選択するように構成することができる。使用されるストラテジマッチングベニューは、事前に定義することができ、または、セキュリティのタイプまたはオーダに関する他の詳細などの様々な要因に基づいて動的に選択することができる。ストラテジマッチングベニュー315は、他のHEROシステム対応ブローカ/ディーラ300、他のOMS/EMSシステム1100’と連携して動作する他のPROシステム、および任意の他の適切なオーダソースからストラテジオーダを受け取ることもできる。
図12Aおよび12Bは、PROシステム1110の一実施形態の機能的態様、ならびに(i)PROシステムエンジン1100とストラテジマッチングベニュー315との間、および(ii)OMS/EMSシステム1100におけるPROシステムとPROシステム認識取引オーダ管理1115との間の通信を示すハイレベル図である。PROシステム310およびシステム間通信の実施形態の内部機能は、図13Aおよび13Bのフローチャートに関してより詳細に検討されるのであろう。
取引オーダ管理1115は、ブローカディーラインターフェース1120を使用して、従来ならびにHEROシステム対応アルゴリズム取引エンジン100を使用して、1つ以上のブローカ/ディーラと通信する。送受信することができるメッセージは、ブローカ/ディーラのアルゴ取引プラットフォーム100に新しいアルゴリズムオーダ1125を発行すること、配置されたアルゴオーダ1125の実施1130に関連するメッセージを受信すること、および、アルゴ取引プラットフォーム100が既存のオーダをキャンセルするか、またはそれを適切に修正するためのリクエスト1135を発行することを含む。OMS/EMS作業オーダテーブル1105は、OMS/EMS1100が未処理のオーダを追跡するために使用される。
PRO1110は、ストラテジオーダ管理1140と、ストラテジSOR1145と、現在のストラテジオーダに関するデータを維持するためのストラテジオーダテーブル1150とを備える。OMS/EMS1100に利用可能なアルゴ取引プラットフォームのうちの1つ以上がHEROシステム使用可能である実施形態では、OMS/EMSがオーダがそのようなアルゴ取引プラットフォームに送信されたかどうかを示すことができ、PROシステムは、非HERO認識アルゴ取引プラットフォームに送信されたアルゴオーダにのみ作用するように構成される。
ストラテジマッチングベニュー315の観点から、PROシステム1110およびHEROシステム310は、同じように見えることができ、同じタイプのメッセージ交換を有することができる。HEROシステム310と同様に、PROシステム1110およびストラテジマッチングベニュー315は、新しい条件付きまたは非条件付きストラテジオーダの発注、ストリームオンおよびストリームオフ条件メッセージの受信、ストラテジオーダ実施データの受信、および条件付きオーダの確定を含むストラテジオーダに関連するメッセージを交換する。
ストラテジSOR1145は、ストラテジオーダ管理1140と1つ以上のストラテジマッチングベニュー315との間でストラテジオーダに関する通信をルーティン化するように動作し、2つ以上が利用可能である場合に適切なストラテジマッチングベニューを選択する機能を含むこともできる。ストラテジSOR1145は、ストラテジオーダ管理1140とは別体に示されているが、機能は、統合されたソフトウェアプログラムに組み合わされてもよい。同様に、ストラテジオーダ管理1140の機能は、複数のソフトウェア部品に実装されてもよい。
OMS/EMS1100で受け取られるオーダは、従来のアルゴリズム取引システムによって処理されることが意図された従来のオーダであってもよく、取引ストラテジを指定しても指定しなくてもよい。ストラテジが指定されていない場合、HEROシステムに関して上述したのと同じ方法で、ストラテジマッピングルール155のセットを介して対応するストラテジオーダを生成することができる。この機能は、PROシステムで実施することができる。
動作中、新しいストラテジオーダおよびストラテジオーダ更新に関するメッセージ、ならびに既存のアルゴオーダの残量更新を、OMS/EMS1100からPROシステム1110に送信することができる。ストリームONおよびストリームOFF条件ならびにストラテジオーダストリーミング実施に関連するメッセージは、PROシステム1110からOMS/EMS1100に送信することができる。さらに、PROシステム1110とOMS/EMS1100との間でアルゴオーダおよびストラテジオーダのキャンセルまたは再ルーティン化に関連するメッセージを交換することができる。
PROシステム1110の実施は、OMS/EMS1100を実施するために使用されるコンピュータシステムから独立して動作する従来の計算システムにおいて提供され得る。図12Bを参照すると、一実施形態では、PROシステムハードウェアは、独立して実施されるHEROシステムのハードウェアと同様であり得えるが、ブローカ/ディーラのアルゴ取引プラットフォーム320の代わりにOMS/EMS1100に接続される。一つ以上のコンピュータプロセッサ1160は、プログラムメモリ1165に記憶されたコンピュータソフトウェアを実施する。プロセッサ1160は、ストラテジオーダテーブル1150、アルゴリズムオーダに基づくストラテジオーダの生成に使用される1つ以上のペアのストラテジマッピングルール1155、および他の動作データ1175などの1つ以上のデータリポジトリを含むデータメモリ1170にアクセスする。
適切な通信インターフェース1180は、PROシステム1110を外部システムに接続するために使用される。図示の実施形態では、ローカルエリアネットワークがPROシステム1110とOMS/EMS1100との間の通信を提供し、別のWANは、HEROシステム310と1つ以上のストラテジマッチングベニュー315との間の通信を提供する。
HEROシステムを実施するために使用されるコンピュータプラットフォームは、期待される取引量をサポートするのに十分なデータスループットおよび処理能力を有する1つ以上の高速コンピュータとすることができる。LANおよびWANネットワークは、高速光ファイバデータネットワーク、または金融取引ネットワークで従来使用されている他のネットワークシステムとすることができる。適切なコンピュータプラットフォームは当業者に知られている。
プログラムメモリ1165およびデータメモリ1170は、全部または部分的に同じまたは異なる構成要素内で実施されてもよい。メモリ1156、1170は、1つ以上の内部RAMおよびファームウェア、固体または磁気ドライブなどの局所電子データ記憶装置、USBまたはネットワークを介してアクセス可能な他のデータケーブルを介して物理的に結合されたメモリによって提供される外部データ記憶装置を含むことができる。ソフトウェアおよびデータを記憶する他のコンピュータ可読媒体を使用することもできる。PROシステム1110は、1つ以上のコンピュータサーバ、パーソナルコンピュータ、または他のコンピュータシステム内で実施することができる。
PCなどの計算装置1190がPROシステム1110にアクセスすることを可能にするために、別のユーザインターフェース1185を設けることができ、これにより、許可されたユーザが、システム性能メトリックの監視、オーダマップおよび取引履歴の閲覧、ならびにシステム構成の調整などの様々な管理機能を実施することが可能になる。遠隔装置1190は、PROシステムに局所的に接続することができ、またはインターネット上のイントラネットまたは安全なVPNのようなネットワークを介して接続して遠隔監視を提供することができる。
PROシステム1110は、OMS/EMSブローカディーラシステム1100内の内部コンピュータシステムとして実施することができ、おそらく取引オーダ管理1115と同じ物理的コンピュータ上で実施されてもよく、その場合、PROシステム1110とOMS/EMS1100内の他の部品との間の別のネットワーク接続は必要とされない場合がある。OMS/EMSは、適切なAPIまたは他のプログラムフックを有するように設計または修正することができ、内部制御は、PROシステムが最初に利用可能でないか、または利用可能ではあるが別のシステムとして実施される場合であっても、PROシステムと共に動作するために必要とされる。次に、EMS/OMSと通信に適したAPIインターフェースを備えたPROシステムモジュールを別に追加することができる。PROシステム1110を実施し、EMS/OMSシステム1100と統合することができる様々な方法がある。
図13Aおよび13Bは、処理オーダにおけるPROシステムエンジンの実施形態の動作の態様を示すハイレベルフローチャートである。簡単にするために、機能は、一般的に単一のオーダの処理を対象とする。複数の独立したオーダを処理するためのシステムおよび方法においてこれらの機能を実施するための様々な技術が、当業者には知られているのであろう。
図13Aおよび図13Bを参照すると、OMS/EMS100から新しいアルゴオーダを受信すると(ステップ1305)、対応するストラテジオーダが生成され(必要に応じて適切なストラテジマッピングルールを適用した後)、ストラテジオーダテーブル1150に追加される。ストラテジオーダ量が最小値を超える場合、指定された場合、使用されるべきストラテジマッチングのために(ステップ1312)、対応するストラテジオーダが条件付きオーダとしてストラテジマッチングベニュー315に発行される(ステップ1314)。最初に受け取ったオーダが最小値を超えると仮定するが、これは保証されないかもしれない。
アルゴオーダが処理されると、実施更新メッセージが生成され、PROシステムに送信される。これらの実施は、対応するストラテジオーダに利用可能な数量に影響を与える。このようなメッセージの受信に応答して、PROシステムは、ストラテジオーダテーブル1150の対応するストラテジオーダに反映された利用可能な数量を更新する。更新メッセージは、また、関連するストラテジマッチングベニューに送信されてもよい。ストラテジオーダのために利用可能な量が最小値を下回る場合、PROシステムは、オーダキャンセルメッセージを関連するストラテジマッチングベニュー315に送信することができる(ステップ1316)。
条件付きストラテジオーダの発行後、そのストラテジオーダが依然としてオープンである限り、PROシステムは、ストラテジマッチングベニューから確定リクエストを受信するのを待つことになる(ステップ1318)。ストラテジマッチングベニュー315は、条件付きストラテジオーダに対する潜在的なマッチングを検出すると、PROシステムに確定リクエストを送る。確定リクエストを受信すると、PROシステムは、ブローカ/ディーラに送信された対応するアルゴオーダ(もしあれば)をキャンセルするように指示するメッセージを取引オーダ管理1115に送信する(ステップ1320)。アルゴオーダがうまくキャンセルされた後、取引オーダ管理1115は、キャンセルの成功を確認するメッセージを送信する。メッセージは、また、ストラテジマッチングに利用可能なシェアの最大数を示すことができ、その金額は、オリジナルのオーダの実施されていない部分の合計以下であるべきである。(PROは、また、または代わりに、満たされたシェア数などの特定のアルゴオーダに関する情報をリクエストする質問をOMS/EMS1100に発行するように構成されてもよい。)キャンセル確認および数量データがPROシステムによって受信された後(ステップ1322)、ストラテジオーダに対する適切な確定メッセージがストラテジマッチングベニュー315に送信される(ステップ1324)。
条件付きオーダが確定されたとしても、潜在的なマッチングがもはや固化され得ないように、ストラテジマッチングベニュー315において条件が変化することが可能である。例えば、選択されたコントラストラテジオーダは、条件付きであってもよいが、タイムアウト期間内に確定されない。PROシステムが、適用可能なタイムアウト期間内にオーダに対するストリームオン指標を受信しない場合(ステップ1326)、確定されたオーダは満たされないと推定される。ストラテジマッチングベニュー315は、マッチングが失敗したことを示す、確定された条件付きストラテジオーダの通知を発行者に送信するように構成されてもよい。PROシステムによるこのようなメッセージの受信は、ストリームオンメッセージを待っている間、タイムアウト条件と同様に扱うことができる。(同様の機能は、HEROシステムにおいて実施することができる。)
タイムアウト(ステップ1326)の後、OMS/EMSは、適切なブローカ/ディーラにアルゴオーダ(ストラテジマッチングベニュー315からの確定リクエストを考慮して取り消される)を再発行できることを通知される。PROシステムは、また、以前に確定されたオーダを明示的にキャンセルするメッセージをストラテジマッチングベニュー315に送信することができる。ストラテジオーダは、PROシステムにおいて保留のままである。そのオーダに利用可能な数量が最小値を超える場合(ステップ1312)、別の条件付きオーダを発行し、プロセスを継続することができる。
ストラテジオーダマッチングがストラテジマッチングベニューで行われる場合、ストラテジマッチングベニューは、マッチングのレート(指定されたストラテジに利用可能な基準レートの一部のみとすることができる)を戻すことができる。それに加えて、またはその代わりに、ストラテジマッチングベニューが、(ストラテジマッチングに使用されるレートとマッチングされたオーダの最大利用可能量とに基づいて)マッチングから生じるフィル総量、または結果として生じるフィルの少なくとも最大量を決定することができる。この情報が利用可能な場合は、ストリームオンメッセージの一部として含めることができる。PROシステムが条件付きストラテジオーダを確定した後にストリームオンを適時に受信し、ストリームオンメッセージがそのマッチングから予想されるフィル量を示すか、またはその情報を引き出すことができるデータを提供する場合、PROシステムは、ストラテジマッチングストリーミングが完了した後に残るストラテジオーダの量を計算することができる。ストラテジマッチングが問題のストラテジオーダに利用可能な最大量を満たさない場合、アルゴサイドのオーダの残りを満たす努力は、ストラテジオーダフィルと競合することなく進行することができる。このような場合、PROシステムは、OMS/EMSに、ストラテジオーダに利用可能な最大量と、ストラテジマッチングベニューで満たされると予想される実際のまたは最大量との間の差を求めるアルゴオーダを発行するように通知することができる(ステップ1330、1332)。
続いて、ストリームオンの後、ストラテジオーダの実施メッセージが、ストラテジマッチングベニューからPROシステムにおいて受信される(ステップ1334)。実施データは、PROシステムによってOMS/EMSに送られ(ステップ1336)、このデータを使用して、発生したフィルを反映するようにその内部記録を更新することができる。これは、ストラテジオーダに対するストリームオフメッセージが受信されるまで続く(ステップ1338)。次に、OMS/EMSは、キャンセルされたアルゴオーダをブローカ/ディーラに再発行して、残りの未実施オーダ量を求めるように指示される。(ステップ1340)。
図14Aおよび14Bは、セキュリティなどの取引可能アイテムに対するストラテジオーダを処理するためのストラテジマッチングベニュー1400の特定の実施形態のハイレベル機能ブロック図を示す。ストラテジマッチングベニュー1400は、HEROシステムまたはPROシステムで使用されるようなストラテジSOR、従来のSOR、および、例えばブローカゲートウェイから発信される直接発注されたストラテジオーダのような適切なオーダの任意の他のソースを含むことができるオーダ発注およびルーティンプラットフォーム1410に接続される。オーダルータ1410との通信は、適切なネットワーク接続を介してサポートすることができる。一実施形態では、メッセージは、FIXプロトコルを使用して交換される。ストラテジオーダ関連メッセージ、ストリームオンおよびオフ条件メッセージ、確定コマンド、および他の通信は、このインターフェースを介して送信され得る。新しいFIXメッセージ値を定義するなど、FIXプロトコルに対するわずかな拡張が、ストリームオン/オフメッセージおよび新しいストラテジオーダタイプなどの機能をサポートするために必要とされ得る。
ストラテジマッチングベニュー1400は、ストラテジオーダを処理することを意図したソフトウェアエンジンを含む。一実施形態では、ストラテジマッチングベニュー1400は、非ストラテジオーダも処理するように構成される。受信された非ストラテジオーダは、非ストラテジオーダをストラテジオーダに変換するストラテジオーダジェネレータエンジン1430に送られ得る。1つ以上のデフォルトストラテジ1435のセットを提供し、所定のルールのセットにしたがって選択することができる。ストラテジ選択は、非ストラテジオーダおよび/またはそのソースまたは他のデータの内容に依存することができる。1つのブローカ/ディーラは、異なるブローカ/ディーラが異なるストラテジをリクエストする間に、それが送信する任意の非ストラテジオーダに対して使用するためのデフォルトストラテジとして流動性検索を定義することができる。HEROシステム315内で使用され、上述されたようなストラテジを選択するために、より複雑なシステムを使用することも可能である。ストラテジオーダ変換は、ストラテジマッチングベニュー1400の一部として示されているが、所定のストラテジマッピングルールを使用するストラテジ選択エンジンは、ストラテジマッチングベニュー1400とは別に実施することができる。
ストラテジマッチングベニュー1400は、適切なセキュリティ情報プロセッサ(Security Information Processor(SIP))1415などから、ビッド/アスク相場および取引などの市場データを受け取る。2つ以上のデータソースが代替のマーケット(または非マーケット)データソース1425などから、ストラテジマッチングベニュー1400内で使用するために利用可能であり得る。ストラテジオーダ実施データは、ストラテジマッチングベニュー1400から出力され、取引報告ファシリティ(Trade Reporting Facility(TRF))1420を介するなど、従来の方法でSIP1415に戻すことができる。実施レポートは、I/Oハンドラ1405を介して適切なオーダルータ1410に戻される。問題の取引可能アイテムに応じて、実施を市場に報告するための異なるメカニズムを利用することができる。
ストラテジマッチングベニュー1400におけるストラテジマッチング機能は、ソフトウェアエンジンのセットとして編成することができるソフトウェアで実施される。I/Oハンドラ1405は、入力および出力メッセージを処理し、着信オーダに関連するデータ記録を更新する。SIPハンドラ1445は、入力マーケットおよび他のデータを受信し、NBBO相場であり得る第1マーケットデータを相場ハンドラ1450に送信し、取引されているアイテムについての個別のマーケット実施通知であり得る第2マーケットデータを取引ハンドラ1455に送信することなどによって、適切な内部エンジンに関連データを送る。一実施形態では、相場ハンドラ1450は、入力データを検査し、保留中のストラテジオーダは市場性があり、したがって、対処可能か否かを判定する。取引ハンドラ1455は、情報が取引プロセッサ1465による使用のために利用可能であるように、市場取引に関連する入力SIPデータ、例えば、取引されるセキュリティの量を処理する。マッチングエンジン1460は、保留中のストラテジオーダの中から適格なマッチングを識別する。取引プロセッサ1465は、ストリーミングエンジンであり、マッチングしたストラテジオーダに対する取引を生成する。
図14Bを参照すると、ストラテジマッチングベニュー1400は、内部RAMおよびファームウェア、固体または磁気ドライブなどの局所電子データ記憶装置、ネットワークを介してアクセス可能なUSBまたは他のデータケーブルを介して物理的に結合されたメモリによって提供される外部データ記憶装置を含むことができる、1つ以上のプロセッサ1470および記憶装置1440と接続された適切なサーバなどのコンピュータシステムで実施することができる。プログラムメモリ1472は、プロセッサによって実施される動作可能なコンピュータソフトウェアを記憶するために使用される。データメモリ1474は、様々な動作データブック/表、バッファ、ルール、およびシステムの動作中に使用される他の短期および長期記憶データを記憶するために使用される。外部システムと通信するために、適切なインターフェースが提供される。例えば、オーダインタフェースモジュール1480は、オーダネットワーク1482を介して様々なオーダルータまたは他のオーダソース1410と通信するために使用することができる。市場データインターフェースモジュール1484を使用して、市場データネットワーク1486を介して市場データ1415、1425の様々なソースにアクセスし、オーダ処理中に使用される市場データを取り出すことができる。取引報告インターフェースモジュール1488を使用して、適切な報告ネットワーク1490を介して取引報告ファシリティ1420に実施情報を提供することができる。
ストラテジマッチングベニュー1400に使用される物理的コンピュータプロセッサおよび全体的なコンピュータプラットフォームは、期待される取引量をサポートするのに十分な処理容量、データスループット、およびネットワーク帯域幅を有する1つ以上の高速コンピュータとすることができる。適切なコンピュータプラットフォームは当業者に知られている。3つのネットワーク1482、1486、1490が別々に示されているが、1つ以上が同じネットワークであってもよい。例えば、3つのネットワーク1482、1486、1490は、すべて、例えばFIXプロトコルを使用するデバイス間のデータ通信をサポートする共通の高速データネットワークとすることができる。
図15は、ストラテジマッチングベニュー1400内に記憶され、ストラテジオーダの処理中に使用される様々なタイプの情報のいくつかを示す。データ構造の1つの特定の配置が示されている。例示されたデータフィールドの全てが任意の特定の実施形態において必要とされるか、または使用されるわけではなく、追加のデータもまた記憶され得る。当業者に知られている他の方法を使用して、ストラテジマッチングベニューによって使用されるデータを編成することができ、内容を参照するために使用される特定の名前を変更することができる。様々なデータ表およびオブジェクトは、メモリ記憶領域1440に記憶することができ、これは、ローカルRAM、固体駆動装置、クラウド記憶装置等の様々なタイプの記憶装置で構成することができる。
図15のデータ配置では、3つの1次データアレイ(データテーブル、データベースオブジェクト、または他の方法で記憶装置内に編成され参照されてもよい)が設けられ、ストラテジマッチングベニュー1400のメモリ1440内に適宜記憶される。
全てのオーダ1502は、ストラテジマッチングベニュー1400に配置されたアクティブストラテジオーダに関する情報を記憶するために使用される。各オーダ記録は、固有のオーダIDを有し、シンボル、サイド、および指値を有するストラテジオーダ情報を記憶する。条件付きフラグはオーダが条件付きかどうかを示す。オーダ量は、ストラテジマッチングに利用可能なオーダにおけるシェア(または他の取引可能なアイテム)数を指定する。ストラテジタイプフィールドは、そのオーダに使用されるストラテジを記憶する。経時的に、ストラテジオーダが処理または更新されるにしたがって、利用可能なシェア量が変化する。
オリジナルのオーダ数量、既に実施された数量、および後続のストラテジマッチングに利用可能な残りの数量を記憶するために、追加のフィールドを設けることができる。これらの数量フィールドのすべてが必須ではなく、一部のデータ属性は、オーダに関する別のデータから簡単に計算できる場合がある。しかしながら、これらのフィールドを提供することは、後の処理を単純化することができる。
市場性フラグは、オーダに関連する市場条件がオーダが市場性のあるものであるかどうかを示す。例えば、オーダがセキュリティを購入する場合、そのセキュリティの現在の取引価格がオーダの指値よりも大きい場合、オーダは市場性がない。他の市場性要因も、オーダに関連して特定され、考慮されてもよい。オーダが市場性のあるものであるという事実は、その時点でマッチングするコントラオーダがあることを意味しない。
ストリームは、全オーダ表内のデータ配列であり、各オーダが関係しているストリームまたはストリーム(存在する場合)を示すために使用される。大きなオーダは、例えば、2つの取引ストリームをもたらす2つのより小さなオーダにマッチングされてもよい。
特定オーダ記録における利用可能容量は、コントラオーダとの後続のマッチングに適用することができる各オーダの利用可能なレートを示す。
オーダは、それらに適用されるストラテジが条件付き代替ストラテジに対する市場条件の変化に応答して動的に変更され得るように定義され得る。特定の実施形態では、指値などのオーダの属性が問題のセキュリティの現在の相場が指定された限度を超える場合に、そのストラテジが変更されるべきであることを指定する方法をオーダに提供する。例えば、5~15%のストラテジ買いオーダは、15.75ドルの通常の指値および15.65ドルの指値を有することができる。セキュリティの提供価格が指値を超える場合、提供は市場性がない。現在の提供が2つの値の間にある場合、オーダは市場性があり、5~15%のストラテジを使用する。提供価格が指値を下回った場合、オーダストラテジは、流動性検索などの異なるストラテジ、またはオーダに対するユーザ指定の第2ストラテジに変更することができる。指値が提供されるが、第2ストラテジが指定されない場合、流動性検索などのデフォルトストラテジを使用することができる。ストラテジ調整は、オーダが市場性のあるものであるかどうかを判断するために調査されるときに行うことができる。所定のオーダに対してこの特徴が有効になっているかどうかを示すフラグを提供することができる。あるいは、指値をデフォルトでゼロに設定することができ、ゼロでない値は特徴が使用可能であることを示す。このまたは類似の条件付きストラテジ特徴は、ストラテジマッチングベニュー1400における実施の代替として、HEROまたはPROシステムにおいて、または例えばHEROまたはPROシステムにおいて実施される第1条件付きストラテジ変更プロセスにおいて、およびストラテジマッチングベニュー1400内で実施される第2条件付きストラテジプロセスにおいて実施することができる。
適切な2次ストラテジを選択するための基準は、HEROシステム、PROシステムによって使用されるストラテジマッピングルールなどのストラテジを最初に選択するために使用されるストラテジマッピングルールと同じであってもよいし、異なるものであってもよい条件付きストラテジマッピングルール、または受信される非ストラテジオーダを処理するためのストラテジマッチングベニュー1400に含まれてもよい。例として、アルゴ購入オーダをストラテジCにマッピングすることができる。動的ストラテジ選択が利用可能であり、使用可能である場合、第2ストラテジは、次に高い優先順位を有するストラテジBであり、0.5%または1%低い価格など、オーダで指定されたものよりも低い指値に設定された遷移閾値であるように選択することができる。この情報はまた、または代替として、マッピングルールの適切なセット内で指定され得る。
ストラテジオーダ自体に第2ストラテジを含める代わりに、またはそれに加えて、HEROシステムまたはPROシステムなどのストラテジオーダの発行者は、市場状態を監視し、特定オーダのためのストラテジシフトが必要とされ得るときを検出することができる。これに応答して、既存のストラテジオーダをキャンセルし、新しいストラテジを有する代替オーダと置き換えることができる。あるいは、オーダ更新メッセージを、新しいストラテジを指定するストラテジマッチングベニューに送信することができ、それに応答して、ストラテジマッチングベニューは、それに応じて、そのオーダについてのその内部記録を更新し、適宜、既存のマッチングを中断または変更する。
全てのオーダ表1502は、また、少なくとも限られた期間、完了したオーダまたはキャンセルされたオーダなど、もはやアクティブではないストラテジオーダに関する情報を記憶することもできる。オーダ状態属性はオーダ状態を指定できる。たとえば、「アクティブ」、「キャンセル」、「完了」である。所定の期間にわたるすべてのオーダは、表に保持することができる。取引期間の終了時に、キャンセルされたオーダまたは完了したオーダのすべてを取引履歴表に記憶し、取引セッションの終了時に存在する残りのアクティブオーダを自動的にキャンセルすることができる。
到着時間は、それぞれのオーダがストラテジマッチングベニュー1400でいつ受信されたかを示すタイムスタンプを記憶するために使用され得る。
アクティブストリーム1504は、現在アクティブであるオーダマッチングに関する情報を格納するために使用される。アクティブストリームの各記録には、現在マッチングされている1つ以上のコントラオーダに最初のオーダを関連付けるデータを含めることができる。買いオーダまたは売りオーダに対するマッチングの容易なルックアップを可能にするために、表またはデータ構造は、2回インデックス付けされ、1回買いオーダに対してインデックス付けされ、1回売りオーダに対してインデックス付けされる。追加のデータにインデックスを付けることもできる。例えば、マッチングしたオーダは、所定のセキュリティのアクティブなマッチングを識別しやすくするために、問題時にセキュリティによってインデックス化できる。特定の実施形態では、各エントリは、第1オーダを1つのマッチングしたコントラオーダに関連付ける。最初のオーダが複数のコントラオーダと同時にマッチングされる場合、最初のオーダの複数のエントリが存在する。状態フィールドは、また、ストリームがアクティブ(未ブレーク)であるか、または終了されたかを示すために含まれ得る。終了したストリームに関する情報は、例えば、履歴分析および監査目的のために、ある期間、アクティブストリーム内に保持され、および/またはアーカイブされることが可能である。
未処理参照取引表1506は、取引プロセッサストリーミングエンジン1465によってまだ処理されていない取引ハンドラ1455からの市場取引を一時的に記憶するために使用される。トレードプロセッサは、この表から市場取引を処理すると、この表から除去し、アーカイブすることができる。
図16A~16Dは、それぞれ、I/Oハンドラ1405、取引ハンドラ1455、お
よび相場ハンドラ1450の実施形態によって提供される基本機能のハイレベルフローチ
ャートである。
図16Aを参照すると、入力オーダメッセージは、I/Oハンドラ1405によって受信されると(ステップ1602)、ストラテジが指定されているかどうかを調べるためにチェックされる(ステップ1604)。ストラテジがない場合、例えば、ストラテジオーダジェネレータエンジン1430を使用することによって1つが選択される。(ステップ1606、1608)。新しいオーダまたは既存のオーダに対する更新を含む受信メッセージの場合、全オーダ表1502は、必要に応じて、既存のオーダに対して記憶された新しいオーダまたは変更データを追加するように更新される(ステップ1602、1604、1610)。
I/Oハンドラが、ストリームオン/オフ条件メッセージ、実施メッセージ、または確定リクエストなどのクライアントのための出力メッセージを受信すると(ステップ1612)、メッセージは、必要に応じてフォーマット化され、次いで、例えば、FIXインターフェースを介して指定された受信者に送信される。
図16Bを参照すると、取引ハンドラ1455は、ストリーミング実施量および/またはタイミングを決定する際に取引プロセッサ1465によって使用される取引データの媒介として使用される。他のタイプの市場データまたは非市場データが取引プロセッサ1465によって必要とされる場合、それは、そのデータのための媒介としても役立つこともできる。市場取引データなどのSIP更新が取引ハンドラ1455で受信されると(ステップ1616)、取引プロセッサ1645がビジー状態であるかどうかを判定するためにチェックが行われる(ステップ1620)。ビジー状態でない場合、SIP更新は、取引プロセッサに送信される(ステップ1622)取引プロセッサ1645がビジー状態である場合、SIP更新は、未処理参照取引バッファ1506に追加される(ステップ1624)。
図16Cの実施形態では、相場ハンドラ1450が全オーダブック1502のセキュリティに対するオーダの市場性を決定するために、株式市場データを処理する。例えば、NBBOセキュリティフィードまたは他のソースから、セキュリティXに対する新しい相場が受信されると、そのセキュリティに対する全オーダブックのオーダは、受信された相場の最良の利用可能なアスク/ビッド値をそれぞれのオーダの指値と比較するために調べられる。(ステップ1628、1630)次に、オーダが現在の相場を考慮して、市場性があるかどうか、および、適切に設定されたオーダに対する市場性フラグについての決定が行われる(ステップ1632)。このプロセスは、全ての関連するオーダがチェックされるまで繰り返される。
アクティブストリームの一部であるストラテジオーダが市場性のあるものから市場性のないものに切り替えられる場合、そのオーダはもはやマッチングする資格がない。市場性のあるものから市場性のないものへの移行が行われると、相場ハンドラ1450は、そのオーダについてアクティブストリームデータをチェックすることができる。オーダが1つ以上のストリームに参加している場合、そのオーダのマッチングをブレーク、取引を停止するために通知を発行することができる。(ステップ1636)。オーダは一時的なわずかな期間だけ市場性がない可能性があり、その後、市場性が迅速に戻るので、マッチングは一時的に保存され(しかしながら、実施目的のために動作されない)、マッチングは、指定された期間より長く市場性がない場合にのみブレークされ得る。
代替の実施形態では、取引可能アイテムのオーダの市場性は、第1市場データに基づいて指定された市場性機能によって定義されてもよく、この市場データは、市場ビッド/アスク値または他の情報を含んでもよい。図16Dは、相場ハンドラ1450のそのようなより一般的な実施のためのハイレベルのフローチャートである。相場ハンドラ1450は、1つ以上のオーダの市場性に関連するデータを受信し、このデータは、1つ以上のソースから受信することができる(ステップ1626’)。その市場性が受信された新しいデータに依存する全オーダブックの各オーダに対して、そのオーダに対する市場性機能が適用され、それに応じて市場性フラグがセットされる(ステップ1628’~1634’)。オーダが市場性のあるものから市場性のないものに移行する場合、既存のマッチングをブレークするための通知も送信することができる(ステップ1636’)。
自動取引システムにおける一般的な市場性機能の使用を可能にすることは、トレーダが追加のオーダが実施されるかを制御するためのさらなる柔軟性をトレーダに提供する。市場性機能は、問題の取引可能項目に対する入札/アスクデータに依拠する可能性が高いが、代わりに、追加データおよび/または代替データに基づく市場性機能を使用することができる。これは、非伝統的な取引可能項目の取引をサポートするために、および/または取引のストラテジを条件付きで変更するための追加の方法として適切であり得る。特定の実施形態では、オーダの市場性フラグを設定する(したがって、新しいマッチングを防止する)機能は、既存のマッチングをブレークすることを決定する際に適用される市場性機能とは異なる可能性がある。マッチングブレーク市場性機能は、(ステートレスとは対照的に)ステートベースとすることができ、以前のアクティビティまたはその欠如に基づくことができる。例えば、システムは、既存のマッチングをブレークするかどうかを決定する際に、実施がない間に、どれくらい長く、またはどれくらいの量が取引されたか、または価格がどれくらい移動したかを追跡することができる。
FIXプロトコルへの追加は、ストラテジマッチングベニュー1400が動作している全体的な取引環境に応じて、追加の市場性条件が指定されることを可能にするために、またはそのデータ(および場合によってはオーダデータ全体)を提供するために使用される代替チャネルを可能にするために必要とされ得る。
図17は、ストラテジマッチングプロセスを実装する、マッチングエンジン1460の実施形態のハイレベルフローチャートである。マッチングプロセスは、連続的、周期的、または断続的に実施されてもよい。
マッチングプロセスが開始されると、例えば、全オーダブックから、作業すべきストラテジオーダAが選択される。選択されたストラテジオーダAは、市場性があり、マッチングをサポートするために利用可能な容量を有していなければならない(例えば、取引可能である)(ステップ1702)。ストラテジオーダAを選択することができるこれらの基準を満たす、所定のセキュリティおよびサイドについての複数のオーダがあってもよい。選択オーダに優先順位を付ける際に、様々な方法を使用することができる。オーダは、オーダサイズ、市場性、コスト、または他の要因によって、または2つ以上の要因の組み合わせでランク付けすることができる。異なるソースからのオーダに使用するために、異なるランキング選択を提供することができる。優先順位フィールドは、オーダ発行者が少なくとも同じ最初のトレーダからのオーダの中で、選択優先順位付け要因を指定することを可能にするために、オーダ内に提供され得る。100000シェアのような閾値サイズを超える大きなオーダは、より小さなオーダよりも高い優先順位を付けられ、次いで、例えば、それらがいつ置かれたかにしたがって、さらに優先順位を付けられることができる。オーダが新しい場合、またはオーダが以前にマッチングしているが現在マッチングしていない場合、およびオーダがアクティブなマッチングであるかどうかなど、様々な他の要因を使用することもできる。
マッチングプロセスは、他の基準を使用して考慮するために次数をフィルタリングすることもできる。一実施形態では、入力オーダがブローカまたは他のソース識別子またはオーダ特性の特定のサブセットに対する選択を示すことができる。すべてのオーダを共通の全オーダブックに記憶することができるが、オーダマッチングプロセスの別のインスタンスを適用することができ、その各インスタンスは、指定されたソースによってのみ発注されたオーダを考慮する。異なるソースからのオーダは、異なる方法論を使用して優先順位付けすることができ、この方法論は、ストラテジマッチングベニューを有するアカウントが確立されるときなどに、提供される方法論またはランキング関数の所定のセットから選択することができる。利用可能な流動性のインデックス付けおよび他の次元の因数分解は、有利には、独自にカスタマイズされたオーダ優先ブックおよび流動性検索を可能にする。
取引可能なストラテジオーダAが機能するように選択された後、全オーダブックが検索されて、反対サイドであり、取引可能であり、ストラテジオーダAのストラテジタイプと互換性のあるストラテジタイプを有するAの同じセキュリティについてのストラテジオーダBが識別される(ステップ1704)。多くの場合、選択可能な複数の潜在的なコントラオーダBが存在することがある。特定のオーダBを選択するための様々な優先順位付け方式を実施することができる。上述したように、ストラテジタイプには異なる優先順位を与えることができる。複数の潜在的なコントラオーダマッチングが利用可能である場合、それらは、ストラテジタイプの優先順位に基づいてランク付けすることができ、より高い優先順位のストラテジ(より大きな流動性を与えるものなど)が最初に来る。図19を参照すると、ストラテジタイプが10%~30%であるオーダAは、流動性を求めるストラテジを有する利用可能なオーダBに優先的にマッチングされ、10%~30%のストラテジに利用可能なオーダAがない場合、および5%~15%のストラテジに利用可能なオーダBがない場合、優先的にマッチングされる。
同じ最も高いストラテジタイプ優先順位を有する複数の可能なコントラオーダがある場合、1つ以上の追加の優先順位付け方法を実施することができる。オーダは、サイズおよび時間によってランク付けすることができる。優先順位付け基準が適用されるオーダは、好みまたは設計選択に応じて変わり得る。例えば、オーダは、最初にオーダサイズにしたがって優先順位付けされ、次にストラテジタイプによって優先順位付けされ、またはその逆であってもよい。オーダAの選択に関して上述したような他の要因を使用することもできる。他の所定の基準に基づいて、異なる優先順位付けスキームが利用可能であり、選択される可能性がある。
特定の実施形態では、同じストラテジを有する複数の潜在的なコントラオーダマッチングが利用可能である場合、マッチングエンジンは、優先順位付け要因のシーケンスを使用して、そのストラテジバケットからオーダを選択することができ、優先順位付け要因のシーケンスは、最高から最低までの優先順位のシーケンスに、オーダターゲットストラテジ、オーダ属性好み、休止オーダ配置機関、オーダのオリジナル数量、オーダ到着時間、および残留オーダ数量(新規オーダおよび条件付きオーダのみの場合)を含むことができる。
より特定の実施形態では、マッチングエンジンが最高優先順位から最低優先順位まで以下に列挙される選択肢うちの1つ以上にしたがって、同じストラテジバケット内のオーダの中からマッチングオーダを選択することができる:
1.流動性検索選択:入力オーダで1つ以上の検索選択が指定されている場合、それらの選択が優先される。
2.機関/ブローカ/ディーラ:マッチングのために、同じ機関またはブローカ/ディーラからのオーダに優先順位が与えられる。機関またはブローカ/ディーラは、「セルフクロス」を避けるために、このオプションを無効にすることができる。
3.デスク:入力オーダが特定のデスクまたはブローカを指定した場合、オーダは、同じデスクおよび/またはブローカとの互換性のあるオーダのみとマッチングするようにペアとされる。例えば、承認されたブローカーリスト、または特定のブローカIOIである。
4.オリジナルオーダサイズバケット:オリジナルオーダサイズが25Kのような閾値よりも大きいオーダは、より小さいオーダよりも優先される。
5.到着時間:時間優先順位は、マッチングを決定する際の最終要因である。同じバケットに2つのオーダ(例えば、それぞれ500Kおよび125Kまたは20Kおよび15K)が存在する場合、ペアの中でより早く到着したオーダに優先順位が与えられる。
コントラストラテジオーダの優先順位付けされた選択は、オーダAが追加のコントラマッチングのために利用可能な容量を有する限り、継続することができる。
図17に戻ると、選択されたオーダAについてマッチングするコントラオーダBが利用可能でなく、チェックすべき全オーダブックに追加のオーダがある場合(ステップ1708)、適切な優先順位付け方法を使用して次の取引可能なオーダAが選択され(ステップ1720)、すべての関連するオーダがチェックされるまでプロセスが継続する。
マッチングするコントロールオーダBが識別された場合、そのオーダは、それが条件付きであるかどうかチェックされる(ステップ1722)。オーダが条件付きでない場合、オーダAとオーダBとのマッチングがアクティブストリームテーブル(1726)に格納される。オーダAおよびBの各々は、選択されたストラテジおよびそれにマッチングした他のストラテジに基づいて、それぞれのレート容量を有する。このマッチングのために、満たすことができる最大レートは、AおよびBの利用可能なレート容量のうちの小さい方である。オーダAおよびBの利用可能な容量は、この量だけ減少される(ステップ1728)。その後、ストリームオンメッセージをトリガとして、オーダAおよびオーダBのソースに送信することができる(ステップ1730)。流動性検索オーダについては、マッチングはレートに影響を与えない。しかしながら、マッチングは、最大の潜在的な取引数量(オーダAに利用可能な総数量およびオーダBに利用可能な総数量のうちのより少ないものなど)をもたらすことができる。この金額は、別のコントラオーダとのストラテジマッチングに使用可能なままである流動性検索オーダのための少なくとも最小量を決定するために使用することができる。オーダAとオーダBとの両方が流動性検索ストラテジを有する場合、マッチングは、オーダAとオーダBとに利用可能な総数量のうちのより少ない数量に対して実施される後続のブロック取引をもたらすことになる。マッチングが現在のNBBOに基づく中価格などの決定された価格で実施することができ、ペアいずれのオーダもレート制約がないので、取引プロセッサストリーミングエンジン1465において実施されるストリーミング実施プロセスに参加する必要はない。代替的に、LS対LSのマッチングは取引プロセッサストリーミングエンジン1465によって、他のマッチングと共に処理することができる。
有益には、マッチングロジックは流動性流量を最大化する。オーダがより高いレートを受け取る容量を有する(または流動性検索オーダが追加の量を残している)場合、それはより多くのマッチングに適格である。大容量オーダAは、より小さい容量を有する複数のオーダB、B’、B’’等に対して同時にマッチングすることができ、複数のマッチング状況におけるオーダB、B’、B’’等のストラテジは、同じである必要はない。
オーダBとの照合に続いてオーダAのストリームオンメッセージが送信された場合、オーダBとのマッチングがまだアクティブである間にオーダAが2番目のオーダB’とマッチングすると、追加のストリームオンメッセージを送信する必要はない。同様に、オーダAに対するストリームオフメッセージは、Aとのすべてのアクティブなマッチングが終了するまで送信される必要はない。
マッチングの期待レートやそのマッチング中に満たすことができる最大数量など、ストリームオンメッセージに追加情報が含まれている場合は、マッチングごとにストリームオンメッセージを送信できる。ストリームオフメッセージは、たとえ他のマッチングがあったとしても、マッチングがブレークしたときに任意選択で送信することができる。受信HEROシステムまたはPROシステムは、ストリームオンおよびストリームオフメッセージに含まれるマッチングIDを参照するなどして、所定のストラテジオーダについてストリームオンおよびストリームオフメッセージを独立して追跡することができる。
ストラテジオーダのための各受信されたストリームオンメッセージが、後続のストリームオフメッセージとペアにされ得る場合、そのストラテジオーダのためのアクティブなマッチング存在しない。あるいは、または、さらに、ストラテジマッチングベニューは、例えば、メッセージのマッチング残存フラグの値によって異なる2つのタイプのストリームオフメッセージを有することができる。マッチング残存フラグの設定値は、それぞれのストラテジオーダについて少なくとも1つの残存する不連続マッチングがあることを示す。ストリームオフメッセージが受信されるが、そのストラテジオーダのためのアクティブストラテジが残る場合、ストリームオフメッセージは、受信HEROシステムまたはPROシステムによって、単に情報として、アルゴリズム処理を再開するためのアルゴ取引プラットフォームへの通知、またはアルゴオーダを再発行するためのOMS/EMSへの通知(任意の残りの量について)をトリガするために使用されないと見なされ得る。
図17に戻ると、選択されたオーダAおよびマッチングするコントラオーダBの一方または両方が条件付きオーダである場合(ステップ1722)、オーダ確定プロセスが条件付きオーダに対して開始される(ステップ1732)。上述のように、これは、条件付きオーダに対する確定リクエストを送信することを伴い、マッチングした条件付きオーダを確定した非条件付き置換オーダに切り替えることを含むことができる。オーダが確定されるのを待っている間、追加のマッチングを検索するプロセスを継続することができる(ステップ1708)。
各マッチングまたは各条件マッチングには、それぞれのマッチングIDを割り当てることができる。確定リクエストメッセージには、発行時の条件付きマッチングのマッチングID値を含めることができ、戻された確定オーダ応答には関連するマッチングID値を含めることができる。ストラテジマッチングベニューに送られたオーダにおけるマッチングID値の存在は、マッチングが既存の条件付きオーダの確定であるか、または代わりに確定の非条件付きオーダであるかを決定するために使用することができる。
1つ以上の条件付きオーダが指定されたタイムアウト期間内に確定されない場合(ステップ1736)、マッチングが解放される(ステップ1740)。両方のオーダが条件付きであったが、1つだけが確定された場合、条件付きマッチングが失敗したことを示す通知を確定オーダのソースに送ることができる。条件付きオーダマッチングが正常に確定された場合(ステップ1738)、プロセスは、非条件付きマッチングの場合と同じ方法で継続する(ステップ1726)。
ストラテジオーダには、「有効期間」指定子を設けることもできる。有効期間を超過し、ストラテジオーダが依然としてアクティブである場合、それをキャンセルして戻すことができる。
図18は、取引プロセッサ1465の実施形態のハイレベルフローチャートである。取引プロセッサ1465は、取引ハンドラ1455によって提供される市場取引データに基づいて動作し、取引サイクルは、新しい取引データの受信時に、または取引データがバッファリングされるときに開始され得る。取引量V(取引量を指定する)および価格P(ステップ1802)で所定のセキュリティXの取引データを受け取ると、セキュリティXのアクティブなストリームオーダがあるかどうかを調べるためにチェックが行われる(ステップ1804)。存在しない場合、そのデータポイントに対して追加のアクションを取る必要はない。
1つ以上のアクティブなストリームが存在する場合、例えば、セキュリティXのためのオーダAとコントラオーダBとの間にアクティブなマッチングがある場合、それらのストリームは処理される。(ステップ1804)。選択されたストリームについて、価格Pが、そのストリーム内のオーダAとオーダBとのマッチングしたペアについて指定された指値と互換性があるかどうかを判定するためのチェックが行われる(ステップ1806)。価格に互換性がない場合、そのストリームに対して追加のアクションは取られない(ステップ1808)。より多くのストリームが利用可能である場合(ステップ1810)、セキュリティXのための次のアクティブストリームが選択され、処理される(ステップ1812)。
価格Pが(オーダAがオーダBにマッチングすることができ、オーダB’、B’’などにもマッチングすることができる)1つ以上のアクティブストリームのマッチングしたオーダのペアの指値と互換性がある場合、そのペアの実施が生成される(ステップ1816)。一実施形態では、実施は、セキュリティXの量と、マッチングしたオーダのストラテジに適合する最大のストラテジ基礎とに基づく。ストリーミング量は、最後の販売量Vに量のストラテジ基準パーセンテージを乗じたものであり、最後の販売価格で作成される。計算されたストリーミング量がペアのオーダのうちの1つについての利用可能な基礎を超える場合、交換される量は、最も低い利用可能な基礎となる。一方のオーダに流動性検索ストラテジがある場合、適用されるのは、他方のオーダのストラテジに対する利用可能な容量の最も高い割合となる。ペアの両方のオーダが流動性を求める場合、ブロック交換は、2つのオーダの利用可能な最低数量容量に等しい数量で行うことができる(2つの流動性検索オーダ間のマッチングの場合、取引処理ループにおいてマッチングしたペアが対処されるのを待つことなく、マッチング時に実施を行うことができる)。
ストリーミング交換は、単一の取引で実施されてもよいし、いくつかのより小さな取引に分割されてもよい。また、複数の市場取引を組み合わせて、単一のストラテジマッチングフィルにすることもできる。フィルは、従来の技術を使用して実施され、実施データは、例えば、適切な取引報告ファシリティ1420に報告される。
より特定の実施形態では、価格参照ストリーミングマッチングのために、システムは、SIP取引供給を連続的に処理し、マッチングされたオーダのためのすべての参照取引のために、マッチングにおける各オーダのためのフィルを以下のように生成することができる。
1.マッチング量および残差量における各オーダのストラテジに基づいて、クロス量(Cross Qty)を計算する(例えば、ストラテジが両方とも100%~200%である場合、クロス量は、基準取引の量の2倍のうちの小さい方であり、マッチングの2つのサイドの残りの量の最小値である)。
2.基準取引価格および適用可能な価格設定ルールに基づいて、クロス価格(CrossPrice)を計算する。
3.マッチングの各オーダにクロス量@クロス価格(crossQty@crossPrice)の実施を生成し(各オーダに残量を減らす)、各オーダに固定実施報告を送信する。
4.他の関連するすべての詳細(例えば、関連するMPID、無リスク元本、および他の取引変更因子)ならびにDTCCへの清算報告を含むTRFへの報告を生成する。
5.この実施がオーダを完了した場合(すなわち、残量=0)、完了したオーダ機能を呼び出し、その結果、ストリームオフメッセージが送信され、他の関連するハウスキーピングが実施される。残量を有するオーダは、後続のマッチングおよび充填のためにマッチングシステムによって処理され続ける。
基準市場での実施に固有の構造上の利点、およびストラテジマッチングベニューで適用されるユニバーサルセグメンテーションは投資家を保護するが、実施情報の漏洩をさらに保護するために、ゲーム防止機能などの保護を追加することができる。これを行う1つの方法は、取引にランダム要因を導入することである。これらは、例えば、ストリームが双方向であるときにマッチングレートをランダム化すること、ストリームレートイントラストリームを変更すること、奇数ロットを参照するときにストリーム量をランダムに上下に丸めること、レポートの周期的なバンチング、および取引報告をランダム化することを含むことができる。
図18に戻ると、交換が完了した後、アクティブストリームペアのオーダの一方または両方が利用可能な容量を充たしたかどうかに関する判定が行われる(ステップ1820)。充たした場合、そのペアに対するさらなる取引は利用可能ではなく、マッチングはブレークされる(ステップ1822)。オーダ完了ハウスキーピングタスクを実施することもでき、その結果、そのオーダの他のストリームが終了する可能性がある。追加の容量が残っている場合、問題のセキュリティに関する追加の関連する取引データが受信された後に、マッチングは持続し、さらなる交換を行うことができる。
ペアとなったオーダの追加のアクティブストリームがそのセキュリティXに対して利用可能である場合(ステップ1810)、次のストリームが選択され、同じ方法で処理される(ステップ1812)。セキュリティXのためのアクティブなストリームの全てが処理された後、セキュリティXのための取引データの別のアイテムが受信されるまで、取引プロセッサによるこれらの取引に関するさらなるアクションは必要とされない。
要約すると、マッチングが確立されると、実施のストリームは、マッチングのストラテジタイプに基づいて売り手から買い手に流れる。マッチング成立およびブレーク条件は、確立されたマッチングに対するブレークを最小限にするように設計される。一実施形態では、マッチング/ストリームが1つまたは両方のオーダが適用された市場性テストに基づいて市場性がなくなった場合、1つまたは両方のオーダが完了した場合(例えば、残量がゼロになった場合、または1つまたは両方のオーダがキャンセルされた場合)にのみ終了される。ストリーミングフィルよりも取引をブロックすることを優先する実施形態では、マッチングのオーダの1つが流動性検索であり、新しいより大きな流動性検索コントラサイドマッチングオーダが到着した場合に、マッチングをブレークすることもできる。
上述のように、マッチングのうちの1つの市場性がなくなった場合には、マッチングをブレークすることができる。オーダは、市場性を失い、すぐに市場性に戻ることもできる。マッチングを直ちにブレークする代わりに、マッチングを中断し、マッチングが中断される前に与えられたバッファ期間を中断して、ペアリングを保存することができる。バッファ期間中にオーダの市場性に戻った場合、マッチングは再アクティブ化される。中断されたマッチングをいつブレークすべきかを決定するために、様々な条件を設定することができる。
特定の実施形態では、以下の条件のうちの1つ以上が実施される。(a)オーダが指定されたタイムアウト期間より長く市場性がないままである場合、(b)マッチングしたオーダに両方とも再び市場性が戻る前に、マッチングしたオーダのセキュリティにおいて50Kなどの指定された市場量より多く取引される場合、および(c)市場価格(例えば、NBBO市場データにおいて指定される)が、ベースポイントにおける指定された価格デルタなどの特定の量より多く指値を超えて移動する場合、マッチングはブレークされる。
ストラテジマッチングおよびストリーミング実施方法は柔軟であり、非対称取引ストラテジを実施するために適用することができる。図16Dに示されるように、オーダの市場性機能は、ストラテジマッチングベニューに利用可能な任意の所望のデータに基づいて定義することができる。これは、オーダが実際に一致する場合に、より多くの制御を提供することができる。同様に、交換されるセキュリティの現在の量に加えて、またはその代わりに、要因に基づいて実施量関数を有する特別なストラテジを定義することができる。これにより、ストラテジマッチングベニューは、単に商品Aの現在の価格および量ではない基準に基づいて、商品または合成セキュリティなどの他の取引可能アイテムAの取引をサポートすることができる。
上述のように、本発明の特徴をサポートするために、FIXプロトコルに対する様々な拡張を行うことができる。同様の特徴は、本発明の様々な部品間の通信に使用することができる他のプロトコルで実施することができる。例えば、一連の追加のFIXパーティションを定義して、ストラテジ取引ならびに関連する機能および管理をサポートすることができる。
図7A、7B、8A~C、13A、および13Bは、単一の親オーダを処理するために使用される機能性に焦点を当てた、HERO認識アルゴ取引プラットフォーム320、HEROシステム315、およびPROシステム1110の実施形態の動作のハイレベルフローチャートである。複数のオーダの処理を同時にサポートするために、この機能を実施する様々な方法が当業者には知られているのであろう。本明細書に示す機能は、連続的に、周期的に、またはソフトウェアイベントまたは他の信号に応答して実施することができる。従来のように、種々のオーダは、固有のオーダIDを有し、システムとソフトウェア要素との間で送信されるメッセージに適切なオーダIDが含まれて、それらのメッセージをそれぞれのオーダに関連付ける。様々な他の従来の簿記および機能管理特性を使用することもできる。
フローチャートに開示される様々な機能は、別のプログラムスレッドとして示される。マルチスレッドプログラムを使用することができるが、それは必須ではなく、そのような機能を実施するソフトウェアは当業者に知られているように、様々な方法で編成することができる。同様に、逐次的に発生するものとして開示される特定の機能は代わりに、並列に動作する別のスレッドで実施されてもよい。例えば、取引プロセッサ1465は、新しい取引データが受信されたときに、アクティブな関連するストリームを循環することができる。このタイプの順次機能は、並列スレッドで実施することもでき、各スレッドは、そのセキュリティのための取引データの受領に応答する異なるセキュリティのために、1つ以上のアクティブストリームおよび/または各処理ストリームを処理する。
本システムは、株式、インデックス株式などのセキュリティを取引するためのシステムおよび方法に適用されるものとして説明されてきたが、ストラテジマッチングシステムは、これらの取引可能な項目の関連する市場データを参照して、他の取引可能項目の処理またはオーダにも適用することができる。第1市場データは、所定のストラテジオーダに市場性があるかどうかを決定するために使用され、第2市場データは、ストリーミング取引のタイミングおよび量を決定するために使用される。
さらなる実施態様では、ストラテジマッチングが部分的なレートマッチングのみでマッチングをサポートすることができる。そのような場合、ストラテジマッチングベニューによって提供されるマッチングのストリームを考慮しても、オーダに利用可能な追加の料金容量が依然として存在する可能性がある。そのような場合、アルゴ処理システムは、ストラテジオーダレートマッチングを考慮して修正されたアルゴリズム制約を使用してオーダをスライスするようにさらに制御され得、その結果、アルゴリズム処理は、ストラテジマッチングベニューによってカバーされていない差分レートをマッチングしようと試みる。
本発明の様々な態様、実施形態、および例が、本明細書で開示され、説明されてきた。当業者は、添付の特許請求の範囲に定義される本発明の精神および範囲から逸脱することなく、修正、追加、および変更を行うことができる。