説明

取引対象物について電子的な価格提示を提供するためのシステムおよび方法

【課題】電子商取引環境において優れた価格提示(price feed)を提供するためのツールを提供する。
【解決手段】電子商取引環境において市場データを提供するための方法であって、取引対象物について、注文数量が存在している複数の価格レベルを含み、さらに前記複数の価格レベルのそれぞれに係属している注文数量を含む市場情報を受け取るステップ、前記複数の価格レベルのうちから基準価格レベルを選択するステップ、および、前記基準価格レベルおよび前記複数の価格レベルのそれぞれに係属している注文数量を、前記基準価格レベルが受信端末において前記注文数量のそれぞれを前記複数の価格レベルのうちの該当する1つの価格レベルへと位置付けるために使用されるように含んでいる価格提示メッセージを生成するステップを含む方法。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電子商取引に関する。さらに具体的には、本発明は、電子商取引環境において優れた価格提示(price feed)を提供するためのツールに関する。
【背景技術】
【0002】
電子商取引は、通常は、ホスト取引所、1つ以上のコンピュータネットワーク、およびクライアント装置に基づいている。登録トレーダが、登録トレーダと取引所との間のリアルタイムの電子メッセージングを促進すべく、通信リンクによって取引所の電子商取引プラットフォームへと接続される。電子商取引プラットフォームは、取引システムの中心に位置する少なくとも1つの電子市場を含んでおり、この電子市場が、この市場においてトレーダらが提示する買い値および売り値のマッチングを取り扱う。電子メッセージングは、電子的なデータ提示によって電子市場からトレーダへと配布される市場情報を含んでいる。ひとたびトレーダが市場情報を受信すると、それをトレーダの取引画面においてトレーダへと表示することができる。情報を閲覧したトレーダは、電子市場への売買注文の送信、既存の注文の調節、注文の削除、または注文のその他の処理など、特定の行為をとることができる。また、トレーダは、これらの行為およびその他の行為を自動化するためのソフトウェアツールを自身のクライアント装置上で使用することもできる。
【0003】
電子取引所によって発行される市場情報の種類は、市場ごとにさまざまでありうるが、一般に、いくつかの標準的な情報が存在する。市場情報は、インサイドマーケット(inside market)のみを表わすデータを含むことができる。インサイドマーケットは、特定の時点において、特定の取引対象物について、市場において利用可能な最低の売り値(ベストアスク)および最高の買い値(ベストビッド)である。さらに、市場情報は、マーケットデプス(market depth)を含むことができる。マーケットデプスは、インサイドマーケットにて入手できる数量を指し、インサイドマーケットから離れた他の価格で入手できる数量も指すことができる。注文価格および数量の情報などといったオーダーブック情報の提供に加え、電子取引所は、公開価格、決済価格、純変化、売買高、最終取引価格、最終取引量、および注文処理情報など、他の種類の市場情報を提供することができる。
【0004】
電子取引所および/またはゲートウェイなどの仲介の装置は、データ集約的かつ高速応答の市場データの供給をもたらすために、市場情報の量および適時性をネットワークの帯域幅の限界および信頼性とバランスさせることに、苦慮することが多い。一方では、特には市場における変化が高速で生じている場合に、所与の市場の特徴を適切に表わすために、莫大な量の市場情報が、電子市場によって生成される可能性がある。多くの場合、トレーダは、より多くの情報に基づいて取引を行うことができるよう、可能な限り多くの情報にアクセスすることを希望する。他方で、トレーダへと渡される市場情報の量についての制約は、トレーダを電子市場へと接続する物理的なネットワークの設計に内在することが多い。
【0005】
通常は、電子市場がクライアント装置へと市場情報を配信する方法について、2つのモデルが存在する。さらに、それら2つのモデルのわずかな変形が使用されることもある。
【0006】
第1のモデルは、マーケットデプスを配信するために最も一般的に使用されているが、差分ベースのモデルである。差分ベースのモデルは、オーダーブックにおいてインサイドマーケットまたはマーケットデプスが変化するたびに、増分更新を送信することを含む。差分ベースのデータ配信環境においては、クライアント端末が、最初に、それぞれの価格レベルおよびそれらの価格レベルに係属中の数量を記述する現在の市場状況のスナップショットを受信する。或る価格レベルの数量が増加するなど、市場における変化が検出されると、市場更新がクライアント端末へと送信され、数量の増加変化を知らせる。
【0007】
多数の既存のネットワークが、差分ベースの価格データをクライアント端末へと配信するためにマルチキャストを使用している。当技術分野において周知のとおり、マルチキャストは、ただ1つのストリームにて同時に多数の受信者へと情報を配信することを指す。しかしながら、マルチキャストによる差分ベースのデータの送信は、すべてのパケットがクライアント端末において受信されることを保証するために、アプリケーションレベルの信頼性の実現が必要である。クライアント端末は、受信される各更新に含まれる続き番号などに基づき、欠けている更新を検出すると、次の更新において情報を正しく使用するために欠けている更新を再要求し、結果として遅延が持ち込まれ、処理のオーバヘッドにつながる。マルチキャストを使用するネットワークの信頼性問題を克服するために、価格データを、各クライアント端末について生成されるポイント・トゥ・ポイント・ネットワーク接続によって送信することができる。しかしながら、多数のクライアント端末を含んでいる取引環境においてポイント・トゥ・ポイント接続を使用することは、価格サーバが各更新を対象の各クライアント端末へと別個に送信しなければならず、結果として、帯域幅が効率的に使用されない結果となり、サーバにおける遅延を生じる。
【0008】
しばしば使用される第2のデータ配送モデルは、時間ベースの間隔またはイベントベースの間隔など、予めプログラムされた間隔でスナップショット更新を送信することを含む。スナップショット更新は、インサイドマーケットおよびマーケットデプスなどの市場情報を含んでいるメッセージであり、実際の価格および各価格に関して挙げられた数量が更新に含まれる。デプス全体のスナップショットを送信することは、歴史的に、帯域幅の考慮およびパケットサイズゆえに、非現実的と考えられてきた。
【0009】
したがって、より動的なやり方での市場情報の通信に容易に適合させることができる優れたデータ配布のための方法およびシステムを提供することが、有益であると考えられる。
【図面の簡単な説明】
【0010】
いくつかの例示的な実施形態が、本明細書において、以下の図面を参照して説明される。
【0011】
【図1】クライアント端末およびゲートウェイ装置がローカル・エリア・ネットワーク上にある例示的な電子商取引システムを説明するブロック図である。
【図2】1つの例示的な実施形態による新規かつ優れた価格提示を配信するための例示的なシステムを説明するブロック図である。
【図3】1つの例示的な実施形態に従って価格および数量データを送信するために使用されるメッセージの例示的なフォーマットを説明するブロック図である。
【図4A】例示的な1レベルのマーケットデプス、およびこの例示的なデプスについて生成されるメッセージのフォーマットを示している。
【図4B】例示的な1レベルのマーケットデプス、およびこの例示的なデプスについて生成されるメッセージのフォーマットを示している。
【図5A】例示的なマーケットデプス、および本明細書に記載の例示的な実施形態に従って複数レベルのマーケットデプスを伝達するために生成されるメッセージを示している。
【図5B】例示的なマーケットデプス、および本明細書に記載の例示的な実施形態に従って複数レベルのマーケットデプスを伝達するために生成されるメッセージを示している。
【図6A】非線形市場の例示的なマーケットデプス、およびそのような市場について生成される例示的な市場更新メッセージを示している。
【図6B】非線形市場の例示的なマーケットデプス、およびそのような市場について生成される例示的な市場更新メッセージを示している。
【図7】1つの例示的な実施形態に従って価格および数量データを送信するために使用することができる別のメッセージのフォーマットを説明するブロック図である。
【図8】例示的なマーケットデプス、および図7のメッセージブロックのフォーマットを使用して複数レベルの市場データを伝達するために使用されるメッセージブロックを示している。
【図9】別の例示的なマーケットデプスを、図7のメッセージブロックのフォーマットを使用して該例示の市場データを伝達するために使用されるメッセージブロックとともに示している。
【図10】例示的な詳細マーケットデプスを、図7のメッセージブロックのフォーマットを使用して該例示の詳細マーケットデプスを伝達するために使用されるメッセージブロックとともに示している。
【図11A】非線形市場の例示的なマーケットデプス、およびそのような市場について図3のメッセージフォーマットを用いて差分配信法を使用して生成される例示的な市場更新メッセージを示している。
【図11B】非線形市場の例示的なマーケットデプス、およびそのような市場について図3のメッセージフォーマットを用いて差分配信法を使用して生成される例示的な市場更新メッセージを示している。
【図12】商取引データをクライアント端末へと送信するために使用される例示的なメッセージを説明するブロック図である。
【図13】セッションデータをクライアント端末へと送信するために使用される例示的なメッセージを説明するブロック図である。
【発明の概要】
【0012】
本明細書に記載される例示的な実施形態によれば、電子商取引環境において市場データを提供するためにシステムおよび方法が提供される。本発明および本発明の態様を説明するために、図面および詳細な説明を含む以下の説明においては、当業者が本明細書において説明および請求される教示からの利益に浴するシステムまたは方法を生み出すために利用でき、あるいは容易に改変できる例が提示される。
【0013】
1つの例示的な方法によれば、複数の価格レベルおよび複数の注文数量を含んでいる市場情報が、取引対象物について受信される。市場情報が受信されると、前記複数の価格レベルが線形であるか否かが判断される。前記複数の価格レベルが線形である場合、基準価格レベルが選択され、価格提示メッセージが、前記基準価格レベルを前記複数の注文数量とともに含むように生成される。次いで、この価格提示メッセージが、クライアント端末へと送信される。前記複数の価格レベルが非線形な価格レベルを含んでいる場合には、価格提示メッセージは、非線形な価格レベルをさらに含む。加えて、価格提示メッセージは、価格提示メッセージに価格レベルが含まれているマーケットデプスのレベルを知らせるための複数の位置付けインジケータを含むことができる。
【0014】
本発明の他の特徴が、以下の説明および特許請求の範囲から、本発明に関する分野の当業者にとってさらに明らかになるであろう。
【発明を実施するための形態】
【0015】
本発明は、新規な市場データの提示の生成および提供に関し、またはより具体的には、とりわけ処理、帯域幅、および信頼性の問題を軽減することができる価格データの提示に関する。本発明は、電子商取引のネットワーク環境に適用されるが、他のネットワーク環境にも同様に適用可能である。商取引のネットワーク環境は、価格データなどの時間依存性のデータを受信コンピュータへと配布する環境である。本明細書は、価格の配信に着目するが、例示的な実施形態は、他のデータの配信にも同様に適用可能である。本発明の態様を説明するために、システムおよび方法が、本明細書において参照される図面を使用して実施例の形態で説明される。しかしながら、そのような実施例を、本明細書に記載される教示を使用して迅速かつ容易に変更できることを、当業者であれば理解できるであろう。本発明の態様は、添付の特許請求の範囲によって保護される。特許明細書からの限定事項を、明示的に述べられている場合または本質的に明らかである場合を除き、特許請求の範囲へと不適切に組み入れてはならない。
【0016】
I. 例示的な商取引システムの構成
図1が、例示的な実施形態を採用することができる例示的な電子商取引システム100を示している。この例示的なシステム100は、ゲートウェイ106を介して電子取引所108にアクセスする商取引ステーション102A〜Bを備えている。図1に示されるとおり、商取引ステーション102A〜Bならびにゲートウェイ106が、ローカルLAN104内に位置しているが、リモートネットワーク構成環境のリモートホストを介してゲートウェイ106と通信する商取引ステーション102A〜Bなど、他の構成も可能である。図示はされていないが、ゲートウェイ106と電子取引所108との間でメッセージを送るために、ルータを使用することが可能である。電子取引所108は、商取引ステーション102A〜Bから送信された売買注文を別の商取引ステーション(図示せず)からの注文にマッチさせるコンピュータプロセス(例えば、中央コンピュータ)を含んでいる。電子取引所108は、1つ以上の取引対象物を取引のために列挙することができる。分かりやすくするため図1には示されていないが、商取引システムは、当業者であれば理解できるとおり、ミドルウェアやファイアウォール、ハブ、セキュリティマネージャ、などといったセキュリティ手段など、クライアントサイトに特有の他の装置を含んでもよい。
【0017】
使用される注文実行アルゴリズムの種類にかかわらず、電子取引所108は、登録商取引ステーション102A〜Bへと市場情報を提供する。市場情報は、1つ以上の取引対象物の価格データを含む。価格データは、取引対象物について現在利用できる最高の買い値および最低の売り値であるインサイドマーケット、最終取引価格、および市場に品物が係属中である他の価格を含むことができる。価格データは、他の対象項目を含んでもよく、あるいは特定の情報のみを含んでもよい。本明細書においては、例示的な実施形態を、価格データを配布するものとして説明するが、他の種類の情報も、電子商取引環境において配布することができる。
【0018】
商取引ステーション102A〜Bとして使用されるコンピュータは、一般に、携帯デバイス、ラップトップ、またはパーソナルコンピュータから、ワークステーションおよびマルチプロセッサなどのより大型のコンピュータまでさまざまである。例示のパーソナルコンピュータは、Pentium(商標)マイクロプロセッサを使用することができ、Windowsオペレーティングシステムのもとで動作することができ、あるいは他の何らかのマイクロプロセッサまたはオペレーティングシステムを使用することができる。一般に、商取引ステーション102A〜Bは、モニタ(または、他の任意の出力装置)および入力装置(キーボードおよび/または所望であればクリックによる商取引に対応するための2または3ボタンのマウスなど)を備えている。コンピュータシステムの当業者であれば、この例示の実施形態が、商取引ステーション102A〜Bに採用されるコンピュータのいかなる特定の種類または型式にも限定されないことを理解でき、適切なシステムを選択することができるであろう。
【0019】
1つの例示的な実施形態においては、商取引ステーション102A〜Bが、商取引ステーション102A〜Bに組み合わせられた端末上に専用のインタラクティブな商取引画面を生成するためにソフトウェアを使用する。商取引画面は、好ましくは、トレーダが、とりわけ注文の入力および実行、市場の相場の入手、ならびに状況の監視を行うことができるようにする。トレーダが自身の商取引画面において入手することができる内容の範囲および質は、実行される特定のソフトウェアアプリケーションに応じてさまざまであってよい。インタラクティブな商取引画面に加え、あるいはインタラクティブな商取引画面に代えて、商取引ステーションが、自動化された種類の商取引アプリケーションを動作させてもよい。
【0020】
例示的な実施形態を、任意の種類の商取引画面に関して実現することができるため、商取引画面に関する詳細は、必ずしも本発明を理解するために必要ではない。しかしながら、一実施形態においては、使用可能な商取引画面の1つの種類が、イリノイ州シカゴのTrading Technologies International, Inc.のX_TRADER(登録商標)という市販の商取引アプリケーションによってもたらされる。さらに、X_TRADER(登録商標)は、係属中の注文ならびに/あるいは買いおよび売りの数量を固定の価格軸または目盛りに関連付けて表示するMD Trader(商標)という電子商取引インターフェイスも提供する。
【0021】
X_TRADER(登録商標)の各部およびMD Trader(商標)様式の表示が、2000年6月9日付けの「Click Based Trading With Intuitive Grid Display of Market Depth」という名称の米国特許第6,772,132号、2000年6月9日付けの「Click Based Trading with Market Depth Display」という名称の米国特許第6,938,011号、2001年10月5日付けの「Click Based Trading With Intuitive Grid Display of Market Depth and Price Consolidation」という名称の米国特許第7,127,424号、2002年4月19日付けの「Trading Tools For Electronic Trading」という名称の米国特許出願第10/125,894号、および2003年2月28日付けの「A System and Method for Trading and Displaying Market Information in an Electronic Trading Environment」という名称の米国特許出願第10/376,417号に記載されており、これらのそれぞれの内容が、参照によって本明細書に援用される。しかしながら、図1および図2に示したシステムにおける注文を、他の任意の商取引アプリケーションを用いても同様に行うことができることを、理解すべきである。さらに、好ましい実施形態は、変換、保存、および表示の機能を実行するいかなる特定の製品にも限定されない。
【0022】
ゲートウェイ106として使用されるコンピュータは、通常は、パーソナルコンピュータからより大型またはより高速なコンピュータまでさまざまである。例示のゲートウェイコンピュータは、Pentium(商標)マイクロプロセッサを使用することができ、Windows(サーバまたはワークステーション)オペレーティングシステムまたは他の何らかのシステムのもとで動作することができる。一般に、ゲートウェイ106は、所望であれば、モニタ(または、他の任意の出力装置)、入力装置、およびデータベースへのアクセスをさらに備えている。コンピュータシステムの当業者であれば、この例示の実施形態が、ゲートウェイ106に採用されるコンピュータのいかなる特定の種類または型式にも限定されないことを理解でき、適切なシステムを選択することができるであろう。さらに、いくつかの場合においては、ゲートウェイ106などのゲートウェイが不要である可能性もあり、さらには/あるいは他の種類のネットワーク中継デバイスを使用することができる。
【0023】
ここで商取引ステーションまたはゲートウェイとして使用されるコンピュータシステムが、一般に、中央演算処理装置、メモリ(一次および/または二次メモリユニット)、通信ネットワークからデータを受け取るための入力インターフェイス、1つ以上の入力装置(例えば、キーボード、マウス、など)から入力信号を受け取るための入力インターフェイス、および出力装置(例えば、モニタ)との通信のための出力インターフェイスを備えることに、注意すべきである。システムバスまたは同等のシステムが、これら種々の構成要素間の通信をもたらすことができる。
【0024】
ゲートウェイ106または商取引ステーション102のメモリが、コンピュータ可読媒体を含んでいる。コンピュータ可読媒体という用語は、本明細書において使用されるとき、実行のためのプロセッサユニットへのインストラクションの提供に関与する任意の媒体を指す。そのような媒体は、これらに限られるわけではないが不揮発媒体および伝送媒体など、多数の形態をとることができる。不揮発媒体として、例えば、ストレージ装置などの光または磁気ディスクが挙げられる。揮発媒体として、例えばメインメモリまたはランダム・アクセス・メモリ(「RAM」)などのダイナミックメモリが挙げられる。コンピュータにとって読み取り可能な媒体の一般的な形態として、例えばフロッピーディスク、フレキシブルディスク、ハードディスク、磁気テープ、パンチカード、CD−ROM、他の任意の物理的な媒体、メモリチップまたはカートリッジ、あるいはコンピュータによる読み出しの対象となりうる他の任意の媒体が挙げられる。
【0025】
また、商取引ステーション102A〜Bが、通常は、商取引ステーションのオペレーティングシステムの制御のもとで商取引ステーション102A〜Bに常駐するアプリケーションプログラムを実行することに、注意すべきである。また、ゲートウェイ106も、ゲートウェイ106のオペレーティングシステムの制御のもとでゲートウェイ106に常駐するアプリケーションプログラムを実行する。他の実施形態においては、当業者であれば理解できるとおり、商取引ステーション102A〜Bにおけるアプリケーションプログラムの機能を、ゲートウェイ106によって実行してもよく、同様に、ゲートウェイ106におけるアプリケーションプログラムの機能を、商取引ステーション102A〜Bによって実行してもよい。
【0026】
実際の電子商取引システムの構成は、非常にたくさんあり、電子商取引システムの当業者であれば、適切なネットワークの構成を構築できるであろう。例示の目的で、いくつかの典型的な構成を提示し、各構成要素を物理的にどこに位置させることができるか、および各構成要素を電子商取引システムを形成するためにどのように接続できるかを説明する。これらの例示は、読者を手助けしようとするものであって、本発明を限定しようとするものではない。一例によれば、ゲートウェイ装置が、商取引ステーションとともにクライアントの場所に位置することができ、そのような場所は、通常は電子取引所におけるマッチングプロセスから離れている。別の例によれば、ゲートウェイ装置を、取引所側に位置させることができる。このように、本発明は、いかなる実際のネットワークの構成にも限定されない。
【0027】
例示の実施形態によれば、商取引ステーション102A〜B、ゲートウェイ106、および任意のルータが、LAN104を介して通信し、ゲートウェイ106が、T1、T3、ISDN、または他の何らかの高速接続を介して、電子取引所108におけるマッチングプロセスと通信できる。別の典型的な例では、クライアントの場所が、電子取引所の実際の敷地(例えば、取引所の建物内)に位置してもよい。この場合には、商取引ステーションおよびゲートウェイが、依然としてLANを介して通信することができるが、ルータが使用される場合には、T1、T3、またはISDN以外の別の接続手段によって電子取引所のマッチングプロセスと通信することができる。さらに別の典型的な例では、ゲートウェイを、対応する電子取引所またはその付近に収容することができる。この場合には、商取引ステーションは、広域ネットワークを介してゲートウェイと通信でき、あるいはT1、T3、ISDN、または他の何らかの高速接続を使用することによってゲートウェイと通信できる。
【0028】
図1には、取引所が1つだけ示されているが、トレーダが、複数の電子取引所にアクセスして取引を行ってもよいことを、理解できるであろう。そのような実施形態においては、クライアント端末が、特定の取引所に合わせてそれぞれ設計された複数のゲートウェイを介して、複数の取引所にアクセスできる。あるいは、ただ1つのゲートウェイを、2つ以上の電子取引所を担当するようにプログラムすることができる。
【0029】
トレーダに、異なる電子取引所に挙げられた取引対象物を取引する機会をもたらすことが、きわめて有益であり得る。例えば、トレーダは、1つの共通の視覚表示によって、それぞれの取引対象物からの市場情報を閲覧することができる。すなわち、2つの別個の取引所からの価格および数量の情報を、トレーダが両方の市場を同じウインドウで同時に閲覧できるよう、まとめて提示することができる。別の例では、トレーダが、異なる電子取引所に挙げられた異なる取引対象物をスプレッド取引することができる。しかしながら、本発明はそれらに限定されない。
【0030】
II. 例示的なシステムの構成
図2が、1つの例示的な実施形態による新規かつ優れた価格提示を配信するための例示的なシステム200を説明するブロック図である。例示的なシステム200は、価格データ204を価格提示サーバ206へと供給する取引所202を含んでいる。価格提示サーバ206は、受信した価格データ204を処理し、さらに詳しく後述される新規かつ優れた価格提示208を生成する。次いで、価格提示208が、クライアント端末210へと供給される。
【0031】
具体的には示されていないが、価格提示サーバ206が取引所202に位置してもよいことを、理解すべきである。代案として、価格提示サーバ206が、ゲートウェイに位置してもよい。さらなる代案として、価格提示サーバ206は、取引所202およびゲートウェイと通信する独立した存在であってもよい。さらには、説明の目的のためにクライアント端末が1つだけ示されているが、価格提示サーバ206が、マルチキャストや現時点において公知または後に開発される何らかの他の通信方法によって、複数のクライアント端末へと価格提示208を伝えてもよいことを、理解すべきである。
【0032】
III. 例示的な価格データ提示の生成
既存の価格提示方法は、多数の限界を抱えており、最も頻繁に使用される差分ベースの市場データの提示は、高速で変化する市場において、不必要なメモリ、帯域幅、および演算リソースの消費を招く結果となる高度なネットワークの信頼性を必要とする。ここに提案される新規な価格提示は、いくつかの利点の中でもとりわけ、これらの問題を解決する。
【0033】
例示的な取引対象物のデプスの価格は、連続する価格の間に許される最小の価格刻みに対応するチックサイズ(tick size)によって互いに関係している。高速で変化する大規模の市場においては、価格が、通常は、市場における価格の相対位置の間に線形関係を有している。換言すると、多くの場合、デプスの価格は、隣の価格レベルの価格から1チックだけ離れている。例えば、10というチックサイズを有している一式の買い値{50,40,30,20,10}、およびやはり10というチックサイズを有している一式の売り値{60,70,80,90,100,110}は、すべての価格がチック1つ分のオフセットにあるため、線形関係を有している。本明細書に記載される例示的な価格提示の態様は、この価格レベルの線形属性を利用することで、ただ1つの基準価格レベルだけを複数の数量値とともに提示し、他の価格を、価格更新において指定されるそれぞれの数量について、基準価格に対する各価格の相対位置に基づいて導出する。
【0034】
市場は線形になる傾向にあるが、例えば買い側または売り側の価格一式が{60,70,90,100,110}である場合など、非線形性に直面する場合もありうる。この例における市場を、2番目の価格レベル「70」および3番目の価格レベル「90」がチック2つ分だけ離れているなど、すべての価格レベルがチック1つ分のオフセットにあるというわけではないため、非線形であると考えることができる。新規な価格提示のための例示的な実施形態によれば、基準価格レベルの提示に加えて、非線形性を伴っている価格が、価格更新メッセージにおいて送信される。線形または非線型な市場において、価格更新メッセージにおいてくつかの価格レベルを送信する必要がなくなることで、高度に効率的な圧縮された価格提示がもたらされる一方で、クライアント端末における圧縮された更新の処理に、既知の値の加算および減算の操作が必要である。
【0035】
以下の例は、例示的な実施形態によるいくつかの価格提示メッセージを説明する。以下の例の大部分は、各価格レベルにおける総計の数量値を提供するためのメッセージフォーマットを説明する。しかしながら、システムが或る価格レベルに係属しているそれぞれの注文に対応する個々の数量値を提供するように構成されている場合には、各価格レベルに対して2つ以上の数量値を定めることができることを、理解すべきである。各価格レベルにおける詳細な数量値を提供するためのメッセージフォーマットも、同様に説明される。
【0036】
図3は、1つの例示的な実施形態に従って価格および総計の数量データを送信するために使用されるメッセージ300の例示的なフォーマットを説明するブロック図である。
【0037】
例示的なメッセージ300は、いくつかのパケット・ヘッダ・フィールドを含んでいる。パケット・ヘッダ・フィールドとして、バージョンフィールド302、ブロック識別子フィールド304、スナップショット識別子フィールド306、サイズフィールド308、続き番号「sqn」フィールド310、およびフィルタ・キー・フィールド312が挙げられる。バージョンフィールド302は、メッセージ300を生成するために使用されたプロトコル・バージョン識別子を定めている。プロトコル・バージョン識別子を、メッセージ300を受け取ったクライアント端末において、メッセージを当該メッセージの生成に用いられたプロトコルの特定のバージョンを使用してデコードするために使用することができる。ブロック識別子フィールド304は、数量、価格、または他のデータブロックがメッセージに含まれているか否かを定めている。スナップショット識別子フィールド306は、メッセージにおいてスナップショットデータ配信が使用されているか否かを定めている。スナップショット識別子フィールド306が設定されない場合、異なる種類の市場配信を同様に使用することができる。例示的な実施形態は、スナップショットベースの市場データの配信モデルに着目しているが、メッセージ300が、差分配信モデル、スナップショットおよび差分配信モデルの組み合わせ、あるいはさらに他の何らかのモデルなど、他の市場配信の種類を定める追加のフィールドを含んでもよいことを、理解すべきである。
【0038】
再びメッセージ300を参照すると、サイズフィールド308が、メッセージのサイズをバイトを単位にして定めている。1つの例示的な実施形態によれば、例えば1024バイトなど、最大パケットサイズを定めることができる。続き番号フィールド310は、メッセージがクライアント端末へと送信されるたびに増やされるカウンタ値を特定している。メッセージ300において特定される増加するカウンタ値を、クライアント端末においてパケットの喪失を検出するために使用することができる。1つの例示的な実施形態によれば、パケットの喪失が所定のしきい値を超える場合、クライアント端末は、特定の更新の再送信の要求を、価格提示サーバへと送信することができる。最後に、メッセージ300のヘッダのフィルタ・キー・フィールド312は、取引所名、取引対象物のシンボル、ならびに所与の取引対象物を一意に特定するシリーズ名およびシリーズキーの連続に基づいて生成される32ビットのサイクリック・リダンダンシー・チェック(「CRC」)を含んでいる。1つの例示的な実施形態によれば、フィルタキーが、フィルタキーをクライアント端末またはネットワークの他の構成要素において望ましくないデータを除去するために使用することができるよう、一意な値を形成するように生成される。
【0039】
次に、メッセージ300は、タイプフィールド314、長さフィールド316、およびいくつかのブロック特有のフィールド(ここでは、318〜340で示されている)を有するブロックヘッダを含んでいる。タイプフィールド314は、メッセージ300に含まれるブロックの種類を定めている。1つの例示的な実施形態によれば、所与の取引対象物を一意に特定するセキュリティID、価格がどのように表されるかを定めるチックデータ、デプス、インプライドデプス(implied depth)、最終取引価格/数量などの取引データ、最高/最低取引価格などのセッションデータ、セオレティカルマーケット(theoretical market)、ダイレクトマーケット(direct market)、インディカティブマーケット(indicative market)、インプライドマーケット(implied market)からのインプライド、市場価格、ならびにオープンまたはクローズドなどの所与の取引対象物についての一時的な取引状態など、多数のさまざまなブロックの種類が存在できる。1つの例示的な実施形態によれば、種々のバイナリ識別子を、例示のデータの種類を定めるために使用することができる。例えば、「0」〜「11」を、「0」がセキュリティIDという種類に対応し、「1」がチックブロックという種類に対応するなど、例示的なブロックの種類のそれぞれを表わすために使用することができる。例示した種類があくまでも例にすぎず、別のデータの種類も本明細書に記載の方法を使用して同様に提供できることを、理解すべきである。
【0040】
次に、ブロック種類が、デプス価格、インプライド価格、セオレティカル価格、インディカティブ価格、ダイレクト価格、または市場データに基づいて計算できる他の何らかの価格に設定されると仮定すると、フィールド318〜340が、メッセージ300に示されるとおりに使用される。「aサイズ」フィールド318が、メッセージ300において送信される売りの数を定める。1つの例示的な実施形態によれば、売りの最大数を、メッセージ300においてクライアント端末へと提供される売りレベルの数へと定めることができる。図3に提示の例では、メッセージ300が、320〜328に示されている売りフィールド「a1〜a5」によって5つの売りレベルを含んでいる。1つの例示的な実施形態によれば、売りフィールド320〜328が、どの売り値が非線形であるかを示すビットマップである。売りフィールドのいずれかにビットが設定されている場合、該当の価格が、具体的な例を用いてさらに詳しく後述されるとおりに転送される。ビットが空いている場合、該当の価格は、先の価格レベルよりもチック1つ分だけ高い/低いと推定され、したがって転送されない。より正確に言えば、メッセージ300を受信するクライアント端末が、メッセージ300に指定される各数量に対応する価格レベルを割り出すために特定のビットマップを使用することができる。さらに、1つの例示的な実施形態によれば、「a1」フィールド320のビットが、好ましくは売りサイズがゼロよりも大きい場合に設定される。
【0041】
メッセージ300において提供される売り関連の情報と同様に、「b」サイズフィールドが、332〜340に示されている買いフィールドによってメッセージ300において送信される係属中の買いの数を示す。売りフィールドと同様に、買いフィールド332〜340は、どの買い価格が非線形であるかを示すために使用される。1つの例示的な実施形態によれば、買いフィールド332が、売りサイズが「0」へと設定され、買いサイズが「0」よりも大きい場合に設定される。「b1」フィールドが空いており、買いサイズが「0」よりも大きい場合、買い価格は、「a1」に対応する売り価格よりもチック1つ分だけ低い。買いフィールドのいずれかにビットが設定されている場合、該当の価格が転送される。ビットが空いている場合、該当の価格は、先の価格よりもチック1つ分だけ高い/低いと推定され、転送されない。
【0042】
さらに、メッセージ300は、342〜350に示されているいくつかの売り数量ブロック「ask qty 1〜ask qty 5」と、352〜360に示されているいくつかの買い数量ブロック「bid qty 1〜bid qty 5」と、362〜370に示されているいくつかの売り価格ブロック「ask price 1〜ask price 5」と、最後に372〜380に示されているいくつかの買い価格ブロック「bid price 1〜bid price 5」とを含んでいる。1つの例示的な実施形態によれば、メッセージ300において転送される売り数量の数が、「aサイズ」フィールド318において指定される売りサイズに等しく、買い側の数量の数は、「bサイズ」フィールド330の数を反映する。メッセージ300の買い側および売り側について5つの数量ブロックが示されているが、システムの構成に応じて、別の数の買いおよび売りレベルを同様に転送できることを理解すべきである。
【0043】
ここで、売り/買い価格ブロックを参照すると、転送される価格の数が、320〜328および332〜340の「a1〜a5」および「b1〜b5」に設定されたビットの数に等しい。1つの例示的な実施形態によれば、ただ1つの基準価格が転送され、線形市場においては他の価格は転送されないが、代わりにクライアント端末が、更新において提供されない価格を、所与の市場の他の価格に関する既知の線形特性に基づいて割り出す。例えば、基準価格を、最良の売り価格または最良の買い価格に設定することができる。しかしながら、基準価格を別の価格に設定してもよいことを、理解すべきである。最良の売り価格が基準価格であり、他の売り価格が線形である例では、最良の売り価格が、メッセージ300において「ask price 1」ブロックにて転送され、他の売り価格は転送されない。1つの例示的な実施形態によれば、市場に係属中の価格が存在しない場合には、すべての数量および価格がゼロに等しいこと、または送信されないことを示すために、売りおよび買いサイズフィールドをゼロにして、ブロックヘッダのみをクライアント端末へと送信することができる。
【0044】
新規なデータ提示の生成および配信のための上述の実施形態を、以下で具体的な例を使用して説明する。これらの例が例示にすぎず、下記に提示される例について、さまざまな変形または修正も可能であることを、理解すべきである。
【0045】
A. 1レベルのデプスの例
典型的には、複数のレベルからなるデプスが、クライアント端末へと送信されるが、1レベルのデプスが、ときには送信されうる。1つの例示的な実施形態によれば、1レベルのデプスを、インディカティブ、ダイレクト、またはセカンド・ジェネレーション・インプライド価格、ならびにセオレティカル価格について、そのような価格が取引所によって提供されている場合に送信することができる。さらには、1レベルのデプスを、クライアント端末がインサイド・マーケット・データのみを受け取るように契約している場合に、提供することができる。
【0046】
図4Aおよび図4Bが、例示的な1レベルのデプス400、およびこの例示的なデプス400について生成されたメッセージフォーマット402を示している。図4Aに示した例示的な実施形態によれば、インサイドマーケットが、「50」という最良の買い値レベルに「89」という買い数量を含んでおり、さらに「60」という最良の売り値レベルに「81」という売り数量を含んでいる。図4Bに示したメッセージ402に示されているとおり、売りおよび買いサイズフィールド404および406は、メッセージ402において買いおよび売りが1つだけ送信されていることを示すために、どちらも「1」に設定されている。次いで、最良の売り価格がメッセージにおいて基準価格として使用されているため、売りビットマップ408の最初のフィールドが、「1」に設定され、売りビットマップ408の他のフィールドおよび買いビットマップ410が、「0」に設定されている。図3に示したメッセージ構成に基づき、メッセージ402は、フィールド412に「81」という売り数量を定め、フィールド414に「89」という買い数量を定め、フィールド416に60という基準売り価格レベルを定めている。
【0047】
B. 5レベルのデプスの例−線形市場
多くの商取引環境においては、複数のマーケット・デプス・レベルが、クライアント端末へと提供される。図5Aおよび図5Bが、本明細書に記載の例示的な実施形態に従って市場データを伝達するために生成される例示的な市場データセット500およびメッセージ502を示している。図5Aを参照すると、市場データ500が、5つの売り値レベルおよび5つの買い値レベルを、対応する数量とともに含んでいる。この例示の市場データ500には、5つの買いおよび5つの売りが存在するため、売りサイズフィールド504および買いサイズフィールド506は、どちらも「5」に設定されている。市場データ500のすべての価格は、「10」というチックサイズであるチック1つ分だけ互いに離れており、すなわち、市場データが線形である。上述の例を使用して、最良の売り価格をメッセージ更新における基準価格として使用し、さらに市場データ500の線形な価格特性を利用して、メッセージ502は、売りビットマップ508の最初のフィールドに設定されたただ1つのビットを呈しており、売りビットマップ508および買いビットマップ510において、他のビットは「0」に設定されている。
【0048】
次に、メッセージ502のブロックフィールドを参照すると、最初の5つのブロック512〜520は、5つの売り数量レベルを含んでおり、最初の売り数量ブロック512が、最良の売り価格に対応する数量を挙げており、第2の売り数量ブロック514が、次の売り価格レベルの数量を挙げており、以下同様である。次いで、次の5つのブロック522〜532は、5つの買い数量レベルを含んでおり、最初の買い数量ブロック522が、最良の買い価格の数量を挙げており、第2の買い数量ブロック524が、次の買い価格レベルの数量を挙げており、以下同様である。すでに述べ、ビットマップ508に示したとおり、最良の売り価格が基準価格として使用されており、従ってブロック532に含まれている。他の価格は、線形特性を共有しているため、メッセージ502には含まれていない。
【0049】
C. 5レベルのデプスの例−非線形市場
先に説明したとおり、多くの活発かつ高速で変化している市場が、線形である一方で、いくつかの市場は、非線形な特性に直面することがありうる。図6Aおよび図6Bが、非線形な市場の例示的な市場データセット600、およびそのような市場について生成される例示的な市場更新メッセージ602を示している。この例示の市場データセット600においては、売り値が「60」、「80」、および「90」であり、買い値が、「40」、「30」、および「10」である。残りの価格「70」、「50」、および「20」には、係属中の数量がない。これら3つの価格レベルには、係属中の数量がないため、このような価格は、本明細書に記載の1つの例示的な実施形態によれば、送信されない。係属中の数量が存在する3つの売りおよび買い価格レベルが存在しているため、メッセージ602の売りおよび買いサイズフィールド604および606は、「3」を示している。
【0050】
ここで、「1 1 0 0 0」という売りビットマップ608に注目すると、最初のビットが、最良の売り価格(ここでは、「60」という売り価格レベルである)が伝達されることを示すために、「1」に設定されている。次に、2番目のビットが、2番目によい売り価格(ここでは、「80」という売り価格である)が同様に伝達されることを示すべく設定されている。売りビットマップの他のすべてのビットが「0」に設定されているため、さらなる売り価格は伝達されず、メッセージ602に含まれる数量に対応する他の価格が、すべて線形であることを示している。
【0051】
次に、メッセージ602のブロックフィールドを参照すると、最初の3つのブロック612〜616が、3つの売り数量レベルを含んでおり、最初の売り数量ブロック612が、最良の売り値に対応する数量を挙げており、2番目の売り数量ブロック614が、次の売り価格レベル(ここでは、「80」という価格レベルである)の数量を挙げており、3番目の売り数量ブロック616が、「90」という次の売り価格レベルの数量を挙げている。次いで、次の3つのブロック618〜622が、「40」、「30」、および「10」という買い価格レベルにそれぞれ対応する3つの買い数量レベルを含んでいる。最後に、上述のビットマップに基づき、ブロック624にて伝達される最良の売り価格へと設定された基準価格に加えて、非線形の売り価格がブロック626にて提供され、さらにブロック628および630にて2つの非線形な買い価格レベルが提供される。
【0052】
D. 別のメッセージフォーマット
図7は、別の例示的な実施形態による別のメッセージブロックのフォーマット700を示すブロック図である。図7に示した実施形態によれば、買いおよび売りが異なるメッセージブロックに記載されるが、それらのブロックを、ただ1つのメッセージへと組み合わせることが可能である。例えば、例示的なメッセージは、買いデプスブロック、売りデプスブロック、インプライド買いデプスブロック、インプライド売りデプスブロック、などを含むことができ、その例を以下でさらに詳しく説明する。
【0053】
図7を参照すると、メッセージ700は、タイプフィールド702、長さフィールド704、サイズフィールド706、およびビットマップフィールド708を有するヘッダを含んでいる。上述したメッセージと同様に、タイプフィールド702は、メッセージブロック700において特定されるデータの種類を定めるブロック識別子である。例示的なメッセージブロックの種類として、ダイレクトマーケット買い/売りデプス、ダイレクトマーケット売りデプス、インプライドマーケット買いデプス、インプライドマーケット売りデプス、詳細買いデプス、詳細売りデプス、最終取引価格/数量、などを挙げることができる。長さフィールド704は、パケットペイロードの長さをバイトを単位にして定めている。デプスサイズフィールド706は、市場データのエントリの数を指定する。次いで、ビットマップフィールド708が、特定の価格がメッセージブロックにおいて送信されるか否かを定める。図7に示した実施形態においては、それぞれの価格フィールドの後ろに数量フィールドが続き、先行の価格フィールドに対応する価格レベルに係属中の数量を定めている。先に述べた実施形態と同様に、基準価格のみがメッセージブロックにて送信され、次いで非線形の価格が、ビットマップ708に指定されるビットに基づいて定められる。ビットマップ708では、8つのビットが指定されているが、より少数またはより多数の価格レベルを示すために、より少数またはより多数のビットを使用してもよいことを、理解すべきである。図7に示した実施形態においては、価格レベル/数量の組み合わせペア8つごとに、さらなるビットマップ(ビットマップ742など)が、ビットマップ742の後ろで指定されるデータに対応して定義される。
【0054】
上述の例と同様に、図7のメッセージブロックを記述および読解するとき、記述されていない価格を推論するために使用される値は、読解/記述されるデータの種類に基づく。ダイレクトおよびインプライド売りマーケットデプスについては、価格が記述されていない場合、先の値へと加えられるオフセットが、「1」へと設定され、あるいは所与の取引対象物について指定されるチックの定義に応じて他の何らかの値に設定される。上述の例と同様に、最も低い売り価格を、基準価格として使用することができる。次いで、ダイレクトおよびインプライドマーケット買いデプスについて、オフセットが「−1」に設定される。係属中の注文に対応する複数の数量値が各価格レベルについて特定される場合など、詳細なデプスが提供される場合には、同じ価格に関する数量に対して適用されるオフセットは、「0」に設定される。この例については、下記に提示する。
【0055】
1. 第1の非線形マーケットデプスの例
図8が、買い側および売り側に8つよりも少ない価格レベルを有しているマーケットデプス804の買い側および売り側について生成される例示的なメッセージブロック800および802を示している。マーケットデプス804は、買い側および売り側について非線形な市場を呈している。メッセージブロック800のヘッダが、買いデプスタイプ806、長さフィールド808、いくつかの買いフィールド810、およびビットマップ812を含んでいる。長さフィールド808は、メッセージブロック800の長さを定めている。メッセージブロック800の長さが、メッセージブロック800において指定されるすべてまたは一部のデータに関して何らかの圧縮が使用されるか否かに依存できることを、理解すべきである。ビットマップ812は、メッセージ800において送信される価格レベルを定める。ビットマップ812に示されているとおり、最初のビットが「1」に設定されているため、「100」という最良の買いが伝達される。次いで、次の2つの買い価格は、それらが線形であるため伝達されず、その次の「60」という価格が、非線形であるため、係属中の数量とともに伝達される。次の「50」という価格は線形であるため、ビットマップ812に「ゼロ」が指定されている。
【0056】
ここで、メッセージ・ブロック・フィールドを参照すると、フィールド814および816からなる第1のペアが、「100」という最良の買い価格を、「25」という最良の買いの数量とともに定めている。次いで、次の2つの価格レベルは線形であるため、ブロックフィールド818および820は、この2つの線形な価格レベルにおける32という数量および64という数量を定めている。次のブロックフィールド822および824は、「60」という非線形な価格レベルを、「95」という係属中の数量とともに定めている。最後に、最後の価格レベルが線形であるため、最後のブロックフィールド826は、「50」という次の線形な価格レベルに係属している「48」という数量を定めている。
【0057】
メッセージブロック802は、タイプフィールド828に示されているとおり、売りデプスを定めるために使用される。メッセージブロック802の長さは、圧縮が使用されるか否かに依存して変化しうるため、830に示されるとおり指定されない。サイズフィールドが、メッセージブロック802において4つの価格/数量レベルが提示される旨を定めており、ビットマップ834が、どの価格がメッセージブロック802のブロックフィールドに記入されるかを示している。ビットマップ834に示されているとおり、最良の売り価格が、基準価格レベルとして使用され、ブロックフィールド836にて送信され、さらなる非線形の価格が、3番目のビットに関連して、ブロックフィールド842に示されているとおり記入される。他のすべてのブロックフィールド838、840、844、および846は、ブロックフィールドに対応するそれぞれの価格レベルの数量値を定めている。
【0058】
2.第2の非線形マーケットデプスの例
図9が、市場の買い側および売り側に8つを超える価格レベルを有しているマーケットデプス904の買い側および売り側について生成される例示的なメッセージブロック900および912を示している。買いメッセージブロック900が、902に示されているとおり、10個のデプスレベルを伝達するために使用され、2つのビットマップ904および906を有しており、第1のビットマップが、最初の8つの買い価格レベルのうちのどれが伝達されるかを定めており、第2のビットマップが、さらなる価格のそれぞれが伝達されるか否かを定めている。第1のビットマップ904に示されているとおり、最初のビットが「1」に設定されているので、最良の買い価格レベルが伝達される。次いで、残りの7つの価格レベルが線形であるため、ビットマップ904の残りのすべてのビットは、「0」に設定される。908に示されているブロックフィールドが、「170」という最良の買い価格を含んでおり、他のすべてのフィールドが、8つの価格レベルにおける数量を定めている。次いで、ビットマップ906が、さらなる2つの買い価格レベルのそれぞれが伝達されるか否かを定めている。最後の2つの買い価格レベルも線形であるため、これらの価格レベルに対応する数量のみが、ブロックフィールド910にて伝達される。
【0059】
ここで、売りメッセージブロック912を参照すると、914に定められているように、ブロック912にて伝達される11の売り価格レベルが存在する。最初の8つの価格レベルに関しては、伝達される価格レベルは2つであり、すなわち最良の売り価格、および非線形な価格に該当する7番目の売り価格である。したがって、第1のビットマップ916は、「1」に設定された1番目および7番目のビットを含んでいる。918に示されているブロックフィールドが、上述したフォーマットを使用して、伝達される価格ならびに数量を定めている。次いで、最後の2つの売り価格が線形であるため、ビットマップ920においては、「1」に設定されるビットは存在せず、これらの線形な価格に対応する数量が、922で示されているブロックフィールドにて送信される。
【0060】
3. 価格レベルに個々の注文数量が存在する例
図10が、各価格レベルの詳細なデプスを提供するために使用される例示的なメッセージ・ブロック・フォーマットを示している。さらに具体的には、上述したとおり、各価格レベルについて、その価格レベルに2つ以上の注文が係属している場合に、ただ1つの総計の数量を提示するのではなく、複数の数量値を記入することができる。図10が、例示的なマーケットデプス1000を、このマーケットデプス1000の買い側および売り側を表わすためにそれぞれ使用される2つのメッセージブロック1002および1004とともに示している。
【0061】
買いメッセージブロック1002が、上述したヘッダフィールドを含んでおり、6つの値がメッセージ1002において提示されるため、サイズフィールド1006が「6」に設定されている。メッセージ1008のフォーマットは、数量値がメッセージブロックにおいて当該数量値に係る価格を定めるために使用されるフィールドの直後のフィールドに記入される図7に示したフォーマットに従う。したがって、各価格レベルについて、数量値を定めるために使用されるフィールドが2つ以上存在し、ビットマップ1008が、どのブロックフィールドに価格レベルが記入されるのかを指定するために使用される。ビットマップ1008においては、最初のビットが、最良の買い価格が価格フィールド1010にて伝達される旨を示すべく設定される。次いで、標準的なメッセージブロックの構成によれば、価格フィールド1010に、この最良の買い価格に係属している注文の第1の数量値を定める数量フィールド1012が続いている。次いで、次の2つのフィールドが、別の価格ではなく、同じ価格レベルにある数量を示すために使用されるため、ビットマップ1008の次の2つのビットは設定されず、それらの数量が、フィールド1014および1016に定められる。次いで、次のフィールド1018が、「205」という次の価格値を定めるために使用されるため、ビットマップ1008において4番目のビットが設定される。次いで、3つのメッセージフィールド1020〜1024が、「205」という価格レベルに係属している個々の注文に対応する数量を表わすために使用される。
【0062】
売りメッセージブロック1004も、買いメッセージブロック1002に関して説明した方法と同じ方法を用いて生成される。メッセージブロック1004に表される値が8つよりも多いため、どのメッセージフィールドが価格の伝達に使用されるのかを示すために、2つのビットマップが使用されている。
【0063】
IV. 圧縮
上述の例では、メッセージに記入されたそれぞれの数量および価格値が、バイナリフォーマットで送信される。1つの例示的な実施形態によれば、4バイトなどの標準的な数のバイトが、たとえ値をより少数のバイトで表わすことができる場合でも、それぞれの値を表わすために使用される。そのような実施形態は、データを真に必要なバイトよりも多くのバイトを使用して送信する結果となる。この欠点を、メッセージにてもたらされる数量値および価格値へと適用できる多数のさまざまな圧縮の仕組みを使用することによって克服することができる。
【0064】
1つの例示的な実施形態によれば、上述のメッセージの数量および価格を表わすために、整数圧縮を使用することができる。整数圧縮とは、追加のビットマップをデータストリングの長さを表わすために最上位または再開のビットに使用して、所与の値を表わすために最小限の数のバイトしか使用しない圧縮法を指す。例えば、所与の値を表わすために4バイトが使用される上述の例では、最初のバイトの最初の数ビットを、所与のデータストリングの長さを表わすために使用することができる。そのような実施形態において、最初のビットが「0」に設定される場合、ただ1つのバイトが値を表わすために使用されると仮定することができる。次いで、最初の2つのビットが「1」および「0」である場合、値を表わすために2バイトが使用され、最初の3つのビットが「1」、「1」、および「0」である場合、3バイトが使用され、最初の3つのビットが「1」に設定される場合、4バイトが使用される、などである。先に述べたように、それぞれの値について送信されるバイト数を表わすために、種々の方法を同様に使用することができる。
【0065】
整数圧縮は、各メッセージのデータサイズの大幅な削減をもたらす。例えば、メッセージが非線形な市場について生成される図5Aおよび図5Bの例を再び参照すると、数量および価格に対応する10個の値が、メッセージにて提供されている。それぞれの値を表わすために4バイトを使用する環境においては、メッセージにおいて10個の値を表わすために必要なサイズは、44バイトである。上述の整数圧縮法を用いると、それぞれの値をバイナリフォーマットで表わすためにただ1つのバイトで充分であるため、同じ10個の値を表わすために、わずか10バイトしか要さないと考えられる。
【0066】
さらに、上述の圧縮の仕組みを、各メッセージのデータのサイズをさらに削減するために、差分法に組み合わせることも可能である。図11Aおよび図11Bが、例示的な非線形のマーケットデプス1100および差分法を使用して生成された例示的なメッセージ1102を示している。上述の例と同様、最良の売り価格「12160」が、基準価格レベルとして使用されている。図6Bに提示した例と同様に、3つの買い数量および3つの売り数量がメッセージブロック1112〜1122に示されるとおりメッセージ1102にて伝達されるため、買いおよび売りサイズフィールド1104および1106が、「3」を示している。次いで、1108に示されている売りビットマップは、「1 1 0 0 0」であり、1110の買いビットマップは、「1 0 1 0 0」である。
【0067】
図11Bに示した例では、市場が非線形であるすべての価格を表わすのではなく、ただ1つの基準価格(ここでは、「12160」という最も低い売り価格)が売り価格ブロック1124に記入され、他のすべての非線形な価格は、オフセット法を使用して記入される。基準価格を元にし、次に高い売り価格は、基準価格からチック2つ分だけ離れており、したがって、基準価格と次の非線形な価格レベルとの間のオフセット差を示すために、「20」が買い価格ブロック1126に記入される。次いで、次の売り価格は線形であるため、価格レベルのオフセット値は記入されず、次の売り価格レベルに対応する数量のみがメッセージ1102に記入される。次いで、例示のデプス1100に関して示されているように、最良の買い値は、最良の売り価格からチック2つ分だけ離れているため、この最良の買い値のオフセットが、買い価格ブロック1128に記入される。「12130」という次の買い価格は、ビットマップ1110に定められているとおり線形であるため、この価格は伝達されない。次いで、「12110」という次の買い価格は非線形であるため、オフセット値がブロックフィールド1130に記入される。図11Bに示した例は、オフセット値を実際の価格の差を使用して示しているが、オフセットを、チックレベルの差を示す1桁の値を使用して定めてもよいことを、理解すべきである。
【0068】
先に説明したように、メッセージ1102に定められる価格および数量を、整数圧縮法または他の何らかの方法を使用して圧縮することができる。図11Bに示した実施形態では、値「12160」が、2バイトを使用して表されている。他のすべての価格レベルが、実際の値を使用して表わされる場合、各価格レベルが2バイトを使用して表わされ、結果として8バイトで4つの価格レベルを表わすことになる。しかしながら、ただ1つの基準価格だけが、実際の価格レベルの値を使用して記入され、他の3つの価格は、オフセット値を使用して表され、オフセット値は、ただ1バイトを使用して表わすことができるように充分に小さい。したがって、整数エンコーディングを差分法による非線形な価格の送信に組み合わせて使用することで、メッセージのサイズを、例示の価格レベルに関して3バイト減らすことができる。価格レベルの数が増すにつれ、この節約も大きくなる。
【0069】
上述のメッセージにおいては特に示されていないが、圧縮法が使用される場合にメッセージのサイズをさらに減らすために、各メッセージ中の数量を差分法を使用して表わしてもよいことを理解すべきである。メッセージのフォーマットについて多数のさまざまな変種が同様に可能であることを、当業者であれば理解できるであろう。
【0070】
V. さまざまな他の市場データメッセージのフォーマット
マーケットデプス関連データの提供に加え、電子商取引環境においてクライアント端末へと標準的に提供される他のデータ種も存在する。いくつかの例示的なデータ種を、例示的なメッセージとともに後述する。上述した圧縮法を、後述のメッセージにて提供されるデータに関して使用してもよいことを、理解すべきである。
【0071】
A. 取引データ
図12は、取引データをクライアント端末へと送信するために使用することができる例示的なメッセージ1200を示すブロック図である。メッセージ1200は、最終取引数量(「ltq」)フィールド1202、最終取引価格(「ltp」)フィールド1204、および総取引量(「ttq」)フィールド1206を含んでいる。図示はされていないが、メッセージ800は、例示のフィールドに加えてブロックヘッダを含んでもよい。
【0072】
B. セッションデータ
図13は、セッションデータをクライアント端末へと送信するために使用することができる例示的なメッセージ1300を示すブロック図である。メッセージ1300を、セッション価格および他の情報の更新をクライアントに知らせるために送信することができる。図12に示したメッセージと同様、メッセージ1300はブロックヘッダを含む。図13に例示のメッセージフィールドは、セッション高値、セッション安値、セッション開始価格、セッション終了価格、およびセッション決済価格をそれぞれ定める5つの価格関連フィールド1302〜1310を含んでいる。次いで、フィールド1312が、取引対象物の現在の状態を定め、フィールド1314が、現在の取引セッションを特定するために生成される32ビットの識別子など、セッション識別子を定めている。
【0073】
さらなるメッセージをいくつか例示したが、多数のさまざまなメッセージを、さらなる市場関連データを伝達するために使用できることを、理解すべきである。
【0074】
例示的なプログラム、プロセス、および方法を詳細に説明および例示したが、それらがあくまでも説明および例示であり、本発明を限定するように理解してはならないことを、当然ながら理解できるであろう。当業者であれば、多数の修正および変更に容易に想到できるため、本発明は、図示および説明した構成および動作そのものに限定されるわけではなく、すべての適切な修正および同等物が、本発明の技術的範囲に包含されうる。
【0075】
一実施形態によれば、例示的なシステムは、コンピュータ可読記憶媒体に保存され、コンピュータベースの装置の適切なインストラクション実行システムによって実行されるコンピュータプログラム製品の形態をとる。コンピュータ可読媒体という用語は、本明細書において使用されるとき、実行のためのプロセッサへのインストラクションの提供に関与する任意の媒体を指す。そのような媒体は、これらに限られるわけではないが不揮発媒体、揮発媒体、および伝送媒体など、多数の形態をとることができる。不揮発媒体として、例えば、ストレージ装置などの光または磁気ディスクが挙げられる。揮発媒体として、メインメモリまたはRAM(ランダム・アクセス・メモリ)などのダイナミックメモリが挙げられる。コンピュータ可読媒体の一般的な形態として、例えばフロッピーディスク、フレキシブルディスク、ハードディスク、磁気テープ、または他の任意の磁気媒体、CD−ROM、他の任意の光媒体、パンチカード、紙テープ、穴のパターンを備える他の任意の物理的な媒体、RAM、PROM、およびEPROM、FLASH−EPROM、および他の任意のメモリチップまたはカートリッジ、あるいはコンピュータによる読み出しの対象となりうる他の任意の媒体が挙げられる。
【0076】
別の実施形態によれば、ハードウェアの実施形態が、種々さまざまな形態をとることができる。ハードウェアの実施形態を、専用ゲートアレイを有する集積回路または特定用途向け集積回路(「ASIC」)として実現することができる。また、ハードウェアの実施形態を、ディスクリートなハードウェア部品および回路によって実現することもできる。特には、フロー図に示した論理構造および方法の段階を、ASICなどの専用のハードウェアに実現でき、あるいはマイクロプロセッサまたは他の演算装置によって実行されるプログラムインストラクションとして実現できることを、理解すべきである。上述の方法を、コンピュータで読み取り可能な1つ以上の媒体を含むコンピュータプログラム製品に具現化できることは、当業者にとって明らかであろう。例えば、コンピュータ可読媒体として、コンピュータ可読プログラムコード部分が保存されているハードドライブ装置、CD−ROM、DVD−ROM、またはコンピュータディスケットなどの可読メモリ装置を挙げることができる。また、コンピュータ可読媒体として、プログラムコード部分をデジタルまたはアナログデータ信号として運ぶ光、有線、または無線のバスまたは通信リンクなどの通信または伝送媒体を挙げることもできる。
【0077】
請求項を、請求項に記載の順序または構成要素に限られると解釈することは、そのような趣旨の記載がない限りは、行ってはならない。したがって、以下の特許請求の範囲の技術的範囲および技術的思想に包含されるすべての実施形態およびその均等物が、本発明として請求される。

【特許請求の範囲】
【請求項1】
電子商取引環境において市場データを提供するための方法であって、
取引対象物について、注文数量が存在している複数の価格レベルを含み、さらに前記複数の価格レベルのそれぞれに係属している注文数量を含む市場情報を受け取るステップ、
前記複数の価格レベルのうちから基準価格レベルを選択するステップ、および
前記基準価格レベルおよび前記複数の価格レベルのそれぞれに係属している注文数量を、前記基準価格レベルが受信端末において前記注文数量のそれぞれを前記複数の価格レベルのうちの該当する1つの価格レベルへと位置付けるために使用されるように含んでいる価格提示メッセージを生成するステップ
を含む方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4A】
image rotate

【図4B】
image rotate

【図5A】
image rotate

【図5B】
image rotate

【図6A】
image rotate

【図6B】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11A】
image rotate

【図11B】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2012−230680(P2012−230680A)
【公開日】平成24年11月22日(2012.11.22)
【国際特許分類】
【外国語出願】
【出願番号】特願2012−115828(P2012−115828)
【出願日】平成24年5月21日(2012.5.21)
【分割の表示】特願2010−507535(P2010−507535)の分割
【原出願日】平成20年5月1日(2008.5.1)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.WINDOWS
2.フロッピー
【出願人】(502317459)トレーディング テクノロジーズ インターナショナル インコーポレイテッド (23)