(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-10-26
(45)【発行日】2022-11-04
(54)【発明の名称】取引所のイベントおよび動作に関連するメッセージを使用するプログラム間通信
(51)【国際特許分類】
G06Q 40/04 20120101AFI20221027BHJP
【FI】
G06Q40/04
(21)【出願番号】P 2021120080
(22)【出願日】2021-07-21
(62)【分割の表示】P 2019045174の分割
【原出願日】2010-02-11
【審査請求日】2021-08-18
(32)【優先日】2009-03-06
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2009-03-18
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】309032751
【氏名又は名称】ビージーシー パートナーズ インコーポレイテッド
(74)【代理人】
【識別番号】100107364
【氏名又は名称】斉藤 達也
(72)【発明者】
【氏名】ラトニック ハワード ダブリュ.
(72)【発明者】
【氏名】ポール ビジョイ
(72)【発明者】
【氏名】スウィーティング マイケル
【審査官】関 博文
(56)【参考文献】
【文献】特開2007-241771(JP,A)
【文献】特表2009-509219(JP,A)
【文献】特表2008-541310(JP,A)
【文献】特開平7-244690(JP,A)
【文献】特開2002-73374(JP,A)
【文献】特開2001-155086(JP,A)
【文献】特開2008-262429(JP,A)
【文献】特開2008-209987(JP,A)
【文献】特開2004-151841(JP,A)
【文献】特表2002-543481(JP,A)
【文献】米国特許出願公開第2008/0097893(US,A1)
【文献】米国特許出願公開第2007/0233594(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00-99/00
(57)【特許請求の範囲】
【請求項1】
取引システムであって、
イベントエンジンおよびマッチングエンジンと通信可能に接続され、前記イベントエンジンからの
命令を前記マッチングエンジンに通信可能に構成されたデータバスと、
前記マッチングエンジンであって、
金融商品に対する取引の各側をそれぞれ定義する注文の
命令を受信すること、
各注文を前記金融商品の買い注文キューおよび売り注文キューのそれぞれ1つに追加すること、
少なくとも前記買い注文キュー内の第1の注文および前記売り注文キュー内の第2の注文が一致すると判断すること、ならびに
前記第1の注文および前記第2の注文を満たす取引を履行すること
を実行するように構成された前記マッチングエンジンと、
前記イベントエンジンであって、
イベント発生
命令を受信すること、
前記イベント発生
命令を受信することに応答して、注文への調整が、前記発生に伴った少なくとも1つの基準を条件とすると判断すること、
前記注文が条件とする前記発生に伴った前記少なくとも1つの基準が充足したことを判断すること、および
前記少なくとも1つの基準が充足したことを判断することに応答して、データバスを通して前記マッチングエンジンに、注文を調整する命令であって、前記マッチングエンジンによって前記売り注文キュー及び前記買い注文キューの少なくとも1つのキュー内にある次の注文が実行される前に、前記売り注文キュー及び前記買い注文キューの少なくとも1つのキューに注文を追加すること、又は、前記少なくとも1つのキューにおいて保留中の注文の特性を変更することの少なくとも1つによって、前記少なくとも1つのキューを前記マッチングエンジンに調整させるための前記マッチングエンジンの処理への割り込みとして機能する前記命令を送信する、前記イベントエンジンと、
を備える、取引システム。
【請求項2】
前記マッチングエンジンは、機械命令スタックを備え、
前記データバスおよび前記マッチングエンジンは、前記注文を調整する
命令が前記マッチングエンジンによって受信された場合、前記マッチングエンジンが、前記機械命令スタックにおける、前記機械命令スタックで保留中の少なくとも1つの
命令の前に、前記
命令を入れるように構成されている、
請求項1に記載の取引システム。
【請求項3】
前記データバスは、前記マッチングエンジンの前記機械命令スタックのメモリロケーションに情報を送信するように構成され、前記マッチングエンジンは、前記メモリロケーションからデータを読み取るように構成される、請求項2に記載の取引システム。
【請求項4】
前記少なくとも1つの命令は、前記マッチングエンジンによって前記注文が受信される前に、前記マッチングエンジンによって受信された前記少なくとも1つのキューに別の注文を追加する命令を処理する命令を含み、前記別の注文を追加する命令は、前記データバスから前記マッチングエンジンにより受信されなかった命令であり、前記別の注文は、前記データバスからでない前記別の注文に基づいて前記命令が実行される前に、追加される、
請求項2に記載の取引システム。
【請求項5】
取引所を操作する方法であって、
イベントエンジンによって、リモートコンピュータから条件の命令を受信することであって、前記条件がイベントを定義するものであり、前記イベントが発生した場合、前記条件が満たされるものであり、
前記リモートコンピュータから第1の動作の命令を受信することであって、前記動作は金融商品に対する注文への調整を定義するものであり、
前記イベントエンジンによって、前記イベントが発生したと判断すること、
前記イベントエンジンによって、前記判断に応答して、前記イベントエンジンおよびマッチングエンジンを結合するデータバスを通して、注文を調整する命令を前記取引所の前記マッチングエンジンに送信することであって、前記マッチングエンジンは、注文の一致を特定し、一致する注文を満たす取引を履行するように構成されるものであり、前記注文を調整する命令は、前記マッチングエンジンによって売り注文キュー及び買い注文キューの少なくとも1つのキュー内にある次の注文が実行される前に、前記売り注文キュー及び前記買い注文キューの少なくとも1つのキューに注文を追加すること、又は、少なくとも1つのキューにおいて保留中の注文の特性を変更することの少なくとも1つによって、前記少なくとも1つのキューを前記マッチングエンジンに調整させるための前記マッチングエンジンの処理への割り込みとして機能し、および、
前記少なくとも1つのキューに注文を追加すること、又は、前記少なくとも1つのキューにおいて保留中の注文の特性を変更することの少なくとも1つによって、前記少なくとも1つのキューを調整すること
を含む、方法。
【請求項6】
前記条件の命令および前記動作の命令は、単一の通信として受信される、請求項5に記載の方法。
【請求項7】
前記少なくとも1つのキューを調整することは、前記データバスからでない保留中の少なくとも1つの命令に基づいて、命令スタック内で前記保留中の少なくとも1つの命令を実行する前に、前記マッチングエンジンにより前記少なくとも1つのキューを調整することを含む、
請求項5に記載の方法。
【請求項8】
前記少なくとも1つのキューを調整することは、前記イベントエンジンにより、前記マッチングエンジンの機械命令スタックのメモリロケーションに情報を送信することを含む、請求項5に記載の方法。
【請求項9】
取引所のイベントエンジンが、リモートコンピュータから、イベントが発生したという命令を受信すること、
前記イベントエンジンが、動作が条件付けられた条件が満たされると判断することであって、前記動作は、金融商品に対する取引の側を定義する注文への調整を含むものであり、
前記イベントエンジンが、前記判断に応答して、前記イベントエンジンおよびマッチングエンジンを結合する前記取引所のデータバスを通して、前記注文を調整する命令を前記取引所のマッチングエンジンに送信することであり、前記注文を調整する命令が、前記マッチングエンジンによって売り注文キュー及び買い注文キューの少なくとも1つのキュー内にある次の注文が実行される前に、前記売り注文キュー及び前記買い注文キューの少なくとも1つのキューに注文を追加すること、又は、前記少なくとも1つのキューにおいて保留中の注文の特性を変更することの少なくとも1つによって、前記少なくとも1つのキューを前記マッチングエンジンに調整させるための前記マッチングエンジンの処理への割り込みとして機能する、
方法。
【請求項10】
前記調整の命令を送信することは、前記少なくとも1つのキューにおける前記注文の価格および数量のうちの少なくとも一方を調整する命令を送信することを含む、請求項9に記載の方法。
【請求項11】
前記調整の命令を送信することは、前記マッチングエンジンの機械命令スタックのメモリロケーションに情報を送信することを含む、請求項9に記載の方法。
【請求項12】
前記イベントエンジンは、前記注文が保存されたメモリロケーションの命令を記録するように構成され、前記メモリロケーションの命令は前記マッチングエンジンから送信された命令である、
請求項1に記載の取引システム。
【請求項13】
取引システムであって、
イベントエンジンとマッチングエンジンとを相互にコミュニケーション可能に接続するデータバスであって、前記イベントエンジンから前記マッチングエンジンへと命令を送信可能なように構成されたデータバスと、
マッチングエンジンであって、機械命令スタックを有し、前記データバスと前記マッチングエンジンは、注文を調整する命令が前記マッチングエンジンによって受信された場合、前記命令を、前記機械命令スタック内で保留中の少なくとも1つの命令の前に前記命令を追加するように構成され、
前記マッチングエンジンは、
金融商品に対する取引の各側をそれぞれ定義する注文の命令を受信すること、
各注文を前記金融商品の買い注文キューおよび売り注文キューのそれぞれ1つに追加すること、
少なくとも前記買い注文キュー内の第1の注文および前記売り注文キュー内の第2の注文が一致すると判断すること、ならびに、
前記第1の注文および前記第2の注文を満たす取引を履行すること
を実行するように構成される、前記マッチングエンジンと、
イベントエンジンであって、
イベントの発生命令を受信し、
前記イベントは、
第2の金融商品の価値の変更、
第2の金融商品の取引量の変更、
企業による決算公表、
取引の逆側の注文の提出、
業界を規制する規制の変更、および
企業の信用格付けの変更
のうちの少なくとも1つを含み、
前記イベントの発生時において、前記注文は前記マッチングエンジンのキュー内で保留中ではなく、前記注文を調整する命令は、前記マッチングエンジンの前記キューに前記注文を追加する命令を含み、
前記イベントの発生命令の受信に応答して、前記注文の調整が、前記イベントの発生に関連する少なくとも一つの基準に沿うかを判断し、
前記注文が条件づけられた、前記イベントの発生に関連する少なくとも一つの基準が充足したかを判断し、
前記少なくとも1つの基準が充足したことを判断することに応答して、前記データバスを介して前記マッチングエンジンに対して注文を調整する命令を送信し、前記注文を調整する命令が、前記マッチングエンジンによって売り注文キュー及び買い注文キューの少なくとも1つのキュー内にある次の注文が実行される前に、前記売り注文キュー及び前記買い注文キューの少なくとも1つのキューに注文を追加すること、又は、前記少なくとも1つのキューにおいて保留中の注文の特性を変更することの少なくとも1つによって、前記少なくとも1つのキューを前記マッチングエンジンに調整させるための前記マッチングエンジンの処理への割り込みとして機能する、
を備えた取引システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、取引所のイベントおよび動作に関連するメッセージを使用するプログラム間通信に関する。
【図面の簡単な説明】
【0002】
【
図1】いくつかの実施形態での取引に関わり得る例示的なエンティティセットを示す。
【
図2A-2C】いくつかの実施形態において使用し得る交換の例を示す。
【
図3】いくつかの実施形態において使用し得る交換の別の例を示す。
【
図4】いくつかの実施形態において使用し得るさらに別の例を示す。
【
図5】いくつかの実施形態において実行し得る方法の例を示す。
【
図6】いくつかの実施形態において実行し得る方法の別の例を示す。
【
図7】いくつかの実施形態において実行し得る方法の別の例を示す。
【
図8】いくつかの実施形態において実行し得る方法の別の例を示す。
【
図9】いくつかの実施形態において実行し得る方法の別の例を示す。
【発明を実施するための形態】
【0003】
以下の第I章~第X章において、本願を解釈するための指針を提供する。
【0004】
I.用語
用語「製品」は、別途明記されない限り、任意の機械、製造物、および/または物質の合成物を意味する。
【0005】
用語「プロセス」は、別途明記されない限り、任意のプロセス、アルゴリズム、方法等を意味する。
【0006】
各プロセスは(方法でも、アルゴリズムでも、他の名称のものでも)本質的に、1つまたは複数のステップを含み、したがって、プロセスの「ステップ」または「複数のステップ」というすべての言及は本質的に、用語「プロセス」または同様語の単なる記載において先行記述を有する。したがって、請求項中のプロセスの「ステップ」または「複数のステップ」といういかなる言及も十分な先行記述を有する。
【0007】
用語「発明」および同様語は、別途明記されない限り、「本願において開示される1つまたは複数の発明」を意味する。
【0008】
用語「実施形態(an embodiment,embodiment,embodiments,the embodiment,the embodiments)」、「1つまたは複数の実施形態」、「いくつかの実施形態」、「特定の実施形態」、「一実施形態」、「別の実施形態」等は、別途明記されない限り、「開示される発明の(すべてではないが)1つまたは複数の実施形態」を意味する。
【0009】
発明の「変形」という用語は、別途明記されない限り、本発明の実施形態を意味する。
【0010】
実施形態を説明するに当たっての「別の実施形態」の言及は、別途明記されない限り、言及される実施形態が別の実施形態(例えば、言及される実施形態の前に説明された実施形態)と相互に排他的であることを示唆しない。
【0011】
用語「含む」、「備える」、およびそれらの変形は、別途明記されない限り、「を含むが、それ(ら)に限定されない」を意味する。
【0012】
用語「a」、「an」、および「the」は、別途明記されない限り、「1つまたは複数」を意味する。
【0013】
用語「複数」は、別途明記されない限り、「2つ以上」を意味する。
【0014】
用語「本明細書では」は、別途明記されない限り、「参照により援用し得るあらゆるものを含め、本願において」を意味する。
【0015】
語句「のうちの少なくとも1つ」は、複数の物事(物事の列挙リスト等)を修飾する場合、別途明記されない限り、それらの物事のうちの1つまたは複数の任意の組み合わせを意味する。例えば、語句「ウィジェット、車、および車輪のうちの少なくとも1つ」は、(i)ウィジェット、(ii)車、(iii)車輪、(iv)ウィジェットおよび車、(v)ウィジェットおよび車輪、(vi)車および車輪、または(vii)ウィジェット、車、および車輪のいずれかを意味する。語句「のうちの少なくとも1つ」は、複数の物事を修飾する場合、それら複数の物事の「それぞれ1つ」を意味しない。
【0016】
「1つ」、「2つ」等の数字は、何かの数量を示す基数として使用される場合(例えば、1つのウィジェット、2つのウィジェット)、その数字により示される数量を意味するが、少なくともその数字により示される数量を意味しない。例えば、語句「1つのウィジェット」は「少なくとも1つのウィジェット」を意味せず、したがって、語句「1つのウィジェット」は、例えば、2つのウィジェットを含意しない。
【0017】
語句「に基づく」は、別途明記されない限り、「のみに基づく」を意味しない。換言すれば、語句「に基づく」は、「のみに基づく」および「少なくとも~に基づく」の両方を説明する。語句「少なくとも~に基づく」は、語句「少なくとも部分的に~に基づく」と同等である。
【0018】
用語「表す」および同様語は、別途明記されない限り、排他的ではない。例えば、用語「表す」は、別途明記されない限り、「のみを表す」を意味しない。換言すれば、語句「データはクレジットカード番号を表す」は、「データはクレジットカード番号のみを表す」および「データはクレジットカード番号を表すと共に、他の何かも表す」の両方を説明する。
【0019】
用語「それにより」は、本明細書では、意図する結果、目的、またはすでに明示された何かの帰結のみを表現する文節または他の言葉の集まりにのみ前置して使用される。したがって、用語「それにより」が請求項中に使用される場合、用語「それにより」が修飾する文節または他の複数の言葉は、その請求項の特定のさらなる限定を確立せず、またはその請求項の意味もしくは範囲を他の様式で制限しない。
【0020】
用語「例えば(e.g.)」および同様語は、「例えば(for example)」を意味し、したがって、説明する用語または語句を限定しない。例えば、文章「コンピュータはインターネットを介してデータ(例えば(e.g.)、命令、データ構造)を送信する」において、用語「例えば(e.g.)」は、「命令」が、コンピュータがインターネットを介して送信し得る「データ」の一例であることを説明すると共に、「データ構造」が、コンピュータがインターネットを介して送信し得る「データ」の一例であることも説明する。しかし、「命令」および「データ構造」は両方とも「データ」の単なる例であり、「命令」および「データ構造」以外の他のものも「データ」であり得る。
【0021】
用語「それぞれ」および同様語は、「個々に解釈される」を意味する。したがって、2つ以上の物事が「それぞれ」の特徴を有する場合、そのような物事のそれぞれがそれ自体の特徴を有し、それらの特徴は互いに異なり得るが、必ずしも互いに異なることが必要とされる訳ではない。例えば、語句「2つの各機械がそれぞれの機能を有する」は、第1のそのような機械がある機能を有し、第2のそのような機械も同様にある機能を有することを意味する。第1の機械の機能は、第2の機械の機能と同じであってもよく、または同じでなくてもよい。
【0022】
用語「すなわち(i.e.)」および同様語は、「すなわち(that is)」を意味し、したがって、説明する用語または語句を限定する。例えば、文章「コンピュータはインターネットを介してデータ(すなわち(i.e.)、命令)を送信する」において、用語「すなわち(i.e.)」は、「命令」が、コンピュータがインターネットを介して送信する「データ」であることを説明する。
【0023】
いかなる所与の数値範囲も、その範囲内の整数および小数を含むべきである。例えば、範囲「1~10」は、特に1~10の整数(例えば、1、2、3、4、・・・、9)および非整数(例えば、1.1、1.2、・・・、1.9)を含むものと解釈すべきである。
【0024】
2つ以上の用語または語句が同義の場合(例えば、用語または語句が同義であると明記されるため)、1つのそのような用語/語句のインスタンスは、別のそのような用語/語句が別の意味を有さなければならないことを意味しない。例えば、文章により、「含む」の意味が「含むが、それ(ら)に限定されない」と同義であると示される場合、語句「含むが、それ(ら)に限定されない」を単に用いることは、用語「含む」が、「含むが、それ(ら)に限定されない」以外の何かを意味することを意味しない。
【0025】
II.決定(Determining)
用語「決定(determining)」およびその文法上の変形(例えば、価格を決定する、価値を決定する、特定の基準に合致する対象を決定する)は、極めて広い意味で使用される。用語「決定」は、広範囲にわたる動作を包含し、したがって、「決定」は、算出、計算、処理、導出、調査、参照(例えば、テーブル、データベースまたは他のデータ構造の参照)、確認等を含み得る。「決定」は、受信(例えば、情報を受信する)、アクセス(例えば、メモリ内のデータにアクセスする)等も含み得る。さらに、「決定」は、解決、選択、選定、確立等を含み得る。
【0026】
用語「決定」は、確実性または絶対的な精度を示唆するものではなく、したがって、「決定」は、推定、外挿、予測、推測等を含み得る。
【0027】
用語「決定」は、数学的処理を行わなければならないことを示唆するものではなく、数値手法を使用しなければならないことを示唆するものではなく、アルゴリズムまたはプロセスが使用されることを示唆するものではない。
【0028】
用語「決定」は、特定の装置を用いなければならないことを示唆するものではない。例えば、必ずしもコンピュータが決定を行わなくてもよい。
【0029】
III.文の形式
第1の請求項の限定が、1つの特徴および2つ以上の特徴を包含し(例えば、「少なくとも1つのウィジェット」等の限定は、1つのウィジェットならびに2つ以上のウィジェットを包含する)、第1の請求項に従属する第2の請求項で、第2の請求項が、定冠詞「前記(the)」を使用して限定を表す場合(例えば、「前記ウィジェット(the widget)」)、これは、第1の請求項が、1つのみの特徴を包含することを示唆するものではなく、第2の請求項が、1つのみの特徴を包含することを示唆するものでない(例えば、「前記ウィジェット」は、1つのウィジェットおよび2つ以上のウィジェットの両方を包含し得る)。
【0030】
序数(「第1の」、「第2の」、「第3の」等)を、用語の前の形容詞として使用する場合、その序数は、(別途明記されない限り)同じ用語または同様の用語で記載される別の特徴とその特定の特徴とを区別するためなど、特定の特徴を示すために使用されるに過ぎない。例えば、「第1のウィジェット」は、例えば、「第2のウィジェット」と区別するためにそのように命名されているに過ぎないことがある。したがって、用語「ウィジェット」の前に序数「第1の」および「第2の」を単に使用することは、2つのウィジェット間の何らかの関係を示すものではなく、同様に、一方または両方のウィジェットの何れかの他の特性を示すものでない。例えば、用語「ウィジェット」の前に序数「第1の」および「第2の」を単に使用することは、(1)順序および場所においてウィジェットが他のものの前に来るか後に来るかを示すものではなく、(2)時間上、他のものの前または後にウィジェットが発生または動作する旨を示すものではなく、(3)何れかのウィジェットが重要度または品質において、他のものの上または下にランク付けされることを示すものでない。さらに、単に序数を使用することは、序数によって識別される特徴に対する数値限度を定義するものでない。例えば、序数「第1の」および「第2の」を用語「ウィジェット」の前に単に使用することは、3つ以上のウィジェットが存在してはならないことを示すものでない。
【0031】
単一の装置、物、または他の製品が本明細書に記載される場合、代替として、2つ以上の装置/物(協働するか否かに関わらず)を、記載された単一の装置/物の代わりに使用し得る。したがって、装置が保有しているものとして記載された機能は、代替的として、2つ以上の装置/物(協働するか否かに関わらず)が保有してもよい。
【0032】
同様に、2つ以上の装置、物、または他の製品が本明細書に記載される場合(協働するか否かに関わらず)、代替として、単一の装置/物を、記載された2つ以上の装置または物の代わりに使用し得る。例えば、複数のコンピュータベースの装置を、単一のコンピュータベースの装置で置換し得る。したがって、2つ以上の装置または物が保有するものとして記載された様々な機能は、代替的として、単一の装置/物により保有してもよい。
【0033】
記載される単一の装置の機能および/または特徴は、代替的として、記載されているが、このような機能/特徴を有するものとして明記されていない1つまたは複数の他の装置により具現してもよい。したがって、他の実施形態は、記載された装置自体を含む必要がなく、むしろ、それら他の実施形態ではそのような機能/特徴を有する1つまたは複数の他の装置を含むことができる。
【0034】
IV.開示される例および用語は非限定的
開示される本発明の範囲は、任意の請求項の意味を解釈する際または任意の請求項の範囲を限定する際に使用されるべきであるため、名称(本願の最初のページの冒頭に記されている)も要約書(本願の末尾に記される)も、決して開示された発明の範囲を限定するものとして解釈されないものとする。要約書は、特許規則37C.F.R.§1.72(b)で要求されているため、本願に含まれているに過ぎない。
【0035】
本願の名称、および本願において提供される章の見出しは便宜上のものに過ぎず、決して本開示を限定するものとして解釈されるべきでない。
【0036】
多くの実施形態が本願に記載されており、これらの実施形態は単に例示の目的で提示されている。記載される実施形態は、いかなる意味でも限定的ではなく、限定的であることを意図するものでもない。本願に開示した発明は、本開示から容易に分かるように多くの実施形態に広く適用可能である。開示される発明は、構造的変更、論理的変更、ソフトウェアの変更、電気的変更等の様々な変更および改変を伴って実施することができることを当業者は認識するであろう。開示される発明の特定の特徴は、1つまたは複数の特定の実施形態および/または図面を参照して説明され得るが、このような特徴は、別途明記されない限り、参照して説明されている1つまたは複数の特定の実施形態または添付図面での使用に限定されないことを理解されたい。
【0037】
実施形態は、いくつかの特徴を含むものとして開示され得るが、本発明の他の実施形態は、そのようなすべての特徴よりも少数の特徴を含んでもよい。したがって、例えば、請求項が、開示される実施形態における複数の全体集合よりも少数の特徴を対象としてもよく、そのような請求項は、その請求項が明示的に列挙する特徴を超える特徴を含まない。
【0038】
本願に記載した方法のステップまたは製品の要素の実施形態の何れも、本明細書または特許請求の範囲で明記されていない限り、請求項に記載の本発明を構成するものではなく、または請求項に記載の発明に必須ではなく、または請求項に記載の発明と同一の広がりを持たない。
【0039】
請求項の前文は、請求項に記載の発明の目的、利益、および実施可能な用途を記載しているに過ぎず、請求項に記載の発明を限定しない。
【0040】
本開示は、本発明のすべての実施形態の完全な説明でない。本開示は、すべての実施形態に存在していなければならない本発明の特徴の一覧でもない。
【0041】
開示されるすべての実施形態は、必ずしも請求項に包含される必要はない(係属中の請求項、補正請求項、発行された請求項、およびキャンセルされた請求項のすべてを含めても)。さらに、実施形態をいくつかの請求項に包含してもよい(しかし、必ずしもそうする必要はない)。したがって、請求項(係属中の請求項、補正請求項、発行された請求項、またはキャンセルされた請求項の如何に関わらず)が、特定の実施形態を対象とする場合、そのようなことは、他の請求項の範囲がその実施形態を包含しないことの証拠ではない。
【0042】
互いに通信するものとして記載された装置は、別途明記されない限り、常に互いに通信していなくてはいけない訳でない。逆に、そのような装置は、必要または所望に応じてのみ互いに伝送する必要があり、実際には、大半の時間にデータの交換を控え得る。例えば、インターネットを介して別の機械と通信する機械は、長期間にわたり、他の機械にデータを送信しないことがある(例えば、一度に何週間も)。さらに、互いに通信する装置は、直接的に、または1つまたは複数の中間体を介して間接的に通信し得る。
【0043】
いくつかの構成要素または特徴を有する実施形態の説明は、そのような構成要素/特徴のすべてまたは何れかが必要であることを示唆するものでない。逆に、本発明の広範囲の実施可能な実施形態を例示するために様々な任意選択の構成要素を説明する。別途明記されない限り、構成要素/特徴は必須ではなく、または要求されるものではない。
【0044】
プロセスステップまたはアルゴリズム等は、特定の順序で明細書または特許請求の範囲に記載され得るが、そのようなプロセスは、異なる順序で実施するように構成し得る。換言すれば、明細書または特許請求の範囲に明示的に記載され得るステップの任意の順番または順序は、必ずしもステップをその順序で行う旨の要件を示している訳でない。本明細書に記載のプロセスのステップは、実施可能な任意の順序で実施し得る。さらに、ステップによっては、同時に実施されないとして記載または示唆されている(例えば、一方のステップが他方のステップの後に記載されているため)にも関わらず、同時に実施し得るものがある。さらに、添付図面に表されるプロセスの例示は、例示されたプロセスが、それに対する他の変形および変更を排除することを示唆せず、例示されたプロセスまたはそのステップの何れかが本発明に必要であることを示唆せず、例示されたプロセスが好ましいことを示唆しない。
【0045】
プロセスは、複数のステップを含むものとして説明され得るが、これは、ステップのすべてまたは何れかが、好適であるか、必須であるか、または必要であることを示唆しない。記載の発明の範囲内の様々な他の実施形態は、記載のステップのいくつかまたはすべてを割愛した他のプロセスを含む。別途明記されない限り、ステップは何れも必須ではなく、または要求されるものではない。
【0046】
プロセスは、単独で、すなわち他の製品もしくは方法を参照せずに説明され得るが、実施形態では、プロセスは他の製品または方法と相互作用し得る。例えば、そのような相互作用は、あるビジネスモデルを別のビジネスモデルにリンクさせることを含み得る。そのような相互作用は、プロセスの柔軟性または望ましさを向上させるために提供し得る。
【0047】
製品は、複数の構成要素、態様、品質、特性、および/または特徴を含むものとして説明され得るが、それは、この複数のもののうちの任意またはすべてが好適であるか、必須であるか、または必要である旨を示すものでない。記載の発明の範囲内の様々な他の実施形態は、複数と記載されるもののうちのいくつかまたはすべてを割愛した他の製品を含む。
【0048】
(付番されていてもいなくてもよい)列挙された項目リストは、別途明記されない限り、任意またはすべての項目が相互に排他的であることを示唆するものでない。同様に、(付番されていてもいなくてもよい)列挙された項目リストは、別途明記されない限り、任意またはすべての項目が、任意のカテゴリを包含することを示唆するものでない。例えば、「コンピュータ、ラップトップ、PDA」の列挙リストは、そのリストの3項目のうちの任意またはすべての項目が相互に排他的であることを示唆せず、そのリストの3項目のうちの任意またはすべての項目が、任意のカテゴリを包含することを示唆しない。
【0049】
(付番されていてもいなくてもよい)列挙された項目リストは、任意またはすべての項目が相互に同等であるか、または容易に相互に置換し得ることを示唆するものでない。
【0050】
すべての実施形態は例示的なものであり、本発明または任意の実施形態が行われたか、または実施されることを示唆するものでない。
【0051】
V.計算
本願に記載の様々なプロセスは、例えば、適宜プログラムされた汎用コンピュータ、専用コンピュータ、および計算装置により実施し得ることが、当業者には容易に明らかになろう。通常、プロセッサ(例えば、1つまたは複数のマイクロプロセッサ、1つまたは複数のマイクロコントローラ、1つまたは複数のデジタル信号プロセッサ)が、命令を受信し(例えば、メモリまたは同様の装置から)、それらの命令を実行し、それにより、それらの命令により定義される1つまたは複数のプロセスを実行する。命令は、例えば、1つまたは複数のコンピュータプログラム、1つまたは複数のスクリプトで具現し得る。
【0052】
「プロセッサ」は、アーキテクチャ(例えば、チップレベル多重処理/マルチコア、RISC、CISC、パイプライン段がインターロックしないマイクロプロセッサ、パイプライン構成、同時マルチスレッド処理)に関わりなく、1つまたは複数のマイクロプロセッサ、中央演算処理装置(CPU)、計算装置、マイクロコントローラ、デジタル信号プロセッサ、もしくは同様な装置、またはそれらの任意の組み合わせを意味する。
【0053】
したがって、プロセスの説明は同様に、プロセスを実行する装置の説明でもある。プロセスを実行する装置は、例えば、プロセスの実行に適切なプロセッサ、入力装置、および出力装置を含み得る。
【0054】
さらに、そのような方法を実施するプログラム(ならびに他の形式のデータ)は、様々な媒体(例えば、コンピュータ可読媒体)を使用していくつかの様式で記憶し、送信し得る。いくつかの実施形態では、配線回路またはカスタムハードウェアを、様々な実施形態のプロセスを実施可能なソフトウェア命令のうちのいくつかまたはすべてに代えて、またはそれらと組み合わせて使用し得る。したがって、様々な組み合わせのハードウェアおよびソフトウェアを、ソフトウェアのみに代えて使用し得る。
【0055】
用語「コンピュータ可読媒体」は、コンピュータ、プロセッサ、または同様の装置により読み取ることができるデータ(例えば、命令、データ構造)の提供に関わる任意の媒体、複数の媒体、または異なる媒体の組み合わせを指す。そのような媒体は、不揮発性媒体、揮発性媒体、および伝送媒体を含むが、それらに限定されない多くの形態をとり得る。不揮発性媒体としては、例えば、光ディスクまたは磁気ディスクおよび他の永久メモリが挙げられる。揮発性媒体としては、通常、メインメモリを構成するダイナミックランダムアクセスメモリ(DRAM)が挙げられる。伝送媒体としては、プロセッサに結合されたシステムバスを構成するワイヤを含め、同軸ケーブル、銅線、および光ファイバが挙げられる。伝送媒体は、無線周波数(RF)および赤外線(IR)によるデータ通信中に生成されるような音波、光波、および電磁放射を含むか、または伝達し得る。一般的な形態のコンピュータ可読媒体としては、例えば、コンピュータが読み取り可能なフロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、磁気テープ、他の任意の磁気媒体、CD-ROM、DVD、他の任意の光媒体、パンチカード、紙テープ、穴パターンを有する他の任意の物理媒体、RAM、PROM、EPROM、フラッシュEEPROM、他の任意のメモリチップもしくはカートリッジ、以下に記載する搬送波、または他の任意の媒体が挙げられる。
【0056】
様々な形態のコンピュータ可読媒体が、プロセッサへのデータ(例えば、命令シーケンス)の搬送に関与し得る。例えば、データは、(i)RAMからプロセッサに送出し、(ii)無線伝送媒体を介して搬送し、(iii)Ethernet(登録商標)(またはIEEE802.3)、SAP、ATP、Bluetooth(登録商標)、TCP/IP、TDMA、CDMAおよび3G等の多くのフォーマット、標準またはプロトコルによりフォーマットかつ/または送信し、ならびに/あるいは(iv)当分野において周知の様々な任意の方法で暗号化して、プライバシーを確保し、または不正を阻止し得る。
【0057】
したがって、プロセスの説明は同様に、プロセスを実行するプログラムを記憶するコンピュータ可読媒体の説明でもある。コンピュータ可読媒体は、方法の実行に適切なプログラム要素を(任意の適切な形式で)記憶することが可能である。
【0058】
プロセスにおける様々なステップの説明が、説明されたすべてのステップが必要である旨を示すものでないことと同様に、装置の実施形態は、説明されたプロセスのいくつか(すべてである必要はない)を実行するように動作可能なコンピュータ/計算装置を含む。
【0059】
同様に、プロセスにおける様々なステップの説明が、説明されたすべてのステップが必要である旨を示すものでないことと同様に、プログラムまたはデータ構造を記憶するコンピュータ可読媒体の実施形態は、実行された場合に、説明されたプロセスのいくつか(必ずしもすべてではない)をプロセッサに実行させることが可能なプログラムを記憶するコンピュータ可読媒体を含む。
【0060】
データベースが説明される場合、(i)説明されているものに対する代替のデータベース構造を容易に利用することができ、(ii)データベース以外の他のメモリ構造を容易に利用することができることを当業者は理解するであろう。本明細書に記載の任意の例示的なデータベースの任意の例示または説明は、記憶された情報表現の例示的な構成である。例えば、図面または他の箇所において例示されるテーブルにより示唆されたもの以外の任意の数の他の構成を利用し得る。同様に、データベースの例示された任意のエントリは、例示的な情報のみを表す。エントリの数および内容が、本明細書に記載のものと異なり得ることを当業者は理解するであろう。さらに、データベースをテーブルとして記載されていたにも拘わらず、本明細書に記載のデータ型を記憶して操作するために、他の形式(関係データベース、オブジェクトベースのモデル、および/または分散型データベースを含む)を使用することもできる。同様に、データベースのオブジェクト手法または挙動を使用して、本明細書に記載されるような様々なプロセスを実施することができる。さらに、データベースは、そのようなデータベース内のデータにアクセスする装置にローカルに、またはリモートに、既知の方法で記憶し得る。
【0061】
様々な実施形態を、1つまたは複数の装置と(例えば、通信ネットワークを介して)通信するコンピュータを含むネットワーク環境において動作するように構成することができる。コンピュータは、任意の有線媒体または無線媒体(例えば、インターネット、LAN、WAN、またはEthernet(登録商標)、トークンリング、電話回線、ケーブル回線、無線チャネル、光通信回線、商用オンラインサービスプロバイダ、掲示板システム、衛星通信リンク、これらの任意の組み合わせ)を介して直接的または間接的に装置と通信し得る。各装置自体は、Intel(登録商標)、Pentium(登録商標)、またはCentrino(登録商標)プロセッサに基づくもの等、コンピュータと通信するように構成されたコンピュータまたは他の計算装置を備え得る。任意の数および種類の装置がコンピュータと通信し得る。
【0062】
実施形態では、サーバコンピュータまたは中央権限は、必要でないか、または望ましくないことがある。例えば、本発明は、実施形態では、中央権限なしで1つまたは複数の装置で実施し得る。そのような実施形態では、サーバコンピュータにより実行されるものとして本明細書に説明される任意の機能またはサーバコンピュータに記憶されるものとして説明されるデータは、代替として、そのような1つまたは複数の装置により実行し、またはそのような装置に記憶し得る。
【0063】
プロセスが説明される場合、実施形態では、プロセスはいかなるユーザ介入もない状態で動作し得る。別の実施形態では、プロセスは、人間によるいくらかの介入を含む(例えば、ステップが人間の支援により、または人間の支援を受けて実行される)。
【0064】
VI.継続出願
本開示は、いくつかの実施形態および/または発明を実施可能にする説明を当業者に対して提供する。これらの実施形態および/または本発明のうちのいくつかは、本願の特許請求の範囲に記載されていないものもあるが、それにも関わらず、本願の優先権の利益を主張する1つまたは複数の継続出願の特許請求の範囲に記載し得る。
【0065】
本出願人は、本願の特許請求の範囲に記載していないが、開示して実施可能にしている対象に対する特許化を進めるために追加の出願を行うことを意図している。
【0066】
VII.米国特許法§112段落6
請求項において、用語「手段(means for)」または用語「ステップ(step for)」を含む請求項の限定は、米国特許法§112段落6がその限定に該当することを意味する。
【0067】
請求項において、用語「手段」または用語「ステップ」を含まない請求項の限定は、その機能を実行するための構造、材料、または動作の記載のない機能をその限定が記載しているか否かにかかわらず、米国特許法§112段落6がその限定に該当しないことを意味する。例えば、請求項では、請求項の1つまたは複数のステップまたは他の請求項の1つまたは複数のステップを参照して「ステップ」を単に使用することは、米国特許法§112段落6がそのステップに該当することを意味しない。
【0068】
米国特許法§112段落6に従って特定の機能を実行する手段またはステップに関して、本明細書に記載される対応する構造、材料、または動作、ならびにその均等物は、追加の機能ならびに指定された機能を実行し得る。
【0069】
コンピュータ、プロセッサ、計算装置、および同様の製品は、広範囲の機能を実行可能な構造である。そのような製品は、その製品内のメモリ装置またはその製品がアクセスするメモリ装置に記憶されたプログラム等の1つまたは複数のプログラムを実行することにより、指定された機能を実行するように動作可能であることができる。別途明記されない限り、そのようなプログラムは、本願において開示され得る任意の特定のアルゴリズム等の任意の特定のアルゴリズムに基づく必要はない。指定された機能を異なるアルゴリズムを介して実施し得、いくつかの異なるアルゴリズムうちの何れのアルゴリズムであるかが、指定された機能を実行するための設計上の選択事項に過ぎないことは、当業者には周知である。
【0070】
したがって、米国特許法§112段落6に従って指定された機能を実行する手段またはステップに関して、指定された機能に対応する構造は、指定された機能を実行するようプログラムされた任意の製品を含む。そのような構造は、そのような製品が(i)機能を実行する開示されたアルゴリズム、(ii)開示されたアルゴリズムと同様のアルゴリズム、または(iii)機能を実行するための異なるアルゴリズムの何れによってプログラムされているかに関わらず、機能を実行するプログラムされた製品を含む。
【0071】
方法である機能を実行する手段が記載される場合、この方法を実行する一構造は、その機能の実行に適切なハードウェアがプログラムかつ/または構成された計算装置(例えば、汎用コンピュータ)を含む。
【0072】
当業者に理解されるような他のアルゴリズムを介してその機能を実行するために適切なハードウェアがプログラムかつ/または構成された計算装置(例えば、汎用コンピュータ)も含む。
【0073】
VIII.ディスクレーマ
特定の実施形態に対する複数の参照は、追加の異なる実施形態のディスクレーマまたは否認を示すものではなく、同様に、特定の特徴をすべて含む実施形態の記載に対する参照は、その特定の特徴を含まない実施形態のディスクレーマまたは否認を示すものでない。本願における明らかなディスクレーマまたは否認には、語句「含まない」または語句「実行できない」の前置きがあるものとする。
【0074】
XI.参照による援用
本明細書において参照されるいかなる特許、特許出願、または他の文献も、参照により本開示の一部として本願に援用されるが、米国特許法§112段落1による記載要件および35U.S.C§112段落1による実施可能要件のみのためであり、決して本願の用語を限定、定義、またはその他の様式で解釈するために使用すべきではなく、本願は、仮にそのような参照による援用がない場合であっても、確実な意味を必ず提供するであろうし、むしろ、そのような用語の確実な意味を提供することが可能であろう。したがって、当業者は、参照において提供されるいずれの実施形態によっても決して限定される必要がない。
【0075】
参照によるいかなる援用も、それ自体としては、本特許出願において別途明記されない限り、援用した何れの特許、特許出願、または他の文献に含まれる何れの言及、意見、主張、または特徴付けに対する支持、承認、または黙認も示唆しない。
【0076】
X.出願経過
(請求項を含む)本願を解釈する上で、本願に関連すると認められる他の特許出願が存在しているか否かに関わらず、本願の優先権の主張を共有する他の特許出願が存在しているか否かに関わらず、当業者は、本願の出願経過を参照するが、他の特許または特許出願の出願経過を参照しないものとする。
【0077】
XI.実施形態例
図1は、取引所の参加者103に結合された例として取引所101の構成を示す。取引所101は、取引サービスを参加者103に提供するように構成された1つまたは複数のコンピュータシステムおよび/またはコンピュータ構成要素を含み得る。取引所103は、参加者103の取引意図に関する情報を受け入れ得る。取引所101は、1ペアの参加者の取引意図が一致する場合を特定し得る。取引所101は、一致する取引意図を満たす取引を履行し得る。
【0078】
取引所は、金融商品に対する注文をマッチングし、一致する注文を満たす取引の履行を促進するように構成された1つまたは複数のコンピュータシステムおよび/またはコンピュータ構成要素を含み得る。取引所は、LiquidNet代替取引システムまたはAqua Equities代替取引システム等の代替の取引システムを含み得る。代替取引システムの一例は、2008年10月24日に出願された米国特許出願第12/257,499号明細書に記載されており、この特許出願を参照により本明細書に援用する。取引所は、ニューヨーク証券取引所およびシカゴマーカンタイル取引所等の、初期オファーおよび/または二次取引を行い得る一次取引所を含み得る。
【0079】
金融商品は、負債または資産の所有権を示す商品および/またはその任意の派生商品を含み、普通株、株式、フィックストインカム商品、債券、社債、預金証書(certificate of interest or deposit)、ワラント、オプション、先物、フォワード、スワップ、または一般に任意の証券を含むものと理解されたい。
【0080】
参加者103は、取引所101を通して取引活動に参加する任意のエンティティを含み得る。例えば、参加者はアルゴリズム的な取引システムを含み得る。そのようなアルゴリズム的な取引システムは、情報を監視し、情報の変更に基づいて様々な取引を取引所101により履行するように要求し得る。参加者は、プロプライエタリトレーダーを含み得る。そのようなプロプライエタリトレーダーは、参加者自身の口座に関して取引所101による取引の履行を要求し得る。そのようなトレーダーの例としては、ヘッジファンドを挙げることができる。参加者のさらに別の例として、ブローカーを挙げることができる。ブローカーは、ブローカーのクライアント105の代理として取引所101による取引の履行を要求し得る。いくつかの実施態様では、クライアント105は、通信ネットワーク107を通してブローカーと通信し得る。そのような通信ネットワークは、例えば、従来の仲介サービス用の電話回線網、電子仲介サービス用のコンピュータネットワーク、および/または他の任意の通信ネットワーク(例えば、インターネット、私設ネットワーク等)を含み得る。
【0081】
参加者が、コンピュータおよび人の任意の組み合わせを含み得ることを認識されたい。例えば、Etrade等のインターネットブローカーは、人間である投資家により命令される参加者として動作し得、従来のブローカーは、取引所への直接接続を使用してインタフェースし得、アルゴリズム的なトレーダーは、データに基づいてアルゴリズムを実行し、人間からのわずかな入力を使用するか、もしくは人間からの入力なしでアルゴリズムの出力に基づいて注文を生成するコンピュータを含み得、投資銀行は、企業を解析し、その情報に基づいて注文を生成する(例えば、何かを介在させて、または取引所に直接)高度に熟練した投資専門家を含み得る等である。
【0082】
いくつかの実施形態では、参加者103は、通信ネットワーク109を通して取引所101と通信し得る。通信ネットワーク109は、例えば、インターネット、データバス、専用有線または無線通信リンク、および/または他の任意の通信ネットワークを含み得る。通信ネットワーク109は、単方向または双方向の通信を可能にし得る。通信ネットワーク109は、例えば、TCP/IPを使用して通信を可能にし得る。情報は、例えば、複数データパケットを含め、任意の形態で通信ネットワークを通して受け渡し得る。
【0083】
いくつかの実施形態では、1つまたは複数の参加者は、取引意図に関する情報を取引所に通信し得る。例えば、注文を電子メッセージの形態で参加者から通信ネットワーク109を通して取引所に送信し得る。注文は、金融商品の側を定義し得る。
【0084】
取引所を通して履行するために、複数の注文をリンクすることを含む一揃いの通信の例が、2000年7月28日出願の米国特許出願第09/627,705号明細書に記載されており、この特許出願を参照により本明細書に援用する。
【0085】
いくつかの実施形態では、取引所は、一致する注文が見つかった旨を参加者に通信し得る。例えば、取引所は、注文への一致が見つかったことを識別する電子メッセージを送信し得る。いくつかの実施態様では、一致が見つかった場合、注文を履行し、そのような指示を送信し得る。いくつかの実施態様では、一致が見つかった場合、取引を履行する前に、参加者に注文を確認するように求め、そのような履行を促進するために、指示を翻訳し得る。
【0086】
いくつかの実施形態では、参加者は、注文を条件付け得る1つまたは複数のイベントに関する情報を通信し得る。例えば、いくつかの実施態様では、電子メッセージは、イベントが発生した場合に注文を提出し得ることを示し得る。イベントは、注文が提出される金融商品に関するイベント、異なる金融商品に関するイベント、金融商品に関連しないイベント、および/または他の任意のイベントを含み得る。イベントは、条件の有効期間(existance)(例えば、午前7時~午後9時)、第2の金融商品の価値の変更、第2の金融商品の取引量の変更、企業による決算公表、業界を規制する規制の変更、企業の信用格付けの変更、および/または他の任意の発生、出来事等を含み得る。いくつかの実施態様では、イベントは、起こるか、または起こらない可能性がある発生に関連し得る。
【0087】
いくつかの実施形態では、参加者は、注文を調整させ得る1つまたは複数のイベントに関する情報を通信し得る。例えば、いくつかの実施態様では、電子メッセージは、イベントが発生した場合、注文キューから注文を削除すべきことを示し得、電子メッセージは、イベントが発生した場合、注文の数量を変更すべきことを示し得、電子メッセージは、イベントが発生した場合、パッシブ注文をアグレッシブ注文に変更すべきであることを示し得、電子メッセージは、イベントが発生した場合、注文の価格を変更すべきであることを示し得、電子メッセージは、イベントが発生した場合、注文をキューに戻すべきであることを示し得、かつ/または指示は、イベントが発生した場合、注文への他の任意の調整を行うべきであることを示し得る。
【0088】
いくつかの実施形態では、取引所は、イベントに関する情報を参加者に通信し得る。例えば、いくつかの実施態様では、取引所は、イベントが発生した、および/または発生しなかったことを示す電子メッセージを送信し得る。
【0089】
いくつかの実施形態では、通信ネットワーク109を通しての通信は、遅延を含み得る。遅延は、情報が情報源から情報の宛先に伝送されるためにかかる時間を含み得る。例えば、遅延は、ネットワークを通して情報をルーティングする時間、情報がワイヤを取って伝送される時間、情報を中間システムにより処理する時間等を含み得る。遅延は、イベント発生後、複数の参加者が競って取引する場合等、状況によっては、最適未満の取引結果を生じさせ得る。
【0090】
情報源111は、取引に関する判断に関連し得る情報の1つまたは複数のプロバイダを含み得る。情報源111は、取引所101の一部であってもよく、かつ/または別個のエンティティであってもよい。情報は、例えば、発生した取引についての情報、保留中の(例えば、注文キュー内にある)注文についての情報、取引量についての情報、価格変更についての情報、金融商品についての情報、インデックスについての情報、金融商品の種類についての情報、業界についての情報、政治的なイベントについての情報、規制変更についての情報、および/または他の任意のイベントについての情報を含み得る。そのような情報は、例えば、そのような情報に基づいて注文について判断するアルゴリズム的な取引システムならびに様々な情報に基づいて取引について判断する人間の投資家にとって有用であり得る。いくつかの実施態様では、取引所でのイベントに関する情報(例えば、取引スタック(trading stack)、取引の履行等)は、そのような情報を処理する介在者からよりも、通信遅延が少ないため短い遅延で取引所により報告し得るが、それでもやはり、例えば、通信ネットワークを通しての通信遅延に基づいて遅延し得る。
【0091】
図2Aは、いくつかの実施形態による例としての取引所201を示す。
【0092】
示されるように、取引所201は、通信ネットワーク205を通して参加者203に結合し得る。いくつかの例としての参加者および通信ネットワークを
図1に関連して上述した。
図2Aに示されるように、取引所201は、マッチングエンジン207、インタフェース209、第1の通信ネットワーク211、イベントエンジン213、および第2の通信ネットワーク215を含み得る。これらの構成要素が単なる例として与えられること、ならびに様々な実施形態が任意の数の追加の構成要素および/または代替の構成要素を含み得ることを認識されたい。例えば、いくつかの実施態様では、単一のバスを使用し得、インタフェースは別個の機械であり得、別個の規則処理エンジンを使用し得、イベントエンジンおよびマッチングエンジンを結合し得、追加の所望の機能を提供する他の任意の構成要素を含め得る等である。
【0093】
マッチングエンジン207は、1つまたは複数の機械構成要素を含み得る。いくつかの実施態様では、マッチングエンジンは1つまたは複数のプロセッサを含み得る。そのようなプロセッサは、注文をマッチングするように構成された汎用プロセッサを含み得る。そのような構成は、ハードウェアおよび/またはソフトウェア(例えば、プログラミングおよび/またはライティング)を介して行い得る。マッチングエンジンは、所望に応じて、特定の金融商品、特定のイベント、特定の注文種類、特定の金融商品種類、注文への特徴の調整の種類等に専用であり得る。いくつかの実施態様では、マッチングエンジンは、金融商品に対する注文の一致を特定し、一致する注文を満たす取引を履行する機械構成要素(例えば、プロセッサ)を含み得る。いくつかの実施態様では、マッチングエンジンは、複数の買い注文が単一の売り注文に一致する場合、キュー内の最高優先度を有する買い注文を、一致する買い注文として選択するように、マッチングに関する優先度付きの注文を保持する買い注文キューおよび売り注文キューを保持し得る。
【0094】
マッチングエンジン207は、金融商品の買い注文キュー217を含み得る。買い注文キューは、金融商品の買い注文の優先度付きの集まりを含み得る。注文には、所望の任意の方法で優先度を付与し得る。例えば、注文には、キュー内に配置された時間、取引所が注文を受信した時間、注文が作成された時間、マッチングエンジンが注文を受信した時間、注文の作成を始動させるイベントに関連付けられた時間、注文のサイズ、注文の価格等に基づいて優先度を付与し得る。一実施態様では、例えば、金融商品毎に最高価格の買い注文に最高優先度が付与されるように、キューに一次的に優先度を付与し得る。いくつかの実施態様では、同じ価格の買い注文に、キュー内に配置された時間に基づいて優先度を付与するように、キューに二次的に優先度を付与し得る。任意の優先度付与を様々な実施形態において使用し得ることを認識されたい。キューが、任意の方法で優先度付与された任意の集まりを含み得ること、およびワードキュー(word queue)が、本明細書において説明される属性への任意の追加の属性を必要とするものと読まれるべきでもなければ、そのような属性の除外が必要であるものと読まれるべきでもないことを認識されたい。
【0095】
マッチングエンジン207は、金融商品の売り注文キュー219を含み得る。売り注文キューは、金融商品の売り注文の優先度付きの集まりを含み得る。注文には、所望の任意の方法で優先度を付与し得る。例えば、注文には、キュー内に配置された時間、取引所が注文を受信した時間、注文が作成された時間、マッチングエンジンが注文を受信した時間、注文の作成を始動させるイベントに関連付けられた時間、注文のサイズ、注文の価格等に基づいて優先度を付与し得る。一実施態様では、例えば、金融商品毎に最低価格の売り注文に最高優先度が付与されるように、キューに一次的に優先度を付与し得る。いくつかの実施態様では、同じ価格の売り注文に、キュー内に配置された時間に基づいて優先度を付与するように、キューに二次的に優先度を付与し得る。任意の優先度付与を様々な実施形態において使用し得ることを認識されたい。
【0096】
いくつかの実施態様では、キューはメモリ(例えば、RAM、レジスタ、固体状態メモリ、ハードディスクドライブ等)を含み得る。いくつかの実施態様では、メモリ内の要素の順序は、キュー内の優先度の順序に対応し得る。いくつかの実施態様では、例えば、注文を含むメモリロケーションセットに、第1の優先度付きメモリロケーションから次のメモリロケーションにリンクし、以下同様にリンクすることにより、優先度を付与し得る。他の実施態様では、物理的なメモリロケーションが静的な優先度を有し得る。他の実施態様では、メモリに順序を付け、かつ/または注文に優先度を付与する他の任意の方法を使用し得る。
【0097】
いくつかの実施態様では、プレースホルダ注文をキュー内に配置し得る。例えば、そのような注文は、キューから(例えば、一時的に)削除された注文の時間に基づく優先度を保持するために使用し得る。そのようなプレースホルダ注文は、例えば、注文がどこにあるかを示すが、その注文を注文のマッチングに実際に使用すべきではないことをマッチングエンジンに対して示すリストへのノードを追加することにより、キュー内に配置し得る。他の実施態様では、前の注文に非アクティブのフラグを付し得、それにより、前の注文はマッチングの対象とならず、そのようなフラグを後に変更して、注文を復旧し得る。
【0098】
いくつかの実施態様では、複数の買い注文キューおよび/または複数の売り注文キューを使用し得る。例えば、いくつかの実施態様では、非常に大きな注文に対して、他の注文とは別個のキューを使用し得、リミット注文に対して、市場注文とは別個のキューを使用し得、複数のキューを使用して、注文の負荷をバランスさせ得る等である。
【0099】
いくつかの実施形態では、マッチングエンジンは、注文指示を受信し得る。そのような指示は、バス、別の通信ネットワークを通して、リモートシステム、イベントエンジン等から受信し得る。マッチングエンジンは(例えば、注文指示の受信に応答して)、その注文を適切なキュー内に適切な優先度レベルで追加し得る。例えば、注文が買い注文である場合、マッチングエンジンの優先度付与手順に従って、注文を買い注文キューに優先度レベルで追加し得る。いくつかの実施態様では、注文をキューに追加する命令を命令スタックに追加し得る。命令スタックは、マッチングエンジンが何等かの優先度順(例えば、FIFO)で処理するように求められた命令の集まりを含み得る。マッチングエンジンは、命令スタック内の優先度のより高い他の命令の処理を終えた場合、キューに注文を追加する命令を処理し得、これにより、マッチングエンジンに注文をキューに追加させ得る。
【0100】
いくつかの実施形態では、マッチングエンジンは、算術論理ユニットおよび/またはマッチングエンジンの処理を実行する他の処理要素を含み得る。例えば、そのような処理ユニットは、命令スタックからの命令を実行し得る。そのような処理要素は、2つの注文が一致するか否かに関して判断し得る。そのような処理要素は、2つの注文が一致する場合、動作し得る。マッチングエンジンは、所望の目的に対して汎用的および/または専用的であり得る任意の数のそのような処理要素を有し得る。例えば、いくつかの実施態様では、マッチングエンジンは、キューに注文を追加する処理要素と、キュー内に一致が存在するか否かを判断し、それに従って動作する処理要素とを含み得る。
【0101】
いくつかの実施形態では、マッチングエンジンは、買い注文キュー内の注文と売り注文キュー内の注文とが一致するか否かを判断し得る。例えば、処理要素は、最高優先度の買い注文が最高優先度の売り注文に一致するか否かを判断し得る。いくつかの実施態様では、複数の注文が単一の注文に一致し得る。いくつかの実施態様では、複数の注文が複数の注文に一致し得る。例えば、注文が同じ金融商品に対する取引の逆側であり、同じ価格および/または重なる価格範囲のものである場合、注文は別の注文に一致し得る。いくつかの実施態様では、注文は、同様の数量のものである場合に一致し得る(例えば、注文は、その注文の数量の少なくとも10%の数量の注文のみに一致し得る)。いくつかの実施態様では、複数のより少額の注文が単一のより多額の注文に一致し得る。いくつかの実施態様では、注文は部分的に一致し得る。部分的に一致する注文は、キューから削除してもよく、一致していない部分をキュー内に残してもよい等であり得る。
【0102】
いくつかの実施形態では、第1および第2の注文が一致するとの判断に応答して、マッチングエンジンは、2つの注文のそれぞれの少なくとも部分を満たす取引を履行し得る。履行は、例えば、履行を実行すべき旨の指示を送信することを含み得る。いくつかの実施態様では、履行は、例えば、データベースに記憶されている注文についての情報を、注文が互いに対して履行されたことを示すように変更することを含み得る。いくつかの実施態様では、履行は、クリアリング、金銭の転送、所有権の転送、バックエンド処理等を含み得る。いくつかの実施態様では、履行に関わる動作のうちのいくつかまたはすべては、リモートシステム、取引所、マッチングエンジン、人等により実行し得る。金融商品の所有権を転送させる任意の動作を、履行として様々な実施形態において使用し得ることを認識されたい。
【0103】
上述したように、取引所201はインタフェース209を含み得る。インタフェース209は、取引所と取引所外(例えば、通信ネットワーク205)との間での情報の通信に役立ち得る。インタフェースは、周知のように、ネットワークインタフェースを含み得る。インタフェースは、入力された通信を処理し、イベントエンジンおよびマッチングエンジン等の取引所の様々な構成要素への通信を向け得る。インタフェース209は、取引所イベント(例えば、取引履行)の指示を受け入れ、通信ネットワーク205を介して宛先に情報を向け得る。
【0104】
いくつかの実施形態では、インタフェース209は、取引所に関連するイベントについての情報を受信し得る。例えば、そのような情報は、注文キューについての情報、価格についての情報、変動率についての情報、履行情報、取引量についての情報等を含み得る。そのような情報は、取引所の他の要素(例えば、マッチングエンジン、イベントエンジン等)から、および/または取引所外(例えば、情報源)から受信することもできる。そのような情報は、取引所外に報告し得る。そうすることにより、取引所は、そのような情報に関する情報源として機能し得る。外部情報源ではなく取引所から、取引上で発生したイベントについての情報を得ることにより、情報に関する遅延を低減し得る。
【0105】
いくつかの実施形態では、インタフェース209は、1つまたは複数の機械構成要素を含み得る。そのような構成要素は、1つまたは複数のプロセッサ、メモリ等を含み得る。インタフェース209は単なる例として与えられていること、ならびに他の実施形態では、いかなるインタフェースおよび/または情報源構成要素も含まれなくてもよいことを認識されたい。
【0106】
通信ネットワーク211は、取引所201の構成要素間の通信に役立ち得る。通信ネットワーク211は、単一の機械のデータバスおよび/または他の任意の通信ネットワーク(例えば、LAN等)を含み得る。
【0107】
上述したように、取引所201はイベントエンジン213を含み得る。イベントエンジン213は、1つまたは複数のコンピュータ構成要素を含み得る。例えば、イベントエンジン213は、プロセッサ、メモリ、および/または他の任意の構成要素を含み得る。いくつかの実施形態では、イベントエンジンは、イベントの発生に基づいて、条件が満たされるときを判断する機械構成要素(例えば、プロセッサ)を含み得る。いくつかの実施形態では、条件は、その条件が満たされる前に発生し得る前提条件を含み得る。条件は、その条件が満たされる前に発生し得る1つまたは複数のイベントを含み得る。任意の数の動作が、満足される条件に依存し得る。
【0108】
いくつかの実施形態では、イベントエンジン213は、1つまたは複数のイベントを識別する情報およびイベントの発生のうちのすべてまたはいくつかを条件とし得る1つまたは複数の注文を識別する情報を受信し得る。イベントエンジン213は、注文およびイベントについての情報を記憶し得る(例えば、データベース、メモリ等に)。一実施形態例では、イベントエンジン213は、参加者203から送信された電子メッセージを、通信ネットワーク211を通して受信し得る。メッセージが任意の数の変形を受けてもよく、多くのパケットまたはサブメッセージに分けられてもよく、複数の別記の、もしくは接続されたメッセージとして受信されてもよい等であることを理解されたい。一例では、メッセージは、ESpeedの株の取引量が閾値レベルに達した場合、ESpeed 100株の買い注文を取引所に提出すべきであることを示し得る。実施形態は単純な市場注文に限定されず、様々な実施形態が任意の種類の注文を含み得ることを認識されたい。
【0109】
いくつかの実施形態では、イベントエンジン213は、1つまたは複数のイベントを識別する情報およびイベントの発生のうちのすべてまたはいくつかを条件とし得る1つまたは複数の動作を識別する情報を受信し得る。イベントエンジン213は、動作およびイベントについての情報を記憶し得る(例えば、データベース、メモリ等に)。一実施形態例では、イベントエンジン213は、参加者203から送信された電子メッセージを、通信ネットワーク211を通して受信し得る。メッセージが任意の数の変形を受けてもよく、多くのパケットまたはサブメッセージに分けられてもよく、複数の別記の、もしくは接続されたメッセージとして受信されてもよい等であることを理解されたい。一例では、メッセージは、ESpeedの株価が特定の閾値に達した場合、ESpeed 100株の買い注文を、ESpeed 50株の買い注文に変更すべきであることを示し得る。別の例では、メッセージは、特定の閾値を超える数のESpeed株の売り注文を受信した場合、ESpeed 100株の買い注文をキューから削除すべきであることを示し得る。メッセージは、ESpeed 100株の買い注文を、100株の売り注文の少なくとも閾値部分が満たされた場合、キューに戻すべきであることを示し得る。さらに別の例として、メッセージは、ESpeed株の買い注文数が閾値レベルに達した場合、ESpeed 100株のパッシブ買い注文を、ESpeed 100株のアグレッシブ買い注文に変更すべきであることを示し得る。これらの例が非限定的であり、特定の実施態様の例示として与えられることを認識されたい。
【0110】
いくつかの実施態様では、そのような情報は、イベントが発生したか否かの解析および/またはイベントが発生した場合、任意の注文を提出したらどうなるかの特定が容易なように、処理し、かつ/または記憶し得る。例えば、そのような情報が記憶されたデータベースは、イベントが発生した場合、そのイベントを条件としたすべての動作をデータベース内で容易に参照し得るように、イベントに基づいてキー化し得る。
【0111】
いくつかの実施形態では、イベントエンジン213は、1つまたは複数のイベントの発生に関する情報を受信し得る。そのようなイベントは、例えば、取引所で発生するイベント、取引所外で発生するイベント等を含み得る。例えば、イベントについての情報は、通信ネットワーク211を通して受信し得る。そのような情報は、外部情報源から、取引所のマッチングエンジンから、取引所の遠隔機械等から受信し得る。一例では、電子メッセージが、ESpeed株の取引量の価値等のイベントを示し得る。
【0112】
いくつかの実施形態では、イベントエンジンは、イベントについて受信した情報が、注文および/または動作が条件とする1つまたは複数の条件を満たすか否かを判断し得る。いくつかの実施態様では、イベントエンジンは、イベント情報の受信に応答して、定期的に、ランダムに、かつ/または他の任意の時間にそのような判断を行い得る。いくつかの実施態様では、そのような判断は、例えば、条件について記憶されている情報を参照することにより行い得る。注文および/または動作が複数のイベントを条件とし得るいくつかの実施態様では、フラグを設定して(例えば、データベース内で)、イベントが発生したことを示し得る。すべての条件にフラグが付された場合、条件が満たされ得る。ある条件がもはや満たされなくなる(例えば、取引量が低減する)ようなイベントが発生した場合、フラグを設定解除し得る。いくつかの注文が、満たされている条件のうちのいくつかおよび/またはすべてを条件とし得ることを認識されたい。例えば、注文は、いくつかの実施態様では、(条件A AND条件B)OR(条件C BUT NOT条件D)OR(条件E)等の複雑な条件セットを条件とし得る。
【0113】
いくつかの実施形態では、イベントエンジンは、注文および/または動作が条件とする条件が満たされたか否かを判断し得る。例えば、注文が、ESpeedの取引量が特定のレベルに達することのみを条件とし、そのようなレベルに達したことを示すイベント情報を受信した場合、イベントエンジンは、注文が条件とする条件が満たされたと判断し得る。例えば、いくつかの実施態様では、イベントエンジンは、データベースまたは他の条件の集まりを検索し、かつ/または問い合わせて、注文および/または動作に関連付けられた条件にフラグが設定されているか否かを判断し得る。そのような判断が、データベースへの定期的な問い合わせ、データベースにより引き起こされるメッセージ等を含むがこれらに限定されない所望の任意の方法で行われ得ることを認識されたい。より複雑な条件付けでは、イベントエンジンは、注文を引き起こす条件セットが満たされたか否かを判断し得る(例えば、上記例から、AかつBが真の場合、Cが真であるが、Dが真ではない場合、またはEが真である場合)。
【0114】
いくつかの実施形態では、条件を満たした1つまたは複数の注文および/または動作に対して、イベントエンジンは、1つまたは複数の各注文の提出および/または1つまたは複数の動作の実行を促進し得る。いくつかの実施形態では、条件が満たされた場合、任意の数の注文を提出し得、かつ/または任意の数の動作を行い得ることを認識されたい。
【0115】
ESpeed注文の例では、イベントエンジン213は、ESpeed銘柄100株の買い注文の提出を促進し得る。注文は、上述したように、注文に関して受信する他の任意の情報に従って提出し得る。いくつかの実施形態では、イベントエンジンによる注文提出の促進は、マッチングエンジン207に注文を注文キューに追加させることを含み得る。ESpeed銘柄の例では、イベントエンジンは、ESpeed銘柄100株の買い注文をマッチングエンジンの買い注文キューに追加させ得る。
【0116】
別の例として、ESpeed 100株の第1の買い注文は、株当たり100ドルの価格でキュー内に配置し得る。調整指示および条件を受信し得る。調整指示および条件は、第1の注文の指示と共に受信し得る。条件および調整は、条件が満たされた場合、注文に調整を行うべきであることを識別し得る。
【0117】
例えば、ESpeedの株の大きな売り注文を受信した場合(例えば、閾値を超える注文、1000株を超える売り注文)、要求される調整は、キューから100株の買い注文を削除することであり得る。いくつかの実施態様では、第2の条件および動作を受信し得る。第2の条件および動作は、売り注文のうちのいくつかが満たされる(例えば、閾値部分が満たされる等)場合、売り注文に関連付けられた合計数量が低減した場合(例えば、何等かの閾値量よりも下に)、かつ/または他の何等かのイベントが発生した場合、注文をキューに戻すことであり得る。取引所は、発生したこれらの条件を監視し、それに従って注文への調整を促進し得る。
【0118】
別の例として、売り注文の価格変更が発生した場合(例えば、大きな増減)、要求される調整は、注文に関連付けられた数量を増減することであり得る。例えば、価格が低減した場合、数量を増大し得、価格が増大した場合、数量を低減し得る。
【0119】
別の例として、売り注文の数量変更が発生した場合、第1の注文をパッシブ注文からアグレッシブ注文に変更し得る。例えば、利用可能な売り注文の数量が、閾値よりも下に低減した場合、パッシブ買い注文をアグレッシブ買い注文に変更し得る。いくつかの実施態様では、数量も同様に変更し得る。
【0120】
例としての動作および条件が非限定的であること、ならびに様々な実施形態において、上記動作および/または条件の任意の組み合わせ、任意に関連付けられた動作および/または条件、および/または他の任意の動作および/または条件を使用し得ることを認識されたい。例えば、オファーおよび/またはビッドされる価格の増大、オファーおよび/またはビッドされる価格の低減、要求および/または提供される数量の増大、要求および/または提供される数量の低減、ならびに/あるいは他の任意のイベントの任意の組み合わせが、パッシブからアグレッシブへの注文の状態の変更、注文種類の変更、注文価格の変更、注文数量の変更、注文のキャンセル、注文の提出、および/または他の任意の所望の動作等の動作の任意の組み合わせを引き起こし得る。
【0121】
いくつかの実施態様では、取引所の一部であるイベントエンジンによりイベント発生を処理することにより、イベントの発生を条件とした注文の提出および/または動作に関する遅延を低減し得る。例えば、そのような情報がイベントエンジン213により処理されるのではなく、仮に参加者203によりオフサイトで処理されるならば、イベント情報の受信に関連する遅延が増大し得(例えば、イベント情報が取引所で発生するイベントに関連する場合、参加者が取引所よりも情報源への遅い接続を有する場合等)、注文の提出および/または動作に関する遅延が増大し得る(例えば、通信ネットワーク205を通して送信することにより)等である。
【0122】
いくつかの実施態様では、注文についての情報(例えば、注文の提出、注文の調整、注文の削除等)をマッチングエンジンに送信することに関連する遅延は、注文についての情報をマッチングエンジンに送信する媒体となる通信ネットワークに基づき得る。様々な実施態様では、通信ネットワークの長さを低減して、そのような遅延を低減し、通信ネットワークの帯域幅を増大して、そのような遅延を低減し、通信ネットワーク上で注文情報に優先度を付与して、そのような遅延を低減し、通信ネットワークをそのような機能専用にして、そのような遅延を低減し得る等である。
【0123】
いくつかの実施形態では、通信ネットワーク215はデータバスを含み得る。データバスは、イベントエンジンからマッチングエンジンに通信できるようにし得る。データバスは、そのような通信を可能にする専用バスであり得る。そのような通信は、単方向または双方向であり得る。いくつかの実施態様では、そのようなバスは、同じ機械内のイベントエンジンとマッチングエンジンとを直接結合し得る。いくつかの実施態様では、データバスはイベント注入バスを含み得る。いくつかの実施態様では、バスを通して受信した注文は、マッチングエンジンへのインターラプトとして機能し得る。いくつかの実施態様では、バスを通してマッチングエンジンに送信された注文および/または動作の指示は、少なくとも1つの他の保留中の命令前に処理されるように、命令キューに追加し得る。例えば、注文および/または動作がマッチングエンジンにより次に処理されるように、注文および/または動作を処理する命令を命令スタックの最上部に追加し得る。いくつかの実施態様では、注文および/または動作を処理する命令は、他の保留中の注文および/または動作を処理する命令の前に追加し得る。いくつかの実施態様では、そのような命令は、他のソースから受信した注文および/または動作(例えば、イベントエンジンから受信したものではない注文および/または動作、参加者203から受信した注文および/または動作等)の前に処理されるように追加し得る。いくつかの実施態様では、イベントエンジンからの注文および/または動作用に、他の注文および/または動作の前に処理し得る別個の命令キューを保持し得る。
【0124】
いくつかの実施形態では、データバスは、情報を機械の構成要素の間/に/から送信するために使用される通信ネットワークを含み得る。いくつかの実施態様では、データバスは、複数の遠隔の機械の間の通信に関わる通信ネットワークよりもはるかに高速のデータ転送を提供し得る。いくつかの実施態様では、データバスは、データおよびイベントをある機械構成要素から別の機械構成要素に注入し得るように、直接メモリアクセスおよび直接レジスタアクセスを提供することもできる。
【0125】
いくつかの実施態様では、イベントエンジンから受信した注文および/または動作に、他のソースから受信した注文および/または動作よりも高い優先度を付与することにより、それらの注文および/または動作を、他の注文および/または動作よりも早く、かつ/または高い優先度で処理し得、かつ/または注文キューに影響を及ぼし得る。これは、マッチングエンジンが他の注文および/または動作を、イベントエンジンからの注文および/または動作よりも先に受信した場合であっても実行し得る。
【0126】
いくつかの実施態様では、イベントエンジンからの注文を優先することにより、イベントが発生してから、注文が注文キューに追加されるまでの遅延を低減し得る。そのような優先は、マッチングエンジンが、注文が注文キューにいつ追加されたかに基づいて注文に優先度を付与するように構成されている場合、注文が受ける優先度レベルを増大させ得る。
【0127】
いくつかの実施形態では、注文および/または動作にタイムスタンプを付与し得る。そのようなタイムスタンプ付与を使用して、マッチングエンジンによる注文キュー内の優先度付与を支援し得る。いくつかの実施態様では、例えば、イベントエンジンから送信された注文および/または動作に、イベントが発生した時間、イベント発生の指示がイベントエンジンにより処理された時間、調整中もしくは追加中のオリジナルの注文が当初提出された時間もしくは別の様式でタイムスタンプ付与された時間、および/または他の任意の所望の時間等のイベント発生に関連する時間を使用してタイムスタンプ付与し得る。マッチングエンジンは、タイムスタンプを使用して注文および/または動作を処理して、マッチングエンジンが注文および/または動作をいつ受信したかに関係なく、キュー内の位置に注文を配置し得る。したがって、いくつかのそのような実施態様では、注文および/または動作が、別のソースからの注文および/または動作の後にマッチングエンジンにより受信され処理される場合であっても、タイムスタンプに基づいて、注文キュー内で、イベントエンジンからの注文および/または動作に他の注文および/または動作よりも高い優先度を付与し得る。他の注文は、例えば、遅いタイムスタンプを有してもよく、かつ/またはタイムスタンプが付与されなくてもよい。他の注文にタイムスタンプが付与されない場合、それら他の注文は、まるで、キューに追加された時間または別のイベントが発生した時間に等しいタイムスタンプを有するかのように処理し得る。
【0128】
図2Aの個々の構成要素の説明が単なる例として与えられることを認識されたい。
図2Aの取引所が単なる例として与えられることも認識されたい。様々な実施形態において、構成要素の任意の組み合わせおよび任意の構成要素セットを使用し得る。そのような構成要素は、例えば、セキュリティ構成要素、クレジット構成要素、報告構成要素、クリアリング構成要素等を含み得る。
【0129】
図2Bは、通信ネットワーク215が、イベントエンジン213からキュー217および219への直接メモリアクセスを可能にするように構成された実施形態例を示す。そのような実施形態では、キュー内の注文情報は、情報の直接メモリアクセスにより変更し得る。例えば、注文情報(例えば、注文価格、注文数量、注文タイムスタンプ等)をメモリロケーションに記憶し得る。メモリロケーションにアクセスし(例えば、イベントエンジンまたは他の何等かの構成要素により)、情報を読み取り、かつ/または情報を変更して注文を調整し得る。いくつかの実施形態では、直接メモリアクセスを通して、特定の注文を求めてキューを検索して、メモリロケーションを特定し得る(例えば、リンクされたリストの一連のリンクを辿り、注文を見つける等により)。いくつかの実施態様では、イベントエンジンは、マッチングエンジンとの通信に基づいてメモリロケーションを追跡し得る(例えば、マッチングエンジンは、イベントエンジンが注文を後に調整するために情報を記録し得るように、注文が配置されているメモリロケーションの指示をイベントエンジンに送信し得る)。そのような通信は、すべての注文、いくつかの注文、イベントエンジンにより配置された注文等と実行し得る。いくつかの実施態様では、注文は、そのような直接メモリアクセスを使用して(例えば、リスト内にノードを追加することにより、リストからノードを削除等することにより)追加かつ/または削除し得る。
【0130】
図2Cは、別個の規則または動作処理要素221を有する取引所の別の実施形態を示す。規則または動作処理は、上述したイベントエンジンと同様に、注文への調整等の動作を処理し得る。例えば、規則または動作処理要素は、動作が条件とする条件を追跡し、条件が満たされた動作を促進し得る。規則または動作処理要素は、イベントについての情報をイベントエンジン、マッチングエンジン、および/または外部ソースから受信し得る。調整は、通信ネットワーク215および/または211を通して行い得る。
【0131】
図2A、
図2B、および
図2Cの取引所の例が、そのような例および/または他の所望の任意の構成または要素として付与され、単なる例、ならびに他の実施形態がからの要素の任意の組み合わせを含み得ることを認識されたい。
【0132】
図3は、イベントエンジン303、複数のマッチングエンジン305、および通信ネットワーク307を含む取引所301の実施形態例を示す。いくつかの実施態様では、イベントエンジン303は、
図2Aの上記対話と同様にして、各マッチングエンジン305と対話し得る。
【0133】
上述したように、マッチングエンジンは、1つまたは複数の金融商品、金融商品に対する1つまたは複数の注文種類、1つまたは複数の注文サイズ範囲、1つまたは複数の動作種類等に専用であり得る。したがって、単一の金融商品および/または複数の金融商品に関する取引により多くのサービスを提供するために、複数のマッチングエンジンを取引所に含め得る。いくつかの実施態様では、各マッチングエンジンに対して、取引所内のすべての注文のうちの特定のサブセットをタスクとし得る。他の実施態様では、マッチングエンジンは、同じ注文セットに対して並列に動作して、非常に流動性の高い商品等の注文処理の負荷を共有し得る。
【0134】
いくつかの実施形態では、1つまたは複数のイベントエンジン303を複数のマッチングエンジン305に結合し得る。ここでは1つのエンジンとして示されるイベントエンジン303は、
図2Aに関して上述したように、イベントの発生に基づいて注文および/または動作をマッチングエンジンに提供し得る。所望に応じて、複数のイベントエンジンを1つのマッチングエンジンとペアにしてもよく、または複数のイベントエンジンを複数のマッチングエンジンとペアにしてもよいことを認識されたい。例えば、イベントエンジンは、特定の種類のイベント、特定の種類の注文等を処理するように設計し得る。
【0135】
一実施態様例では、イベントエンジン303は、ESpeedの金融商品に対する注文を処理し得る。マッチングエンジンのそれぞれは、ESpeedの債権、ESpeedの優先株、ESpeedの普通株、およびESpeed株の先物のそれぞれ1つを処理し得る。イベントエンジンは、そのようなすべての商品に関連する注文を処理し得る。イベントエンジンは、そのような商品に関連するイベントおよび/または他の任意のイベントを処理し得る。
【0136】
通信ネットワーク307は、上述したようにデータバスを含み得る。データバスは、示されるように、複数のマッチングエンジンで共有されるバスであり得る。他の実施態様では、専用データバスが、各マッチングエンジンをイベントエンジンに結合し得る。
【0137】
図3は
図2Aと同様の構成を考察するが、他の実施形態を、
図2Bに関して考察した直接キューアクセス、
図2Cに関連して考察した別個の規則エンジン、ならびに/あるいは他の任意の所望の構成要素および/または構成を組み込むように構成し得ることを認識されたい。
【0138】
図4は、さらに別の取引所例を示す。
図4に示されるように、取引所401は、複数のシステム(例えば、ブレード、サーバ、機械、汎用コンピュータ等)で実施し得る。この取引所例は、4つの注文クラスタ403、イベントコントローラ405、イベントネットワーク407、インタフェース409、通信ネットワーク411、および追加の構成要素413を含む。
【0139】
注文クラスタ403は、上述したように、任意の方法で結合された任意の数のマッチングエンジンおよびイベントエンジンを含み得る。注文クラスタは、ブレード、サーバ等で実施し得る。注文クラスタは、特定の金融商品、イベント種類、動作種類、および/または注文種類に関連する注文、イベント、および/または動作を処理し得る。取引所は、任意の数および/または構成の注文クラスタを有し得る。
【0140】
注文クラスタは、イベント情報を受信し、かつ/または送信できるように(例えば、他のイベントエンジンから、他のイベントエンジンに、外部ソースから、外部ソースに、イベントコントローラ405に、イベントコントローラ405から等)、通信ネットワークに結合されたイベントエンジンを含み得る。そのような通信ネットワークは、
図4のイベントネットワーク407として示される。イベントネットワークは、イベント情報を異なるシステム間および/または構成要素間で通信できるようにする通信ネットワークを含み得る。そのようなネットワークは、イベント情報の通信に関連する遅延を低減するためにイベント通信専用であり得る。例えば、イベントは、第1の注文クラスタ内で発生した何かに関連し、第2の注文クラスタが、注文を生成すべきであるか否かを判断するために必要であり得る。イベント情報専用の高速通信ネットワークは、そのような情報のそのような通信に関連する遅延を低減し得る。しかし、他の実施形態では、そのような専用ネットワークが含まれなくてもよいこと、および様々な実施形態では、任意の構成の通信ネットワークを使用し得ることを認識されたい。
【0141】
いくつかの実施形態では、イベントコントローラ405は、イベントネットワークまたは他の任意の通信ネットワークをとして、イベントについての情報を受信し、その情報を1つまたは複数の注文クラスタに送信し得る。いくつかの実施形態では、イベントコントローラが含まれなくてもよい。いくつかの実施形態では、イベントエンジンはクラスタ内に含まれず、イベントコントローラがイベントエンジンとして動作し得る。いくつかの実施形態では、イベントエンジンは、中間イベント処理、変数設定、ネットワーク外へのイベント情報の通信等の所望の任意のイベント処理を提供し得る。
【0142】
いくつかの実施形態では、注文クラスタは、注文の受信、注文に対する条件の受信等の情報を通信するためのインタフェースを含み得る。そのようなインタフェースは、通信ネットワーク411に結合し得る。通信ネットワーク411は、取引所の構成要素間の汎用通信ネットワークとして動作し得る。他の実施形態では、任意の構成の通信ネットワークを使用し得る。
【0143】
インタフェース409は、参加者、情報源等の外部ソースと取引所との間をインタフェースし得る。情報は、取引所の構成要素が外部ソースと通信できるようにする通信ネットワーク411を通して送受信し得る。
【0144】
追加の構成要素413は、取引所の他の任意の所望の構成要素を含み得る。例えば、そのような構成要素は、クリアリングハウス、クレジット機能、セキュリティ機能、別個の規則処理機能等を含み得る。
【0145】
この取引所例が非限定的であること、および様々な実施形態では、任意の構成の取引所構成要素を任意の方法で組み合わせ得ることを認識されたい。いくつかの実施形態では、例えば、
図4に示されるような複数の構成を任意の方法で組み合わせて、さらに大きな取引所を生成し得る。そのような抽象化を任意の回数行って、望まれる任意の数の注文に対応できる任意のサイズの取引所を生成し得る。注文クラスタは
図2Aの構成と同様のものとして説明されるが、他の実施形態が、
図2Bにおいて説明された直接キューアクセス、
図2Cにおいて説明された別個の規則プロセッサ、ならびに/あるいは所望の任意の構成要素および/または構成を含む構成を含み得ることを認識されたい。
【0146】
図5は、いくつかの実施形態において実施し得る例としての方法500を示す。方法500は、1つまたは複数のプロセッサおよび/またはマッチングエンジン、イベントエンジン、インタフェース等の取引所の他の構成要素により実施し得る。
【0147】
ブロック501に示されるように、方法500は、条件指示を受信することを含み得る。この指示は、リモートコンピュータから受信し得る。条件は1つまたは複数のイベントを定義し得る。条件は、上述したように、イベントが発生した場合に満たされ得る。
【0148】
ブロック503に示されるように、方法500は、注文指示を受信することを含み得る。この指示は、リモートコンピュータから受信し得る。リモートコンピュータは、条件指示の送信元であるコンピュータと同じコンピュータであり得る。条件指示および注文指示は、一緒に受信してもよく(例えば、1つの電子メッセージ内で、同時に等)、1つの指示であってもよく、別個の指示であってもよい等である。注文は、金融商品に対する取引の側を定義する。
【0149】
ブロック505に示されるように、方法500は、イベントが発生したと判断することを含み得る。そのような判断は、プロセッサにより行い得る。例えば、そのような判断は、取引所のイベントエンジンにより行い得る。いくつかの実施態様では、例えば、そのような判断は、イベントが発生したことの指示が受信された(例えば、外部ソース、マッチングエンジン、取引所の別の構成要素等から)場合に行われてもよく、イベントのデータベースが検索された場合に行われてもよく、イベントが取引所で発生した場合(例えば、マッチングエンジンが取引を利用する場合等)に行われてもよい等である。いくつかの実施態様では、イベント発生指示は、取引所の構成要素および/または外部ソースが受信し、かつ送信し得る。
【0150】
ブロック507に示されるように、方法500は、注文指示をマッチングエンジンに送信することを含み得る。そのような指示は、通信バスを通して送信し得る。通信バスは、プロセッサ(例えば、イベントエンジン)を別のプロセッサ(例えば、マッチングエンジン)に結合し得る。そのような指示の送信は、ブロック505の判断に応答して行われ得る。
【0151】
ブロック509に示されるように、方法500は、注文を注文キューに追加することを含み得る。注文キューは、プロセッサ(例えば、マッチングエンジン)の一部であり得る。マッチングエンジンは、上述したように、注文の一致を特定し、一致する注文を満たす取引を履行するように構成し得る。
【0152】
方法500が単なる例であること、および他の方法が任意の動作セットを含み得ることを認識されたい。例えば、様々な実施形態では、タイムスタンプ付与、注文の履行、注文のクリアリング、命令スタックへの追加、注文の報告等を含め得る。
【0153】
図6は、いくつかの実施形態において実施し得る例としての方法600を示す。方法600は、1つまたは複数のプロセッサならびに/あるいはイベントエンジン等の取引所の他の構成要素により実行し得る。
【0154】
ブロック601に示されるように、方法600は、イベントが発生したことの指示を受信することを含み得る。そのような指示は、取引所外の情報源等のリモートコンピュータから受信し得る。そのような指示は、マッチングエンジン、イベントコントローラ等のプロセッサから受信し得る。そのような指示は、所望の任意の情報源から受信し得る。
【0155】
ブロック603に示されるように、方法600は、注文が条件とする条件が満たされたと判断することを含み得る。注文は、金融商品に対する取引の側を定義し得る。この特定は、取引所のプロセッサにより行い得る。この特定は、イベントエンジンにより行い得る。この特定は、注文および条件情報が記憶されたデータベース等の記憶されている情報を検索することにより行い得る。
【0156】
ブロック605に示されるように、方法600は、注文を注文キューに追加する指示を送信することを含み得る。注文キューは、取引所のマッチングエンジンにより保持し得る。送信は、データバスを通して実行し得る。データバスは、取引所のプロセッサ(例えば、方法を実行するイベントエンジンおよびキューを保持するマッチングエンジン)を結合し得る。送信は、ブロック603の特定に応答して実行し得る。
【0157】
方法600が単なる例であること、および他の方法が任意の動作セットを含み得ることを認識されたい。例えば、様々な実施形態において、タイムスタンプ付与、注文の受信、注文の記憶、条件の記憶、記憶されている情報の検索、注文の履行、注文のクリアリング、命令スタックへの追加、注文の報告、イベントの報告等を含め得る。
【0158】
図7は、いくつかの実施形態において実施し得る例としての方法700を示す。方法700は、マッチングエンジン、イベントエンジン、インタフェース等の1つまたは複数のプロセッサおよび/または取引所の他の構成要素により実行し得る。
【0159】
ブロック701に示されるように、方法700は、条件指示を受信することを含み得る。指示は、リモートコンピュータから受信し得る。条件は、1つまたは複数のイベントを定義し得る。条件は、上述したように、イベントが発生した場合に満たされ得る。
【0160】
ブロック703に示されるように、方法700は、動作指示を受信することを含み得る。指示は、リモートコンピュータから受信し得る。リモートコンピュータは、条件指示の送信元と同じコンピュータであり得る。条件指示および動作指示は、一緒に受信してもよく(例えば、1つの電子メッセージ内で、同時に等)、1つの指示であってもよく、別個の指示であってもよい等である。動作は、金融商品に対する注文の調整を定義する。調整は、キャンセル、キューからの一時的な削除(例えば、別のイベントが発生するまで)、数量の変更、価格の変更、キュー内への代替の注文の配置等を含み得る。動作は、条件が満たされた場合にとるべき他の所望の任意の動作を含み得る。
【0161】
ブロック705に示されるように、方法700は、イベントが発生したと判断することを含み得る。そのような特定は、プロセッサにより行い得る。例えば、そのような特定は、取引所のイベントエンジンにより行い得る。いくつかの実施態様では、例えば、そのような特定は、イベントが発生したことの指示を受信した場合に行ってもよく(例えば、外部ソース、マッチングエンジン、取引所の別の構成要素等から)、イベントのデータベースが検索される場合に行ってもよく、イベントが取引所で発生した場合(例えば、マッチングエンジンが取引を履行した場合等)に行ってもよい等である。いくつかの実施態様では、イベント発生指示は、取引所の構成要素および/または外部ソースから受信し、かつ/または取引所の構成要素および/または外部ソースに送信し得る。いくつかのイベント例としては、第2の金融商品の価値の変更、第2の金融商品の取引量の変更、企業による決算公表、取引の逆側の注文の提出(例えば、ある数量を有する価格ポイント等で特定の条件を満たす注文等)、業界を規制する規制の変更、および企業の信用格付けの変更等を挙げることができる。
【0162】
ブロック707に示されるように、方法700は、注文調整指示をマッチングエンジンに送信することを含み得る。そのような指示は、通信バスを通して送信し得る。通信バスは、プロセッサ(例えば、イベントエンジン、規則プロセッサ等)を別のプロセッサ(例えば、マッチングエンジン)に結合し得る。そのような指示の送信は、ブロック705の特定に応答して実行し得る。
【0163】
ブロック709に示されるように、方法700は注文を調整することを含み得る。調整は、キャンセル、キューからの一時的な削除(例えば、別のイベントが発生するまで)、数量の変更、価格の変更、キュー内への代替の注文の配置等を含み得る。注文の調整は、マッチングエンジンのキュー内で保留中の注文の調整、マッチングエンジンのキューへの注文の追加、および/またはマッチングエンジンのキュー内のキューの削除を含み得る。マッチングエンジンは、上述したように、注文のマッチを特定し、取引を履行して、一致する注文を満たすように構成し得る。
【0164】
いくつかの実施形態では、注文の調整は、マッチングエンジンが、命令スタック内で保留中の少なくとも1つの命令を実行する前に、注文を調整することを含み得る。例えば、注文を調整する命令は、少なくとも1つの命令の前に(例えば、割り込み、直接メモリアクセス等を使用して)マッチングエンジンの命令スタックに追加し得る。少なくとも1つの命令は、買い注文キューおよび売り注文キューのうちの一方への別の注文の追加および削除のうちの少なくとも一方を含み得る。
【0165】
いくつかの実施形態では、注文の調整は、情報をマッチングエンジンのメモリロケーションに送信することを含み得る。情報は、命令、注文、注文への調整等を含み得る。いくつかの実施態様では、メモリロケーションは、キュー内の注文に関連付けられたメモリロケーションを含み得る。そのような実施態様では、注文の調整は、メモリロケーションに記憶されている注文についての情報を変更することを含み得る(例えば、直接メモリアクセスを使用して)。
【0166】
いくつかの実施形態では、注文の調整は、マッチングエンジンのキューから注文を削除することを含み得る。キューから注文を削除することは、注文に対する取引の履行を停止させ得る。注文の調整は、代替の注文をマッチングエンジンのキューに追加することを含み得る。代替の注文は、調整されたパラメータ(例えば、サイズ、価格、種類等)を有する注文を含み得る。一実施態様では、元々の注文がパッシブ注文(例えば、一致が見つかるのを待っている注文)であり、代替の注文はアグレッシブ注文(例えば、とるべき注文/注文のリフト(order to take/lift an order))であり得る。いくつかの実施態様では、代替の注文を、元々の注文と同じ時間に基づく優先度でキューに追加し得る。例えば、イベントエンジンおよび/またはマッチングエンジンは、元々の注文のタイムスタンプを代替の注文に配置し得る。例えば、第1の注文を削除すべきであり、第2の注文を第1の注文と同じタイムスタンプでキューに追加すべきであることを示す命令をマッチングエンジンに送信し得る。いくつかの実施態様では、注文は、代替を追加せずに削除し得る(例えば、即座に、別のイベントが発生した後まで、常に等)。例えば、一実施態様では、取引の注文と逆側の新規注文を受信し、新規注文が、閾値を超える数量のものである場合、注文をキューから削除し得る。逆側の注文に関連付けられた数量が別の閾値量を下回るまで低減した場合(例えば、新規注文が満たされた場合、新規注文がキャンセルされた場合等)、注文をキューに戻し得る。
【0167】
一例では、注文は、イベントの発生に関連付けられた時間において、キュー内で保留中ではない場合がある。例えば、イベント発生時、イベント発生処理の実行時等において、注文は、マッチングエンジンのキュー内で保留中ではない場合がある。注文の調整は、キューへの注文の追加を含み得る。注文は、前にキュー内で保留中であったかもしれない(例えば、前の調整が前のイベントを条件としたため、削除される前)。キューへの注文の追加は、キュー内で注文が前に保留中されていた場合、注文に関連付けられた時間に基づく優先度で注文をキューに追加することを含み得る。例えば、そのような動作は、注文の金融商品に対する取引の逆側の注文に関連付けられた数量の低減(例えば、数量が前に閾値よりも上に達し、キューからの注文の削除を始動させた後)を条件とし得る。いくつかの実施態様では、タイムスタンプと共に時間に基づく優先度を保持し得る(例えば、注文が前に有したタイムスタンプと共に注文をキューに追加することにより)。そのようなタイムスタンプは、注文が削除される場合(例えば、そのような情報をイベント、注文、および/または動作に関連付けられたデータベースに記憶することにより)、イベントエンジンにより監視し保持し得る。いくつかの実施態様では、時間に基づく優先度の保持は、注文がキュー内の、仮に削除されなかった場合に配置されていた場所に位置決めされるように、キューの直接メモリアクセスを通してキューに注文を追加することにより促進し得る。いくつかの実施態様では、プロセッサ(例えば、イベントエンジン、規則プロセッサ等)は、注文が仮にキャンセルされなかった場合に注文がキュー内のどこにあり得るかを追跡してもよく、注文を後にプレースホルダの位置に配置し得るように、プレースホルダ注文をキュー内に配置してもよい等である。
【0168】
方法700が単なる例であること、および他の方法が任意の動作セットを含み得ることを認識されたい。例えば、様々な実施形態において、タイムスタンプ付与、注文の履行、注文のクリアリング、命令スタックへの追加、注文の報告等を含め得る。
【0169】
図8は、いくつかの実施形態において実施し得る例としての方法800を示す。方法800は、1つまたは複数のプロセッサおよび/またはイベントエンジン等の取引所の他の構成要素により実施し得る。
【0170】
ブロック801に示されるように、方法800は、イベントが発生したことの指示を受信することを含み得る。そのような指示は、取引所外の情報源等のリモートコンピュータから受信し得る。そのような指示は、マッチングエンジン、イベントコントローラ等のプロセッサから受信し得る。そのような指示は、所望の任意の情報源から受信し得る。
【0171】
ブロック803に示されるように、方法800は、動作が条件とする条件が満たされたと判断することを含み得る。動作は、金融商品に対する取引の側を定義する注文への調整を含み得る。特定は、取引所のプロセッサにより行い得る。特定は、イベントエンジンにより行い得る。特定は、注文、動作、および/または条件情報が記憶されたデータベース等の記憶されている情報を検索することにより行い得る。
【0172】
ブロック805に示されるように、方法800は、注文調整指示をマッチングエンジンに送信することを含み得る。送信は、データバスを通して実行し得る。データバスは、取引所のプロセッサを結合し得る(例えば、方法を実行するイベントエンジンおよびキューを保持するマッチングエンジン)。送信は、ブロック803の特定に応答して実行し得る。
【0173】
方法800が単なる例であること、および他の方法が任意の動作セットを含み得ることを認識されたい。例えば、様々な実施形態では、タイムスタンプ付与、注文の受信、注文の記憶、条件の記憶、記憶されている情報の検索、注文の履行、注文のクリアリング、命令スタックへの追加、注文の報告、イベントの報告等を含め得る。
【0174】
図9は、いくつかの実施形態において実施し得る例としての方法900を示す。方法900は、1つまたは複数のプロセッサならびに/あるいはマッチングエンジン、イベントエンジン、インタフェース等の取引所の他の構成要素により実行し得る。方法900は、注文をキュー内に配置し、後にキューから削除し、さらに後にキューを復元する方法を含み得る。
【0175】
901に示されるように、方法900は、注文指示を受信することを含み得る。903に示されるように、方法900は、動作指示および条件指示を受信することを含み得る。各動作は、動作が条件とし得る任意の数の条件を含み得る。動作は、別の動作が行われるまで、実行に利用不可能であり得る。例えば、注文をキューに戻す動作は、注文がまずキューから削除されるまでは利用不可能であり得る。
【0176】
905に示されるように、方法900は、注文をキュー内に配置することを含み得る。上述したように、キューはマッチングエンジンにより保持し得る。
【0177】
907に示されるように、第1の動作に対する条件が満たされたと判断し得る。条件は、例えば、任意の数のイベントの発生を含み得る。一例では、条件は、価格変更の発生であり得る。別の例では、条件は、取引の注文とは逆側の注文が特定の数量の金融商品に達したことであり得る。
【0178】
909に示されるように、特定に応答して、動作をとり得る。例えば、示される動作は、キューからの注文の削除である。他の例では、他の所望の任意の動作を取り得ることを認識されたい。注文は、マッチングエンジンにより保持されるキューから注文を出すことにより、マッチングエンジンのキュー内の注文に非アクティブのフラグを付すことにより、マッチングエンジンのキュー内で注文をプレースホルダ注文で置き換えることにより、かつ/または他の任意の所望の動作を実行することにより削除し得る。
【0179】
ブロック911に示されるように、第2の動作に対する条件が満たされたと判断し得る。条件は、例えば、任意の数のイベントの発生を含み得る。条件は、第1の動作がとられたことを含み得る。一例では、条件は、価格変更の発生(例えば、価格が前の範囲に戻ること)であり得る。別の例では、条件は、取引の注文とは逆側の注文が特定の数量の金融商品に達したこと(例えば、第1の動作がとられたときに近い範囲に戻ること等)であり得る。
【0180】
913に示されるように、特定に応答して、第2の動作をとり得る。例えば、示される動作は、キューへの注文の追加である。他の例では、他の所望の任意の動作をとり得ることを認識されたい。注文は、マッチングエンジンにより保持されるキュー内に注文を配置することにより、マッチングエンジンのキュー内の注文にアクティブのフラグを付すことにより、プレースホルダを注文で置き換えることにより、かつ/または他の所望の任意の動作を実行することにより、追加し得る。注文は、前にキュー内にあったときと同じ時間に基づく優先度で配置し得る。
【0181】
プロセス例およびシステム例は非限定的な例示としてのみ与えられることを認識されたい。他の実施形態は、異なる動作、ステップ、構成要素、要素、構成、順序等を含み得る。
【0182】
XII.さらなる実施形態
以下は、請求項としてではなく、実施形態例として解釈されたい。
【0183】
A.マッチングエンジンであって、
注文指示を受信することであって、各注文は金融商品の取引の各側を定義する、受信すること、
各注文を金融商品の買い注文キューおよび売り注文キューのそれぞれ1つに追加すること、
少なくとも買い注文キュー内の第1の注文および売り注文キュー内の第2の注文が整合すると判断すること、および
第1の注文および第2の注文を満たす取引を履行すること
を実行するように構成される、マッチングエンジンと、
イベントエンジンであって、
イベントの発生指示を受信すること、
注文への調整が、上記発生を条件とすると判断することであって、注文は金融商品の取引の側を定義する、判断すること、および
上記判断に応答して、データバスを通して注文調整指示をマッチングエンジンに送信すること
を実行するように構成される、イベントエンジンと、
イベントエンジンからマッチングエンジンに注文追加指示を通信可能にするように構成されるデータバスと
を備える、装置。
【0184】
A.1.データバスおよびマッチングエンジンは、マッチングエンジンが注文追加指示を受信した場合、マッチングエンジンが、命令スタック内に保留中の少なくとも1つの命令を実行する前に注文を追加するように構成される、請求項Aに記載の装置。
【0185】
A.1.1.少なくとも1つの命令は注文調整命令を含む、請求項A.1に記載の装置。
【0186】
A.1.1.1.注文調整命令は、注文の数量を変更する命令および注文の価格を変更する命令のうちの少なくとも一方を含む、請求項A.1.1に記載の装置。
【0187】
A.1.1.2.注文調整命令は、注文削除命令を含む、請求項A.1.1に記載の装置。
【0188】
A.1.1.2.1.注文調整命令は、代替の注文を追加する命令を含む、請求項A.1.1.2に記載の装置。
【0189】
A.1.1.2.1.1.注文はパッシブ注文を含み、代替の注文はアグレッシブ注文を含む、請求項A.1.1.2.1に記載の装置。
【0190】
A.1.1.2.1.2.調整命令は、上記注文と同じ時間に基づく優先度を有する代替の注文を追加する命令を含む、請求項A.1.1.2.1に記載の装置。
【0191】
A.1.1.2.2.イベントは、閾値を超える数量が関連付けられた、金融商品の取引の逆側の注文の提出を含む、請求項A.1.1.2に記載の装置。
【0192】
A.1.2.データバスは、マッチングエンジンのメモリロケーションに情報を送信するように構成され、マッチングエンジンは、メモリロケーションからデータを読み取るように構成される、請求項A.1に記載の装置。
【0193】
A.1.3.少なくとも1つの命令は、売り注文キューおよび買い注文キューのうちの少なくとも1つに別の注文を追加する指示を処理する命令を含み、別の注文を追加する指示は、データバスからマッチングエンジンにより受信されなかった指示である、請求項A.1に記載の装置。
【0194】
A.2.イベントは、
第2の金融商品の価値の変更、
第2の金融商品の取引量の変更、
企業による決算公表、
取引の逆側の注文の提出、
業界を規制する規制の変更、および
企業の信用格付けの変更
のうちの少なくとも1つを含む、請求項Aに記載の装置。
【0195】
A.3.イベントエンジンは、遠隔の情報源から発生指示を受信するように構成される、請求項Aに記載の装置。
【0196】
A.4.イベントエンジンは、マッチングエンジンから発生指示を受信するように構成される、請求項Aに記載の装置。
【0197】
A.5.イベントに関連付けられた時間において、注文はマッチングエンジンのキュー内で保留中ではなく、注文調整指示は、注文をマッチングエンジンのキューに追加する指示を含む、請求項Aに記載の装置。
【0198】
A.5.1.注文追加指示は、注文が前にキュー内にあった場合、注文関連付けられた時間に基づく優先度で注文を追加する指示を含む、請求項A.5に記載の装置。
【0199】
A.5.2.イベントは、金融商品に対する取引の逆側の注文に関連付けられた数量の低減を含む、請求項A.5に記載の装置。
【0200】
B.取引を実施する方法であって、
リモートコンピュータから条件の指示を受信することであって、条件がイベントを定義し、イベントが発生した場合、条件が満たされる、受信すること、
リモートコンピュータから第1の動作指示を受信することであって、動作は金融商品に対する注文への調整を定義する、受信すること、
取引所のプロセッサにより、イベントが発生したと判断すること、
上記判断に応答して、プロセッサおよびマッチングエンジンを結合する通信バスを通して、注文調整指示を取引所のマッチングエンジンに送信することであって、マッチングエンジンは、注文の一致を特定し、一致する注文を満たす取引を履行するように構成される、送信すること、および
注文を調整すること
を含む、方法。
【0201】
B.1.条件指示および動作指示は、単一の通信として受信される、請求項Bに記載の方法。
【0202】
B.2.注文を調整することは、命令スタック内で保留中の少なくとも1つの命令を実行する前に、マッチングエンジンにより注文を調整することを含む、請求項Bに記載の方法。
【0203】
B.2.1.少なくとも1つの命令は、買い注文キューおよび売り注文キューの1つに別の注文を追加する命令および削除する命令のうちの少なくとも一方を含む、請求項B.2に記載の方法。
【0204】
B.3.注文を調整することは、プロセッサがマッチングエンジンのメモリロケーションに情報を送信することを含む、請求項Bに記載の方法。
【0205】
B.3.1.メモリロケーションは、キュー内の注文に関連付けられたメモリロケーションを含み、注文を調整することは、プロセッサが、メモリロケーションに記憶された注文についての情報を変更することを含む、請求項B.3に記載の方法。
【0206】
B.4.イベントは、
第2の金融商品の価値の変更、
第2の金融商品の取引量の変更、
企業による決算公表、
取引の逆側の注文の提出、
業界を規制する規制の変更、および
企業の信用格付けの変更
のうちの少なくとも1つを含む、請求項Bに記載の方法。
【0207】
B.5.遠隔の情報源から発生指示を受信することをさらに含む、請求項Bに記載の方法。
【0208】
B.6.マッチングエンジンから発生指示を受信することをさらに含む、請求項Bに記載の方法。
【0209】
B.7.注文を調整することは、注文の数量を変更することおよび注文の価格を変更することのうちの少なくとも一方を含む、請求項Bに記載の方法。
【0210】
B.8.注文を調整することは、マッチングエンジンのキューから注文を削除することを含む、請求項Bに記載の方法。
【0211】
B.8.1.注文を調整することは、代替の注文をマッチングエンジンのキューに追加することを含む、請求項B.8に記載の方法。
【0212】
B.8.1.1.注文はパッシブ注文を含み、代替の注文はアグレッシブ注文を含む、請求項B.8.1に記載の方法。
【0213】
B.8.1.2.代替の注文をキューに追加することは、注文と同じ時間に基づく優先度を有する代替の注文を追加することを含む、請求項B.1に記載の方法。
【0214】
B.8.2.イベントは、閾値を超える数量が関連付けられた、取引の注文とは逆側の注文の提出を含む、請求項B.8に記載の方法。
【0215】
B.9.イベントに関連付けられた時間において、注文はマッチングエンジンのキュー内で保留中ではなく、注文調整指示は、マッチングエンジンのキューに注文を追加する指示を含む、請求項Bに記載の方法。
【0216】
B.9.1.注文追加指示は、注文が前にキューにあった場合、注文に関連付けられた時間に基づく優先度で注文を追加する指示を含む、請求項B.9に記載の方法。
【0217】
B.9.2.イベントは、金融商品に対する取引の逆側の注文に関連付けられた数量の低減を含む、請求項B.9に記載の方法。
【0218】
C.リモートコンピュータから、イベントが発生したという指示を受信すること、
プロセッサが、動作が条件付けられた条件が満たされると判断することであって、動作は、金融商品に対する取引の側を定義する注文への調整を含む、判断すること、
上記判断に応答して、プロセッサおよびマッチングエンジンを結合するデータバスを通して注文調整指示をマッチングエンジンに送信すること
を含む、方法。
【0219】
C.1.調整指示を送信することは、注文価格および注文の数量のうちの少なくとも一方を調整する指示を送信することを含む、請求項Cに記載の方法。
【0220】
C.2.調整指示を送信することは、マッチングエンジンのキューから注文を削除する指示を送信することを含む、請求項Cに記載の方法。
【0221】
C.2.1.調整指示を送信することは、マッチングエンジンのキューに代替の注文を追加する指示を送信することを含む、請求項C.2に記載の方法。
【0222】
C.2.1.1.注文はパッシブ注文を含み、代替の注文はアグレッシブ注文を含む、請求項C.2.1に記載の方法。
【0223】
C.2.1.2.調整指示は、注文と同じ時間に基づく優先度を有する代替の注文をキューに追加することを含む、請求項C.2.1に記載の方法。
【0224】
C.2.2.イベントは、閾値を超える数量が関連付けられた、取引の注文とは逆側の注文の提出を含む、請求項C.2に記載の方法。
【0225】
C.3.調整指示を送信することは、マッチングエンジンのメモリロケーションに情報を送信することを含む、請求項Cに記載の方法。
【0226】
C.3.1.メモリロケーションは、注文がマッチングエンジンのキュー内に記憶されたメモリロケーションを含む、請求項C.3に記載の方法。
【0227】
C.3.2.調整指示を送信することは、マッチングエンジンの命令スタックに命令を送信することを含む、請求項Cに記載の方法。
【0228】
C.4.イベントは、
第2の金融商品の価値の変更、
第2の金融商品の取引量の変更、
企業による決算公表、
取引の逆側の注文の提出、
業界を規制する規制の変更、および
企業の信用格付けの変更
のうちの少なくとも1つを含む、請求項Cに記載の方法。
【0229】
C.5.遠隔の情報源からイベント発生指示を受信することを含む、請求項Cに記載の方法。
【0230】
C.6.マッチングエンジンからイベント発生指示を受信することを含む、請求項Cに記載の方法。
【0231】
C.7.イベントに関連付けられた時間において、注文はマッチングエンジンのキュー内で保留中ではなく、調整指示は、マッチングエンジンのキューに注文を追加する指示を含む、請求項Cに記載の方法。
【0232】
C.7.1.注文追加指示は、注文が前にキューにあった場合、注文に関連付けられた時間に基づく優先度で注文を追加する指示を含む、請求項C.7に記載の方法。
【0233】
C.7.2.イベントは、金融商品に対する取引の逆側の注文に関連付けられた数量の低減を含む、請求項C.7に記載の方法。
【0234】
(付記1)
マッチングエンジンであって、
金融商品に対する取引の各側をそれぞれ定義する注文の指示を受信すること、
各注文を前記金融商品の買い注文キューおよび売り注文キューのそれぞれ1つに追加すること、
少なくとも前記買い注文キュー内の第1の注文および前記売り注文キュー内の第2の注文が一致すると判断すること、ならびに
前記第1の注文および前記第2の注文を満たす取引を履行すること
を実行するように構成される、マッチングエンジンと、
イベントエンジンであって、
イベント発生指示を受信すること、
注文への調整が、前記発生を条件とすると判断することであって、前記注文は前記金融商品に対する取引の側を定義するものであり、および
前記判断に応答して、データバスを通して前記マッチングエンジンに前記注文を調整する指示を送信すること
を実行するように構成される、イベントエンジンと、
前記注文を追加する指示を前記イベントエンジンから前記マッチングエンジンに通信可能にするように構成された前記データバスと
を備える、装置。
(付記2)
前記データバスおよび前記マッチングエンジンは、前記マッチングエンジンが、前記注文を追加する指示を受信した場合、命令スタック内で保留中の少なくとも1つの命令を実行する前に前記注文を追加するように構成される、付記1に記載の装置。
(付記3)
前記少なくとも1つの命令は、前記注文を調整する命令を含む、付記2に記載の装置。
(付記4)
前記注文調整命令は、前記注文の数量を変更する命令および前記注文の価格を変更する命令のうちの少なくとも一方を含む、付記3に記載の装置。
(付記5)
前記注文調整命令は、前記注文を削除する命令を含む、付記3に記載の装置。
(付記6)
前記注文調整命令は、代替の注文を追加する命令を含む、付記5に記載の装置。
(付記7)
前記注文はパッシブ注文を含み、前記代替の注文はアグレッシブ注文を含む、付記6に記載の装置。
(付記8)
前記調整命令は、前記注文と同じ時間に基づく優先度を有する前記代替の注文を追加する命令を含む、付記6に記載の装置。
(付記9)
前記イベントは、閾値を超える数量が関連付けられた、前記金融商品に対する取引の逆側の注文の提出を含む、付記5に記載の装置。
(付記10)
前記データバスは、前記マッチングエンジンのメモリロケーションに情報を送信するように構成され、前記マッチングエンジンは、前記メモリロケーションからデータを読み取るように構成される、付記2に記載の装置。
(付記11)
少なくとも1つの命令は、前記売り注文キューおよび前記買い注文キューのうちの少なくとも1つに別の注文を追加する指示を処理する命令を含み、前記別の注文を追加する指示は、前記データバスから前記マッチングエンジンにより受信されなかった指示である、付記2に記載の装置。
(付記12)
前記イベントは、
第2の金融商品の価値の変更、
第2の金融商品の取引量の変更、
企業による決算公表、
取引の逆側の注文の提出、
業界を規制する規制の変更、および
企業の信用格付けの変更
のうちの少なくとも1つを含む、付記1に記載の装置。
(付記13)
前記イベントに関連付けられた時間において、前記注文は前記マッチングエンジンのキュー内で保留中ではなく、前記注文調整指示は、前記マッチングエンジンの前記キューに前記注文を追加する指示を含む、付記1に記載の装置。
(付記14)
前記注文追加指示は、前記注文が前に前記キューにあった場合、前記注文に関連付けられた時間に基づく優先度で前記注文を追加する指示を含む、付記13に記載の装置。
(付記15)
前記イベントは、前記金融商品に対する取引の逆側の注文に関連付けられた数量の低減を含む、付記13に記載の装置。
(付記16)
取引所を操作する方法であって、
リモートコンピュータから条件の指示を受信することであって、前記条件がイベントを定義するものであり、前記イベントが発生した場合、前記条件が満たされるものであり、
前記リモートコンピュータから第1の動作指示を受信することであって、前記動作は金融商品に対する注文への調整を定義するものであり、
前記取引所のプロセッサにより、前記イベントが発生したと判断すること、
前記判断に応答して、前記プロセッサおよびマッチングエンジンを結合する通信バスを通して、前記注文を調整する指示を前記取引所の前記マッチングエンジンに送信することであって、前記マッチングエンジンは、注文の一致を特定し、前記一致する注文を満たす取引を履行するように構成されるものであり、および
前記注文を調整すること
を含む、方法。
(付記17)
前記条件指示および前記動作指示は、単一の通信として受信される、付記16に記載の方法。
(付記18)
前記注文を調整することは、命令スタック内で保留中の少なくとも1つの命令を実行する前に、前記マッチングエンジンにより前記注文を調整することを含む、
付記16に記載の方法。
(付記19)
前記少なくとも1つの命令は、買い注文キューおよび売り注文キューの1つに別の注文を追加する命令および削除する命令のうちの少なくとも一方を含む、付記18に記載の方法。
(付記20)
前記注文を調整することは、前記プロセッサが前記マッチングエンジンのメモリロケーションに情報を送信することを含む、付記16に記載の方法。
(付記21)
前記メモリロケーションは、キュー内の前記注文に関連付けられた前記メモリロケーションを含み、前記注文を調整することは、前記プロセッサが、前記メモリロケーションに記憶された前記注文についての情報を変更することを含む、付記20に記載の方法。
(付記22)
前記イベントは、
第2の金融商品の価値の変更、
第2の金融商品の取引量の変更、
企業による決算公表、
取引の逆側の注文の提出、
業界を規制する規制の変更、および
企業の信用格付けの変更
のうちの少なくとも1つを含む、付記16に記載の方法。
(付記23)
前記注文を調整することは、前記注文の数量を変更することおよび前記注文の価格を変更することのうちの少なくとも一方を含む、付記16に記載の方法。
(付記24)
前記注文を調整することは、前記マッチングエンジンのキューから前記注文を削除することを含む、付記16に記載の方法。
(付記25)
前記注文を調整することは、代替の注文を前記マッチングエンジンの前記キューに追加することを含む、付記24に記載の方法。
(付記26)
前記注文はパッシブ注文を含み、前記代替の注文はアグレッシブ注文を含む、付記25に記載の方法。
(付記27)
前記代替の注文を前記キューに追加することは、前記注文と同じ時間に基づく優先度を有する前記代替の注文を追加することを含む、付記25に記載の方法。
(付記28)
前記イベントは、閾値を超える数量が関連付けられた、取引の前記注文とは逆側の注文の提出を含む、付記24に記載の方法。
(付記29)
前記イベントに関連付けられた時間において、前記注文は前記マッチングエンジンのキュー内で保留中ではなく、前記注文調整指示は、前記マッチングエンジンの前記キューに前記注文を追加する指示を含む、付記16に記載の方法。
(付記30)
前記注文追加指示は、前記注文が前に前記キューにあった場合、前記注文に関連付けられた時間に基づく優先度で前記注文を追加する指示を含む、付記29に記載の方法。
(付記31)
前記イベントは、前記金融商品に対する取引の逆側の注文に関連付けられた数量の低減を含む、付記29に記載の方法。
(付記32)
リモートコンピュータから、イベントが発生したという指示を受信すること、
プロセッサが、動作が条件付けられた条件が満たされると判断することであって、前記動作は、金融商品に対する取引の側を定義する注文への調整を含むものであり、
前記判断に応答して、前記プロセッサおよびマッチングエンジンを結合するデータバスを通して前記注文を調整する指示を前記マッチングエンジンに送信すること
を含む、方法。
(付記33)
前記調整指示を送信することは、前記注文の価格および数量のうちの少なくとも一方を調整する指示を送信することを含む、付記32に記載の方法。
(付記34)
前記調整指示を送信することは、前記マッチングエンジンのキューから前記注文を削除する指示を送信することを含む、付記32に記載の方法。
(付記35)
前記調整指示を送信することは、前記マッチングエンジンの前記キューに代替の注文を追加する指示を送信することを含む、付記34に記載の方法。
(付記36)
前記注文はパッシブ注文を含み、前記代替の注文はアグレッシブ注文を含む、付記35に記載の方法。
(付記37)
前記調整指示は、前記注文と同じ時間に基づく優先度を有する代替の注文を前記キューに追加することを含む、付記35に記載の方法。
(付記38)
前記イベントは、閾値を超える数量が関連付けられた、取引の前記注文とは逆側の注文の提出を含む、付記34に記載の方法。
(付記39)
前記調整指示を送信することは、前記マッチングエンジンのメモリロケーションに情報を送信することを含む、付記32に記載の方法。
(付記40)
前記メモリロケーションは、前記注文が前記マッチングエンジンのキュー内に記憶されたメモリロケーションを含む、付記39に記載の方法。
(付記41)
前記調整指示を送信することは、前記マッチングエンジンの命令スタックに命令を送信することを含む、付記39に記載の方法。
(付記42)
前記イベントは、
第2の金融商品の価値の変更、
第2の金融商品の取引量の変更、
企業による決算公表、
取引の逆側の注文の提出、
業界を規制する規制の変更、および
企業の信用格付けの変更
のうちの少なくとも1つを含む、付記32に記載の方法。
(付記43)
前記イベントに関連付けられた時間において、前記注文は前記マッチングエンジンのキュー内で保留中ではなく、前記注文調整指示は、前記マッチングエンジンの前記キューに前記注文を追加する指示を含む、付記32に記載の方法。
(付記44)
前記注文追加指示は、前記注文が前に前記キューにあった場合、前記注文に関連付けられた時間に基づく優先度で前記注文を追加する指示を含む、付記43に記載の方法。
(付記45)
前記イベントは、前記金融商品に対する取引の逆側の注文に関連付けられた数量の低減を含む、付記43に記載の方法。