(57)【特許請求の範囲】
【請求項１】
オーダデータメッセージを処理するための方法であって、
少なくともメモリと通信インタフェースとひとつ以上のプロセッサとを含む情報処理装置において、
前記通信インタフェースを使用して、アカウントに関連付けられた初期オーダデータメッセージであって初期オーダとひとつ以上の静的フィールドとひとつ以上の可変フィールドとを備える初期オーダデータメッセージを受け付けることと、
前記ひとつ以上のプロセッサを使用して、前記初期オーダデータメッセージを検証し、前記初期オーダデータメッセージに含まれる前記初期オーダに関連付けられたオーダマクロＩＤを生成することと、
前記通信インタフェースを使用して、受け付けられた前記初期オーダデータメッセージのアクノレッジと生成された前記オーダマクロＩＤとを含むデータメッセージを送信することと、
前記通信インタフェースを使用して、生成された前記オーダマクロＩＤを使用して前記初期オーダデータメッセージを参照する後続オーダデータメッセージであって前記初期オーダデータメッセージの前記ひとつ以上の可変フィールドのうちのひとつについての少なくともひとつの可変フィールド値を使用するオーダについての情報を含む後続オーダデータメッセージを受け付けることと、
前記ひとつ以上のプロセッサを使用して、前記初期オーダデータメッセージの前記ひとつ以上の静的フィールドに関連付けられた値と前記少なくともひとつの可変フィールド値とを合わせることで完全オーダデータメッセージを生成することと、を含む方法。
【請求項２】
前記初期オーダデータメッセージを検証することは、前記初期オーダデータメッセージをパースすることと、前記初期オーダデータメッセージの前記ひとつ以上の静的フィールドの全てを検証することと、を含み、
生成されたオーダマクロＩＤを示すひとつ以上の後続オーダを含むひとつ以上の後続オーダデータメッセージは前記通信インタフェースを介して受け付けられる、請求項１に記載の方法。
【請求項３】
前記後続オーダデータメッセージの前記ひとつ以上の可変フィールドを検証することと、
前記後続オーダデータメッセージの検証をアクノレッジすることと、をさらに含む請求項１に記載の方法。
【請求項４】
前記後続オーダデータメッセージの前記オーダマクロＩＤを使用して前記初期オーダを取得することと、
前記初期オーダの前記ひとつ以上の可変フィールドを前記少なくともひとつの可変フィールドで更新することと、をさらに含む請求項１に記載の方法。
【請求項５】
前記ひとつ以上の静的フィールドは、オーダタイプ、オーダシンボルおよび／またはオーダサイズのうちの少なくともひとつを含む請求項１に記載の方法。
【請求項６】
前記ひとつ以上の可変フィールドは、オーダサイドおよび／またはオーダ価格のうちの少なくともひとつを含む請求項１に記載の方法。
【請求項７】
カスタマイズ可能なオーダエントリプロトコルを使用したオーダの処理のためのコンピュータプログラムであって、
通信インタフェースを使用して、アカウントに関連付けられた初期オーダデータメッセージであって初期オーダとひとつ以上の静的フィールドとひとつ以上の可変フィールドとを備える初期オーダデータメッセージを受け付ける機能と、
ひとつ以上のプロセッサを使用して、前記初期オーダデータメッセージを検証し、前記初期オーダデータメッセージに含まれる前記初期オーダに関連付けられたオーダマクロＩＤを生成する機能と、
前記通信インタフェースを使用して、受け付けられた前記初期オーダデータメッセージのアクノレッジと生成された前記オーダマクロＩＤとを含むデータメッセージを送信する機能と、
前記通信インタフェースを使用して、生成された前記オーダマクロＩＤを使用して前記初期オーダデータメッセージを参照する後続オーダデータメッセージであって前記初期オーダデータメッセージの前記ひとつ以上の可変フィールドのうちのひとつについての少なくともひとつの可変フィールド値を使用するオーダについての情報を含む後続オーダデータメッセージを受け付ける機能と、
前記ひとつ以上のプロセッサを使用して、前記初期オーダデータメッセージの前記ひとつ以上の静的フィールドに関連付けられた値と前記少なくともひとつの可変フィールド値とを合わせることで完全オーダデータメッセージを生成する機能と、をコンピュータに実現させるためのコンピュータプログラム。
【請求項８】
ひとつ以上のオーダデータメッセージを受け付けるよう構成された通信インタフェースと、
ひとつ以上のオーダを保持するよう構成されたメモリと、
前記通信インタフェースおよび前記メモリと関連付けられ、オーダデータメッセージを処理するよう構成されたひとつ以上のプロセッサであってさらに、
前記通信インタフェースを使用して、アカウントに関連付けられた初期オーダデータメッセージであって初期オーダとひとつ以上の静的フィールドとひとつ以上の可変フィールドとを備える初期オーダデータメッセージを受け付けることと、
前記ひとつ以上のプロセッサを使用して、前記初期オーダデータメッセージを検証し、前記初期オーダデータメッセージに含まれる前記初期オーダに関連付けられたオーダマクロＩＤを生成することと、
前記通信インタフェースを使用して、受け付けられた前記初期オーダデータメッセージのアクノレッジと生成された前記オーダマクロＩＤとを含むデータメッセージを送信することと、
前記通信インタフェースを使用して、生成された前記オーダマクロＩＤを使用して前記初期オーダデータメッセージを参照する後続オーダデータメッセージであって前記初期オーダデータメッセージの前記ひとつ以上の可変フィールドのうちのひとつについての少なくともひとつの可変フィールド値を使用するオーダについての情報を含む後続オーダデータメッセージを受け付けることと、
前記ひとつ以上のプロセッサを使用して、前記初期オーダデータメッセージの前記ひとつ以上の静的フィールドに関連付けられた値と前記少なくともひとつの可変フィールド値とを合わせることで完全オーダデータメッセージを生成することと、を行うよう構成されたひとつ以上のプロセッサと、を備える情報処理装置。
【請求項９】
前記初期オーダデータメッセージを検証することは、前記初期オーダデータメッセージをパースすることと、前記初期オーダデータメッセージの前記ひとつ以上の静的フィールドの全てを検証することと、を含み、
生成されたオーダマクロＩＤを示すひとつ以上の後続オーダを含むひとつ以上の後続オーダデータメッセージは前記通信インタフェースを介して受け付けられ、
前記情報処理装置は、ひとつ以上の取引デバイスと通信するよう構成された電子的交換装置である、請求項８に記載の情報処理装置。
【請求項１０】
前記ひとつ以上のプロセッサはさらに、
前記後続オーダデータメッセージの前記ひとつ以上の可変フィールドを検証することと、
前記後続オーダデータメッセージの検証をアクノレッジすることと、を行うよう構成される請求項８に記載の情報処理装置。
【請求項１１】
前記ひとつ以上のプロセッサはさらに、
前記後続オーダデータメッセージの前記オーダマクロＩＤを使用して前記初期オーダを取得することと、
前記初期オーダの前記ひとつ以上の可変フィールドを前記少なくともひとつの可変フィールドで更新することと、を行うよう構成される請求項８に記載の情報処理装置。
【請求項１２】
前記ひとつ以上の静的フィールドは、オーダタイプ、オーダシンボルおよび／またはオーダサイズのうちの少なくともひとつを含む請求項８に記載の情報処理装置。
【請求項１３】
前記ひとつ以上の可変フィールドは、オーダサイドおよび／またはオーダ価格のうちの少なくともひとつを含む請求項８に記載の情報処理装置。
【請求項１４】
クライアントデバイスと情報処理装置とを備える情報処理システムであって、
前記クライアントデバイスは、
ひとつ以上のオーダデータメッセージを受け付ける／送信するための通信インタフェースと、
ひとつ以上のオーダを保持するよう構成されたメモリと、
前記メモリおよび前記通信インタフェースと関連付けられ、ひとつ以上のオーダデータメッセージを生成するよう構成されたひとつ以上のプロセッサと、を含み、
前記情報処理装置は、
ひとつ以上のオーダデータメッセージを受け付けるよう構成された通信インタフェースと、
ひとつ以上のオーダを保持するよう構成されたメモリと、
前記通信インタフェースおよび前記メモリと関連付けられ、オーダデータメッセージを処理するよう構成されたひとつ以上のプロセッサであってさらに、
前記通信インタフェースを使用して、アカウントに関連付けられた初期オーダデータメッセージであって初期オーダとひとつ以上の静的フィールドとひとつ以上の可変フィールドとを備える初期オーダデータメッセージを受け付けることと、
前記ひとつ以上のプロセッサを使用して、前記初期オーダデータメッセージを検証し、前記初期オーダデータメッセージに含まれる前記初期オーダに関連付けられたオーダマクロＩＤを生成することと、
前記通信インタフェースを使用して、受け付けられた前記初期オーダデータメッセージのアクノレッジと生成された前記オーダマクロＩＤとを含むデータメッセージを送信することと、
前記通信インタフェースを使用して、生成された前記オーダマクロＩＤを使用して前記初期オーダデータメッセージを参照する後続オーダデータメッセージであって前記初期オーダデータメッセージの前記ひとつ以上の可変フィールドのうちのひとつについての少なくともひとつの可変フィールド値を使用するオーダについての情報を含む後続オーダデータメッセージを受け付けることと、
前記ひとつ以上のプロセッサを使用して、前記初期オーダデータメッセージの前記ひとつ以上の静的フィールドに関連付けられた値と前記少なくともひとつの可変フィールド値とを合わせることで完全オーダデータメッセージを生成することと、を行うよう構成されたひとつ以上のプロセッサと、を含む情報処理システム。
【請求項１５】
前記初期オーダデータメッセージを検証することは、前記初期オーダデータメッセージをパースすることと、前記初期オーダデータメッセージの前記ひとつ以上の静的フィールドの全てを検証することと、を含み、
生成されたオーダマクロＩＤを示すひとつ以上の後続オーダを含むひとつ以上の後続オーダデータメッセージは前記通信インタフェースを介して受け付けられ、
前記クライアントデバイスは取引デバイスであり、
前記情報処理装置は、前記取引デバイスと通信するよう構成された電子的交換装置である請求項１４に記載の情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、新規で独創的なプロトコル方法および対応するシステムを用いることで、ペイロードの低減、遅延の低減、および帯域の節約を提供する。本技術は特にオーダデータメッセージエントリに関し、とりわけ取引クライアントと取引所のオーダポート／ゲートウエイとの間のメッセージのやりとりの低減を可能とするマクロベースのオーダエントリ手法に関する。
【背景技術】
【０００２】
現代の分散システムでは、離れて配置されているデバイスの間であまたのデータメッセージが一秒もしないうちにやりとりされている。現代の計算デバイスはより大きなメモリとより速いプロセッサとより広帯域の性能とを有するが、処理効率やデバイス間の全体的な遅延を改善することが常に要求されている。これは、数多くのリモートデバイスと通信し、大規模なオーダエントリおよびオーダ処理を行う電子的交換システムについて特にそうでありうる。
【０００３】
現代のある交換システムは、オーダエントリのためにＯＵＣＨオーダエントリプロトコルを使用する。ＯＵＣＨプロトコルは専売のＮＡＳＤＡＱ  ＯＭＸ（登録商標）デジタル通信プロトコルであり、電子取引プロバイダの顧客が種々の電子的金融市場でビジネスを行うことを可能とする。ＯＵＣＨにより、利用者は注文したり、注文を実行したり、注文をキャンセルしたりすることができる。さらに、ＯＵＣＨによると、利用者は電子的取引サービスを自身の専用のネットワークに統合することができ、比較的高度のシームレスさが与えられる。ＯＵＣＨは、高性能および遅延最小化を目的として設計された、ローレベル（low-level）のネイティブプロトコルである。機能的効率および速度の最適化を達成するために、柔軟性がいくらか犠牲になる。
【０００４】
ＯＵＣＨプロトコルは、ホスト（すなわち、取引所）とクライアント（すなわち、トレーダ）アプリケーションとの間で所定長の論理メッセージをやりとりする。ホストに送信された全てのデータメッセージは、一時的なハードウエア障害やソフトウエアエラーの場合に再送可能である。単一のＯＵＣＨアカウントを複数の装置と紐付けることで、冗長性および耐障害性が達成される。さらに、ＯＵＣＨは、顧客（ブローカ／トレーダ／メンバ）からのデータメッセージがそれらが受け付けられたのと同じ順番で処理されることを確実にする。新たなオーダのそれぞれは、日付およびアカウント名を特定するトークンを含む。いったんトークンが使用されると、そのトークンは自動的に失効し、その結果そのトークンを再度使用することができなくなる。オーダが発せられ、実行され、またはキャンセルされ、そのアクションがホストによって受け付けられると、アクノレッジデータメッセージがクライアントに送信される。
【０００５】
インバウンド（クライアントからホストへの）メッセージは以下のタイプを含みうるがそれらに限定されない。オーダエントリ、クロスオーダエントリ、およびオーダキャンセルエントリ。アウトバウンド（ホストからクライアントへの）メッセージはより様々であってもよく、以下を含むがそれらに限定されない。日の開始、日の終了、タイムスタンプ、オーダ要求、オーダ受領、オーダ拒否、オーダ実行、キャンセル係属中、キャンセル拒否、オーダキャンセル、ブロークントレード、および値段訂正。
【０００６】
ＯＵＣＨプロトコルは、ＯＵＣＨホストとクライアントアプリケーションとの間でやりとりされる論理メッセージからなる。各メッセージタイプは固定メッセージ長を有し、全てのメッセージは固定長からなる。使用されるデータタイプは数値フィールドおよびアルファフィールドであり、数値フィールドはＡＳＣＩＩコード化デジットのストリングを含み右揃えかつ左側はゼロ埋めであり、アルファフィールドは左揃えかつ右側はスペースで詰められている。
【０００７】
ＯＵＣＨを介して入力された新たなオーダメッセージは全ての要求されるフィールドを特定しなければならず、オーダエントリポートはそれらのフィールドのひとつひとつをパースして検証しなければならない。ＯＵＣＨや同様のオーダエントリプロトコル（例えば、ＦＩＸプロトコル）のユーザが利用可能なフィールドの小さな部分集合を除いて同一の一連のメッセージを提出することがよくある。この重複情報は通信設備を通じて運ばれ、取引データセンタのハードウエアによって管理され、かつ取引システムによって処理されなければならない。利用可能な従来技術では、ユーザによるこの重複情報の送信を避けるすべは無く、またさらには取引所がそれを処理することを避けるすべも無い。したがって、離れたデバイス間の遅延を改善しつつも重複情報の提出を低減可能なシステムが必要とされている。
【発明の概要】
【０００８】
本技術は、テンプレート／マクロベースのオーダエントリシステムを用いることによりこれらの課題を解決する。初期オーダデータメッセージは、オーダについての初期パラメータを確立するマクロを含み、一意のＩＤはマクロに関連付けられる。後続の、かつより小さいサイズである可能性のあるデータメッセージはオーダを行うための関連するオーダ詳細と共に一意のＩＤを含む。無論、本明細書で開示される技術は、全体としての遅延を改善するのを助けるためにメッセージサイズを低減するというより広い思想を想定するものであり、オーダエントリに限られない。
【図面の簡単な説明】
【０００９】
【図１】取引システムの例示的な機能ブロック図である。
【００１０】
【図２Ａ】図２Ａ−Ｄは、オーダデータメッセージおよびオーダデータメッセージのそれぞれの内容の例示的な図である。
【図２Ｂ】図２Ａ−Ｄは、オーダデータメッセージおよびオーダデータメッセージのそれぞれの内容の例示的な図である。
【図２Ｃ】図２Ａ−Ｄは、オーダデータメッセージおよびオーダデータメッセージのそれぞれの内容の例示的な図である。
【図２Ｄ】図２Ａ−Ｄは、オーダデータメッセージおよびオーダデータメッセージのそれぞれの内容の例示的な図である。
【００１１】
【図３】オーダエントリプロトコル構成を使用するシステムの例示的なアプリケーションフローチャートである。
【００１２】
【図４】オーダデータメッセージを処理するためにオーダエントリプロトコル構成を使用するシステムの例示的なアプリケーションフローチャートである。
【発明を実施するための形態】
【００１３】
以下の記載では、説明を目的とし、限定を目的とせず、記載の技術の理解を提供するために、特定のノード、機能エンティティ、技術、プロトコル等の具体的な詳細が説明される。他の実施の形態を、以下の詳細説明から離れて実施できることは当業者には明らかであろう。他の例では、周知の方法、デバイス、技術等の詳細説明は、不必要な詳細説明で説明を曖昧にしないために省略されている。個々の機能ブロックが図に示される。これらのブロックの機能は、個別のハードウエア回路を使用して、適切なプログラム化マイクロプロセッサあるいは汎用コンピュータと協働するソフトウエアプログラムおよびデータを使用して、特定用途集積回路（ＡＳＩＣ）を使用して、および／または１つ以上のデジタル信号プロセッサ（ＤＳＰ）を使用して、実現可能であることを当業者は理解するであろう。ソフトウエアプログラムインストラクションおよびデータは、非一時的コンピュータ可読保持媒体に保持されてもよく、このインストラクションがコンピュータあるいは他の適切なプロセッサ制御によって実行されると、コンピュータあるいはプロセッサは機能を実行する。以下でデータベースはテーブルとして示されている場合があるが、他のフォーマット（リレーショナルデータベース、オブジェクトベースモデル、および／または分散データベースを含む）を、データを保持し操作するために使用することができる。
【００１４】
処理ステップ、アルゴリズムあるいはその類が特定の順序で記載またはクレームされている場合があるが、このような処理は、異なる順序で動作するように構成設定することができる。換言すれば、明示されるかクレームされるいかなるシーケンスあるいはステップの順序も、そのステップがその順序で実行される必要性を示すものでは必ずしもない。本明細書で記載される処理のステップは、取り得る任意の順序で実行されうる。また、いくつかのステップは、非同時的に発生するように記載されているあるいは暗示されているが（例えば、あるステップは、他のステップの後に記載されているからである）、同時に実行されうる。さらに、図面における図示による処理の説明は、図示される処理が他の変形や変更について排他的であることを暗示しているのではなく、また、図示される処理あるいはその任意のステップが本発明に必要であることを暗示しているのではなく、また、図示される処理が好ましいことを暗示しているのでもない。処理の説明はその処理を行う装置の説明である。処理を行う装置は、その処理を行うのに適切な例えばプロセッサと入力デバイスと出力デバイスとを含んでもよい。
【００１５】
様々な形式のコンピュータ可読媒体は、プロセッサにデータ（例えば、インストラクションのシーケンス）を運ぶ際に含まれうる。例えば、データは、（ｉ）ＲＡＭからプロセッサへ送信されてもよく、（ｉｉ）任意のタイプの送信媒体（例えば、有線、無線、光等）を介して運ばれてもよく、（ｉｉｉ）イーサネット（登録商標）（あるいはＩＥＥＥ８０２．３）、ＳＡＰ、ＡＴＰ、ブルートゥース（登録商標）、ＴＣＰ／ＩＰ、ＴＤＭＡ、ＣＤＭＡ、３Ｇ等のような、多くのフォーマット、規格あるいはプロトコルに従ってフォーマットおよび／または送信されてもよく、および／または（ｉｖ）周知の様々な方法の任意のものでプライバシーを確保するためにあるいは流出を防止するために暗号化されてもよい。
【００１６】
マクロベースオーダエントリプロトコルの例示的なコンポーネントは、システムに静的フィールドの値を定義するよう指示するメッセージであるマクロ定義メッセージ、および／またはその後にシステムによって推定される一連のオーダ管理メッセージ、を含んでもよい。他のコンポーネントは、マクロオーダがシステムによって意味をなして受け付けられうる静的値および／または一連のメッセージを有することを検証するマクロ定義検証システムを含む。このシステムは、例えば、オーダエントリポートに統合されうる。マクロがテンプレートと称されてもよいことは理解されるべきである。
【００１７】
システムはまたマクロ定義アクノレッジを含む。マクロ定義アクノレッジは、ユーザにマクロの初期化の成功およびシステムによって割り当てられたそのマクロの特定情報を知らせるために、システムによって送信されるメッセージである。静的フィールドの値および／またはマクロ定義メッセージにより定義された一連のオーダ管理アクションを含むマクロが、システムによって認識され保持されているマクロの特定情報と共に、含まれている。
【００１８】
システムはまたマクロオーダメッセージを含み、該マクロオーダメッセージは、実際のオーダに係るインストラクションを含むメッセージであってマクロの特定情報を介した該マクロへの参照と共に下位プロトコルによる正当なオーダおよび／または一連のイベントの生成を成功させるのに必要な関連する非静的情報を含むメッセージである。システムはマクロオーダメッセージインタプリタを含む。該インタプリタは、マクロとマクロオーダメッセージとの合成された明細に基づいて適切なオーダ管理アクションを生成するためのシステムである。
【００１９】
ユーザはまずマクロ定義メッセージを提出することによりマクロベースオーダエントリプロトコルと作用してもよい。該マクロ定義メッセージはシステムによって検証される。検証は、内容（例えば、メッセージを提出するブローカはそれをする権原があるかを検証すること）および提出されたオーダは取引可能であるかを検証すること（例えば、取引限界に達していないことを確かめることで）の両方である。処理が成功すると、マクロが生成され、ユーザにアクノレッジされる。続いて、ユーザは（従来のオーダメッセージと比べて実質的により小さいサイズの）マクロオーダメッセージを提出してもよい。マクロオーダメッセージはシステムによって、マクロの定義により利用可能とされている情報およびマクロオーダメッセージに含まれる追加的な非静的情報を使用して解釈される。これにより、システムはマクロオーダが受け付けられるごとに静的フィールドを処理する（例えば、パース、検証）ことを避けることができる。また、トランザクションごとに処理されなければならないデータ量を低減することにより、取引システムの動作効率を大きく向上させることができる。
【００２０】
これらのマクロは、ユーザがその存在を許容する限り、またはシステムがその存在を許容するよう構成される限り、アクティブのままであってもよい。マクロベースオーダエントリプロトコルおよびシステムは、入来するまたは内部でルートされるクライアントオーダの効率的な通信および処理のために提供される。提出されるマクロは、注文したりオーダをキャンセルしたりオーダを変更したりオーダを置き換えたりそれらの任意の組み合わせを行うためのメッセージや一連のメッセージに関してもよい。そのようなメッセージは、株、オプション、および／またはデリバティブ商品を含むがそれらに限定されない金融商品におけるものである。マクロ構成はオーダエントリインストラクションの静的部分（オーダタイプ、シンボル、有効期間等）のユーザによるカスタマイズや定義を可能にする。オーダエントリインストラクションは、ユーザによるマクロの定義の後にのみ、パースされ検証され初期化される。マクロの使用のそれぞれにおいて、オーダエントリインストラクションの非静的部分（サイド、値段等）のみが特定されなければならない。これにより、パース、検証およびシステムの任意のコンポーネントによる処理を早めることができる。
【００２１】
後述の非限定的な例は疑似プロトコルを使用することで通信されるメッセージを記述する。実際のプロトコルはバイナリフォーマットで表現されてもよい。例のシステムは、マッチングエンジンやオーダルータやＯＭＳやＥＭＳや、取引システムにおいてオーダの処理やそうでなければ取り扱いに関与する他の任意のノードやコンポーネントを表してもよい。
【００２２】
ユーザノード（例えば、トレーダ／ブローカ／メンバ）は、マクロを生成するためのインストラクションと共にマクロ定義データメッセージを送信する。このメッセージは、オーダの静的部分の全ておよび／またはオーダにより表されるべき所望の一連のオーダ管理アクションを特定する。オーダポートはメッセージを処理し、処理されたメッセージはシステムに渡される。本例では、ユーザはマクロを、有効期間として即時（Immediate）またはキャンセルを有するＮＤＡＱ（登録商標）１００株のオーダを送るよう設定する。オーダの例は以下のように表されうる。
MACRO_CREATE LIMIT_ORDER [SIDE] NDAQ 100 [PRICE] IOC 
【００２３】
オーダポートはマクロ定義メッセージ検証システムを含み、メッセージを受け付け、パースし、メッセージの静的フィールドの全てを正当なオーダタイプ、シンボル、オーダサイズおよび有効期間について検証する。検証されると、オーダポートはマクロ定義メッセージまたは実質的に同じ情報をオーダ処理システム、本例では取引マッチングエンジン、に転送する。
【００２４】
システムはオーダエントリポートから情報を受け付け、マクロを表すオブジェクトを生成し、ユーザにマクロ割り当ての成功についてのマクロ定義アクノレッジを送信する。マクロＩＤはユーザごとベースで一意である。アクノレッジの一例は以下のように表されうる。
MACRO_CREATE_SUCCESS MACRO_ID=43
【００２５】
後続の実際のオーダのそれぞれについて、クライアント（例えば、トレーダ／ブローカ／メンバ）はオーダポートに、以前に生成されたマクロを参照しオーダエントリインストラクションの可変部分だけを特定するマクロオーダメッセージを提出する。例えば、後続のオーダデータメッセージは以下のように表されうる。
MACRO_ORDER TEMPLATE_ID=43 BUY 29.50 
MACRO_ORDER TEMPLATE_ID=43 SELL 29.60 
MACRO_ORDER TEMPLATE_ID=43 BUY 29.55 
MACRO_ORDER TEMPLATE_ID=43 SELL 29.65
【００２６】
オーダポートは、静的なオーダエントリインストラクションのコンテキストの可変フィールドのみを受け付け、パースし、検証する。本例では、オーダポートはオーダタイプやシンボルやオーダサイズや有効期間を検証する必要はなく、オーダのサイドおよび価格のみをチェックすればよい。正当であれば、オーダポートはシステムに情報を転送する。
【００２７】
システムはマクロオーダを受け付け、以前に初期化された静的な値を含むオブジェクトを参照し、それを可変な値で更新し、オブジェクトをそうでなければ処理されていたように処理する。本例のようにシステムがマッチングエンジンを表す場合、システムは、適切なマクロに含まれる静的情報をマクロオーダの非静的情報と組み合わせることで入来マクロオーダを処理し、この完全なメッセージを、あたかもそれが要求されるフィールドのそれぞれについての明示的なインストラクションを含む従来のメッセージであるかのように処理する。
【００２８】
マクロシステムの例示的な実装では、クライアント（例えば、トレーダ／ブローカ／メンバ）は、シンボルやＴＩＦやファームやディスプレイやキャパシティなどの静的な値の集合およびサイドやサイズや価格などの可変の値の集合を定義する２５６までの特有のマクロ（またはテンプレート）を提出してもよい。後続のオーダエントリコマンドのそれぞれは４バイトまで小さくなりうる。すなわち、メッセージタイプ（１バイト）、テンプレートＩＤ（１バイト）および量（２バイト）および価格（２バイト）である。オーダエントリポートはテンプレートそのもののみを検証するであろう。したがって、後続のマクロオーダのそれぞれについて要求される検証は最小化されるであろう。例外はチェックであり、これはその性質上、処理されたオーダのそれぞれについてシステムによりなされなければならない。例えば、ナショナルマーケットシステム（ＮＭＳ）規則やショートセールハンドリングオブリゲーション（ＳＨＯ）規則などに準拠する目的でなされる米国株価チェックの場合に、トランザクションの正しい実行を可能とするためである。メッセージタイプの比較の例の図が以下に示される。
0006017097.tif 000002
【００２９】
本技術によると、取引または取引様システムのユーザは、これらのシステムに、一度だけ提出されればよい所定の静的インストラクションとオーダ毎ベースで可変のインストラクションとの組み合わせから完全なオーダ管理インストラクションを生成するよう指示することができる。本技術によると、ほぼ全ての証券、特に既に電子的取引プラットフォームに移行した証券について、取引コストを大幅に低減することができる。
【００３０】
事前に（特に立会時間外に）オーダエントリインストラクションの静的部分の全てを提供することで、システムが要求されるフィールドの全てを処理し検証するのに使用されるのははマクロごとに一度だけとなる。さらに、オーダエントリインストラクションの可変部分の通信は、サイズがより小さい（したがって帯域消費を低減する）だけでなく、以前の静的フィールド検証ルーチンをバイパスする。これにより、アプリケーション内でより速い処理および決定実行経路を実現できる。例えば、インバウンドクライアントメッセージのサイズをかなり低減でき（ユーザにより静的フィールドが予め定義される程度まで、すなわちこの情報はもはや送信される必要はない）、かつクライアントメッセージの量を、マクロがそうでなければユーザにより個々になされる必要がある一連のアクションを表す程度まで低減できる。
【００３１】
図１は、取引システムの例示的な機能ブロック図である。コンピュータにより実現される取引システム３００はネットワーク２００を介して、取引所３００でオーダを生成して発するよう構成されたクライアントシステム１００と接続されてもよい。クライアントシステム１００は、パーソナルコンピュータ、ＰＤＡデバイス、携帯電話、サーバコンピュータ、または、本明細書に記載される電子交換を行うための任意の他のシステム／デバイスで実現されうる、および／またはそれを介して使用されうる。クライアントシステム１００は、取引所と電子的取引を行う任意の個人および／または企業体であってもよい。取引システム３００は複数のクライアントシステム１００と通信し、オーダをマッチする。
【００３２】
クライアントシステム１００は、中央処理ユニット（ＣＰＵ）１０１と、メモリ１０２と、データ送信デバイス１０３と、入出力（Ｉ／Ｏ）インタフェース１０４と、を含む。データ送信デバイス（ＤＴＤ）１０３は、例えば、クライアントシステム１００をネットワーク２００に接続することができるネットワークインタフェースデバイスであってもよい。接続は、有線、光、あるいは無線であってもよく、また、例えば、ＷｉＦｉネットワーク、インターネット、またはセルラデータサービスを介して接続することができる。データ送信デバイス１０３は、オーダ生成部１０５によって生成されたオーダデータメッセージなどのデータを送信および受信することができる（すなわち、送受信機）。Ｉ／Ｏインタフェース１０４は例えばデータを通信するための物理的なインタフェースであってもよく、そのようなインタフェースは光学ディスクドライブ、ＵＳＢインタフェース、および／またはメモリスティックインタフェースを含むがそれらに限定されない。クライアントシステム１００は取引システム３００と取引を行うために使用されてもよい。クライアントシステム１００は、オーダ生成部１０５を介して生成されたデリバティブ商品のオーダをユーザからとり、それを取引システム３００に送信してもよい。取引システム３００はそのオーダのマッチを試行してもよい。
【００３３】
取引システム３００はオーダプロセッサ３０１とマッチング部３０２とを含む。オーダプロセッサは、クライアントデバイス１００から送信されたオーダデータメッセージをパースするパース部３０１−１と、パースされたオーダデータメッセージを検証する検証部３０１−２と、を含む。オーダプロセッサはまた、オーダエントリに対してマクロ／テンプレートを生成可能なマクロ（またはテンプレート）生成部３０１−３を含む。後続のオーダは、オーダを処理するためにマクロ生成部３０１−３から生成された一意のＩＤを使用してもよい。オーダプロセッサ３０１はまた、後続のオーダに含まれる一意のＩＤを使用しその情報をテンプレートとマッチングすることでオーダを生成可能なオーダ生成部３０１−４を含む。
【００３４】
マッチング部３０２は、ＣＰＵ３０２−１と、メモリ３０２−２と、データ送信デバイス３０２−３と、入出力（Ｉ／Ｏ）インタフェース３０２−４と、を含む。例示的実施の形態では、取引システム３００は複数のプロセッサおよび／または複数のメモリを含んでもよく、フェールセーフの冗長性を有するよう設計されてもよい。データ送信デバイス（ＤＴＤ）３０２−３は、例えば、取引所３００をネットワーク２００に接続することができるネットワークインタフェースデバイスであってもよく、データを送信および受信可能（すなわち、送受信機）である。Ｉ／Ｏインタフェース３０２−４は例えばデータを通信するための物理的なインタフェースであってもよく、そのようなインタフェースは光学ディスクドライブ、ＵＳＢインタフェース、および／またはメモリスティックインタフェースを含むがそれらに限定されない。
【００３５】
取引システム３００はマッチングエンジン３０２−５とオーダブックメモリ３０２−６とを有する。マッチングエンジン３０２−５はひとつ以上のプロセッサを使用して実装され、オーダをマッチングする。オーダブックメモリ３０２−６はオーダを保持する。オーダブック３０２−６は取引システム３００のメモリ３０２−２内に存在しうる。
【００３６】
図２Ａ−Ｄは、オーダデータメッセージおよびオーダデータメッセージのそれぞれの内容の例示的な図である。上述の通り、クライアントデバイス１００はオーダデータメッセージを生成することができ、オーダデータメッセージは取引システム３００に提出される。初期オーダデータメッセージはフィールドのリストを含んでもよい。フィールドのリストは各フィールドに割り当てられた異なる値を有する。例えば、クライアントデバイス１００は、有効期間として即時（Immediate）またはキャンセルを有するＮＡＳＤＡＱ  ＯＭＸ（登録商標）（ＮＤＡＱ）１００株の初期オーダを生成してもよい。初期オーダデータメッセージを受け付けると、システム３００は、オーダの静的部分および可変部分の全てを特定するマクロ定義メッセージを生成し、オーダにマクロＩＤを割り当ててもよい。マクロ定義メッセージおよびその静的および可変部分の一例は図２Ａに示される。マクロ定義メッセージは、マクロＩＤ  ＴＩＤと、ひとつ以上の静的フィールドＳＦ１−ｎと、および／またはひとつ以上の可変フィールドＶＦ１−ｎと、を有してもよい。
【００３７】
システム３００は、例えば図２Ｂに示されるように、初期オーダデータメッセージの値をフィールドとマッチしてもよい。図２Ｂに示される例は上述のＮＤＡＱ１００株のオーダを使用する。マクロＩＤ  ＴＩＤ  ４３が静的フィールド１、２および３と共に生成され、それらのフィールドはそれぞれ、取引名／ティッカ（ticker）ＮＤＡＱ、株式数  １００、有効期間  即時またはキャンセル、対応する。可変フィールド１および２はそれぞれサイド（例えば、買い、売り）および価格に対応する。
【００３８】
マクロが生成されると、システムはデバイス１００にアクノレッジを送り、マクロの生成に成功したことをデバイスに知らせ、マクロＩＤ  ４３をデバイスに提供してもよい。例えば、マクロＩＤはユーザ毎ベースで一意であってもよい。
【００３９】
デバイス１００は次に、マクロＩＤを参照するオーダを送信してもよく、可変フィールドのみについてオーダにデータを提供してもよい（静的フィールドはマクロによって既に定義されているからである）。図２Ｃは、後続オーダに含まれるフィールドの一例を示す。オーダはマクロＩＤ  ＴＩＤとひとつ以上の可変フィールドＶＦ１−ｎとを有する。例えば、図２Ｄに示されるマクロＩＤ  ＴＩＤ  ４３に関連する後続オーダは、ＮＤＡＱ株を１株２９．５０または２９．５５で買うためのものであってもよく、またはＮＤＡＱ株を１株２９．６０または２９．６５で売るためのものであってもよい。図２Ｄは、マクロＩＤ  ＴＩＤ並びに２つの可変フィールドＶＦ１およびＶＦ２のみを有する「短縮された」オーダデータメッセージを反映する。したがって、システムは後続のオーダデータメッセージで送信されるデータ量を低減できる点で有利であり、これにより、デバイス１００とシステム３００との間の遅延を大きく改善できる。各オーダメッセージでより少ないデータが提出されるからである。
【００４０】
上述の通り、従来のシステムはオーダごとに単にオーダメッセージ全体（一部が図２Ｂに示される）を提出していた。そこでは、サイドおよび価格がメッセージごとに変わっていた。一意のマクロＩＤ  ＴＩＤを生成することで、後続オーダはＴＩＤおよび関連する可変フィールドＶＦ１−ｎのうちのひとつ以上のみを参照すればよく、これにより、デバイス１００とシステム３００との間で送信されるデータ量を低減できる。この変更は単一のオーダについては相当のものとは見えないかもしれないが、数十億ものオーダデータメッセージを処理する際の遅延はこの改善により大きく低減される。システム３００は、初期および後続オーダデータメッセージをパースして検証することで、メッセージの適切な内容が存在することを確かにしてもよい。
【００４１】
図３は、オーダエントリプロトコル構成を使用するシステムの例示的なアプリケーションフローチャートである。本実施の形態に限定されるわけではないが、図３に示される処理はデバイス１００により実行されてもよい。デバイスは初期オーダデータメッセージを生成する（Ｓ３０１）ことで処理を始める。上述の例では、初期オーダデータメッセージは、有効期間として即時（Immediate）またはキャンセルを有するＮＤＡＱ１００株のオーダであってもよい。この初期オーダデータメッセージを生成すると、システムはＤＴＤ１０３を介してシステム３００にオーダデータメッセージを送信する（Ｓ３０２）。以下により詳細に説明されるように、システム３００はデバイス１００に、アクノレッジおよび／またはオーダ処理／マッチングの成功または失敗を示す後続メッセージを返信してもよい。
【００４２】
初期オーダデータメッセージを送信すると、デバイス１００は理想的には、マクロＩＤ  ＴＩＤを有するアクノレッジをシステム３００から受ける（Ｓ３０３）。デバイス１００は、ひとつ以上の後続オーダデータメッセージを生成する際にこのマクロＩＤを使用してもよい（Ｓ３０４）。ここでは、ＴＩＤおよび関連する可変フィールドＶＦ１−ｎが後続オーダデータメッセージにおいて使用される。これらの後続オーダデータメッセージは次にマッチングのためにシステム３００に送信されてもよい（Ｓ３０５）。
【００４３】
図４は、オーダデータメッセージを処理するためにオーダエントリプロトコル構成を使用するシステムの例示的なアプリケーションフローチャートである。本実施の形態に限定されるわけではないが、図４に示される処理はシステム３００により実行されてもよい。
【００４４】
システム３００はデバイス１００から初期オーダデータメッセージを受けることで始める（Ｓ４０１）。上述の例を使用し、初期オーダデータメッセージは、有効期間として即時（Immediate）またはキャンセルを有するＮＤＡＱ１００株のオーダであってもよい。システム３００は、オーダデータメッセージをパースし、適切なフィールドが各フィールドについて適切なタイプのデータを含むことを確かめることで初期オーダデータメッセージを検証してもよい（Ｓ４０２）。システム３００は提出が正しいこと（例えば、取引所のメンバによるものかどうか、および前記メンバは指定されたオーダボリュームで取り引きすることが許されているか）を検証してもよい。例えば、取引名（例えば、NDAQ）について数値を有するオーダデータメッセージは（無論、数値を含むこととなる取引名がない場合に）検証を通過しないであろう。検証が成功すると、システムは初期オーダデータメッセージに対応するマクロＩＤ  ＴＩＤを生成し（Ｓ４０３）、次いで初期オーダデータメッセージに対するマクロＩＤ  ＴＩＤを含むアクノレッジをデバイス１００に提出する（Ｓ４０４）。
【００４５】
デバイス１００は次いでマクロＩＤ  ＴＩＤを含む後続オーダデータメッセージを生成してもよく、システム３００はＴＩＤを含むこれらのメッセージを受ける（Ｓ４０５）。システム３００は次いで、後続オーダデータメッセージをマクロの静的フィールドと組み合わせてもよい（例えば、つないでもよい）。例えば、１株２９．５０での売り指定を有するＮＤＡＱの後続オーダをマクロと組み合わせることで、静的フィールドおよび可変フィールドの両方を含み、SELL NDAQ 100 29.50 IOCという完全なオーダメッセージとなるオーダメッセージを形成することができる。
【００４６】
このようにして、システムはそのようなオーダ管理プロトコルを、取引所の設計に影響を与えずに組み入れることができる。すなわち、取引所により実際に処理されるオーダは典型的なオーダを反映するが、取引所３００に実際に提出されるメッセージはより少量の情報を含むのである。そのような改善は、より少ないデータが互いに送信されるので、オーダ送信および処理の全体的な遅延を増大させる。一方で、同時に、取引所でオーダのマッチングの準備ができた段階では、そのオーダは通常のオーダとして現れる。システム３００は次いでオーダのマッチングを試行してもよい（Ｓ４０６）。そこでは、オーダはマッチするか（４０８）、または後のマッチングのためにオーダブックに格納されるか（Ｓ４０７）のいずれかである。
【００４７】
例示的な実施の形態との関係で本技術が説明されたが、本技術は開示された実施の形態に限定されるものではなく、むしろ種々の変形例および等価な構成をカバーするよう意図されていることは理解されるべきである。
【要約】本技術は、テンプレート／マクロベースのオーダエントリシステムを用いることに関する。初期オーダデータメッセージは、オーダについての初期パラメータを確立するマクロを含み、一意のＩＤはテンプレートに関連付けられる。後続の、かつより小さいサイズである可能性のあるデータメッセージはオーダを行うための関連するオーダ詳細と共に一意のＩＤを含む。無論、本明細書で開示される技術は、全体としての遅延を改善するのを助けるためにメッセージサイズを低減するというより広い思想を想定するものであり、オーダエントリに限られない。
【選択図】図４【図１】
0006017097.tif 000003
【図２Ａ】
0006017097.tif 000004
【図２Ｂ】
0006017097.tif 000005
【図２Ｃ】
0006017097.tif 000006
【図２Ｄ】
0006017097.tif 000007
【図３】
0006017097.tif 000008
【図４】
0006017097.tif 000009