(57)【特許請求の範囲】
【請求項１】
取引可能オブジェクトに関する市場情報を配信する方法であって、
コンピュータにより、取引可能オブジェクトに関する市場情報を受信するステップ、ここで、市場情報は、ビッド注文又はアスク注文が存在する複数の価格レベルと、各価格レベルに係属中である注文量とを含む、
コンピュータにより、複数の価格レベルの中に、線形特性を有する価格レベルおよび非線形特性を有する価格レベルが含まれることを決定するステップ、ここで、非線形特性を有する価格レベルとは、前の価格レベルから１チックより大きい値で増加しているレベルを言う、
コンピュータにより、複数の価格レベルの中から基準価格レベルを選択するステップ、
コンピュータにより、価格を提示する価格提示メッセージを生成するステップ、ここで、価格提示メッセージには、基準価格レベルと、アスク注文量の数と、ビッド注文量の数と、複数のフィールドとを含み、各フィールドは、価格レベルが線形特性か非線形特性のいずれの特性を有するかを示すインジケータを有すると共に、複数の価格レベルのそれぞれについて係属中である注文量を有し、更にここで、基準価格レベル以外の線形特性を有する価格レベルは、価格提示メッセージには含まれないことを特徴とし、
コンピュータにより、受信端末に価格提示メッセージを送信するステップ、
を含む、方法。
【請求項２】
市場情報は、最新の最高ビッド価格レベルおよび最新の最低アスク価格レベルを有する内部市場を含み、
更に、コンピュータにより、最新の最高ビッド価格レベル又は最新の最低アスク価格レベルを、基準価格レベルとして使用するステップ、
を含む、請求項１に記載の方法。
【請求項３】
価格提示メッセージにおいて、複数の価格レベルのそれぞれに対する注文量は、一つ又は複数の注文量を総計した注文量か、一つ又は複数の注文量を個別に提供する、請求項１に記載の方法。
【請求項４】
更に、コンピュータにより、価格提示メッセージにおける複数のフィールドに、複数のマッピングインジケータを提供するステップ、ここで、マッピングインジケータは、基準価格レベルおよび非線形特性を有する価格レベルを示す、
を含む、請求項１に記載の方法。
【請求項５】
複数のマッピングインジケータは、複数のビットフィールドを有するビットマップを含み、各インジケータは、１ビットのインジケータである、請求項４に記載の方法。
【請求項６】
更に、コンピュータにより、価格提示メッセージにビットマップを提供するステップ、ここで、ビットマップを使用して、複数の価格レベルのうちのどの価格レベルが、基準価格レベルであるか又は非線形特性を有する価格レベルであるかが決定される、
を含む、請求項１に記載の方法。
【請求項７】
更に、コンピュータにより、所定の圧縮アルゴリズムを使用して、価格提示メッセージに含まれる注文量を圧縮するステップ、
を含む、請求項１に記載の方法。
【請求項８】
更に、コンピュータにより、複数の価格レベルのうちのある価格レベルに係属中である注文量を少なくとも１バイトで表現するステップ、
コンピュータにより、前記少なくとも１バイトのうちの第１のバイトの中の少なくとも１ビットを使用して、前記注文量を表すために何バイト使用されているかを表現するステップ、
を含む、請求項７に記載の方法。
【請求項９】
更に、コンピュータにより、所定の圧縮アルゴリズムを使用して、価格提示メッセージに含まれる非線形特性を有する価格レベルを圧縮するステップ、
を含む、請求項１に記載の方法。
【請求項１０】
圧縮アルゴリズムは、整数圧縮アルゴリズムを含む、請求項９に記載の方法。
【請求項１１】
更に、コンピュータにより、所定の圧縮アルゴリズムを使用して、価格提示メッセージに含まれる基準価格レベルを圧縮するステップ、
を含む、請求項１に記載の方法。
【請求項１２】
更に、コンピュータにより、複数の価格レベルのいずれか一つに対する複数の注文量の少なくとも一つに対するオフセット値を特定するステップ、ここで、オフセット値は、価格を提示する前回のメッセージで提示された複数の価格レベルの一つに対する注文量と比べ、少なくとも一つの注文量の変化を特定したものである、
を含む、請求項１に記載の方法。
【請求項１３】
受信端末は、ゲートウェイを含む、請求項１に記載の方法。
【請求項１４】
受信端末は、クライアント端末を含む、請求項１に記載の方法。
【請求項１５】
価格提示メッセージは、電子取引所において生成される、請求項１に記載の方法。
【請求項１６】
価格提示メッセージは、ゲートウェイにおいて生成される、請求項１に記載の方法。
【請求項１７】
インジケータは、１ビットインジケータを含む、請求項１に記載の方法。
【請求項１８】
コンピュータに請求項１に記載の方法を実行させるためのプログラムを記録したコンピ
ュータ可読記録媒体。
【請求項１９】
コンピュータに請求項１に記載の方法を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子商取引に関する。さらに具体的には、本発明は、電子商取引環境において優れた価格提示（ｐｒｉｃｅ  ｆｅｅｄ）を提供するためのツールに関する。
【背景技術】
【０００２】
電子商取引は、通常は、ホスト取引所、１つ以上のコンピュータネットワーク、およびクライアント装置に基づいている。登録トレーダが、登録トレーダと取引所との間のリアルタイムの電子メッセージングを促進すべく、通信リンクによって取引所の電子商取引プラットフォームへと接続される。電子商取引プラットフォームは、取引システムの中心に位置する少なくとも１つの電子市場を含んでおり、この電子市場が、この市場においてトレーダらが提示する買い値および売り値のマッチングを取り扱う。電子メッセージングは、電子的なデータ提示によって電子市場からトレーダへと配布される市場情報を含んでいる。ひとたびトレーダが市場情報を受信すると、それをトレーダの取引画面においてトレーダへと表示することができる。情報を閲覧したトレーダは、電子市場への売買注文の送信、既存の注文の調節、注文の削除、または注文のその他の処理など、特定の行為をとることができる。また、トレーダは、これらの行為およびその他の行為を自動化するためのソフトウェアツールを自身のクライアント装置上で使用することもできる。
【０００３】
電子取引所によって発行される市場情報の種類は、市場ごとにさまざまでありうるが、一般に、いくつかの標準的な情報が存在する。市場情報は、インサイドマーケット（ｉｎｓｉｄｅ  ｍａｒｋｅｔ）のみを表わすデータを含むことができる。インサイドマーケットは、特定の時点において、特定の取引対象物について、市場において利用可能な最低の売り値（ベストアスク）および最高の買い値（ベストビッド）である。さらに、市場情報は、マーケットデプス（ｍａｒｋｅｔ  ｄｅｐｔｈ）を含むことができる。マーケットデプスは、インサイドマーケットにて入手できる数量を指し、インサイドマーケットから離れた他の価格で入手できる数量も指すことができる。注文価格および数量の情報などといったオーダーブック情報の提供に加え、電子取引所は、公開価格、決済価格、純変化、売買高、最終取引価格、最終取引量、および注文処理情報など、他の種類の市場情報を提供することができる。
【０００４】
電子取引所および／またはゲートウェイなどの仲介の装置は、データ集約的かつ高速応答の市場データの供給をもたらすために、市場情報の量および適時性をネットワークの帯域幅の限界および信頼性とバランスさせることに、苦慮することが多い。一方では、特には市場における変化が高速で生じている場合に、所与の市場の特徴を適切に表わすために、莫大な量の市場情報が、電子市場によって生成される可能性がある。多くの場合、トレーダは、より多くの情報に基づいて取引を行うことができるよう、可能な限り多くの情報にアクセスすることを希望する。他方で、トレーダへと渡される市場情報の量についての制約は、トレーダを電子市場へと接続する物理的なネットワークの設計に内在することが多い。
【０００５】
通常は、電子市場がクライアント装置へと市場情報を配信する方法について、２つのモデルが存在する。さらに、それら２つのモデルのわずかな変形が使用されることもある。
【０００６】
第１のモデルは、マーケットデプスを配信するために最も一般的に使用されているが、差分ベースのモデルである。差分ベースのモデルは、オーダーブックにおいてインサイドマーケットまたはマーケットデプスが変化するたびに、増分更新を送信することを含む。差分ベースのデータ配信環境においては、クライアント端末が、最初に、それぞれの価格レベルおよびそれらの価格レベルに係属中の数量を記述する現在の市場状況のスナップショットを受信する。或る価格レベルの数量が増加するなど、市場における変化が検出されると、市場更新がクライアント端末へと送信され、数量の増加変化を知らせる。
【０００７】
多数の既存のネットワークが、差分ベースの価格データをクライアント端末へと配信するためにマルチキャストを使用している。当技術分野において周知のとおり、マルチキャストは、ただ１つのストリームにて同時に多数の受信者へと情報を配信することを指す。しかしながら、マルチキャストによる差分ベースのデータの送信は、すべてのパケットがクライアント端末において受信されることを保証するために、アプリケーションレベルの信頼性の実現が必要である。クライアント端末は、受信される各更新に含まれる続き番号などに基づき、欠けている更新を検出すると、次の更新において情報を正しく使用するために欠けている更新を再要求し、結果として遅延が持ち込まれ、処理のオーバヘッドにつながる。マルチキャストを使用するネットワークの信頼性問題を克服するために、価格データを、各クライアント端末について生成されるポイント・トゥ・ポイント・ネットワーク接続によって送信することができる。しかしながら、多数のクライアント端末を含んでいる取引環境においてポイント・トゥ・ポイント接続を使用することは、価格サーバが各更新を対象の各クライアント端末へと別個に送信しなければならず、結果として、帯域幅が効率的に使用されない結果となり、サーバにおける遅延を生じる。
【０００８】
しばしば使用される第２のデータ配送モデルは、時間ベースの間隔またはイベントベースの間隔など、予めプログラムされた間隔でスナップショット更新を送信することを含む。スナップショット更新は、インサイドマーケットおよびマーケットデプスなどの市場情報を含んでいるメッセージであり、実際の価格および各価格に関して挙げられた数量が更新に含まれる。デプス全体のスナップショットを送信することは、歴史的に、帯域幅の考慮およびパケットサイズゆえに、非現実的と考えられてきた。
【０００９】
したがって、より動的なやり方での市場情報の通信に容易に適合させることができる優れたデータ配布のための方法およびシステムを提供することが、有益であると考えられる。
【図面の簡単な説明】
【００１０】
いくつかの例示的な実施形態が、本明細書において、以下の図面を参照して説明される。
【００１１】
【図１】クライアント端末およびゲートウェイ装置がローカル・エリア・ネットワーク上にある例示的な電子商取引システムを説明するブロック図である。
【図２】１つの例示的な実施形態による新規かつ優れた価格提示を配信するための例示的なシステムを説明するブロック図である。
【図３】１つの例示的な実施形態に従って価格および数量データを送信するために使用されるメッセージの例示的なフォーマットを説明するブロック図である。
【図４Ａ】例示的な１レベルのマーケットデプス、およびこの例示的なデプスについて生成されるメッセージのフォーマットを示している。
【図４Ｂ】例示的な１レベルのマーケットデプス、およびこの例示的なデプスについて生成されるメッセージのフォーマットを示している。
【図５Ａ】例示的なマーケットデプス、および本明細書に記載の例示的な実施形態に従って複数レベルのマーケットデプスを伝達するために生成されるメッセージを示している。
【図５Ｂ】例示的なマーケットデプス、および本明細書に記載の例示的な実施形態に従って複数レベルのマーケットデプスを伝達するために生成されるメッセージを示している。
【図６Ａ】非線形市場の例示的なマーケットデプス、およびそのような市場について生成される例示的な市場更新メッセージを示している。
【図６Ｂ】非線形市場の例示的なマーケットデプス、およびそのような市場について生成される例示的な市場更新メッセージを示している。
【図７】１つの例示的な実施形態に従って価格および数量データを送信するために使用することができる別のメッセージのフォーマットを説明するブロック図である。
【図８】例示的なマーケットデプス、および図７のメッセージブロックのフォーマットを使用して複数レベルの市場データを伝達するために使用されるメッセージブロックを示している。
【図９】別の例示的なマーケットデプスを、図７のメッセージブロックのフォーマットを使用して該例示の市場データを伝達するために使用されるメッセージブロックとともに示している。
【図１０】例示的な詳細マーケットデプスを、図７のメッセージブロックのフォーマットを使用して該例示の詳細マーケットデプスを伝達するために使用されるメッセージブロックとともに示している。
【図１１Ａ】非線形市場の例示的なマーケットデプス、およびそのような市場について図３のメッセージフォーマットを用いて差分配信法を使用して生成される例示的な市場更新メッセージを示している。
【図１１Ｂ】非線形市場の例示的なマーケットデプス、およびそのような市場について図３のメッセージフォーマットを用いて差分配信法を使用して生成される例示的な市場更新メッセージを示している。
【図１２】商取引データをクライアント端末へと送信するために使用される例示的なメッセージを説明するブロック図である。
【図１３】セッションデータをクライアント端末へと送信するために使用される例示的なメッセージを説明するブロック図である。
【発明の概要】
【００１２】
本明細書に記載される例示的な実施形態によれば、電子商取引環境において市場データを提供するためにシステムおよび方法が提供される。本発明および本発明の態様を説明するために、図面および詳細な説明を含む以下の説明においては、当業者が本明細書において説明および請求される教示からの利益に浴するシステムまたは方法を生み出すために利用でき、あるいは容易に改変できる例が提示される。
【００１３】
１つの例示的な方法によれば、複数の価格レベルおよび複数の注文数量を含んでいる市場情報が、取引対象物について受信される。市場情報が受信されると、前記複数の価格レベルが線形であるか否かが判断される。前記複数の価格レベルが線形である場合、基準価格レベルが選択され、価格提示メッセージが、前記基準価格レベルを前記複数の注文数量とともに含むように生成される。次いで、この価格提示メッセージが、クライアント端末へと送信される。前記複数の価格レベルが非線形な価格レベルを含んでいる場合には、価格提示メッセージは、非線形な価格レベルをさらに含む。加えて、価格提示メッセージは、価格提示メッセージに価格レベルが含まれているマーケットデプスのレベルを知らせるための複数の位置付けインジケータを含むことができる。
【００１４】
本発明の他の特徴が、以下の説明および特許請求の範囲から、本発明に関する分野の当業者にとってさらに明らかになるであろう。
【発明を実施するための形態】
【００１５】
本発明は、新規な市場データの提示の生成および提供に関し、またはより具体的には、とりわけ処理、帯域幅、および信頼性の問題を軽減することができる価格データの提示に関する。本発明は、電子商取引のネットワーク環境に適用されるが、他のネットワーク環境にも同様に適用可能である。商取引のネットワーク環境は、価格データなどの時間依存性のデータを受信コンピュータへと配布する環境である。本明細書は、価格の配信に着目するが、例示的な実施形態は、他のデータの配信にも同様に適用可能である。本発明の態様を説明するために、システムおよび方法が、本明細書において参照される図面を使用して実施例の形態で説明される。しかしながら、そのような実施例を、本明細書に記載される教示を使用して迅速かつ容易に変更できることを、当業者であれば理解できるであろう。本発明の態様は、添付の特許請求の範囲によって保護される。特許明細書からの限定事項を、明示的に述べられている場合または本質的に明らかである場合を除き、特許請求の範囲へと不適切に組み入れてはならない。
【００１６】
Ｉ．  例示的な商取引システムの構成
図１が、例示的な実施形態を採用することができる例示的な電子商取引システム１００を示している。この例示的なシステム１００は、ゲートウェイ１０６を介して電子取引所１０８にアクセスする商取引ステーション１０２Ａ〜Ｂを備えている。図１に示されるとおり、商取引ステーション１０２Ａ〜Ｂならびにゲートウェイ１０６が、ローカルＬＡＮ１０４内に位置しているが、リモートネットワーク構成環境のリモートホストを介してゲートウェイ１０６と通信する商取引ステーション１０２Ａ〜Ｂなど、他の構成も可能である。図示はされていないが、ゲートウェイ１０６と電子取引所１０８との間でメッセージを送るために、ルータを使用することが可能である。電子取引所１０８は、商取引ステーション１０２Ａ〜Ｂから送信された売買注文を別の商取引ステーション（図示せず）からの注文にマッチさせるコンピュータプロセス（例えば、中央コンピュータ）を含んでいる。電子取引所１０８は、１つ以上の取引対象物を取引のために列挙することができる。分かりやすくするため図１には示されていないが、商取引システムは、当業者であれば理解できるとおり、ミドルウェアやファイアウォール、ハブ、セキュリティマネージャ、などといったセキュリティ手段など、クライアントサイトに特有の他の装置を含んでもよい。
【００１７】
使用される注文実行アルゴリズムの種類にかかわらず、電子取引所１０８は、登録商取引ステーション１０２Ａ〜Ｂへと市場情報を提供する。市場情報は、１つ以上の取引対象物の価格データを含む。価格データは、取引対象物について現在利用できる最高の買い値および最低の売り値であるインサイドマーケット、最終取引価格、および市場に品物が係属中である他の価格を含むことができる。価格データは、他の対象項目を含んでもよく、あるいは特定の情報のみを含んでもよい。本明細書においては、例示的な実施形態を、価格データを配布するものとして説明するが、他の種類の情報も、電子商取引環境において配布することができる。
【００１８】
商取引ステーション１０２Ａ〜Ｂとして使用されるコンピュータは、一般に、携帯デバイス、ラップトップ、またはパーソナルコンピュータから、ワークステーションおよびマルチプロセッサなどのより大型のコンピュータまでさまざまである。例示のパーソナルコンピュータは、Ｐｅｎｔｉｕｍ（商標）マイクロプロセッサを使用することができ、Ｗｉｎｄｏｗｓオペレーティングシステムのもとで動作することができ、あるいは他の何らかのマイクロプロセッサまたはオペレーティングシステムを使用することができる。一般に、商取引ステーション１０２Ａ〜Ｂは、モニタ（または、他の任意の出力装置）および入力装置（キーボードおよび／または所望であればクリックによる商取引に対応するための２または３ボタンのマウスなど）を備えている。コンピュータシステムの当業者であれば、この例示の実施形態が、商取引ステーション１０２Ａ〜Ｂに採用されるコンピュータのいかなる特定の種類または型式にも限定されないことを理解でき、適切なシステムを選択することができるであろう。
【００１９】
１つの例示的な実施形態においては、商取引ステーション１０２Ａ〜Ｂが、商取引ステーション１０２Ａ〜Ｂに組み合わせられた端末上に専用のインタラクティブな商取引画面を生成するためにソフトウェアを使用する。商取引画面は、好ましくは、トレーダが、とりわけ注文の入力および実行、市場の相場の入手、ならびに状況の監視を行うことができるようにする。トレーダが自身の商取引画面において入手することができる内容の範囲および質は、実行される特定のソフトウェアアプリケーションに応じてさまざまであってよい。インタラクティブな商取引画面に加え、あるいはインタラクティブな商取引画面に代えて、商取引ステーションが、自動化された種類の商取引アプリケーションを動作させてもよい。
【００２０】
例示的な実施形態を、任意の種類の商取引画面に関して実現することができるため、商取引画面に関する詳細は、必ずしも本発明を理解するために必要ではない。しかしながら、一実施形態においては、使用可能な商取引画面の１つの種類が、イリノイ州シカゴのＴｒａｄｉｎｇ  Ｔｅｃｈｎｏｌｏｇｉｅｓ  Ｉｎｔｅｒｎａｔｉｏｎａｌ，  Ｉｎｃ．のＸ＿ＴＲＡＤＥＲ（登録商標）という市販の商取引アプリケーションによってもたらされる。さらに、Ｘ＿ＴＲＡＤＥＲ（登録商標）は、係属中の注文ならびに／あるいは買いおよび売りの数量を固定の価格軸または目盛りに関連付けて表示するＭＤ  Ｔｒａｄｅｒ（商標）という電子商取引インターフェイスも提供する。
【００２１】
Ｘ＿ＴＲＡＤＥＲ（登録商標）の各部およびＭＤ  Ｔｒａｄｅｒ（商標）様式の表示が、２０００年６月９日付けの「Ｃｌｉｃｋ  Ｂａｓｅｄ  Ｔｒａｄｉｎｇ  Ｗｉｔｈ  Ｉｎｔｕｉｔｉｖｅ  Ｇｒｉｄ  Ｄｉｓｐｌａｙ  ｏｆ  Ｍａｒｋｅｔ  Ｄｅｐｔｈ」という名称の米国特許第６，７７２，１３２号、２０００年６月９日付けの「Ｃｌｉｃｋ  Ｂａｓｅｄ  Ｔｒａｄｉｎｇ  ｗｉｔｈ  Ｍａｒｋｅｔ  Ｄｅｐｔｈ  Ｄｉｓｐｌａｙ」という名称の米国特許第６，９３８，０１１号、２００１年１０月５日付けの「Ｃｌｉｃｋ  Ｂａｓｅｄ  Ｔｒａｄｉｎｇ  Ｗｉｔｈ  Ｉｎｔｕｉｔｉｖｅ  Ｇｒｉｄ  Ｄｉｓｐｌａｙ  ｏｆ  Ｍａｒｋｅｔ  Ｄｅｐｔｈ  ａｎｄ  Ｐｒｉｃｅ  Ｃｏｎｓｏｌｉｄａｔｉｏｎ」という名称の米国特許第７，１２７，４２４号、２００２年４月１９日付けの「Ｔｒａｄｉｎｇ  Ｔｏｏｌｓ  Ｆｏｒ  Ｅｌｅｃｔｒｏｎｉｃ  Ｔｒａｄｉｎｇ」という名称の米国特許出願第１０／１２５，８９４号、および２００３年２月２８日付けの「Ａ  Ｓｙｓｔｅｍ  ａｎｄ  Ｍｅｔｈｏｄ  ｆｏｒ  Ｔｒａｄｉｎｇ  ａｎｄ  Ｄｉｓｐｌａｙｉｎｇ  Ｍａｒｋｅｔ  Ｉｎｆｏｒｍａｔｉｏｎ  ｉｎ  ａｎ  Ｅｌｅｃｔｒｏｎｉｃ  Ｔｒａｄｉｎｇ  Ｅｎｖｉｒｏｎｍｅｎｔ」という名称の米国特許出願第１０／３７６，４１７号に記載されており、これらのそれぞれの内容が、参照によって本明細書に援用される。しかしながら、図１および図２に示したシステムにおける注文を、他の任意の商取引アプリケーションを用いても同様に行うことができることを、理解すべきである。さらに、好ましい実施形態は、変換、保存、および表示の機能を実行するいかなる特定の製品にも限定されない。
【００２２】
ゲートウェイ１０６として使用されるコンピュータは、通常は、パーソナルコンピュータからより大型またはより高速なコンピュータまでさまざまである。例示のゲートウェイコンピュータは、Ｐｅｎｔｉｕｍ（商標）マイクロプロセッサを使用することができ、Ｗｉｎｄｏｗｓ（サーバまたはワークステーション）オペレーティングシステムまたは他の何らかのシステムのもとで動作することができる。一般に、ゲートウェイ１０６は、所望であれば、モニタ（または、他の任意の出力装置）、入力装置、およびデータベースへのアクセスをさらに備えている。コンピュータシステムの当業者であれば、この例示の実施形態が、ゲートウェイ１０６に採用されるコンピュータのいかなる特定の種類または型式にも限定されないことを理解でき、適切なシステムを選択することができるであろう。さらに、いくつかの場合においては、ゲートウェイ１０６などのゲートウェイが不要である可能性もあり、さらには／あるいは他の種類のネットワーク中継デバイスを使用することができる。
【００２３】
ここで商取引ステーションまたはゲートウェイとして使用されるコンピュータシステムが、一般に、中央演算処理装置、メモリ（一次および／または二次メモリユニット）、通信ネットワークからデータを受け取るための入力インターフェイス、１つ以上の入力装置（例えば、キーボード、マウス、など）から入力信号を受け取るための入力インターフェイス、および出力装置（例えば、モニタ）との通信のための出力インターフェイスを備えることに、注意すべきである。システムバスまたは同等のシステムが、これら種々の構成要素間の通信をもたらすことができる。
【００２４】
ゲートウェイ１０６または商取引ステーション１０２のメモリが、コンピュータ可読媒体を含んでいる。コンピュータ可読媒体という用語は、本明細書において使用されるとき、実行のためのプロセッサユニットへのインストラクションの提供に関与する任意の媒体を指す。そのような媒体は、これらに限られるわけではないが不揮発媒体および伝送媒体など、多数の形態をとることができる。不揮発媒体として、例えば、ストレージ装置などの光または磁気ディスクが挙げられる。揮発媒体として、例えばメインメモリまたはランダム・アクセス・メモリ（「ＲＡＭ」）などのダイナミックメモリが挙げられる。コンピュータにとって読み取り可能な媒体の一般的な形態として、例えばフロッピーディスク、フレキシブルディスク、ハードディスク、磁気テープ、パンチカード、ＣＤ−ＲＯＭ、他の任意の物理的な媒体、メモリチップまたはカートリッジ、あるいはコンピュータによる読み出しの対象となりうる他の任意の媒体が挙げられる。
【００２５】
また、商取引ステーション１０２Ａ〜Ｂが、通常は、商取引ステーションのオペレーティングシステムの制御のもとで商取引ステーション１０２Ａ〜Ｂに常駐するアプリケーションプログラムを実行することに、注意すべきである。また、ゲートウェイ１０６も、ゲートウェイ１０６のオペレーティングシステムの制御のもとでゲートウェイ１０６に常駐するアプリケーションプログラムを実行する。他の実施形態においては、当業者であれば理解できるとおり、商取引ステーション１０２Ａ〜Ｂにおけるアプリケーションプログラムの機能を、ゲートウェイ１０６によって実行してもよく、同様に、ゲートウェイ１０６におけるアプリケーションプログラムの機能を、商取引ステーション１０２Ａ〜Ｂによって実行してもよい。
【００２６】
実際の電子商取引システムの構成は、非常にたくさんあり、電子商取引システムの当業者であれば、適切なネットワークの構成を構築できるであろう。例示の目的で、いくつかの典型的な構成を提示し、各構成要素を物理的にどこに位置させることができるか、および各構成要素を電子商取引システムを形成するためにどのように接続できるかを説明する。これらの例示は、読者を手助けしようとするものであって、本発明を限定しようとするものではない。一例によれば、ゲートウェイ装置が、商取引ステーションとともにクライアントの場所に位置することができ、そのような場所は、通常は電子取引所におけるマッチングプロセスから離れている。別の例によれば、ゲートウェイ装置を、取引所側に位置させることができる。このように、本発明は、いかなる実際のネットワークの構成にも限定されない。
【００２７】
例示の実施形態によれば、商取引ステーション１０２Ａ〜Ｂ、ゲートウェイ１０６、および任意のルータが、ＬＡＮ１０４を介して通信し、ゲートウェイ１０６が、Ｔ１、Ｔ３、ＩＳＤＮ、または他の何らかの高速接続を介して、電子取引所１０８におけるマッチングプロセスと通信できる。別の典型的な例では、クライアントの場所が、電子取引所の実際の敷地（例えば、取引所の建物内）に位置してもよい。この場合には、商取引ステーションおよびゲートウェイが、依然としてＬＡＮを介して通信することができるが、ルータが使用される場合には、Ｔ１、Ｔ３、またはＩＳＤＮ以外の別の接続手段によって電子取引所のマッチングプロセスと通信することができる。さらに別の典型的な例では、ゲートウェイを、対応する電子取引所またはその付近に収容することができる。この場合には、商取引ステーションは、広域ネットワークを介してゲートウェイと通信でき、あるいはＴ１、Ｔ３、ＩＳＤＮ、または他の何らかの高速接続を使用することによってゲートウェイと通信できる。
【００２８】
図１には、取引所が１つだけ示されているが、トレーダが、複数の電子取引所にアクセスして取引を行ってもよいことを、理解できるであろう。そのような実施形態においては、クライアント端末が、特定の取引所に合わせてそれぞれ設計された複数のゲートウェイを介して、複数の取引所にアクセスできる。あるいは、ただ１つのゲートウェイを、２つ以上の電子取引所を担当するようにプログラムすることができる。
【００２９】
トレーダに、異なる電子取引所に挙げられた取引対象物を取引する機会をもたらすことが、きわめて有益であり得る。例えば、トレーダは、１つの共通の視覚表示によって、それぞれの取引対象物からの市場情報を閲覧することができる。すなわち、２つの別個の取引所からの価格および数量の情報を、トレーダが両方の市場を同じウインドウで同時に閲覧できるよう、まとめて提示することができる。別の例では、トレーダが、異なる電子取引所に挙げられた異なる取引対象物をスプレッド取引することができる。しかしながら、本発明はそれらに限定されない。
【００３０】
ＩＩ．  例示的なシステムの構成
図２が、１つの例示的な実施形態による新規かつ優れた価格提示を配信するための例示的なシステム２００を説明するブロック図である。例示的なシステム２００は、価格データ２０４を価格提示サーバ２０６へと供給する取引所２０２を含んでいる。価格提示サーバ２０６は、受信した価格データ２０４を処理し、さらに詳しく後述される新規かつ優れた価格提示２０８を生成する。次いで、価格提示２０８が、クライアント端末２１０へと供給される。
【００３１】
具体的には示されていないが、価格提示サーバ２０６が取引所２０２に位置してもよいことを、理解すべきである。代案として、価格提示サーバ２０６が、ゲートウェイに位置してもよい。さらなる代案として、価格提示サーバ２０６は、取引所２０２およびゲートウェイと通信する独立した存在であってもよい。さらには、説明の目的のためにクライアント端末が１つだけ示されているが、価格提示サーバ２０６が、マルチキャストや現時点において公知または後に開発される何らかの他の通信方法によって、複数のクライアント端末へと価格提示２０８を伝えてもよいことを、理解すべきである。
【００３２】
ＩＩＩ．  例示的な価格データ提示の生成
既存の価格提示方法は、多数の限界を抱えており、最も頻繁に使用される差分ベースの市場データの提示は、高速で変化する市場において、不必要なメモリ、帯域幅、および演算リソースの消費を招く結果となる高度なネットワークの信頼性を必要とする。ここに提案される新規な価格提示は、いくつかの利点の中でもとりわけ、これらの問題を解決する。
【００３３】
例示的な取引対象物のデプスの価格は、連続する価格の間に許される最小の価格刻みに対応するチックサイズ（ｔｉｃｋ  ｓｉｚｅ）によって互いに関係している。高速で変化する大規模の市場においては、価格が、通常は、市場における価格の相対位置の間に線形関係を有している。換言すると、多くの場合、デプスの価格は、隣の価格レベルの価格から１チックだけ離れている。例えば、１０というチックサイズを有している一式の買い値｛５０，４０，３０，２０，１０｝、およびやはり１０というチックサイズを有している一式の売り値｛６０，７０，８０，９０，１００，１１０｝は、すべての価格がチック１つ分のオフセットにあるため、線形関係を有している。本明細書に記載される例示的な価格提示の態様は、この価格レベルの線形属性を利用することで、ただ１つの基準価格レベルだけを複数の数量値とともに提示し、他の価格を、価格更新において指定されるそれぞれの数量について、基準価格に対する各価格の相対位置に基づいて導出する。
【００３４】
市場は線形になる傾向にあるが、例えば買い側または売り側の価格一式が｛６０，７０，９０，１００，１１０｝である場合など、非線形性に直面する場合もありうる。この例における市場を、２番目の価格レベル「７０」および３番目の価格レベル「９０」がチック２つ分だけ離れているなど、すべての価格レベルがチック１つ分のオフセットにあるというわけではないため、非線形であると考えることができる。新規な価格提示のための例示的な実施形態によれば、基準価格レベルの提示に加えて、非線形性を伴っている価格が、価格更新メッセージにおいて送信される。線形または非線型な市場において、価格更新メッセージにおいてくつかの価格レベルを送信する必要がなくなることで、高度に効率的な圧縮された価格提示がもたらされる一方で、クライアント端末における圧縮された更新の処理に、既知の値の加算および減算の操作が必要である。
【００３５】
以下の例は、例示的な実施形態によるいくつかの価格提示メッセージを説明する。以下の例の大部分は、各価格レベルにおける総計の数量値を提供するためのメッセージフォーマットを説明する。しかしながら、システムが或る価格レベルに係属しているそれぞれの注文に対応する個々の数量値を提供するように構成されている場合には、各価格レベルに対して２つ以上の数量値を定めることができることを、理解すべきである。各価格レベルにおける詳細な数量値を提供するためのメッセージフォーマットも、同様に説明される。
【００３６】
図３は、１つの例示的な実施形態に従って価格および総計の数量データを送信するために使用されるメッセージ３００の例示的なフォーマットを説明するブロック図である。
【００３７】
例示的なメッセージ３００は、いくつかのパケット・ヘッダ・フィールドを含んでいる。パケット・ヘッダ・フィールドとして、バージョンフィールド３０２、ブロック識別子フィールド３０４、スナップショット識別子フィールド３０６、サイズフィールド３０８、続き番号「ｓｑｎ」フィールド３１０、およびフィルタ・キー・フィールド３１２が挙げられる。バージョンフィールド３０２は、メッセージ３００を生成するために使用されたプロトコル・バージョン識別子を定めている。プロトコル・バージョン識別子を、メッセージ３００を受け取ったクライアント端末において、メッセージを当該メッセージの生成に用いられたプロトコルの特定のバージョンを使用してデコードするために使用することができる。ブロック識別子フィールド３０４は、数量、価格、または他のデータブロックがメッセージに含まれているか否かを定めている。スナップショット識別子フィールド３０６は、メッセージにおいてスナップショットデータ配信が使用されているか否かを定めている。スナップショット識別子フィールド３０６が設定されない場合、異なる種類の市場配信を同様に使用することができる。例示的な実施形態は、スナップショットベースの市場データの配信モデルに着目しているが、メッセージ３００が、差分配信モデル、スナップショットおよび差分配信モデルの組み合わせ、あるいはさらに他の何らかのモデルなど、他の市場配信の種類を定める追加のフィールドを含んでもよいことを、理解すべきである。
【００３８】
再びメッセージ３００を参照すると、サイズフィールド３０８が、メッセージのサイズをバイトを単位にして定めている。１つの例示的な実施形態によれば、例えば１０２４バイトなど、最大パケットサイズを定めることができる。続き番号フィールド３１０は、メッセージがクライアント端末へと送信されるたびに増やされるカウンタ値を特定している。メッセージ３００において特定される増加するカウンタ値を、クライアント端末においてパケットの喪失を検出するために使用することができる。１つの例示的な実施形態によれば、パケットの喪失が所定のしきい値を超える場合、クライアント端末は、特定の更新の再送信の要求を、価格提示サーバへと送信することができる。最後に、メッセージ３００のヘッダのフィルタ・キー・フィールド３１２は、取引所名、取引対象物のシンボル、ならびに所与の取引対象物を一意に特定するシリーズ名およびシリーズキーの連続に基づいて生成される３２ビットのサイクリック・リダンダンシー・チェック（「ＣＲＣ」）を含んでいる。１つの例示的な実施形態によれば、フィルタキーが、フィルタキーをクライアント端末またはネットワークの他の構成要素において望ましくないデータを除去するために使用することができるよう、一意な値を形成するように生成される。
【００３９】
次に、メッセージ３００は、タイプフィールド３１４、長さフィールド３１６、およびいくつかのブロック特有のフィールド（ここでは、３１８〜３４０で示されている）を有するブロックヘッダを含んでいる。タイプフィールド３１４は、メッセージ３００に含まれるブロックの種類を定めている。１つの例示的な実施形態によれば、所与の取引対象物を一意に特定するセキュリティＩＤ、価格がどのように表されるかを定めるチックデータ、デプス、インプライドデプス（ｉｍｐｌｉｅｄ  ｄｅｐｔｈ）、最終取引価格／数量などの取引データ、最高／最低取引価格などのセッションデータ、セオレティカルマーケット（ｔｈｅｏｒｅｔｉｃａｌ  ｍａｒｋｅｔ）、ダイレクトマーケット（ｄｉｒｅｃｔ  ｍａｒｋｅｔ）、インディカティブマーケット（ｉｎｄｉｃａｔｉｖｅ  ｍａｒｋｅｔ）、インプライドマーケット（ｉｍｐｌｉｅｄ  ｍａｒｋｅｔ）からのインプライド、市場価格、ならびにオープンまたはクローズドなどの所与の取引対象物についての一時的な取引状態など、多数のさまざまなブロックの種類が存在できる。１つの例示的な実施形態によれば、種々のバイナリ識別子を、例示のデータの種類を定めるために使用することができる。例えば、「０」〜「１１」を、「０」がセキュリティＩＤという種類に対応し、「１」がチックブロックという種類に対応するなど、例示的なブロックの種類のそれぞれを表わすために使用することができる。例示した種類があくまでも例にすぎず、別のデータの種類も本明細書に記載の方法を使用して同様に提供できることを、理解すべきである。
【００４０】
次に、ブロック種類が、デプス価格、インプライド価格、セオレティカル価格、インディカティブ価格、ダイレクト価格、または市場データに基づいて計算できる他の何らかの価格に設定されると仮定すると、フィールド３１８〜３４０が、メッセージ３００に示されるとおりに使用される。「ａサイズ」フィールド３１８が、メッセージ３００において送信される売りの数を定める。１つの例示的な実施形態によれば、売りの最大数を、メッセージ３００においてクライアント端末へと提供される売りレベルの数へと定めることができる。図３に提示の例では、メッセージ３００が、３２０〜３２８に示されている売りフィールド「ａ１〜ａ５」によって５つの売りレベルを含んでいる。１つの例示的な実施形態によれば、売りフィールド３２０〜３２８が、どの売り値が非線形であるかを示すビットマップである。売りフィールドのいずれかにビットが設定されている場合、該当の価格が、具体的な例を用いてさらに詳しく後述されるとおりに転送される。ビットが空いている場合、該当の価格は、先の価格レベルよりもチック１つ分だけ高い／低いと推定され、したがって転送されない。より正確に言えば、メッセージ３００を受信するクライアント端末が、メッセージ３００に指定される各数量に対応する価格レベルを割り出すために特定のビットマップを使用することができる。さらに、１つの例示的な実施形態によれば、「ａ１」フィールド３２０のビットが、好ましくは売りサイズがゼロよりも大きい場合に設定される。
【００４１】
メッセージ３００において提供される売り関連の情報と同様に、「ｂ」サイズフィールドが、３３２〜３４０に示されている買いフィールドによってメッセージ３００において送信される係属中の買いの数を示す。売りフィールドと同様に、買いフィールド３３２〜３４０は、どの買い価格が非線形であるかを示すために使用される。１つの例示的な実施形態によれば、買いフィールド３３２が、売りサイズが「０」へと設定され、買いサイズが「０」よりも大きい場合に設定される。「ｂ１」フィールドが空いており、買いサイズが「０」よりも大きい場合、買い価格は、「ａ１」に対応する売り価格よりもチック１つ分だけ低い。買いフィールドのいずれかにビットが設定されている場合、該当の価格が転送される。ビットが空いている場合、該当の価格は、先の価格よりもチック１つ分だけ高い／低いと推定され、転送されない。
【００４２】
さらに、メッセージ３００は、３４２〜３５０に示されているいくつかの売り数量ブロック「ａｓｋ  ｑｔｙ  １〜ａｓｋ  ｑｔｙ  ５」と、３５２〜３６０に示されているいくつかの買い数量ブロック「ｂｉｄ  ｑｔｙ  １〜ｂｉｄ  ｑｔｙ  ５」と、３６２〜３７０に示されているいくつかの売り価格ブロック「ａｓｋ  ｐｒｉｃｅ  １〜ａｓｋ  ｐｒｉｃｅ  ５」と、最後に３７２〜３８０に示されているいくつかの買い価格ブロック「ｂｉｄ  ｐｒｉｃｅ  １〜ｂｉｄ  ｐｒｉｃｅ  ５」とを含んでいる。１つの例示的な実施形態によれば、メッセージ３００において転送される売り数量の数が、「ａサイズ」フィールド３１８において指定される売りサイズに等しく、買い側の数量の数は、「ｂサイズ」フィールド３３０の数を反映する。メッセージ３００の買い側および売り側について５つの数量ブロックが示されているが、システムの構成に応じて、別の数の買いおよび売りレベルを同様に転送できることを理解すべきである。
【００４３】
ここで、売り／買い価格ブロックを参照すると、転送される価格の数が、３２０〜３２８および３３２〜３４０の「ａ１〜ａ５」および「ｂ１〜ｂ５」に設定されたビットの数に等しい。１つの例示的な実施形態によれば、ただ１つの基準価格が転送され、線形市場においては他の価格は転送されないが、代わりにクライアント端末が、更新において提供されない価格を、所与の市場の他の価格に関する既知の線形特性に基づいて割り出す。例えば、基準価格を、最良の売り価格または最良の買い価格に設定することができる。しかしながら、基準価格を別の価格に設定してもよいことを、理解すべきである。最良の売り価格が基準価格であり、他の売り価格が線形である例では、最良の売り価格が、メッセージ３００において「ａｓｋ  ｐｒｉｃｅ  １」ブロックにて転送され、他の売り価格は転送されない。１つの例示的な実施形態によれば、市場に係属中の価格が存在しない場合には、すべての数量および価格がゼロに等しいこと、または送信されないことを示すために、売りおよび買いサイズフィールドをゼロにして、ブロックヘッダのみをクライアント端末へと送信することができる。
【００４４】
新規なデータ提示の生成および配信のための上述の実施形態を、以下で具体的な例を使用して説明する。これらの例が例示にすぎず、下記に提示される例について、さまざまな変形または修正も可能であることを、理解すべきである。
【００４５】
Ａ．  １レベルのデプスの例
典型的には、複数のレベルからなるデプスが、クライアント端末へと送信されるが、１レベルのデプスが、ときには送信されうる。１つの例示的な実施形態によれば、１レベルのデプスを、インディカティブ、ダイレクト、またはセカンド・ジェネレーション・インプライド価格、ならびにセオレティカル価格について、そのような価格が取引所によって提供されている場合に送信することができる。さらには、１レベルのデプスを、クライアント端末がインサイド・マーケット・データのみを受け取るように契約している場合に、提供することができる。
【００４６】
図４Ａおよび図４Ｂが、例示的な１レベルのデプス４００、およびこの例示的なデプス４００について生成されたメッセージフォーマット４０２を示している。図４Ａに示した例示的な実施形態によれば、インサイドマーケットが、「５０」という最良の買い値レベルに「８９」という買い数量を含んでおり、さらに「６０」という最良の売り値レベルに「８１」という売り数量を含んでいる。図４Ｂに示したメッセージ４０２に示されているとおり、売りおよび買いサイズフィールド４０４および４０６は、メッセージ４０２において買いおよび売りが１つだけ送信されていることを示すために、どちらも「１」に設定されている。次いで、最良の売り価格がメッセージにおいて基準価格として使用されているため、売りビットマップ４０８の最初のフィールドが、「１」に設定され、売りビットマップ４０８の他のフィールドおよび買いビットマップ４１０が、「０」に設定されている。図３に示したメッセージ構成に基づき、メッセージ４０２は、フィールド４１２に「８１」という売り数量を定め、フィールド４１４に「８９」という買い数量を定め、フィールド４１６に６０という基準売り価格レベルを定めている。
【００４７】
Ｂ．  ５レベルのデプスの例−線形市場
多くの商取引環境においては、複数のマーケット・デプス・レベルが、クライアント端末へと提供される。図５Ａおよび図５Ｂが、本明細書に記載の例示的な実施形態に従って市場データを伝達するために生成される例示的な市場データセット５００およびメッセージ５０２を示している。図５Ａを参照すると、市場データ５００が、５つの売り値レベルおよび５つの買い値レベルを、対応する数量とともに含んでいる。この例示の市場データ５００には、５つの買いおよび５つの売りが存在するため、売りサイズフィールド５０４および買いサイズフィールド５０６は、どちらも「５」に設定されている。市場データ５００のすべての価格は、「１０」というチックサイズであるチック１つ分だけ互いに離れており、すなわち、市場データが線形である。上述の例を使用して、最良の売り価格をメッセージ更新における基準価格として使用し、さらに市場データ５００の線形な価格特性を利用して、メッセージ５０２は、売りビットマップ５０８の最初のフィールドに設定されたただ１つのビットを呈しており、売りビットマップ５０８および買いビットマップ５１０において、他のビットは「０」に設定されている。
【００４８】
次に、メッセージ５０２のブロックフィールドを参照すると、最初の５つのブロック５１２〜５２０は、５つの売り数量レベルを含んでおり、最初の売り数量ブロック５１２が、最良の売り価格に対応する数量を挙げており、第２の売り数量ブロック５１４が、次の売り価格レベルの数量を挙げており、以下同様である。次いで、次の５つのブロック５２２〜５３２は、５つの買い数量レベルを含んでおり、最初の買い数量ブロック５２２が、最良の買い価格の数量を挙げており、第２の買い数量ブロック５２４が、次の買い価格レベルの数量を挙げており、以下同様である。すでに述べ、ビットマップ５０８に示したとおり、最良の売り価格が基準価格として使用されており、従ってブロック５３２に含まれている。他の価格は、線形特性を共有しているため、メッセージ５０２には含まれていない。
【００４９】
Ｃ．  ５レベルのデプスの例−非線形市場
先に説明したとおり、多くの活発かつ高速で変化している市場が、線形である一方で、いくつかの市場は、非線形な特性に直面することがありうる。図６Ａおよび図６Ｂが、非線形な市場の例示的な市場データセット６００、およびそのような市場について生成される例示的な市場更新メッセージ６０２を示している。この例示の市場データセット６００においては、売り値が「６０」、「８０」、および「９０」であり、買い値が、「４０」、「３０」、および「１０」である。残りの価格「７０」、「５０」、および「２０」には、係属中の数量がない。これら３つの価格レベルには、係属中の数量がないため、このような価格は、本明細書に記載の１つの例示的な実施形態によれば、送信されない。係属中の数量が存在する３つの売りおよび買い価格レベルが存在しているため、メッセージ６０２の売りおよび買いサイズフィールド６０４および６０６は、「３」を示している。
【００５０】
ここで、「１  １  ０  ０  ０」という売りビットマップ６０８に注目すると、最初のビットが、最良の売り価格（ここでは、「６０」という売り価格レベルである）が伝達されることを示すために、「１」に設定されている。次に、２番目のビットが、２番目によい売り価格（ここでは、「８０」という売り価格である）が同様に伝達されることを示すべく設定されている。売りビットマップの他のすべてのビットが「０」に設定されているため、さらなる売り価格は伝達されず、メッセージ６０２に含まれる数量に対応する他の価格が、すべて線形であることを示している。
【００５１】
次に、メッセージ６０２のブロックフィールドを参照すると、最初の３つのブロック６１２〜６１６が、３つの売り数量レベルを含んでおり、最初の売り数量ブロック６１２が、最良の売り値に対応する数量を挙げており、２番目の売り数量ブロック６１４が、次の売り価格レベル（ここでは、「８０」という価格レベルである）の数量を挙げており、３番目の売り数量ブロック６１６が、「９０」という次の売り価格レベルの数量を挙げている。次いで、次の３つのブロック６１８〜６２２が、「４０」、「３０」、および「１０」という買い価格レベルにそれぞれ対応する３つの買い数量レベルを含んでいる。最後に、上述のビットマップに基づき、ブロック６２４にて伝達される最良の売り価格へと設定された基準価格に加えて、非線形の売り価格がブロック６２６にて提供され、さらにブロック６２８および６３０にて２つの非線形な買い価格レベルが提供される。
【００５２】
Ｄ．  別のメッセージフォーマット
図７は、別の例示的な実施形態による別のメッセージブロックのフォーマット７００を示すブロック図である。図７に示した実施形態によれば、買いおよび売りが異なるメッセージブロックに記載されるが、それらのブロックを、ただ１つのメッセージへと組み合わせることが可能である。例えば、例示的なメッセージは、買いデプスブロック、売りデプスブロック、インプライド買いデプスブロック、インプライド売りデプスブロック、などを含むことができ、その例を以下でさらに詳しく説明する。
【００５３】
図７を参照すると、メッセージ７００は、タイプフィールド７０２、長さフィールド７０４、サイズフィールド７０６、およびビットマップフィールド７０８を有するヘッダを含んでいる。上述したメッセージと同様に、タイプフィールド７０２は、メッセージブロック７００において特定されるデータの種類を定めるブロック識別子である。例示的なメッセージブロックの種類として、ダイレクトマーケット買い／売りデプス、ダイレクトマーケット売りデプス、インプライドマーケット買いデプス、インプライドマーケット売りデプス、詳細買いデプス、詳細売りデプス、最終取引価格／数量、などを挙げることができる。長さフィールド７０４は、パケットペイロードの長さをバイトを単位にして定めている。デプスサイズフィールド７０６は、市場データのエントリの数を指定する。次いで、ビットマップフィールド７０８が、特定の価格がメッセージブロックにおいて送信されるか否かを定める。図７に示した実施形態においては、それぞれの価格フィールドの後ろに数量フィールドが続き、先行の価格フィールドに対応する価格レベルに係属中の数量を定めている。先に述べた実施形態と同様に、基準価格のみがメッセージブロックにて送信され、次いで非線形の価格が、ビットマップ７０８に指定されるビットに基づいて定められる。ビットマップ７０８では、８つのビットが指定されているが、より少数またはより多数の価格レベルを示すために、より少数またはより多数のビットを使用してもよいことを、理解すべきである。図７に示した実施形態においては、価格レベル／数量の組み合わせペア８つごとに、さらなるビットマップ（ビットマップ７４２など）が、ビットマップ７４２の後ろで指定されるデータに対応して定義される。
【００５４】
上述の例と同様に、図７のメッセージブロックを記述および読解するとき、記述されていない価格を推論するために使用される値は、読解／記述されるデータの種類に基づく。ダイレクトおよびインプライド売りマーケットデプスについては、価格が記述されていない場合、先の値へと加えられるオフセットが、「１」へと設定され、あるいは所与の取引対象物について指定されるチックの定義に応じて他の何らかの値に設定される。上述の例と同様に、最も低い売り価格を、基準価格として使用することができる。次いで、ダイレクトおよびインプライドマーケット買いデプスについて、オフセットが「−１」に設定される。係属中の注文に対応する複数の数量値が各価格レベルについて特定される場合など、詳細なデプスが提供される場合には、同じ価格に関する数量に対して適用されるオフセットは、「０」に設定される。この例については、下記に提示する。
【００５５】
１．  第１の非線形マーケットデプスの例
図８が、買い側および売り側に８つよりも少ない価格レベルを有しているマーケットデプス８０４の買い側および売り側について生成される例示的なメッセージブロック８００および８０２を示している。マーケットデプス８０４は、買い側および売り側について非線形な市場を呈している。メッセージブロック８００のヘッダが、買いデプスタイプ８０６、長さフィールド８０８、いくつかの買いフィールド８１０、およびビットマップ８１２を含んでいる。長さフィールド８０８は、メッセージブロック８００の長さを定めている。メッセージブロック８００の長さが、メッセージブロック８００において指定されるすべてまたは一部のデータに関して何らかの圧縮が使用されるか否かに依存できることを、理解すべきである。ビットマップ８１２は、メッセージ８００において送信される価格レベルを定める。ビットマップ８１２に示されているとおり、最初のビットが「１」に設定されているため、「１００」という最良の買いが伝達される。次いで、次の２つの買い価格は、それらが線形であるため伝達されず、その次の「６０」という価格が、非線形であるため、係属中の数量とともに伝達される。次の「５０」という価格は線形であるため、ビットマップ８１２に「ゼロ」が指定されている。
【００５６】
ここで、メッセージ・ブロック・フィールドを参照すると、フィールド８１４および８１６からなる第１のペアが、「１００」という最良の買い価格を、「２５」という最良の買いの数量とともに定めている。次いで、次の２つの価格レベルは線形であるため、ブロックフィールド８１８および８２０は、この２つの線形な価格レベルにおける３２という数量および６４という数量を定めている。次のブロックフィールド８２２および８２４は、「６０」という非線形な価格レベルを、「９５」という係属中の数量とともに定めている。最後に、最後の価格レベルが線形であるため、最後のブロックフィールド８２６は、「５０」という次の線形な価格レベルに係属している「４８」という数量を定めている。
【００５７】
メッセージブロック８０２は、タイプフィールド８２８に示されているとおり、売りデプスを定めるために使用される。メッセージブロック８０２の長さは、圧縮が使用されるか否かに依存して変化しうるため、８３０に示されるとおり指定されない。サイズフィールドが、メッセージブロック８０２において４つの価格／数量レベルが提示される旨を定めており、ビットマップ８３４が、どの価格がメッセージブロック８０２のブロックフィールドに記入されるかを示している。ビットマップ８３４に示されているとおり、最良の売り価格が、基準価格レベルとして使用され、ブロックフィールド８３６にて送信され、さらなる非線形の価格が、３番目のビットに関連して、ブロックフィールド８４２に示されているとおり記入される。他のすべてのブロックフィールド８３８、８４０、８４４、および８４６は、ブロックフィールドに対応するそれぞれの価格レベルの数量値を定めている。
【００５８】
２．第２の非線形マーケットデプスの例
図９が、市場の買い側および売り側に８つを超える価格レベルを有しているマーケットデプス９０４の買い側および売り側について生成される例示的なメッセージブロック９００および９１２を示している。買いメッセージブロック９００が、９０２に示されているとおり、１０個のデプスレベルを伝達するために使用され、２つのビットマップ９０４および９０６を有しており、第１のビットマップが、最初の８つの買い価格レベルのうちのどれが伝達されるかを定めており、第２のビットマップが、さらなる価格のそれぞれが伝達されるか否かを定めている。第１のビットマップ９０４に示されているとおり、最初のビットが「１」に設定されているので、最良の買い価格レベルが伝達される。次いで、残りの７つの価格レベルが線形であるため、ビットマップ９０４の残りのすべてのビットは、「０」に設定される。９０８に示されているブロックフィールドが、「１７０」という最良の買い価格を含んでおり、他のすべてのフィールドが、８つの価格レベルにおける数量を定めている。次いで、ビットマップ９０６が、さらなる２つの買い価格レベルのそれぞれが伝達されるか否かを定めている。最後の２つの買い価格レベルも線形であるため、これらの価格レベルに対応する数量のみが、ブロックフィールド９１０にて伝達される。
【００５９】
ここで、売りメッセージブロック９１２を参照すると、９１４に定められているように、ブロック９１２にて伝達される１１の売り価格レベルが存在する。最初の８つの価格レベルに関しては、伝達される価格レベルは２つであり、すなわち最良の売り価格、および非線形な価格に該当する７番目の売り価格である。したがって、第１のビットマップ９１６は、「１」に設定された１番目および７番目のビットを含んでいる。９１８に示されているブロックフィールドが、上述したフォーマットを使用して、伝達される価格ならびに数量を定めている。次いで、最後の２つの売り価格が線形であるため、ビットマップ９２０においては、「１」に設定されるビットは存在せず、これらの線形な価格に対応する数量が、９２２で示されているブロックフィールドにて送信される。
【００６０】
３．  価格レベルに個々の注文数量が存在する例
図１０が、各価格レベルの詳細なデプスを提供するために使用される例示的なメッセージ・ブロック・フォーマットを示している。さらに具体的には、上述したとおり、各価格レベルについて、その価格レベルに２つ以上の注文が係属している場合に、ただ１つの総計の数量を提示するのではなく、複数の数量値を記入することができる。図１０が、例示的なマーケットデプス１０００を、このマーケットデプス１０００の買い側および売り側を表わすためにそれぞれ使用される２つのメッセージブロック１００２および１００４とともに示している。
【００６１】
買いメッセージブロック１００２が、上述したヘッダフィールドを含んでおり、６つの値がメッセージ１００２において提示されるため、サイズフィールド１００６が「６」に設定されている。メッセージ１００８のフォーマットは、数量値がメッセージブロックにおいて当該数量値に係る価格を定めるために使用されるフィールドの直後のフィールドに記入される図７に示したフォーマットに従う。したがって、各価格レベルについて、数量値を定めるために使用されるフィールドが２つ以上存在し、ビットマップ１００８が、どのブロックフィールドに価格レベルが記入されるのかを指定するために使用される。ビットマップ１００８においては、最初のビットが、最良の買い価格が価格フィールド１０１０にて伝達される旨を示すべく設定される。次いで、標準的なメッセージブロックの構成によれば、価格フィールド１０１０に、この最良の買い価格に係属している注文の第１の数量値を定める数量フィールド１０１２が続いている。次いで、次の２つのフィールドが、別の価格ではなく、同じ価格レベルにある数量を示すために使用されるため、ビットマップ１００８の次の２つのビットは設定されず、それらの数量が、フィールド１０１４および１０１６に定められる。次いで、次のフィールド１０１８が、「２０５」という次の価格値を定めるために使用されるため、ビットマップ１００８において４番目のビットが設定される。次いで、３つのメッセージフィールド１０２０〜１０２４が、「２０５」という価格レベルに係属している個々の注文に対応する数量を表わすために使用される。
【００６２】
売りメッセージブロック１００４も、買いメッセージブロック１００２に関して説明した方法と同じ方法を用いて生成される。メッセージブロック１００４に表される値が８つよりも多いため、どのメッセージフィールドが価格の伝達に使用されるのかを示すために、２つのビットマップが使用されている。
【００６３】
ＩＶ．  圧縮
上述の例では、メッセージに記入されたそれぞれの数量および価格値が、バイナリフォーマットで送信される。１つの例示的な実施形態によれば、４バイトなどの標準的な数のバイトが、たとえ値をより少数のバイトで表わすことができる場合でも、それぞれの値を表わすために使用される。そのような実施形態は、データを真に必要なバイトよりも多くのバイトを使用して送信する結果となる。この欠点を、メッセージにてもたらされる数量値および価格値へと適用できる多数のさまざまな圧縮の仕組みを使用することによって克服することができる。
【００６４】
１つの例示的な実施形態によれば、上述のメッセージの数量および価格を表わすために、整数圧縮を使用することができる。整数圧縮とは、追加のビットマップをデータストリングの長さを表わすために最上位または再開のビットに使用して、所与の値を表わすために最小限の数のバイトしか使用しない圧縮法を指す。例えば、所与の値を表わすために４バイトが使用される上述の例では、最初のバイトの最初の数ビットを、所与のデータストリングの長さを表わすために使用することができる。そのような実施形態において、最初のビットが「０」に設定される場合、ただ１つのバイトが値を表わすために使用されると仮定することができる。次いで、最初の２つのビットが「１」および「０」である場合、値を表わすために２バイトが使用され、最初の３つのビットが「１」、「１」、および「０」である場合、３バイトが使用され、最初の３つのビットが「１」に設定される場合、４バイトが使用される、などである。先に述べたように、それぞれの値について送信されるバイト数を表わすために、種々の方法を同様に使用することができる。
【００６５】
整数圧縮は、各メッセージのデータサイズの大幅な削減をもたらす。例えば、メッセージが非線形な市場について生成される図５Ａおよび図５Ｂの例を再び参照すると、数量および価格に対応する１０個の値が、メッセージにて提供されている。それぞれの値を表わすために４バイトを使用する環境においては、メッセージにおいて１０個の値を表わすために必要なサイズは、４４バイトである。上述の整数圧縮法を用いると、それぞれの値をバイナリフォーマットで表わすためにただ１つのバイトで充分であるため、同じ１０個の値を表わすために、わずか１０バイトしか要さないと考えられる。
【００６６】
さらに、上述の圧縮の仕組みを、各メッセージのデータのサイズをさらに削減するために、差分法に組み合わせることも可能である。図１１Ａおよび図１１Ｂが、例示的な非線形のマーケットデプス１１００および差分法を使用して生成された例示的なメッセージ１１０２を示している。上述の例と同様、最良の売り価格「１２１６０」が、基準価格レベルとして使用されている。図６Ｂに提示した例と同様に、３つの買い数量および３つの売り数量がメッセージブロック１１１２〜１１２２に示されるとおりメッセージ１１０２にて伝達されるため、買いおよび売りサイズフィールド１１０４および１１０６が、「３」を示している。次いで、１１０８に示されている売りビットマップは、「１  １  ０  ０  ０」であり、１１１０の買いビットマップは、「１  ０  １  ０  ０」である。
【００６７】
図１１Ｂに示した例では、市場が非線形であるすべての価格を表わすのではなく、ただ１つの基準価格（ここでは、「１２１６０」という最も低い売り価格）が売り価格ブロック１１２４に記入され、他のすべての非線形な価格は、オフセット法を使用して記入される。基準価格を元にし、次に高い売り価格は、基準価格からチック２つ分だけ離れており、したがって、基準価格と次の非線形な価格レベルとの間のオフセット差を示すために、「２０」が買い価格ブロック１１２６に記入される。次いで、次の売り価格は線形であるため、価格レベルのオフセット値は記入されず、次の売り価格レベルに対応する数量のみがメッセージ１１０２に記入される。次いで、例示のデプス１１００に関して示されているように、最良の買い値は、最良の売り価格からチック２つ分だけ離れているため、この最良の買い値のオフセットが、買い価格ブロック１１２８に記入される。「１２１３０」という次の買い価格は、ビットマップ１１１０に定められているとおり線形であるため、この価格は伝達されない。次いで、「１２１１０」という次の買い価格は非線形であるため、オフセット値がブロックフィールド１１３０に記入される。図１１Ｂに示した例は、オフセット値を実際の価格の差を使用して示しているが、オフセットを、チックレベルの差を示す１桁の値を使用して定めてもよいことを、理解すべきである。
【００６８】
先に説明したように、メッセージ１１０２に定められる価格および数量を、整数圧縮法または他の何らかの方法を使用して圧縮することができる。図１１Ｂに示した実施形態では、値「１２１６０」が、２バイトを使用して表されている。他のすべての価格レベルが、実際の値を使用して表わされる場合、各価格レベルが２バイトを使用して表わされ、結果として８バイトで４つの価格レベルを表わすことになる。しかしながら、ただ１つの基準価格だけが、実際の価格レベルの値を使用して記入され、他の３つの価格は、オフセット値を使用して表され、オフセット値は、ただ１バイトを使用して表わすことができるように充分に小さい。したがって、整数エンコーディングを差分法による非線形な価格の送信に組み合わせて使用することで、メッセージのサイズを、例示の価格レベルに関して３バイト減らすことができる。価格レベルの数が増すにつれ、この節約も大きくなる。
【００６９】
上述のメッセージにおいては特に示されていないが、圧縮法が使用される場合にメッセージのサイズをさらに減らすために、各メッセージ中の数量を差分法を使用して表わしてもよいことを理解すべきである。メッセージのフォーマットについて多数のさまざまな変種が同様に可能であることを、当業者であれば理解できるであろう。
【００７０】
Ｖ．  さまざまな他の市場データメッセージのフォーマット
マーケットデプス関連データの提供に加え、電子商取引環境においてクライアント端末へと標準的に提供される他のデータ種も存在する。いくつかの例示的なデータ種を、例示的なメッセージとともに後述する。上述した圧縮法を、後述のメッセージにて提供されるデータに関して使用してもよいことを、理解すべきである。
【００７１】
Ａ．  取引データ
図１２は、取引データをクライアント端末へと送信するために使用することができる例示的なメッセージ１２００を示すブロック図である。メッセージ１２００は、最終取引数量（「ｌｔｑ」）フィールド１２０２、最終取引価格（「ｌｔｐ」）フィールド１２０４、および総取引量（「ｔｔｑ」）フィールド１２０６を含んでいる。図示はされていないが、メッセージ８００は、例示のフィールドに加えてブロックヘッダを含んでもよい。
【００７２】
Ｂ．  セッションデータ
図１３は、セッションデータをクライアント端末へと送信するために使用することができる例示的なメッセージ１３００を示すブロック図である。メッセージ１３００を、セッション価格および他の情報の更新をクライアントに知らせるために送信することができる。図１２に示したメッセージと同様、メッセージ１３００はブロックヘッダを含む。図１３に例示のメッセージフィールドは、セッション高値、セッション安値、セッション開始価格、セッション終了価格、およびセッション決済価格をそれぞれ定める５つの価格関連フィールド１３０２〜１３１０を含んでいる。次いで、フィールド１３１２が、取引対象物の現在の状態を定め、フィールド１３１４が、現在の取引セッションを特定するために生成される３２ビットの識別子など、セッション識別子を定めている。
【００７３】
さらなるメッセージをいくつか例示したが、多数のさまざまなメッセージを、さらなる市場関連データを伝達するために使用できることを、理解すべきである。
【００７４】
例示的なプログラム、プロセス、および方法を詳細に説明および例示したが、それらがあくまでも説明および例示であり、本発明を限定するように理解してはならないことを、当然ながら理解できるであろう。当業者であれば、多数の修正および変更に容易に想到できるため、本発明は、図示および説明した構成および動作そのものに限定されるわけではなく、すべての適切な修正および同等物が、本発明の技術的範囲に包含されうる。
【００７５】
一実施形態によれば、例示的なシステムは、コンピュータ可読記憶媒体に保存され、コンピュータベースの装置の適切なインストラクション実行システムによって実行されるコンピュータプログラム製品の形態をとる。コンピュータ可読媒体という用語は、本明細書において使用されるとき、実行のためのプロセッサへのインストラクションの提供に関与する任意の媒体を指す。そのような媒体は、これらに限られるわけではないが不揮発媒体、揮発媒体、および伝送媒体など、多数の形態をとることができる。不揮発媒体として、例えば、ストレージ装置などの光または磁気ディスクが挙げられる。揮発媒体として、メインメモリまたはＲＡＭ（ランダム・アクセス・メモリ）などのダイナミックメモリが挙げられる。コンピュータ可読媒体の一般的な形態として、例えばフロッピーディスク、フレキシブルディスク、ハードディスク、磁気テープ、または他の任意の磁気媒体、ＣＤ−ＲＯＭ、他の任意の光媒体、パンチカード、紙テープ、穴のパターンを備える他の任意の物理的な媒体、ＲＡＭ、ＰＲＯＭ、およびＥＰＲＯＭ、ＦＬＡＳＨ−ＥＰＲＯＭ、および他の任意のメモリチップまたはカートリッジ、あるいはコンピュータによる読み出しの対象となりうる他の任意の媒体が挙げられる。
【００７６】
別の実施形態によれば、ハードウェアの実施形態が、種々さまざまな形態をとることができる。ハードウェアの実施形態を、専用ゲートアレイを有する集積回路または特定用途向け集積回路（「ＡＳＩＣ」）として実現することができる。また、ハードウェアの実施形態を、ディスクリートなハードウェア部品および回路によって実現することもできる。特には、フロー図に示した論理構造および方法の段階を、ＡＳＩＣなどの専用のハードウェアに実現でき、あるいはマイクロプロセッサまたは他の演算装置によって実行されるプログラムインストラクションとして実現できることを、理解すべきである。上述の方法を、コンピュータで読み取り可能な１つ以上の媒体を含むコンピュータプログラム製品に具現化できることは、当業者にとって明らかであろう。例えば、コンピュータ可読媒体として、コンピュータ可読プログラムコード部分が保存されているハードドライブ装置、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、またはコンピュータディスケットなどの可読メモリ装置を挙げることができる。また、コンピュータ可読媒体として、プログラムコード部分をデジタルまたはアナログデータ信号として運ぶ光、有線、または無線のバスまたは通信リンクなどの通信または伝送媒体を挙げることもできる。
【００７７】
請求項を、請求項に記載の順序または構成要素に限られると解釈することは、そのような趣旨の記載がない限りは、行ってはならない。したがって、以下の特許請求の範囲の技術的範囲および技術的思想に包含されるすべての実施形態およびその均等物が、本発明として請求される。
【図１】
0006031130.tif 000002
【図２】
0006031130.tif 000003
【図３】
0006031130.tif 000004
【図４Ａ】
0006031130.tif 000005
【図４Ｂ】
0006031130.tif 000006
【図５Ａ】
0006031130.tif 000007
【図５Ｂ】
0006031130.tif 000008
【図６Ａ】
0006031130.tif 000009
【図６Ｂ】
0006031130.tif 000010
【図７】
0006031130.tif 000011
【図８】
0006031130.tif 000012
【図９】
0006031130.tif 000013
【図１０】
0006031130.tif 000014
【図１１Ａ】
0006031130.tif 000015
【図１１Ｂ】
0006031130.tif 000016
【図１２】
0006031130.tif 000017
【図１３】
0006031130.tif 000018