(57)【特許請求の範囲】
【請求項１】
電子商取引システムへのインプライド注文の演算を最適化するコンピュータ実装型の方法において、
３つ又はそれ以上の金融商品を、前記金融商品を編成する固有レッグの数に等しい列数を有する複数のベクトルを使用して、プロセッサによって表現する段階と、
第１の注文を前記複数のベクトルの第１のベクトルとして、前記プロセッサによって定義する段階と、
前記複数のベクトルから候補ベクトルのリストを識別する段階であって、それぞれの候補ベクトルは前記第１のベクトルと共通して少なくとも１つの非ゼロ列を有している、候補ベクトルのリストを、前記プロセッサによって識別する段階と、
前記候補ベクトルのリストから第２のベクトルを、前記プロセッサによって選択する段階と、
前記第１のベクトルを前記第２のベクトルに加算して第１の中間ベクトルを、前記プロセッサによって定義する段階と、
前記第２のベクトルを前記候補ベクトルのリストから、前記プロセッサによって削除する段階と、
前記第１の中間ベクトルが非ゼロ列を有していなければ、前記プロセッサによって、前記電子商取引システムに、前記第２のベクトルに対応するインプライド注文を出力する段階と、
前記第１の中間ベクトルが非ゼロ列を有していれば、前記プロセッサによって、前記電子商取引システムに、前記第２のベクトルに対応するインプライド注文を出力しないようにする、段階と、
から成り、
前記電子商取引システムは、前記候補ベクトルに対応するインプライド注文の全てよりも少ない数の実行をする、方法。
【請求項２】
前記第１の中間ベクトルが１つ又はそれ以上の非ゼロ列を有していれば、前記候補ベクトルのリストから第３のベクトルを選択し、前記第３のベクトルを前記第１の中間ベクトルに加えて第２の中間ベクトルを定義する段階と、
前記第２の中間ベクトルが非ゼロ列を有していなければ、前記第２のベクトルと前記第３のベクトルに対応するもう一つのインプライド注文を、前記プロセッサによって出力する段階と、を更に含んでいる、請求項１に記載の方法。
【請求項３】
前記第３のベクトルと前記第２のベクトルは取引可能ではない、請求項２に記載の方法。
【請求項４】
前記第１のベクトルと前記第２のベクトルに対応する取引可能なサイクルを、前記プロセッサによって実行する段階を更に含んでいる、請求項１に記載の方法。
【請求項５】
前記第２のベクトルは、それが前記候補ベクトルのリスト中のそれぞれのベクトルと同程度の又はより多くの非ゼロ列を有していることを理由に選択される、請求項１に記載の方法。
【請求項６】
前記第２のベクトルを前記候補ベクトルのリストから、前記プロセッサによって選択する段階は、前記第１のベクトルと共通して前記候補ベクトルのリスト中のそれぞれのベクトルと同程度の又はより多くの非ゼロ列を有するベクトルが１つより多い場合には、前記第２のベクトルを満期に基づいて選択する段階を更に含んでいる、請求項５に記載の方法。
【請求項７】
金融商品又はストラテジーのリストをユーザー入力に基づいて、前記プロセッサによって選択する段階を更に含んでいる、請求項１に記載の方法。
【請求項８】
前記候補ベクトルのリストをユーザー入力に基づいて、前記プロセッサによって制限する段階を更に含んでいる、請求項１に記載の方法。
【請求項９】
前記第２のベクトルがバタフライスプレッドであったならば、前記候補ベクトルのリストから他の全てのバタフライスプレッドを、前記プロセッサによって削除する段階を更に含んでいる、請求項１に記載の方法。
【請求項１０】
所定の最大回数に従って、次のベクトル及び次の候補ベクトルについて、前記プロセッサによって、前記選択する段階と、前記加える段階と、前記削除する段階と、前記出力する段階とを遂行することを更に含んでいる、請求項１に記載の方法。
【請求項１１】
前記所定の最大回数をユーザー入力に従って、前記プロセッサによって規定する段階を更に含んでいる、請求項１０に記載の方法。
【請求項１２】
前記所定の最大回数を、前記第１のベクトルによって表現されている金融商品又はストラテジーの型式に従って、前記プロセッサによって規定する段階を更に含んでいる、請求項１０に記載の方法。
【請求項１３】
前記インプライド注文は、第１世代インプライド注文を何も定義することなしに生成された第２世代インプライド注文である、請求項１に記載の方法。
【請求項１４】
電子商取引システムにおいて、プロセッサ及び、それに接続され、コンピュータで実行可能なコンピュータプログラム命令を保存したメモリを有し、前記コンピュータプログラム命令を前記プロセッサが実行することによって、
３つ又はそれ以上の金融商品を、前記金融商品を編成する固有レッグの数に等しい列数を有する複数のベクトルを使用して表現する段階と、
第１の注文を前記複数のベクトルの第１のベクトルとして定義し、前記複数のベクトルから、候補ベクトルのリストであってそれぞれの候補ベクトルが前記第１のベクトルと共通して少なくとも１つの非ゼロ列を有している、候補ベクトルのリストを識別する段階と、
前記候補ベクトルのリストから、当該候補ベクトルのリスト中のそれぞれのベクトルと同様に１つ又はそれ以上の非ゼロ列を有する第２のベクトルを選択し、前記第１のベクトルを前記第２のベクトルに加えて第１の中間ベクトルを定義し、前記第２のベクトルを前記候補ベクトルのリスから削除する段階と、
前記第１の中間ベクトルが非ゼロ列を有していなければ、前記電子商取引システムに、前記第２のベクトルに対応するインプライド注文を出力する段階と、
前記第１の中間ベクトルが非ゼロ列を有していれば、前記プロセッサによって、前記電子商取引システムに、前記第２のベクトルに対応するインプライド注文を出力しない、段階と、
を実行するようになされ、
前記電子商取引システムは、前記候補ベクトルに対応するインプライド注文の全てよりも少ない数の実行をする、
電子商取引システム。
【請求項１５】
前記第２のベクトルは、それが前記候補ベクトルのリスト中のそれぞれのベクトルと同程度の又はより多くの非ゼロ列を有していることを理由に選択される、請求項１４に記載の電子商取引システム。
【請求項１６】
前記第２のベクトルを前記候補ベクトルのリストから選択する段階は、前記第１のベクトルと共通して前記候補ベクトルのリスト中のそれぞれのベクトルと同程度の又はより多くの非ゼロ列を有するベクトルが１つより多い場合には、前記第２のベクトルを満期に基づいて選択する段階を更に含んでいる、請求項１５に記載の電子商取引システム。
【請求項１７】
前記コンピュータで実行可能なコンピュータプログラム命令は、更に、前記プロセッサで実行することによって、前記第１の中間ベクトルが１つ又はそれ以上の非ゼロ列を有していれば、前記候補ベクトルのリストから第３のベクトルを選択し、前記第３のベクトルを前記第１の中間ベクトルに加えて第２の中間ベクトルを定義するようにされている、
請求項１４に記載の電子商取引システム。
【請求項１８】
前記コンピュータで実行可能なコンピュータプログラム命令は、更に、前記プロセッサで実行することによって、前記第２の中間ベクトルが非ゼロ列を有していなければ、前記第２のベクトルと前記第３のベクトルに対応するもう一つのインプライド注文を出力するようにされている、請求項１５に記載の電子商取引システム。
【請求項１９】
前記第３のベクトルと前記第２のベクトルは取引可能ではない、請求項１４に記載の電子商取引システム。
【請求項２０】
前記コンピュータで実行可能なコンピュータプログラム命令は、更に、前記プロセッサで実行することによって、前記第１のベクトルと前記第２のベクトルに対応する取引可能なサイクルを実行するようにされている、請求項１４に記載の電子商取引システム。
【請求項２１】
前記注文提出インターフェースは、前記金融商品又はストラテジーのリストをユーザー入力に基づいて選択するように構成されている、請求項１４に記載の電子商取引システム。
【請求項２２】
前記候補ベクトルのリストはユーザー入力に基づいて制限される、請求項１４に記載の電子商取引システム。
【請求項２３】
前記候補リスト生成部は、前記第２のベクトルがバタフライスプレッドであったならば、前記候補ベクトルのリストから全てのバタフライスプレッドを削除するように構成されている、請求項１４に記載の電子商取引システム。
【請求項２４】
電子商取引システムへのインプライド注文の演算を最適化するコンピュータ実装型の方法において、
３つ又はそれ以上の金融商品を、前記金融商品を編成する固有レッグの数に等しい列数を有する複数のベクトルを使用して、プロセッサによって表現する段階と、
第１の注文を前記複数のベクトルの第１のベクトルとして、前記プロセッサによって定義する段階と、
１つ又はそれ以上の制約を使用して、前記複数のベクトルを候補ベクトルのリストへ、前記プロセッサによってまとめる段階と、
前記候補ベクトルのリストから、当該候補ベクトルのリスト中のそれぞれと同様に１つ又はそれ以上の非ゼロ列を有する第２のベクトルを、前記プロセッサによって選択する段階と、
前記第１のベクトルを前記第２のベクトルに加算して第１の中間ベクトルを、前記プロセッサによって定義する段階と、
前記第２のベクトルを、前記プロセッサによって前記候補ベクトルのリストから削除する段階と、
前記第１の中間ベクトルが非ゼロ列を有していなければ、前記プロセッサによって、前記電子商取引システムに、前記第２のベクトルに対応するインプライド注文を出力する段階と、
前記第１の中間ベクトルが非ゼロ列を有していれば、前記プロセッサによって、前記電子商取引システムに、前記第２のベクトルに対応するインプライド注文を出力しないようにする、段階と、
から成り、
前記電子商取引システムは、前記候補ベクトルに対応するインプライド注文の全てよりも少ない数の実行をする、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
以下の開示は、商品取引所やデリバティブ取引所或いは取引可能な物品に関する買手からの注文が売手からの注文と突き合わされる類似の業界での、電子商取引のためのソフトウェア、システム、及び方法に関する。
【背景技術】
【０００２】
電子商取引システムは、特定の取引可能な物品についてのビッド又はオファーのエントリを可能にする。特定の取引可能な物品についての単純なビッドとオファーはアウトライト注文と呼ばれる。スプレッド注文は、２つ又はそれ以上の取引可能な物品、例えば先物契約で異なった月、異なった商品、又は同一商品の異なった等級の買いと売りを同時に行うことである。スプレッドのそれぞれのビッド要素とオファー要素には、それぞれ、ビッドレッグとオファーレッグという名前が付けられている。現実の注文は、トレーダーによってシステムへ入力される注文である。トレーダーは、適当な情報を商取引システムへ入力し、注文をオープン注文としてシステムの中へリリースする。現実の注文は、システムの中の何れかの取引可能な物品について入力されるものであり、その様なものには、限定するわけではないが、先物、オプション、商品間スプレッド、商品内スプレッド、先物ストリップ、カレンダースプレッド、バタフライスプレッド、コンドルスプレッド、クラックスプレッド、ストラドル、及びストラングルが含まれる。
【０００３】
インプライド注文は、現実の注文とは違って、現実の注文を入力したトレーダーを代行するシステムによって生成される。例えば、或るインプライドスプレッドが２つの現実のアウトライト注文から導き出されることがあるかもしれない。システムは、「派生的」又は「インプライド」注文を作成し、インプライド注文の作成によって生じる市場を、逆張りを掛けることのできる市場として表示する。このインプライド市場にトレーダーが逆張りすれば、インプライド注文及びその結果である市場を作成するのに組み合わされた現実の注文が、突き合わされた取引として実行される。
【０００４】
市場の複雑性は、中でも特に、潜在的な注文の組合せの数の膨大さから引き起こされる。例えば、単一の商品生産物で７２の異限月に利用できるものなら実現し得るアウトライトは７２あり、その各々に買い指値注文と売り指値注文がある。潜在的なスプレッド契約は２５５６＝（７２＊７１）／２あり、ここで留意すべきは、何れかの２つのアウトライトの買／売の組合せと売／買の組合せはどちらも同じスプレッド契約に対応しているということである。２つの注文が組み合わさって３つ目を形成する単純なインプライドでは、インプライドされる注文の選定は５２５６＝２＊７２＋２＊２５５６あり、何れの所与の３つ目の注文についてもそれをインプライドする２つの注文の組合せの選定のやり方は７１＝７２−１通りあり、全体では３７３，１５６の組合せに上る。インプライドに係わる契約の数が大きくなるほど、実現し得る組合せの数は指数関数的に膨れる。インプライド注文が、複数のレッグに絡む組合せ契約の注文を含みでもすれば、問題は更に悪化する。
【０００５】
これらの理由から、インプライド注文を導き出す商取引システムは、大抵、演算能力と速度によって制限される。従来型の商取引システムは、実現し得る全ての或いは実現し得る最適なインプライド市場を求める効率のよい方法を有しておらず、特に注文の組合せに２〜３個よりも多くの注文が係わっている場合にそうであった。
【０００６】
商取引システムの１つの例が、Ｐａｚｎｅｒへの米国特許第７，５４８，８８２号に記載されている。当該商取引システムは、総当たり方式を使用して全ての実現し得る市場の組合せについて解を求める。市場の方程式が生成され、或る特定のシーケンスで全ての実現し得る組合せを求める反復プロセスで代入を通して解かれてゆく。この反復プロセスが使用されると、どのインプライド注文が実際に取引を生じさせる見込みが最も高いかに注意が払われることなしに、全ての実現し得るインプライド注文が演算される。取引を生じさせそうなインプライド注文をタイムリーな方式で計算し公開する能力がないことにより、この型式の商取引システムの使用は限定される。
【特許文献１】米国特許第７，５４８，８８２号
【発明の概要】
【発明が解決しようとする課題】
【０００７】
求められているものは、インプライド注文を計算するためのシステムにおいて、理論上の全ての組合せに時間や計算能力を空費することなしに何よりも取引を生じさせる見込みのより高いインプライド注文を計算しようとする、焦点を絞ったアルゴリズムを使用するシステムである。
【図面の簡単な説明】
【０００８】
【図１】取引量のグラフである。
【０００９】
【図２】インプライド注文計算回数のグラフである。
【００１０】
【図３】例示としてのベクトル空間を示している。
【００１１】
【図４】電子商取引システムを示している。
【００１２】
【図５】電子商取引システムの突き合わせエンジンを示している。
【００１３】
【図６】電子商取引システムでのインプライド注文を提供するための例示としてのアルゴリズムを示している。
【００１４】
【図７】電子商取引システムでのインプライド注文を提供するための別の例示としてのアルゴリズムを示している。
【００１５】
（課題を解決するための手段）
【００１６】
商取引システムの注文突き合わせ機能は、典型的には、突き合わせエンジンと呼称される特化された構成要素によって遂行されており、突き合わせエンジンについては多数の事例があろう。それぞれの突き合わせエンジンは、注文を受信し、それらを内部に記憶し、取引可能な組合せを計算し、現実の注文とインプライド注文の利用可能性を市場データの形式で広告する、特化された注文突き合わせ用構成要素である。突き合わせエンジンは、時間間隔の始めに、取引可能な組合せを計算するものであってもよい。例えば、時間間隔は、取引日に対応していてもよいし、突き合わせエンジンの起動シーケンスによって指示されるようにしてもよい。代わりに、突き合わせエンジンは、取引可能な組合せをリアルタイムで計算していてもよい。例えば、それらの受信された注文に係わる取引可能な組合せは、注文が受信されたときに計算されるようにしてもよい。
【００１７】
システムを使用するトレーダーが、市場データに対し、追加の注文を送信することによって反応を示すと、それらの注文は突き合わせエンジンによって受信され、すると突き合わせエンジンはそれらの注文をそれより前に受信されている注文又は注文の組合せと突き合わせようと試みる。突き合わせエンジンは、実現し得る取引を実行し、結果を連絡する。
【００１８】
突き合わせエンジンでは、総実現可能取引のサブセットしか計算されない。突き合わせエンジンは、取引可能な組合せについて実行される見込みがあって取引所の総取引量に寄与する見込みのある組合せのみを提供するようにカスタマイズすることのできるルール（制約）のセットの下に作動する。取引可能な組合せで取引されそうもない組合せは計算されないので、電子商取引システムの演算能力に余力ができる。
【００１９】
取引可能な組合せを素早く識別することの好都合な点の１つは、取引所が以前なら起こらなかったはずの取引を実行することが起こり得ることである。取引量の増加は、取引所の収益を増やす。また、システムを使用している市場参加者（取引所とは独立にある）では、未公開の取引可能な組合せを識別できることになり、鞘取りの好機から利益を得ることができる。鞘取りの好機は、トレーダーが２つ又はそれ以上の市場での格差を有利に活かして一連の注文を繰り出すことができたときに起こる。仮に鞘取りの好機が正確に確定でき且つ取引がタイムリーに実行されたとすれば、即時に利益を上げることができる。
【発明を実施するための形態】
【００２０】
以上に論じられている様に、全ての実現し得るインプライド注文を計算する反復方法は、取引所に見られる演算能力と時間の制限により機能し得ない。取引可能な組合せが膨らむにつれ、実行される取引が、実際に、対応するインプライド注文を識別することによって生じる可能性は減る。図１は、この原理を、生成数が増加するにつれプロット１１の勾配が小さくなることを示すことによって論証している。「生成数」とは、取引可能な組合せに到達させるべく初発注文と組み合わせることのできるアウトライト注文又はストラテジーの数をいう。言い換えると、取引可能な組合せにおける生成数は、他のインプライド注文を基にしているインプライド注文の数である。
【００２１】
取引可能な組合せが膨らむにつれ、インプライド注文の演算に係わる計算の回数が指数関数的に増える。例えば、図２は、生成数が増えるにつれ、プロット１１の勾配が大きくなることを示している。図１及び図２に示されている様に、取引所は、全ての取引可能な組合せを演算するのに必要な演算パワーと時間に対する限界収益の漸減を被っている。
【００２２】
取引可能な組合せを計算する場合の課題の１つは、複雑なストラテジーを含んでいる組合せを識別することである。組合せ契約又は「ストラテジー」は、レッグと呼ばれる２つ又はそれ以上のアウトライト契約によって定義付けられる。規制及び非規制の取引所及び他の電子商取引サービスは、電子商取引システムを利用している。例えば、以下の実施形態は、米国或いは世界のそれ以外の場所の何れの取引市場又は先物市場にも適用することができ、その様な市場には、例えば、シカゴ商品取引所（ＣＢＯＴ）、シカゴ・マーカンタイル取引所（ＣＭＥ）、ブラジルのボルサ・デ・メルカドリアス＆フートリアス（ＢＭＦ）、ロンドン国際金融先物取引所、ニューヨーク・マーカンタイル取引所（ＮＹＭＥＸ）、カンザスシテイ商品取引所（ＫＣＢＴ）、ＭＡＴＩＦ（フランス、パリ）、ロンドン金属取引所（ＬＭＥ）、東京国際金融先物取引所、東京工業品取引所（ＴＯＣＯＭ）、Ｍｅｆｆ  Ｒｅｎｔａ  Ｖａｒｉａｂｌｅ（スペイン）、ドバイ・マーカンタイル取引所（ＤＭＥ）、及びインターコンチネンタル取引所（ＩＣＥ）がある。
【００２３】
図３は、例示としてのベクトル空間２００である。商品の取引では、アウトライト契約は、商品と引渡期間によって定義される。スプレッド契約は、２つのアウトライト契約の同時（又はほぼ同時）に起こる買いと売りとして定義される。カレンダースプレッドは、同じ商品で異なった月の先物契約同士の間でのスプレッド契約である。商品間スプレッドは、同じ月で異なった商品の先物契約同士の間でのスプレッド契約である。カレンダースプレッドと商品間スプレッドの組合せ、つまりは異なった商品で且つ異なった月の先物契約同士の間のスプレッドが取引されることもあろう。スプレッドの買いの要素はビッドレッグと呼ばれ、スプレッドの売り要素はオファーレッグと呼ばれる。図３のベクトルスプレッドは、３つのアウトライト契約と、当該３つのアウトライト契約が係わる実現し得るスプレッドと、を含んでいる。
【００２４】
実現し得る金融商品を表現するのに、様々な約束事又は命名法を使用することができよう。図３は、アウトライトＬ１、Ｌ２、及びＬ３と、アウトライトＬ１、Ｌ２、及びＬ３が係わるスプレッドとを、ベクトル表記法を使用して表現するシステムを示している。ベクトルのそれぞれの列は、実現し得るアウトライトの１つを表現している。例えば、ベクトルは、（{６月原油}，{９月原油}，{１２月原油}）として定義されているかもしれず、その場合には、スプレッドはカレンダースプレッドということになる。（０，０，１）と表現される注文は、１２月原油についての買い注文である。（０，１，−１）と表現されるスプレッドは、９月原油を買い１２月原油を売るカレンダースプレッドである。
【００２５】
ベクトルのアウトライト（又は列）の総数は、実現し得る金融商品の総数を定義している。無論、金融商品には、取引所で通用しないものがあるかもしれない。図３の例は、１２個の実現し得る金融商品を示しており、即ち、３つの金融商品のそれぞれの買い注文と、３つの金融商品のそれぞれの売り注文と、３つの金融商品が係わる６つのカレンダースプレッドである。
【００２６】
数量「１」は、１取引単位の買いを表現しており、単位は取引所によって定義される如何なる数量に対応していてもよいであろう。示されていないが、２取引単位の買いは「２」と表現され、以下同様に表現される。負の符号は、取引単位の売りを指す。
【００２７】
図３に示されている例は、相補的注文を一覧に載せている。例えば、（１，０，０）と（−１，０，０）の両方が示されている。或る代わりの構築では、ベクトル空間には補完的注文対を含める必要はない。即ち、（１，０，０）と（−１，０，０）の一方しか含まれない。以下に論じられている様に、取引可能な組合せの構築がベクトルの補完を必要とするのであれば、システムは、単純に当該ベクトルのそれぞれの列に−１を掛ければよい。これは、一般に、何れの注文も買いか売りのどちらかであることから起こるものである。この構造を使用すると、図３のベクトル空間をたった６つのベクトル、例えば、（１，０，０）、（０，１，０）、（０，０，１）、（１，−１，０）、（０，１，−１）、及び（１，０，−１）を使って示すことができるようになる。
【００２８】
バラフライスプレッド契約は、ベクトル表記法を使用して（１，−２，１）と表現することができる。バタフライスプレッド契約は、ウイングとボディと（第２の）ウイングと呼称される３つのレッグから成る。典型的に、バタフライスプレッド契約は、３つの連続した引渡期間のウイングとボディと第２のウイングで定義されている。真ん中のダブルポジションがボディと呼ばれ、他の２つのポジションがウイングと呼ばれる。バタフライスプレッド契約に長いポジションをとるためには、トレーダー又は市場参加者は、ウイングを買ってボディを売る。この例では、買い注文がウイングを編成し、売り注文がボディを編成している。
【００２９】
示されていないが、先物ストリップもベクトル表記法を使用して表現することができる。先物ストリップは、逐次的であってもよいとされる一続きの期間に商品を買い付けることである。例えば、上記のベクトル（{６月原油}，{９月原油}，{１２月原油}）を使用すると、（１，１，１）は、６月と９月と１２月に原油先物を買うストリップ注文を指すことになる。図３の例は、随意的には、（１，１，０）、（０，１，１）、（１，０，１）、又は（１，１，１）の様なストリップ注文を含み得ることに留意されたい。
【００３０】
ここに開示されている電子商取引システムは、選択的に、取引可能な組合せの実現し得る注文で、実際に総取引量を増やす見込みのある注文を突き合わせる。例えば、本電子システムの突き合わせエンジンは、総当たり式や反復式のプロセスよりも短い時間で取引可能な組合せに到達する可能性を高めることが示されている所定のルールのセットを作動させるように構成されている。
【００３１】
図４は、電子商取引システム３００を示している。電子商取引システム３００は、１つ又はそれ以上の端末３０１と、突き合わせエンジン３０３と、報告デバイス３０５と、市場データサーバ３０７を含んでいる。突き合わせエンジン３０３は、報告デバイス３０５と、１つ又はそれ以上の端末３０１とに連結されている。市場データサーバ３０７は、突き合わせエンジン３０３又は報告デバイス３０５又はそれら両方と連結されている。ここでの使用に際し、「〜と連結されている」という用語には、直接的に接続されていること、又は間接的に１つ又はそれ以上の媒介構成要素を介して接続されていることが含まれる。随意的な媒介構成要素には、ネットワーク、ハードウェア、及び／又はソフトウェアが含まれるであろう。
【００３２】
１つ又はそれ以上の端末３０１は、トレーダー又は市場参加者が、注文を出したり市場データを受信したりするのに使用することができる。端末３０１は、個人用コンピュータ、サーバ、携帯電話、個人用携帯情報端末、又はワイヤレスデバイスを使用して実装することができる。端末３０１は、コンピュータ全体のオペレーションを制御する中央プロセッサと、トレーダー又は市場参加者が情報を入力したり受信したりできるようにするユーザーインターフェースと、電子商取引システム３００との通信を可能にするネットワークカードやモデムの様な通信デバイスを含んでいる。
【００３３】
端末３０１は、電子商取引システム３００と、ローカルエリアネットワーク（ＬＡＮ）３０９を介して通信していてもよいし、又は無線式にトランシーバを介して通信していてもよい。ＬＡＮ３０９は、イーサネット（登録商標）の様な各種プロトコル及び規格を使用して実装することができる。ＬＡＮ３０９の物理的接続は、撚り対線、同軸ケーブル、又は光ファイバとすることができる。ＬＡＮ３０９は、インターネットと通信していてもよく、そうすると、端末３０１を電子商取引システム３００の残りの構成要素から遠隔のどの場所に置くこともできるようになる。
【００３４】
突き合わせシステム３０３は、注文を受信し、それらを内部に記憶し、取引可能な組合せを計算し、現実の注文とインプライド注文の利用可能性を市場データの形式で広告する、特化された注文突き合わせ用構成要素である。トレーダー又は市場参加者が、市場データに対し、追加の注文を出すことによって反応を示すと、それらの注文は突き合わせエンジン３０３によって受信される。突き合わせエンジンはそれらの注文をそれより前に受信されている注文又は注文の組合せと突き合わせようと試みる。突き合わせエンジン３０３は、何らかの完了した取引可能な組合せを実行し、結果を連絡する。
【００３５】
市場データサーバ３０７は、サーバであってもよいし、又はＬＡＮ３０９と連結されている他のコンピュータであってもよい。報告デバイス３０５は、ＬＡＮ３０９上で通信されるデータをエンコード及び／又はデコードするための通信デバイスとすることができる。報告デバイス３０５は、取引可能な組合せ又はインプライド注文を市場参加者又はトレーダーに連絡するように構成されているディスプレイを含むことができる。また、報告デバイス３０５は、取引可能な組合せ及び／又はインプライド注文を市場参加者又はトレーダーにインターネット経由で連絡するように、インターネットと通信していてもよい。
【００３６】
図５は、図４の突き合わせエンジン３０３の詳細図を示している。突き合わせエンジン３０３は、突き合わせエンジンプロセッサ４０１と、候補リスト生成部４０３と、通信インターフェース４０５と、注文提出インターフェース４０７と、データベース４０９と、比較部４１１と、インプライド注文生成部４１３と、通信バス４１５を含んでいる。
【００３７】
突き合わせエンジンプロセッサ４０１は、３つ又はそれ以上の金融商品を、当該金融商品を編成する固有レッグ（アウトライト）の数に等しい列数を有する複数のベクトルを使用して表現する。その様な複数のベクトルの１つの例が、図３に示されているベクトル空間２００である。金融商品は、何れの金融証書であってもよく、例えば、先物、オプション、商品間スプレッド、商品内スプレット、先物ストリップ、カレンダースプレッド、バタフライスプレッド、コンドルスプレッド、クラックスプレッド、ストラドル、及びストラングルがある。
【００３８】
注文提出インターフェース４０７は、１つ又はそれ以上の端末３０１と連結されていて、トレーダー又は市場参加者からの注文を受信するように構成されている。注文提出インターフェース４０７は、ＬＡＮ３０９と連結されているネットワークカード又はモデムの様な通信デバイスとすることができる。代わりに、注文提出インターフェース４０７は、１つ又はそれ以上の端末３０１からの注文データを通信バス４１５を介して受信しデコードする能力のあるソフトウェア又はファームウェアを用いて実装することもできる。
【００３９】
候補リスト生成部４０３は、第１の注文を複数のベクトルのうちの或るベクトルとして表現し、当該複数のベクトルから候補ベクトルのリストを識別する。候補ベクトルのリストは、１つ又はそれ以上のルールから成るセットに従って生成される。ルールは、データベース４０９に記憶される。１つの例示としてのルールは、それぞれの候補ベクトルが第１のベクトルと共通して少なくとも１つの非ゼロ列を有する、とするものである。別の例示としてのルールは、それぞれの取引可能な組合せ中にたった１つのバタフライスプレッド契約しか使用させない、とするものである。言い換えると、１つのバタフライが選択された後、全ての残りのバラフライスプレッド契約は候補リストから削除されることになる。
【００４０】
代わりに、何れの取引可能な組合せにおいても所定の最大ストラテジー数以下のストラテジーを使用するというルールが選択されてもよいであろう。所定の最大ストラテジー数は、何れの数であってもよく、制限の対象となるストラテジーは、商品間スプレッド、商品内スプレッド、カレンダースプレッド、バタフライスプレッド、ダブルバタフライスプレッド、コンドルスプレッド、クラックスプレッド、ストラドル、及びストラングルの１つ又はそれ以上とすることができよう。他のルールであって、突き合わせエンジン３０３の他の構成要素によって実装されるルールが、実装されていてもよい。
【００４１】
所定のルールに従って候補リストが生成される及び／又は制限が付けられた後、比較部４１１は候補ベクトルのリストから或るベクトルを選択する。比較部４１１は、候補ベクトルのリストから何れのベクトルを選択することもできる。
【００４２】
１つの実施形態では、比較部４１１は、候補ベクトルのリスト中のそれぞれのベクトルと同じほど多くの又はより多くの非ゼロ列を有するベクトルを選択する（選択されるベクトルは、候補ベクトルの中で非ゼロ列が最も多いか又は候補ベクトル中の他のベクトルと同じ数の非ゼロ列を有するものとなろう）。非ゼロ列を最も多く有するベクトルが１つより多い場合は、タイブレイクが使用されることになろう。タイブレイクは、ビッドレッグの満期が最も早いベクトルが選択される、というものであってもよい。タイブレイクは、オファーレッグの満期が最も遅いベクトルが選択される、というものであってもよい。タイブレイクは、単純に、ベクトルの１つを無作為に選択するものであってもよい。タイブレイクの諸条件はデータベース４０９に記憶されるルールとして定義されていてもよい。
【００４３】
データベースには、比較部４１１のオペレーションを制御する他のルールも記憶させることができる。以上に論じられている様に、ルールは、比較部４１１が、或る特定のストラテジーを、それと同じ型式のストラテジーが既に選択されているのに選択してしまうことを防ぐことができる。例えば、最初の反復でコンドルスプレッドが選択されたなら、２回目の反復でまた１つコンドルスプレッドが選択されることは起こり得ない。同様に、或るルールは、先物ストリップが、共通の非ゼロ列を有するカレンダースプレッドが既に選択された後に選択されれば、当然ながらより複雑な組合せを招くことになるので、その様な先物ストリップが選択されることを禁じることができる。また別のルールは、候補リスト中のベクトルで、それより前に選択されたベクトルと取引可能な組合せを形成し得るベクトルは一切選択されないようにするものであってもよい。これは、或る取引可能な組合せを形成し得る２つのベクトルは、追加の取引可能な組合せを探す場合に使用されてはならないからである。或る取引可能な組合せを形成している２つのベクトルは、追加の計算の必要なしに、単純に突き合わされるだけである。
【００４４】
ルールは、ユーザーが突き合わせエンジン３０３に入力することができる。例えば、ユーザーは、ＬＡＮ３０９及び／又はインターネットを介してルールを連絡するか又は選択してもよいであろう。代わりに、通信インターフェース４０５は、ユーザーがルールを連絡するか又は選択できるようにするキーボード又はマウスを含んでいてもよい。更に、通信インターフェース４０５は、ディスプレイを含んでいてもよい。
【００４５】
比較部４１１は、受信された注文に対応するベクトルを選択されたベクトルに加えて中間ベクトルを定義し、候補リスト生成部４０３は選択されたベクトルを候補ベクトルのリストから削除する。中間ベクトルは、オールゼロのベクトルをもたらさない、２つ又はそれ以上のベクトルの総和である。
【００４６】
インプライド注文生成部４１３は、報告デバイス３０５と連結されている。中間ベクトルがオールゼロ（非ゼロ列が無）を含んでいれば、取引可能な組合せは完成したことになる。インプライド注文生成部４１３は、選択されたベクトルに対応するインプライド注文を生成し、その結果、トレーダー又は市場参加者がインプライド注文を取引しようとするよりむしろ注文を提出してくれば、取引可能なサイクルは完了することになる。この段階で計算されたインプライド注文には、第１世代インプライド注文という名前を付けることにする。
【００４７】
中間ベクトルがオールゼロを含んでいなければ、プロセスは更新された候補リストを使用して繰り返される。プロセスの繰り返し性は、ルールに支配される。例えば、プロセスは、１回しか繰り返されないように制限されていてもよく、そうすると、第２世代以降のインプライド注文は生じない。代わりに、プロセスは、取引所が設定することのできる任意の最大回数だけ繰り返されるように制限されていてもよい。
【００４８】
言い換えると、突き合わせエンジン３０３の構成要素は、以上のプロセスを繰り返すように構成されている。比較部４１１は、別のベクトル（第３のベクトル）を候補ベクトルのリストから選択し、第３のベクトルを中間ベクトルに加えて第２の中間ベクトルを定義する。第３のベクトルは、残りの候補の何れから選択されてもよい。１つの実施形態では、第３のベクトルは、残っているベクトルで、中間ベクトルと共通して候補ベクトルのリスト中の全ての残りのベクトルと同じほど多くの又はより多くの非ゼロ列を有するベクトルとすることができる。インプライド注文生成部４１３は、第２の中間ベクトルが非ゼロ列を有していなければ、第３のベクトルに対応する第２のインプライド注文を出力するように構成されている。第２の中間ベクトルが１つ又はそれ以上の非ゼロ列を有していたなら、プロセスは、ルールが禁じていない限り再び繰り返される。例えば、第２世代以降のインプライド注文を禁じているルールであれば、もう一回の繰り返しは禁止されることになる。
【００４９】
図６は、電子商取引システムでのインプライド注文を提供するための例示としてのアルゴリズムを示している。図６はまた、図３によって示されているベクトル空間２００に遂行される例示としてのアルゴリズムを示している。
【００５０】
ブロックＳ１０１で、突き合わせエンジン３０３は、３つ又はそれ以上の金融商品を、当該金融商品を編成する固有レッグの数に等しい列数を有する複数のベクトルを使用して表現する。ブロックＳ１０３で、候補リスト生成部４０３は、（開始点としての）第１の注文を複数のベクトルの１つとして定義する。一例として、図３のベクトル空間２００を使用して、Ｌ１＋Ｌ２＋即ち（１，−１，０）とする。
【００５１】
ブロックＳ１０５で、候補リスト生成部４０３は、次いで、複数のベクトルから、それぞれが第１のベクトルと共通して少なくとも１つの非ゼロ列を有する候補ベクトルのリストを識別する。図３のベクトル空間２００を進むと、候補ベクトルのリストには（−１，０，０）、（−１，０，１）、（０，１，０）、及び（０，１，−１）が含まれている。
【００５２】
ブロックＳ１０７で、比較部４１１は、候補ベクトルのリストから、候補ベクトルのリスト中のそれぞれのベクトルの様に１つ又はそれ以上の非ゼロ列を有する第２のベクトルを選択する。突き合わせエンジン３０３が従う所定のルールに依って、（−１，０，１）か（０，１，−１）のどちらかが選定される。図示されている様に、（０，１，−１）が選択されている。
【００５３】
ブロックＳ１０９で、比較部４１１は第１のベクトルを第２のベクトルに加え、第１の中間ベクトルを定義する。図示の例では、中間ベクトルは（１，０，−１）である。ブロックＳ１１１で、突き合わせエンジン３０３は、中間ベクトルがオールゼロ値を有しているかどうかを判定する。ブロックＳ１１１の結果がノーであれば、プロセスはＳ１０５に戻って、候補ベクトルのリストを更新する。ブロックＳ１１１がイエスであれば、ブロックＳ１１３で、第２のベクトルに対応するインプライド注文が電子商取引システム３００に出力される。
【００５４】
図示の例では、ブロックＳ１１１の結果はノーであり、よってプロセスはＳ１０５に戻り、実現し得る第２世代インプライド注文が計算されることになる。ブロックＳ１０５で、候補ベクトルのリストが更新されて、それより前に使用されていた第２のベクトル（０，１，−１）は削除される。ブロックＳ１０７で、比較部４１１は、候補ベクトルのリストから第３のベクトルを選択する。今回は、ベクトル（−１，０，１）が選択される。ブロックＳ１０９で、比較部４１１は、第３のベクトルをそれより前に使用されていた中間ベクトルに加え、第２の中間ベクトル（０，０，０）に行き着く。ブロックＳ１１１で、突き合わせエンジン３０３は、新しい中間ベクトルがオールゼロ列を有していると判定し、するとブロックＳ１１３で、第２のベクトルと第３のベクトルに対応するインプライド注文が電子商取引システム３００に出力される。
【００５５】
図７は、電子商取引システムでインプライド注文ができるようにするための別の例示としてのアルゴリズムを示している。ブロックＳ２０１で、突き合わせエンジン３０３は、ストラテジーではない全ての金融商品についての基準ベクトル表現をインプリカブルベクトルリスト（Implicable Vector List）（ＩＶＬ）として作成する。ブロックＳ２０３で、突き合わせエンジン３０３は、インプリカブル契約セットの中にストラテジーが在るかどうかを判定する。在った場合、突き合わせエンジン３０３は、Ｓ２０５で、全てのストラテジーについてベクトル表現を作成し、それらをＩＶＬの中に含める。ブロックＳ２０７で、ＩＶＬはインプリカブルベクトルソース（Implicable Vector Source）（ＩＶＳ）にコピーされる。
【００５６】
ブロックＳ２０８で、突き合わせエンジン３０３は、ＩＶＳリストから非ゼロ列を最も多く有する開始ベクトル（start vector）（ＳＶ）を選択する。ブロックＳ２０９で、ＩＶＬの中でＳＶと共通して少なくとも１つの非ゼロ列を有する全てのベクトルを見つけることによって候補リスト（candidate list）（ＣＬ）が生成される。しかしながら、Ｓ２１１でＣＬが空であれば、Ｓ２１３で開始ベクトルがＩＶＳから削除され、ＩＶＳが空になれば、プロセスは終了する。
【００５７】
ＣＬが空になるまで、比較部４１１は候補をＣＬから選択し、それをＳＶに加えて中間ベクトル（intermediate vector）（ＩＶ）を作成してゆく。突き合わせエンジン３０３は、次に、データベース４０９に記憶されているルールのセットをチェックして、ブロックＳ２２５で、加算が何らかの制約を犯すことになるかどうかを判定する。もしそうであるなら、候補ベクトルは候補リストから削除される。そうでないなら、比較部４１１は、ＩＶが０に等しい（非ゼロ列が何も含まれない）かどうかを判定する。ＩＶが非ゼロ列を含んでいたなら、突き合わせエンジン３０３はブロックＳ２０９に戻り、繰り返す。ＩＶが非ゼロ列を含んでいなければ。
【００５８】
本明細書に記載されている主題及び機能的オペレーションの実施形態は、デジタル電子回路構成に実装することもできるし、或いはコンピュータソフトウェア、ファームウェア、又はハードウェアに実装することもでき、それらには、本明細書に開示されている構造及びそれらの構造的等価物又はそれらのうちの１つ又はそれ以上から成る組合せが含まれる。本明細書に記載されている主題の実施形態は、１つ又はそれ以上のコンピュータプログラム製品、即ち、コンピュータ可読媒体上にエンコードされたコンピュータプログラム命令の１つ又はそれ以上のモジュールであって、データ処理装置によって実行させるか又はデータ処理装置のオペレーションを制御するために実行させる命令のモジュールとして実装することができる。コンピュータ可読媒体は、機械可読記憶デバイス、機械可読記憶基板、メモリデバイス、又はそれらのうちの１つ又はそれ以上から成る組合せとすることができる。「データ処理装置」という用語は、データを処理するためのあらゆる装置、デバイス、機械を網羅し、一例として、プログラム可能プロセッサ、コンピュータ、又は複数のプロセッサやコンピュータが挙げられる。その様な装置には、ハードウェアの他にも、当該コンピュータプログラムのための実行環境を作り出すコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、又はそれらのうちの１つ又はそれ以上から成る組合せを構成しているコードが含まれる。
【００５９】
コンピュータプログラム（プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、又はコードとしても知られている）は、コンパイラ型言語やインタープリタ型言語の様なプログラミング言語の何れの形式で書かれていてもよく、スタンドアローン型プログラムとして、又はモジュール、コンポーネント、サブルーチン、又は演算環境で使用するのに適した他のユニットとして配置することを含め、如何なる形式で配備されていてもよい。コンピュータプログラムは、必ずしも、ファイルシステム中のファイルに対応しているとは限らない。プログラムは、他のプログラム又はデータを保有しているファイルの一部分に記憶させる（例えば、マークアップ型言語ドキュメントに記憶されている１つ又はそれ以上のスクリプトとする）こともできるし、問題のプログラム専用の単一ファイルに記憶させることもできるし、複数の連携させたファイルに記憶させる（例えば、１つ又はそれ以上のモジュール、サブプログラム、又はコード部分を記憶したファイルとする）こともできる。コンピュータプログラムは、１つのコンピュータ上で実行されるように配備することもできるし、一つの現場に又は複数の現場を跨いで設置されていて通信ネットワークで相互接続されている複数のコンピュータ上で実行されるように配備することもできる。
【００６０】
本明細書に記載されているプロセス及び論理のフローは、１つ又はそれ以上のプログラム可能なプロセッサによって、それらプロセッサが１つ又はそれ以上のコンピュータプログラムを実行して、入力データに働き掛け出力を生成することによって機能を遂行させることにより、遂行されてもよい。プロセス及び論理のフローは、同様に、特定目的論理回路構成、例えば、ＦＰＧＡ（フィールド・プログラマブル・ゲート・アレイ）又はＡＳＩＣ（用途特定集積回路）によって遂行されてもよく、また装置はその様な特定目的回路構成として実装されてもよい。
【００６１】
コンピュータプログラムの実行に適したプロセッサとして、一例として、汎用マイクロプロセッサと特定目的マイクロプロセッサの両方、及び何らかの種類のデジタルコンピュータの何れか１つ又はそれ以上のプロセッサが挙げられる。概して、プロセッサは、命令とデータを、読み出し専用メモリ又はランダムアクセスメモリから、又はそれら両方から、受信することになろう。コンピュータの必須要素は、命令を遂行するためのプロセッサと、命令及びデータを記憶するための１つ又はそれ以上のメモリデバイスである。概して、コンピュータは、更に、データの受信又はデータの転送或いはそれら両方を行うために、データを記憶するための１つ又はそれ以上の大容量記憶デバイス、例えば、磁気ディスク、光磁気ディスク、又は光ディスク、を含むか又はその様なデバイスに作動的に連結されることになろう。しかしながら、コンピュータは、その様なデバイスを有していなくてもよい。また、コンピュータは、別のデバイスに内蔵されていてもよく、その様なデバイスには、例として２〜３挙げると、携帯電話、個人用携帯情報端末（ＰＤＡ）、携帯オーディオプレイヤー、全地球測位システム（ＧＰＳ）受信機がある。コンピュータプログラム命令及びデータを記憶するのに適したコンピュータ可読媒体には、あらゆる形式の不揮発性メモリ、媒体、及びメモリデバイスが含まれ、一例として、半導体メモリデバイス、例えば、ＥＰＲＯＭ、ＥＥＰＲＯＭ、及びフラッシュメモリデバイス；磁気ディスク、例えば、内部ハードディスクやリムーバブルディスク；光磁気ディスク；及びＣＤ  ＲＯＭやＤＶＤ−ＲＯＭのディスクが挙げられる。プロセッサ及びメモリは、特定目的論理回路構成によって強化されているか又はその様な回路構成を組み入れていてもよい。
【００６２】
ユーザーとの対話を提供するために、本明細書に記載されている発明の実施形態は、ユーザーに情報を表示するためのディスプレイ、例えば、ＣＲＴ（ブラウン管）又はＬＣＤ（液晶ディスプレイ）モニタと、ユーザーがコンピュータに入力を提供できるようにするキーボード及びポインティングデバイス、例えば、マウスやトラックボールと、を有するデバイス上に実装することができる。ユーザーとの対話を提供するのに他の種類のデバイスを使用することもでき、例えば、ユーザーに提供されるフィードバックは何らかの形式の感覚フィードバック、例えば、視覚フィードバック、聴覚フィードバック、又は触覚フィードバックとすることもできるし、ユーザーからの入力は、音響入力、発話入力、又は接触入力を含め如何なる形式で受信されるものであってもよい。
【００６３】
本明細書に記載されている発明の実施形態は、例えばデータサーバの様なバックエンド構成要素を含む演算システムに、或いは、例えばアプリケーションサーバの様なミドルウェア構成要素を含む演算システムに、或いは、例えばユーザーが本明細書に記載されている主題の実装と対話できるようにするグラフィカルユーザーインターフェース又はウェブブラウザを有するクライアントコンピュータの様なフロントエンド構成要素を含む演算システムに、或いは、１つ又はそれ以上のその様なバックエンド、ミドルウェア、又はフロントエンドの構成要素の何らかの組合せを含む演算システムに、実装することができる。システムの構成要素は、デジタルデータ通信の如何なる形態又は如何なる媒体によって相互接続されていてもよく、例えば通信ネットワークによって相互接続されていてもよい。通信ネットワークの例には、ローカルエリアネットワーク（「ＬＡＮ」）、及びワイドエリアネットワーク（「ＷＡＮ」）、例えば、インターネットが挙げられる。
【００６４】
演算システムには、クライアントとサーバが含まれ得る。クライアントとサーバは、概して、互いから遠隔に在り、典型的には、通信ネットワークを通して対話する。クライアントとサーバの関係は、それぞれのコンピュータ上で実行されていて互いに対するクライアント−サーバ関係を有しているコンピュータプログラムに基づいて生じる。
【００６５】
本明細書は、多くの詳細事項を含んでいるが、それらは、本発明或いは特許請求され得るものの範囲に対する限定ではなしに、むしろ、本発明の特定の実施形態に特有の特徴の記述と解釈されるべきである。本明細書に別々の実施形態に関連して説明されている一部の特定の特徴を、組合せで単一の実施形態に実装することもできる。反対に、単一の実施形態に関連して説明されている様々な特徴を、別々に或いは何らかの適した副次的組合せで複数の実施形態に実装することもできる。また、以上には、特徴は一部の特定の組合せで役割を果たすものとして説明されていたり、更には冒頭にその様に主張されていることがあったとしても、主張されている組合せからの１つ又はそれ以上の特徴は、場合によっては、当該組合せから省略されることもあり得るし、主張されている組合せが、副次的組合せ又は副次的組合せの変型に向けられることもあり得る。
【００６６】
同様に、オペレーションは、図面中に特定の順序で描かれているが、それについては、所望の結果を実現するために、その様なオペレーションが図示されている特定の順序又は逐次順序で遂行されるべきであるとか又は例示されている全てのオペレーションが遂行されるべきであることを要求しているものと理解されてはならない。一部の特定の状況では、多重タスク処理又は並列処理が好都合なこともあるかもしれない。また、以上に記載されている実施形態の様々なシステム構成要素の分離は、どの実施形態でもその様な分離が要求されていると理解されてはならず、記載のプログラム構成要素及びシステムは、単一のソフトウェア製品として一体化させることもできるし、複数のソフトウェア製品にパッケージ化することもできるものと理解されるべきである。
【００６７】
以上、本発明の特定の実施形態を説明してきた。他にも、次に続く特許請求の範囲に入る実施形態はある。例えば、特許請求の範囲に述べられているアクションは、異なった順序で遂行されても、なお所望の成果を実現することができよう。
【符号の説明】
【００６８】
２００  ベクトル空間
３００  電子商取引システム
３０１  端末
３０３  突き合わせエンジン
３０５  報告デバイス
３０７  市場データサーバ
３０９  ローカルエリアネットワーク（ＬＡＮ）
４０１  突き合わせエンジンプロセッサ
４０３  候補リスト生成部
４０５  通信インターフェース
４０７  注文提出インターフェース
４０９  データベース
４１１  比較部
４１３  インプライド注文生成部
４１５  通信バス
【図１】
0005957381.tif 000002
【図２】
0005957381.tif 000003
【図３】
0005957381.tif 000004
【図４】
0005957381.tif 000005
【図５】
0005957381.tif 000006
【図６】
0005957381.tif 000007
【図７】
0005957381.tif 000008