JP2011510382A - 低遅延バスケット計算のための方法およびシステム - Google Patents

低遅延バスケット計算のための方法およびシステム Download PDF

Info

Publication number
JP2011510382A
JP2011510382A JP2010542380A JP2010542380A JP2011510382A JP 2011510382 A JP2011510382 A JP 2011510382A JP 2010542380 A JP2010542380 A JP 2010542380A JP 2010542380 A JP2010542380 A JP 2010542380A JP 2011510382 A JP2011510382 A JP 2011510382A
Authority
JP
Japan
Prior art keywords
basket
nav
value
financial
calculating
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2010542380A
Other languages
English (en)
Other versions
JP5586477B2 (ja
JP2011510382A5 (ja
Inventor
テイラー,デイビツド・イー
シングラ,ナビーン
ブロデイ,ベンジヤミン・シー
マクビカー,ナサニエル・エス
テイール,ジヤステイン・アール
インデツク,ロナルド・エス
Original Assignee
エクセジー・インコーポレイテツド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=40851517&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP2011510382(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by エクセジー・インコーポレイテツド filed Critical エクセジー・インコーポレイテツド
Publication of JP2011510382A publication Critical patent/JP2011510382A/ja
Publication of JP2011510382A5 publication Critical patent/JP2011510382A5/ja
Application granted granted Critical
Publication of JP5586477B2 publication Critical patent/JP5586477B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/06Asset management; Financial planning or analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • Development Economics (AREA)
  • Technology Law (AREA)
  • Theoretical Computer Science (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Marketing (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Game Theory and Decision Science (AREA)
  • Human Resources & Organizations (AREA)
  • Operations Research (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Advance Control (AREA)

Abstract

バスケット計算エンジンがデータのストリームを受信し、かつそのデータに基づいてバスケット価値の計算を加速するために導入される。好ましい実施形態では、バスケット計算エンジンは金融市場データを処理して、金融商品バスケットの純資産価値(NAV)を計算するために使用される。バスケット計算エンジンはコプロセッサ上に導入されることができ、パイプラインによって実現されることもでき、パイプラインはバスケット連関探索モジュール、およびバスケット価値更新モジュールを含むことが好ましい。コプロセッサは、フィールドプログラマブルゲートアレイ(FPGA)などの再構成可能論理デバイスであることが好ましい。

Description

本発明は、ストリーミングデータに基づくバスケット計算業務を行う分野に関し、詳細にはストリーミング金融市場データに基づくバスケット計算業務を行う分野に関する。
以下の段落に、本明細書で使用される様々な用語の定義をいくつか提供する。これらの段落はまた、これらの用語に関連する予備知識も提供する。
金融商品:本明細書で使用される「金融商品」は、一般に企業体または政府機関に関連する株式所有権、負債、または債権を表す契約を指し、契約は売買対象である。金融商品の例は、株式、債券、商品、通貨市場で売買される通貨などを含むが、現金および小切手の品目が金融取引市場外でどのように使用されるかという意味の現金および小切手を含まない(すなわち、現金または小切手を使用して食料雑貨店で食料雑貨類を購入するのは、本明細書で使用される「金融商品」という用語に含まれない。同様に、デビットカードを使用して現金自動預け払い機から現金で100ドルを引き出すのは、本明細書で使用される「金融商品」という用語に含まれない)。
金融市場データ:本明細書で使用される「金融市場データ」という用語は、金融商品を売買するための新しいオッファ、金融商品の販売完了の指示、以前に報告された金融商品の販売に対する訂正の通知、そのような取引に関連する管理メッセージなどを個々に表す一連のメッセージに含まれる、またはそれらから得られるデータを指す。
バスケット:本明細書で使用される「バスケット」という用語は、複数の要素を含む要素の集合を指し、各要素は1つ以上の価値を有する。集合には1つ以上の正味価値(NV)を割り当てられることがある。NVは集合内の複数の要素の価値から得られる。たとえば、バスケットは様々な科学実験によるデータポイントの集合でもよい。各データポイントは、サイズ、質量などの関連する値を有することがある。サイズの加重和を計算することによりサイズをNV得る、質量の加重和を計算することにより質量NVを得るなどすることができる。バスケットの別の例が金融商品の集合であり、以下に説明される。
金融商品バスケット:本明細書で使用される「金融商品バスケット」という用語は、その要素が金融商品を含むバスケットを指す。金融商品バスケットには、1つ以上の純資産価値(NAV)を割り当てられることがある。NAVはバスケット内の要素の価値から得られる。バスケットに含まれることがある金融商品の例には、有価証券(株式)、債券、オプション、ミューチュアルファンド、上場投資信託などである。金融商品バスケットは、標準インデックス、上場投資信託(ETF)、ミューチュアルファンド、個人ポートフォリオなどを表すことがある。バスケット内の金融商品ごとの最終販売価格の加重和を計算することにより最終販売NAVを得る、バスケット内の金融商品ごとの現在の最高買い価格の加重和を計算することにより買いNAVを得るなどすることがある。
GPP:本明細書で使用される「汎用プロセッサ」(すなわちGPP)という用語は、固定形態を有し、その機能が可変のハードウェア装置を指す。この可変機能は、命令をフェッチし、それらの命令を実行することにより定義される。従来の中央処理装置(CPU)が一般的な例である。GPPの例示的実施形態は、IntelのXeonプロセッサ、およびAMDのOpteronプロセッサを含む。
再構成可能論理回路:本明細書で使用される「再構成可能論理回路」という用語は、その形態および機能が製造後にフィールドで大幅に変更される(すなわち、再構成される)ことがある任意の論理回路技術を指す。これはGPPとは対照的に、GPPの機能は製造後に変更することができるが、その形態は製造時点のままである。
ソフトウェア:本明細書で使用される「ソフトウェア」という用語は、GPPまたは他の処理装置上に導入されるデータ処理機能を指す。ソフトウェアは、それがロードされる装置の形態を変更または定義するために使用されることはできない。
ファームウェア:本明細書で使用される「ファームウェア」という用語は、再構成可能論理回路または他の処理装置上に導入されるデータ処理機能を指す。ファームウェアは、それがロードされる装置の形を変更または定義するために使用されることがある。
コプロセッサ:本明細書で使用される「コプロセッサ」という用語は、主プロセッサを有する計算システム内の他の構成要素と協力して動作するように設計された計算エンジンを指す(主プロセッサ自体が、マルチコアプロセッサアーキテクチャなど、複数のプロセッサを含む場合がある)。一般に、コプロセッサは、特定の1組のタスクを実行するように最適化され、システム性能を最適化するために主プロセッサ(一般にGPPである)からタスクを取り除くために使用される。コプロセッサにより実行されるタスクの範囲は、コプロセッサのアーキテクチャに応じて固定されることも、変更可能なこともある。固定されたコプロセッサアーキテクチャの例は、広範囲のタスクを実行するグラフィック処理装置、および比較的限られた1組のタスクを実行する浮動小数点数値コプロセッサを含む。再構成可能コプロセッサアーキテクチャの例は、広範囲な固定またはプログラム可能な計算エンジンを実装するように再構成されることがあるフィールドプログラマブルゲートアレイ(FPGA)などの再構成可能論理デバイスを含む。コプロセッサの機能は、ソフトウェアおよび/またはファームウェアにより定義されることがある。
ハードウェアアクセラレーション:本明細書で使用される「ハードウェアアクセラレーション」という用語は、主プロセッサから1つ以上の処理タスクを取り除くための、コプロセッサ上に実装されたソフトウェアおよび/またはファームウェアを使用して、主プロセッサに比べてこれらのタスクの処理遅延を低減することを指す。
バス:本明細書で使用される「バス」という用語は、デバイスおよび記憶場所がアドレスによりアクセスされる任意の物理的相互接続を包含する論理バスを指す。本発明を実施する際に使用される可能性のあるバスの例は、PCIファミリのバス(たとえば、PCI−XおよびPCI−Express)およびHyperTransportバスを含むが、これらに限定されない。
パイプライン:本明細書で使用される「パイプライン」、「パイプラインシーケンス」、または「チェーン」という用語は、あるアプリケーションモジュールの出力が次のアプリケーションモジュールの入力に順次接続される、アプリケーションモジュールの配列を指す。このパイプライン配列により、各アプリケーションモジュールが、所与のクロックサイクルの間に受け取る任意のデータに独立に作用を及ぼし、次にもう1つのクロックサイクルの間にその出力を次の下流のアプリケーションモジュールに順次渡すことが可能となる。
売買および相場などの大量のイベントが常に起こっている取引日の間中の金融商品バスケットの価値を厳密に追跡する能力は、非常に困難な仕事である。金融商品バスケットの基になる金融商品のポートフォリオの一部となっている金融商品について行われるあらゆる売買が、そのバスケット価値に変化を引き起こす可能性がある。バスケット価値を計算するために使用される従来技術が、バスケット価値に影響を与える大量のイベントに遅れないようについていくことができず、それにより、従来技術では、現在の計算されたバスケット価値が、現在の市況ではなく、むしろ過去の数ミリ秒から数秒までの任意の時点に存在していた市況を反映しているために、市場の現在の状態に比べると、金融商品バスケット価値について不正確さを引き起こしていたと本明細書で本発明者は考える。
上述のように、金融商品バスケットは、標準インデックス、ETF、ミューチュアルファンド、個人ポートフォリオなどを表すことがある。
インデックスが企業のグループのパフォーマンスを表す。ここで、グループは、時価総額(たとえば、S&P500)、工業(ダウジョーンズ工業平均株価(DJIA))などの様々な基準により決定されることができる。
ミューチュアルファンドは、専門的に管理された形の集合的投資であり、買い手が投資信託所有者に一定量の金銭を支払い、引き換えに投資信託の株式を受け取る。
ETFはミューチュアルファンドと非常に似ているが、ちょうど株式のように取引所で取引日の間中、売買されることができるという重要な違いがある。したがって、ETFの価格は、その基になるポートフォリオの変化によるだけでなく、ETFの株式自体に対する市場の供給と需要によっても変動する。したがって、ETFはミューチュアルファンドの多様性だけでなく株式の売買動力学も提供する。さらに、ETFは一般に、十分に確立した市場インデックスを追跡し、インデックスのリターンを再現しようとする。
個人ポートフォリオは、彼/彼女の個人投資目標について個人により定義される金融商品の集合体である。
金融商品バスケットは、基になる1組の金融商品により定義される。バスケットの定義はまた、バスケット内の金融商品ごとの加重を指定する。たとえば、Bで示される仮想バスケットについて考えてみる。バスケットBは、記号Cを有するM個の金融商品を含む。ここで、i=1、2、・・・、Mである。さらに、バスケット内の各金融商品iの加重が、wにより示される。ここで、i=1、2、・・・、Mである。バスケットに関連付けられているのが、その純資産価値(NAV)として知られるその金銭価値の尺度である。バスケットB内の各金融商品iのこの瞬間での価値がT(i=1、2、・・・、M)と仮定すると、バスケットBのNAVが以下のように計算されることができる:
Figure 2011510382
ここで、dはバスケットに関連付けられた除数であり、以下により詳細に説明される。したがって、式(1)は、バスケットのNAVが、バスケット内の金融商品の価値の加重和であることを規定する。ここで、除数は正規化因子の働きをする。
Tの値は、金融商品の株式の価格を表す。価格は最終販売価格/最終売買価格(終値)、購入価格に対する最高のオファー(買い呼値)、販売価格に対する最高のオファー(売り呼値)、または売買に対する特定のオファー価格(指値注文)として表現されることができる。
wの値は、バスケットごとに別の仕方で定義されることができる。たとえば、時価総額加重インデックス(S&P 500など)では、金融商品の加重は、金商品の発行済み株式の数に「自由変動相場制」因子を乗算されたものとして定義されることができる。ここで、自由変動相場制因子は、0と1の間の数であり、金融商品の一定株式が公に売買に利用できないという事実を調整する。等加重インデックス(DJIAなど)では、金融商品の加重は1に設定される。ETFおよび個人ポートフォリオでは、金融商品の加重は、バスケットの金融商品ごとに多くの株式を所有することが、そのETFまたは個人ポートフォリオの1株を所有することに等しいという事実を反映する指定された数値に等しく設定されることができる。したがって、バスケットBの1つの株式を所有するためには、金融商品Cのw株式、金融商品Cのw株式など金融商品Cのw株式までを購入しなければならない。
dの値はまた、バスケットごとに別の仕方で定義されることができる。インデックスについては、除数は現在のインデックス除数に設定されることができる、この除数は、インデックス(たとえば、S&P 500については500)での金融商品の数、または何らかの他の指定された数値とすることができる。ETFについては、除数は取引日の間に変化する可能性がある(除数はまたインデックスに対しても変化する可能性があるため)。
上記に示されるように、バスケットの基になる金融商品の1つの価値に変化があるときはいつも、そのバスケットに対するNAVは、式(1)に従って計算されるべきである。しかしながら、取引所からの金融市場データメッセージが、高速でチッカ装置(ticker plant)などのプラットフォームに流れ込む。たとえば、オプション価格報告機関(options price reporting authority、OPRA)は、2008年1月のこのメッセージ速度をほぼ800,000メッセージ/秒となると予想する。これらのメッセージはそれぞれ、潜在的に複数のNAV再計算を引き起こすことがある。さらに、同じ金融商品が複数のバスケットの構成要素となっていることがあるので、すべての金融市場データメッセージについてバスケットNAV値を追跡するためには、毎秒行われる必要があるNAV計算の数は、少なくとも1、000万NAV計算/秒のオーダになると本明細書で本発明者は見積もる。一度に1つの更新(システムが行う必要があり得る、バスケット計算に関連のない他のタスクを含む)だけを行わなければならない従来の解決策は、その順次的性質のためにこのような高い更新速度に遅れないようについていくことができないと本明細書で本発明者は考える。
金融トレーダが非常に高速にバスケットNAVを計算することができることが非常に望ましいので、この欠点は問題である。一例がこの望ましさを実証する。上記で説明されたように、ETFは取引所で通常の株式のように売買されることができるバスケットである。ETFのポートフォリオは、取引日の始めに定義され、まれな出来事を除いては取引日の間中、固定されたままである。ETFの株式は、取引日の間中、以下のように動作する生成過程により生成されることができる。買い手が投資信託の所有者に、ETFを構成する金融商品の指定されたポートフォリオ、およびこれらの金融商品に対する配当支払いに等しい量の現金支払い(および、場合によっては取引手数料)を与える。次に、投資信託は買い手にETFの株式を発行する。ETFの株式はまた、同様の方法で基になる金融商品として償還されることができる。したがって、投資家は、投資信託所有者にETFの株式(および、場合によっては取引手数料としていくらかの現金)を与え、代わりに、投資家は、ETFを構成する金融商品のポートフォリオ、およびこれらの金融商品に対する配当支払いに等しい現金を受け取る。
取引日の間、ETFの株式の価格は、供給と需要に従って変動し、ETFのNAVは、ETFのポートフォリオ内の金融商品の供給と需要に従って変化する。取引日の間に、ETFの売買価格がそのNAVから外れることは、十分起こり得る。ETFの価格がNAVよりも高い場合、ETFは「額面以上で」売買していると言われる。ETFの価格がNAVよりも低い場合、ETFは「額面価格を割って」売買していると言われる。金融トレーダがETF株式価格とETF NAVの相違を検出すると、彼/彼女はその相違を利用して、裁定取引を介して利益を得ることができる。
1つのシナリオでは、TETFで示されるETF株式価格が、ETFのNAVより高いと仮定する。この場合、トレーダが以下のステップを実行することができる:
ETFのポートフォリオ内の金融商品の株式をNAVにほぼ等しい総額で購入することによりバスケットを整理(assemble)する、
整理されたバスケットを投資信託所有者と交換することによりETF株式を生成する、
EFTにほぼ等しい価格でETFを取引所で売る。
ETFとNAVとの差が、取引手数料、および他の現金支払いを十分埋め合わせるほど大きい場合、トレーダは、これらの行為により利益を得ることができる。さらに、この利益はリスクのない裁定取引により実現される(これらのステップは即座に行われることができると仮定する)。
別のシナリオでは、TETFで示されるETF株式価格が、ETFのNAVより低いと仮定する。この場合、トレーダがETF株式を購入し、それをポートフォリオ内の金融商品の株式に償還し、これらの金融商品株式を取引所で売ることができる。ここも、TEFTとNAVとの差が、取引手数料、および他の現金支払いを十分埋め合わせるほど大きい場合、トレーダは、実質的にリスクなしに利益を得ることができる。
ETFについてこのようなリスクのない裁定取引により利益を得る際の重要な要素は、ETFの株式価格とETFのNAVとの差を検出することである。そのような相違を検出する最初のトレーダが、最大の利益を得る立場にあり、NAV計算の遅延が重要になる。利益獲得機会の検出に向けた競争で競争相手に勝つためには、NAV計算はできるだけ素早く行われるべきである。
上記で説明されたETFシナリオとは別に、バスケットNAV計算のもう1つの有用性が、バスケットのポートフォリオがどうなっているかの尺度をNAVが提供することである。着実に上昇するNAVが、そのようなバスケットにさらに投資することが利益になることがあることを示す。一方、下落するNAVが、損失を避けるためにバスケットのポートフォリオを売ることが望ましいことがあることを示す。この戦略は、金融商品のポートフォリオ全体の多様化により、リスクを軽減することにより利益を提供するバスケットを有する特定の金融商品の株式を売買する場合に採用される戦略と似ている(すなわち、全体としてバスケットに上昇するNAVがある場合、そのバスケットへの投資は、バスケット内の特定の金融商品のいずれかが如何に利益を生んでいるかとは望ましくは切り離される)。
当該技術分野における大容量低遅延バスケット価値計算に必要なことを満足させる取り組みにおいて、本明細書で本発明者は、高速データストリーム内のデータに基づいて、そのデータがプロセッサを通って流れるときに、1組のバスケットに対するバスケット価値を計算する手法を開示する。
本発明の好ましい実施形態の一様態によれば、本発明者は、コプロセッサがバスケット計算を行うために使用されるバスケット価値計算手法を開示する。バスケット計算の計算負荷をコプロセッサに肩代わりさせることにより、システムの主プロセッサが解放されて、別のタスクを実行することができる。コプロセッサハードウェアが、フィールドプログラマブルゲートアレイ(FPGA)などの再構成可能論理回路を使用してバスケット計算を加速することが好ましい。そうする際に、好ましい実施形態が以下の特許および特許出願に開示された、基になるハードウェアアクセラレート技術を利用することが好ましい。これらは、「Associated Database Scanning and Information Retrieval」と題する米国特許第6,711,558号明細書、「Associative Database Scanning and Information Retrieval using FPGA Devices」と題する米国特許第7,139,743号明細書、「Intelligent Data Storage and Processing Using FPGA Devices」と題する米国特許出願公開第2006/0294059号明細書、「Method and Apparatus for Performing Biosequence Similarity Searching」と題する米国特許出願公開第2007/0067108号明細書、「Method and Apparatus for Protein Sequence Alignment Using FPGA Devices」と題する米国特許出願公開第2008/0086274号明細書(2007年8月10日に提出され、米国出願通し番号11/836,947号により公開された)、「Method and Device for High Performance Regular Expression Pattern Matching」と題する米国特許出願公開第2007/0130140号明細書、「Method and Apparatus for Approximate Pattern Matching」と題する米国特許出願公開2007/0260602号明細書、「Firmware Socket Module for FPGA−Based Pipeline Processing」と題する米国特許出願公開第2007/0174841号明細書、「Method and System for High Throughput Blockwise Independent Encryption/Decryption」と題する米国特許出願公開第2007/0237327号明細書、「Method and System for High Speed Options Pricing」と題する米国特許出願公開第2007/0294157号、および2007年6月19日に出願された「High Speed Processing of Financial Information Using FPGA Devices」と題する係属中の米国出願通し番号11/765,306号であり、それぞれの開示全体が本明細書に参照により組み込まれる。
本発明の好ましい実施形態の別の様態によれば、本発明者は、そのようなバスケット計算に含まれる異なるタスクがパイプライン内の異なるモジュールに任せられることができることを開示する。たとえば、あるパイプラインモジュールが、ストリーム内の現在のデータイベントによりどのバスケットが影響を及ぼされるかを決定するように構成されることができる。別のパイプラインモジュールが、影響を及ぼされるバスケットに関する情報を受信し、かつこれらの影響を及ぼされるバスケットごとの新しいバスケット価値を示すデータを計算するように構成されることができる。これらのモジュールを一緒にパイプライン化することにより、2つのモジュールは、異なるメッセージおよび/またはバスケットを互いに並列に同時に処理することができる。
好ましい実施形態では、このパイプラインは、バスケット価値更新モジュールと通信するバスケット連関(association)探索モジュールを含む。バスケット連関探索モジュールは、各データメッセージによりどのバスケットが影響を及ぼされるかを決定するように構成され、一方、バスケット価値更新モジュールは、データメッセージ内の情報に基づいて影響を及ぼされるバスケットごとに少なくとも1つの新しい価値を計算するように構成される(たとえば、金融市場データを処理する一実施形態では、この情報は、金融市場データメッセージ内の金融商品価格情報とすることができる)。
バスケット価値更新モジュールは、より詳細に以下に説明されるように、更新されるバスケット価値の計算に差分計算手法を利用することが好ましい。そのような手法を用いると、金融商品など、どれだけ多くの要素が所与のバスケットの構成要素であるかに関係なく、各バスケット価値を計算するのに必要な算術演算の数は変わらない。さらに、バスケット価値更新モジュールは、任意選択で、並列計算論理回路を使用して、同じバスケットに対する複数の異なる種別のバスケット価値を同時に計算するように構成されることがある。
バスケット連関探索モジュールは、バスケット価値計算のためにバスケット価値更新モジュールにより必要とされるデータの少なくとも一部を記憶するバスケットセット表にアクセスすることが好ましい。金融情報に関係する好ましい実施形態では、このデータは、金融商品に関係する新しいメッセージが受信されたときに、バスケット計算に必要とされる適切なデータが取り出されることができるように、金融商品により表内で間接的にインデックスされることができる。間接処理を提供するために、金融商品によりバスケットセット表内へのポインタをインデックスする第2の表が利用される。
さらに、パイプラインが再構成可能論理デバイスなどのコプロセッサ上に導入されたファームウェアパイプラインを含む一実施形態では、これらのモジュールの設計は、コプロセッサのハードウェア能力に適応されることができ、それにより、データストリームがラインの速度で処理されることができ、一方で主プロセッサが依然として他のタスクを自由に行うことができるように、バスケット計算を能率的にするというある水準の相乗効果を提供する。
本発明者はまた、パイプラインは、バスケット価値更新モジュールの下流の価格イベントトリガモジュールを利用することができることに注目する。価格イベントトリガモジュールは、更新されたバスケット価値のうち顧客により指定されたトリガ条件を満たすものがあるかどうかを決定するように構成されることができる。次に、顧客により指定されたトリガ条件を満たすどんな更新されたバスケット価値も、関係がある顧客(たとえば、特定のトレーダ、特定のアプリケーションなど)宛に転送されることができる。そうすることにより、顧客はバスケット計算パイプラインの低遅延の性質を利用して、間に合うことがある売買機会を知ることができる。
さらに、パイプラインは、価格イベントトリガモジュールの下流のイベント発生器モジュールを利用することができる。イベント発生器モジュールの役割は、価格イベントトリガモジュールにより誘発されるトリガに応答して、顧客に引き渡すためのメッセージイベントを生成することである。このメッセージイベントは、更新されたバスケット価値を含むことが好ましい。
その上さらに、バスケット連関探索モジュール(および、パイプライン内のその下流モジュール)により処理される金融市場データメッセージの量を制限するために、パイプラインは、バスケット連関探索モジュールの上流のメッセージ修飾子フィルタモジュールを利用することができる。メッセージ修飾子フィルタモジュールは、バスケット計算に関係しないメッセージを金融市場データメッセージストリームから捨てるように構成されることが好ましい。
本明細書に記載されたようなパイプラインは、本発明の一実施形態で使用されて、金融商品バスケット、および現在の市場の状況に関連して裁定取引条件(上記で論じられたETF裁定取引シナリオなど)が発生するときに、それを特定することができる。低遅延バスケット計算パイプラインを介してこれらの裁定取引条件を即座に検出することにより、トレーダが、検出された裁定取引条件を利用する売買を1つ以上の取引所で行うことができるようになる。
以下の説明および図面を検討すれば、本発明のこれらおよび他の特徴および利点が、当業者には明らかである。
ハードウェアアクセラレートされたバスケット計算が行われることができるシステムの例示的実施形態を示す図である。 ハードウェアアクセラレートされたバスケット計算が行われることができるシステムの例示的実施形態を示す図である。 コプロセッサ140として使用するための例示的プリント回路基板を示す図である。 コプロセッサ140として使用するための例示的プリント回路基板を示す図である。 複数の再構成可能論理デバイスにわたりファームウェアパイプラインがどのように導入されることができるかの例を示す図である。 バスケット計算を行うためにコプロセッサがどのように使用されることができるかの高い階層の構成図である。 差分計算手法を使用して更新されたバスケット価格を計算するための例示的処理フローを示す図である。 本発明の一実施形態による例示的バスケット計算エンジンパイプラインを示す図である。 例示的バスケット連関探索モジュールを示す図である。 例示的バスケットセットポインタ表を示す図である。 例示的バスケットセット表を示す図である。 例示的バスケット価値更新モジュールを示す図である。 バスケット価値更新モジュール内のNAV計算論理回路の例示的実施形態を示す図である。 バスケット価値更新モジュール内のNAV計算論理回路の例示的実施形態を示す図である。 バスケット価値更新モジュール内のNAV計算論理回路の例示的実施形態を示す図である。 複数のNAV更新エンジンを利用するバスケット価値更新モジュールの例示的実施形態を示す図である。 本発明の別の実施形態による例示的バスケット計算エンジンパイプラインを示す図である。 例示的価格イベントトリガモジュールを示す図である。 価格イベントトリガモジュール内のNAV−トリガ比較論理回路の例示的実施形態を示す図である。 複数の顧客特有価格イベントトリガモジュールを利用する価格イベントトリガモジュールの例示的実施形態を示す図である。 本発明の別の実施形態による例示的バスケット計算エンジンパイプラインを示す図である。 例示的イベント発生器モジュールを示す図である。 本発明のさらに別の実施形態による例示的バスケット計算エンジンパイプラインを示す図である。 例示的メッセージ修飾子フィルタモジュールを示す図である。 本発明のさらに別の実施形態による例示的バスケット計算エンジンパイプラインを示す図である。 バスケット計算エンジンパイプラインが利用されることができる例示的チッカ装置アーキテクチャを示す図である。
図1aは高速バスケット計算を行うように構成されるシステム100の例示的実施形態を示す。システム100は、コプロセッサ140によるハードウェアアクセラレートされたデータ処理能力を利用して、バスケット計算を行うことが好ましい。システム100内には、コプロセッサ140が、(ネットワークインタフェース110を介して)ネットワーク120からシステム100に流れ込むデータを受信するように配置される。好ましい実施形態では、システム100は、金融商品データを受信し、かつ金融商品バスケットに対するバスケット計算を行うように利用される。したがって、ネットワーク120は、システム100が、取引所自体(たとえば、NYSE、NASDAQなど)、またはサードパーティの提供業者(たとえば、SavvisまたはBT Radiansなどのエクストラネット提供業者)などの金融データの情報源にアクセスすることができるネットワークを含むことが好ましい。そのような入力データは、金融商品に関連する売買および相場などのイベントを表すメッセージである一連の金融市場データメッセージを含むことが好ましい。これらのメッセージは、当該技術分野で知られているいくつかの形式のうちどれでも存在することができる。
プロセッサ112およびRAM108により定義されるコンピュータシステムは、当業者により理解されるどんな商品のコンピュータシステムでもよい。たとえば、コンピュータシステムはIntelのXeonシステムでも、AMDのOpteronシステムでもよい。したがって、プロセッサ112は、システム100の中央プロセッサまたは主プロセッサの役を果たすが、GPPを含むことが好ましい。
好ましい実施形態では、コプロセッサ140は再構成可能論理デバイス102を含む。システムバス106を介して再構成可能論理デバイス102にデータが流れ込むことが好ましいが、他の設計アーキテクチャの可能性がある(図2b参照)。再構成可能論理デバイス12は、フィールドプログラマブルゲートアレイ(FPGA)であることが好ましいが、これが事実である必要はない。システムバス106はまた、再構成可能論理デバイス102をRAM108だけでなくプロセッサ112と相互接続することができる。好ましい実施形態では、システムバス106は、PCI−Xバスでも、PCI−Expressバスでもよいが、これが事実である必要はない。
再構成可能論理デバイス102は、その機能を定義するその上に導入されたファームウェアモジュールを有する。ファームウェアソケットモジュール104が、再構成可能論理デバイス内への、およびそこからのデータ移動要件(コマンドデータもターゲットデータも)を処理し、それにより、同様に再構成可能論理デバイス上に導入されるファームウェアアプリケーションモジュール(FAM)チェーン150への整合性のあるアプリケーションインタフェースを提供する。FAMチェーン150のFAM150iが、ファームウェアソケットモジュール404からチェーン150を通って流れるどんなデータに対しても指定されたデータ処理操作を行うように構成される。本発明の好ましい実施形態による再構成可能論理回路上に導入されることができるFAMの好ましい実施形態が、以下に説明される。
FAMにより行われる特定のデータ処理操作は、FAMがファームウェアソケットモジュール104から受信するコマンドデータにより制御/パラメータ化される。このコマンドデータは、FAMに特有なものとすることができ、コマンドを受信すると同時に、FAMは受信されたコマンドにより制御されるデータ処理操作を実行するように自分を配列する。たとえば、データと鍵との間の完全一致操作を行うように構成されたFAM内で、FAMの完全一致操作は、完全一致操作が行われる鍵を定義するようにパラメータ化されることができる。この方法では、完全一致操作を行うように構成されたFAMが、そのFAM内の1つ以上の異なる鍵に新しいパラメータをただロードすることにより、異なる完全一致操作を行うように容易に再配列されることができる。バスケットに関係する別の例として、1つ以上の金融商品をバスケットに追加する/そこから削除するバスケット計算エンジンを構成する1つ以上のFAMにコマンドが発行されることができる。
受信されたコマンドにより指定されたデータ処理操作を行うようにFAMが配列されると、そのFAMは、ファームウェアソケットモジュールから受信するデータストリームに自分が指定されたデータ処理操作をいつでも実行できる。したがって、FAMは適切なコマンドにより配列されて、指定された方法で指定されたデータストリームを処理することができる。FAMが自分のデータ処理操作を完了すると、FAMに自分を再配列させて、それにより行われるデータ処理操作の性質を変える別のコマンドがそのFAMに送信されることができる。FAMがハードウェアの速度で動作する(それにより、FAMを介したデータの高スループットを提供する)だけでなく、FAMが柔軟に再プログラムされて、そのデータ処理操作のパラメータを変更することができる。
FAMチェーン150は、パイプライン化された順序で配列された複数のファームウェアアプリケーションモジュール(FAM)150a、150b、・・・を含むことが好ましい。しかしながら、ファームウェアパイプライン内で、FAM150iの1つ以上の並列経路が利用されることができることは留意されるべきである。たとえば、ファームウェアチェーンは、第1のパイプライン経路内に配列された3つのFAM(たとえば、FAM150a、150b、150c)、および第2のパイプライン経路内に配列された4つのFAM(たとえば、FAM150d、150e、150f、および150g)を含むことがあり、第1および第2のパイプライン経路は互いに並列である。さらに、ファームウェアパイプラインは、既存のパイプライン経路から離れる1つ以上の経路分岐を有することができる。本発明の実行者は、所与のアプリケーションの処理の必要に基づいてFAMチェーン150についてFAMの適切な配列を設計することができる。
通信経路130が、ファームウェアソケットモジュール104を、パイプライン化されたFAMのうち第1のFAM150aの入力に接続する。第1のFAM150aの入力は、FAMチェーン150への入口点の役割を果たす。通信経路132が、パイプライン化されたFAMのうちの最後のFAM150mの出力をファームウェアソケットモジュール104に接続する。最後のFAM150mの出力は、FAMチェーン150からの出口点の役割を果たす。通信経路130も通信経路132も複数ビットの経路であることが好ましい。
具体的にはファームウェアソケットモジュールに入る、およびそこから出るデータフローに関連する、システム100により使用されるソフトウェアおよびハードウェア/ソフトウェアインタフェースの性質は、上記で参照され組み込まれた米国特許出願公開第2007/0174841号明細書でより詳細に記載されている。
図1bは、システム100の別の例示的実施形態を示す。図1bの例では、システム100は、ディスクコントローラ114を介してバス106と通信するデータストア142を含む。したがって、コプロセッサ140を通って流れるデータはまた、データストア142から発することもある。データストア142は、どんなデータ記憶装置/システムであってもよいが、何らかの形の大容量記憶媒体であることが好ましい。たとえば、データストア142は、Seagateのディスクのアレイなどの磁気記憶装置でもよい。
図2aは、図1aから図1bの実施形態のどれについても、システム100内のコプロセッサ140として使用するための商品のコンピュータシステムのPCI−XバスまたはPCI−eバス106に接続されることができるプリント回路基板またはカード200を示す。図2aの例では、プリント回路基板は、メモリ装置202、およびPCI−Xバスコネクタ204と通信するFPGA102(XilinxのVirtex II FPGAなど)を含む。好ましいメモリ装置202は、SRAMおよびDRAMのメモリを含む。好ましいPCI−XまたはPCI−eのバスコネクタ204は、標準的なカードエッジコネクタである。
図2bは、プリント回路基板/カード200の代替構成を示す。図2bの例では、バス206(PCI−XバスまたはPCI−eバスなど)、1つ以上のディスクコントローラ208、およびディスクコネクタ210がまた、プリント回路基板200上に取り付けられる。当該技術分野で理解されるどんな商品のディスクインタフェース技術でもサポートされることができる。この構成では、ファームウェアソケット104はまた、PCI−XからPCI−Xへのブリッジの役割を果たして、専用のPCI−Xバス206を介して接続されるどんなディスクへの標準アクセスでもプロセッサ112に提供する。ネットワークインタフェースが、図2bに示されるディスクコントローラおよびディスクコネクタに追加して、またはその代わりに使用されることができることは留意されるべきである。
図2aまたは図2bのいずれの構成でも、ファームウェアソケット104は、メモリ202をバス106にアクセスできるようにし、それによりメモリ202をバスへのアクセスを有するデータソースからFAMへの転送用バッファとしてOSカーネルにより使用するために利用できるようにすることは留意する価値がある。単一のFPGA102が図2aおよび図bのプリント回路基板上に示されているが、プリント回路基板200上に2つ以上のFPGAを含むことにより、またはシステム100に2つ以上のプリント回路基板200を取り付けることにより、複数のFPGAがサポートされることができることが理解されるべきであることもまた留意する価値がある。図3は、複数のFPGAにわたる単一のパイプライン内に多数のFAMが導入される例を示す。
図4aは、新しい金融商品価格
Figure 2011510382
の入力ストリームを受信し、受信されたストリームに応答してバスケット計算エンジン400を使用して新しいバスケット価値NAVnewを計算するコプロセッサ140を高い階層で示す。バスケット計算をコプロセッサ140に肩代わりさせることにより、システム100は、新しい金融商品価格に応答して新しいバスケット価値を計算する遅延を大きく低減させることができる。
バスケット計算エンジン(BCE)400は、このエンジンによるNAVnewの計算結果を式(1)から導出することが好ましい。BCE400により式(1)を直接実行することは、M回の乗算、M−1回の加算、および1回の除算を含む。本発明の実行者は、式(1)のそのような直接使用をBCE400内に実装することを選択することもあるが、BCE400の好ましい実施形態が、式(1)の関数を実現するために行われる必要のある算術演算の回数を低減する。バスケットに対するNAVが更新されることになる根拠が、バスケットの基になる金融商品のうちの1つに対する新しい価格であることを考慮すると、バスケットのNAVへの新しい金融商品価格と古い金融商品価格との差の寄与を計算すれば十分である。次に、この計算された寄与は、バスケットに対する古いNAV値に加算されて、更新されたNAV値を得ることができる。この処理は、本明細書ではNAVに対する「差分計算」と呼ばれる。この差分計算手法についての根拠が以下に示され、式(1)から始まる。
Figure 2011510382
Figure 2011510382
Figure 2011510382
Figure 2011510382
Figure 2011510382
NAVnew=NAVold+Δj (2)
したがって、NAVnewは、古いNAV価格NAVoldとΔjの和として計算されることができると理解されることができる。ここで、Δjは、NAVへの新しい金融商品価格の差分寄与を表し、Δjは以下の式で計算される:
Figure 2011510382
したがって、差分計算手法は、新しいバスケット価値を計算するのに必要な計算回数を、M回の乗算、M−1回の加算、および1回の除算から、1回の減算、1回の乗算、1回の除算、および1回の加算だけに低減することができると理解されることができる。単一のバスケットが任意の数の金融商品を含むことがあるので、この低減が、計算効率の効果的な改善につながる可能性がある。バスケットの中には、Mの値がかなり大きいものがあることは留意されるべきである。たとえば、ほぼ6,300の有価証券を含むインデックスであるWilshire 5000株式インデックスを計算するためにバスケットが使用されることがある。しかしながら、Wilshire 5000株式インデックス内にそのような多数の有価証券が存在しても、そのようなバスケットのNAV計算は上記の式(2)に基づくので、差分計算手法を利用するBCE400の計算遅延を増加させることにはならない。
図4bは、BCE400による、更新されたバスケット価値の計算の高い階層の処理フローを示す。ステップ402では、BCEが、バスケット価値への新しい金融商品価格
Figure 2011510382
の差分寄与Δjを計算する(式(3)を参照のこと)。ステップ404では、BCEが、計算された差分寄与から、更新されたバスケット価値NAVnewを計算する(式(2)を参照のこと)。
図5は、BCE400を実現するための好ましいパイプライン500を示す。パイプライン500は、再構成可能論理デバイス102上にファームウェアパイプライン150として導入されることが好ましい。パイプライン500は、バスケット連関探索モジュール502、および下流のバスケット価値更新モジュール504を含むことが好ましい。バスケット連関探索モジュール502は、金融市場データメッセージのストリームを受信し、各メッセージは、単一金融商品の買い呼値、売り呼値、および/または終値の変化を表す。各メッセージは、少なくとも記号識別子、広域取引所識別子、ならびに記号識別子に対応する金融商品に対する1つ以上の終値、買い呼値、および売り呼値を含むことが好ましい。記号識別子(または記号ID)は、特定の金融商品を一意に識別する2進数タグを含むことが好ましい。広域取引所識別子(GEID)は、メッセージが関連する特定の取引所を一意に識別する2進数タグを含むことが好ましい。メッセージ内のデータタグは、メッセージ内の価格情報が金融商品に対する買い呼値/売り呼値/終値に関係するかどうか特定することが好ましい。また、メッセージフィールドは、メッセージがバスケット連関探索モジュール502に到着する時点以前に、異なるメッセージ源の間でそのように正規化されることが好ましい。
バスケット連関探索(BAL)モジュール502は、入力メッセージごとに、そのメッセージの対象である金融商品を含む1組のバスケットを決定するように構成される。このバスケットセットは、複数のQ個のバスケットを含むことがある(だが、バスケットセットの中にただ1つのバスケットしか存在しない可能性があることは留意されるべきである)。したがって、金融市場データメッセージごとにバスケット価値を追跡するという大量で厄介な性質は、各メッセージが少なくともQ個のバスケット価値計算を必要とする(1:Qの増大)と理解されることができる。例示的実施形態では、Qの最大値は、1,024バスケットとなることがある。しかしながら、他の値が容易に使用されることがある。
図6は、例示的BALモジュール502を示す。システム100はあらゆる知られている金融商品のレコードを維持することが好ましく、各レコードは、その金融商品、リスト上の各バスケット内の金融商品の相対加重、ならびに金融商品に対する最新の買い呼値、売り呼値、および最終販売価格を含む、バスケットのリストを含むことが好ましい。これらのレコードは、バスケットセット表608に記憶されることが好ましい。システム100はまた、バスケットセットポインタ表604を維持することが好ましい。表604は、バスケットセット表608内の該当するレコードの位置を示す1組のポインタおよび他の情報を含むことが好ましい。バスケットセット表608と組み合わせてバスケットセットポインタ表604を使用することにより、バスケットセット表608の内容を管理する融通性をより高めることが可能になる。図2aおよび図2bに示されるような、コプロセッサがメモリ202を利用する一実施形態では、このメモリ202がSRAMメモリデバイスおよびSDRAMメモリデバイスを含むことがある。バスケットセットポインタ表604はSRAMメモリデバイス内に記憶されることができ、一方、バスケットセット表608はSDRAMメモリデバイス内に記憶されることができることが好ましい。しかしながら、1つ以上のFPGAチップが使用されるコプロセッサの一実施形態については、十分なメモリが利用できるならば、表604および608のいずれか、または両方が、利用できるオンチップメモリ内に記憶されることができることにも留意されるべきである。さらに、表604および608は、システム100内、またはそれと通信できる他のメモリデバイスに記憶されることができる。
動作については、BALモジュール502が、メッセージごとの記号IDおよびGEID600を使用して、バスケットセットポインタ表604での探索を行う。記号IDおよびGEID600に基づいて、バスケットセットポインタ606が表604から取り出され、BALモジュール502がこのバスケットセットポインタ606を使用して、バスケットセット表608での探索を行う。バスケットセット表608での探索は、記号IDにより特定される金融商品に対するバスケットセット610を特定し、かつその金融商品に対する記憶された終値/買い呼値/売り呼値612を特定するように動作することが好ましい。各バスケットセットは、その金融商品が構成要素となっている1つ以上のバスケットに対する識別子を含む。
図6に示されるように、減算器616が、現在のメッセージに含まれる新しい終値/買い呼値/売り呼値602から、取り出された終値/買い呼値/売り呼値612を減算して、それにより終値/買い呼値/売り呼値614の変化を計算するように動作することが好ましい。各メッセージは、対象の金融商品に対する1つ以上の価格フィールドを含むことがあることは留意されるべきである。メッセージ内に含まれないどの価格フィールドについても、結果として得られる価格変化はゼロとして取り扱われることが好ましい。したがって、メッセージが金融商品に対する最終販売価格を含まない場合、Δ終値はゼロとなる。
図7はバスケットセットポインタ表604の例示的実施形態をより詳細に示す。表604は複数のレコード700を含み、各レコードは、1組のフラグ702に対応するビット列、ヘッダブロックポインタ704に対応するビット列、および異なるGEID706に対応する複数のビット列を含む。各レコード700は、BALモジュール502が現在のメッセージの記号IDに対応する表604からレコード700を取り出すことができるように記号IDにより指示される。フラグ702は、レコード700が有効であるかどうか(すなわち、対象の金融商品が少なくとも1つのバスケット内に含まれるかどうか)を示す。ヘッダブロックポインタ704は、記号IDに対応する金融商品に対する、表608内のバスケット連関レコードへのポインタの役割を果たす。
また、所与の金融商品が複数の金融取引所で代替可能なことがある。所与の取引所(たとえば、NYSE)での金融商品の状態は、金融商品に対する地域見込みとして参照される。すべての取引所にわたるその金融商品の集計した状態は、その金融商品に対する複合見込みとして参照される。終値に対する複合価値は、任意の取引所での金融商品の最新販売価格であることが好ましい。買い呼値に対する複合価値は、その金融商品が売買される取引所のすべてにわたる、金融商品に対する買い呼値のうちの最高価格であることが好ましい。売り呼値に対する複合見込みは、その金融商品が売買される取引所のすべてにわたる、金融商品に対する売り呼値のうちの最高価格であることが好ましい。したがって、複合見込みにおける買い呼値および売り呼値は、一般に最高ビッドおよびオッファ(Best Bid and Offer、BBO)価格として参照される。表604および608により、バスケットが金融商品の地域見込みおよび/または複合見込みで定義されることができるようになる。たとえば、バスケットAが、最大時価総額を有する10の技術関連株の複合見込みを含むことがある。バスケットBが、最大時価総額を有する10の技術関連株のNYSE地域見込みを含むことがある。バスケットCが、10の技術関連株に対する複合見込み、および10の工業株に対するNYSE地域見込みを含むことがある。
そのような融通性のあるバスケット定義に対応するためには、表604は、各レコード700内の複数のGEIDフィールド706を利用することが好ましい。各GEIDフィールド706は、関係する金融商品に対する該当する複合バスケット連関レコードおよび/または地域バスケット連関レコードを取り出すための表608へのインデックスの役割をさらに果たす。したがって、BALモジュール502は、現在のメッセージのGEIDを使用して、レコード700内の一致するGEIDフィールド706を特定する。GEIDに対応するフィールド706は、金融商品に対する複合見込みに対応する、表608内のどんなバスケット連関レコードも特定するために使用されることが好ましい。他のフィールド706は、金融商品に対する地域特有見込みに対応する、表608内のどんなバスケット連関レコードでも特定するために使用される。たとえば、GEIDが金融商品に対するNYSE見込みに対応することがある一方で、GEIDが金融商品に対するNASDAQ見込みに対応することがある。次に、一致するGEIDフィールド706が表608への追加のインデックスとして使用されて、金融商品の複合見込みと地域見込み両方に適用可能な、金融商品に対する1組のバスケット連関レコードを取り出す。
BALモジュール502は、所与の金融商品に適用可能な複合GEIDフィールドを常に取り出すことが好ましい。さらに、金融商品に関する地域価格情報を有するメッセージについては、BALモジュール502はまた、メッセージ内のGEIDフィールドと、その金融商品に対するレコード700内のGEIDフィールド706を照合するように動作する。したがって、BALモジュール502により使用されるバスケットセットポインタ606は、ヘッダブロックポインタ704、複合GEIDインデックス706、および対象のメッセージに対する地域GEIDインデックス706を含むことが好ましい。
図8は、バスケットセット表608の例示的実施形態をより詳細に示す。表608は、複数のバスケット連関レコードを含み、各レコードは、異なる金融商品に対するバスケット情報を含む。各レコードは、複数のヘッダブロック800、および場合によっては1つ以上の拡張ブロック822を含むことが好ましい。各ヘッダブロック800は、固定サイズであることが好ましいが、対象の金融商品および特定のGEIDに対応する。さらに、各ヘッダブロック800は、そのブロックに対するGEIDフィールド802に対応するビット列、拡張ポインタ804に対応するビット列、カウントフィールド806に対応するビット列、1組の予約ビット808、対象の金融商品に対する最も新しく記憶された買い呼値810に対応するビット列、対象の金融商品に対する最も新しく記憶された売り呼値812に対応するビット列、対象の金融商品に対する最も新しく記憶された終値814に対応するビット列、および複数組のバスケット情報816に対応する複数のビット列を含むことが好ましい。
各ブロック800は、対象の金融商品に対する複合バスケット連関情報または地域バスケット連関情報を含むことが好ましい。また、ブロック800は、所与の金融商品に対する複合ブロックおよび地域ブロックが、連続したメモリアドレスに記憶されるようにメモリに配置されることが好ましい。この方法では、ヘッダブロックポインタ704は、金融商品の複合ブロック800の位置を突き止めるために使用されることができ、一方、GEIDインデックス706は、ヘッダブロックポインタ704で見つけられるアドレスへの増分として役立てることにより、金融商品に対する適用可能な地域ブロック800の位置を突き止めるために使用されることができる。
表608内の各バスケット情報フィールド816は、バスケット識別子および加重の対(バスケットID、加重)を含むことが好ましい。バスケットIDは、特定のバスケットを特定するのに役立ち、一方、加重は、対象の金融商品に対する特定されたバスケットへの差分寄与を計算するときに使用される加重を特定するのに役立つ。
単一の金融商品がいくつかの異なるバスケット内に存在することがあることを考慮すると、所与の金融商品に必要な(バスケットID、加重)対の数が単一のブロック800内に収まらない可能性がある。そのようなオーバフロー状況に対応するために、表608はまた、複数の拡張ブロックレコード822を有することが好ましい。各拡張ブロックレコード822は、固定サイズであり、拡張ポインタ818に対応するビット列、カウントフィールド820に対応するビット列、金融商品に必要とされる任意の1つ以上の(バスケットID、加重)対816を含むことが好ましい。金融商品に対する(バスケットID、加重)対816の数が単一の拡張ブロック822内に収まることができない場合、拡張ポインタ818は、追加の(バスケットID、加重)対816が見つけられる追加の拡張ブロック822のアドレスを特定するのに役立つ。したがって、複数の拡張ブロック822が、金融商品に関係する(バスケットID、加重)対816のすべてを包含するために必要とされることがあることは留意されるべきである。カウントフィールド820は、対象の拡張ブロック822内にどれだけの(バスケットID、加重)対816が存在するかを特定する。
ブロック800内のカウントフィールド806は、そのブロック800内にどれだけの(バスケットID、加重)対816が存在するかを特定するのに役立つ。
フィールド810、812、および814は、関係する取引所での対象の金融商品に対する最も新しく記憶された買い呼値/売り呼値/終値を含む。図6に示されるように、この価格情報は、差分寄与計算に関係のある価格変化値614(または差分価格)を計算するために使用される。
したがって、表604から取り出されたポインタ704およびGEIDインデックス参照706を使用して、BALモジュール502は、対象のメッセージに関係のある複合情報に対応する、表608内のブロック800(たとえば、「GEID」とラベルが付けられて図8で示されるブロック800)、および対象のメッセージに関係のある地域情報に対応する、表608内のブロック800(たとえば、「GEID」とラベルが付けられて図8で示されるレコード800)にアクセスするように構成される。該当する地域ブロックを見つけるために、BALモジュールは一致するGEIDフィールド706を使用して、関係する複合ブロックから該当する地域ブロックまでカウントダウンする。したがって、特定の金融商品に対する関係する地域ブロックが、レコード700内の2番目のGEIDフィールド706(GEID)と一致するGEID値を有するNYSEブロックである場合、BALモジュールは、複合ブロックから2ブロック後の、表608内の該当するNYSEブロック800を見つける。
図8の例では、図に示すように、地域情報にはオーバフロー状況があり、拡張ポインタ804が拡張ブロック822の位置を示す。これらの探索に基づき、BALモジュール502は、金融商品の該当する地域見込みに対する買い呼値/売り呼値/終値および(バスケットID、加重)対だけでなく、金融商品の複合見込みに対する買い呼値/売り呼値/終値および(バスケットID、加重)対も取り出す。下流の計算が該当する値に基づいていることを保証するために、複合見込みに対する取り出された買い呼値/売り呼値/終値612が、複合見込みに対する取り出された(バスケットID、加重)対610のリストと関連付けられる必要があり、かつ地域見込みに対する取り出された買い呼値/売り呼値/終値612が、地域見込みに対する取り出された(バスケットID、加重)対610のリストと関連付けられる必要があることは留意されるべきである。この連関を維持するために、以下に説明される差分イベントが利用されることが好ましい。
BALモジュール502はまた、表608内のレコードを各メッセージ内の新しい価格602で更新するように構成されることが好ましい。これは、表608の該当するフィールドへの書き込み動作を表す、図6の矢印618により示される。しかしながら、メッセージが、終値フィールドなどの特定の価格フィールドを含まない場合、BALモジュール502は、関係するブロック800内の終値フィールド814をその現状で維持することが好ましいことは留意されるべきである。
表604内の各レコード700に対する一連のGEIDフィールド706は、簡単にするために固定サイズとなる場合があることは留意されるべきである。実行者が各レコード700内のGEIDフィールド706にどれだけ多くのサイズを割り当てるかに応じて、金融商品が十分に多くの取引所で売買するので、金融商品の関係するGEIDを記憶するための十分に多くのフィールド706がない場合がある可能性がある。したがって、この状況が発生し、メッセージのGEID600が表604の関係するレコード700内のどのGEIDフィールド706にも一致を見いだせない場合、BALモジュール502は、表608から該当する地域ブロックを取り出すために、その金融商品に対するレコード内の最終ヘッダブロック800までインデックスし、ヘッダブロックのGEIDフィールド802の線形検索を行って、メッセージに関連するGEID600との一致を見つけることが好ましい。
GEID600が、表608内の金融商品レコードに対するGEIDフィールド802のどれにも見つからない場合、このことは、GEID600に対応するその金融商品の地域見込みがどのバスケットにも含まれないことを意味することにも留意されるべきである。
金融商品に対する表608内のバスケット連関レコードへの(バスケットID、加重)対の追加、および/またはそこからの削除により、1日を通してバスケットが動的に変更されることがあることも留意されるべきである。
バスケットに金融商品を追加するには、システムは、該当する(バスケットID、加重)対を表608内のその金融商品のレコードに追加する。プロセッサ112などのGPP上で実行するソフトウェアで行われることが好ましい制御プロセスが、表604および608のコピーを維持し、表608(および、その金融商品に対するGEIDが、その金融商品に対するレコード700のGEIDフィールド706内に存在しない場合には場合によっては表604)のどこに項目が追加される必要があるかを計算して、バスケットへの金融商品の追加を反映させることが好ましい。これらの決定は、追加される金融商品に対する記号IDおよびGEIDを使用して行われることができる。次に、制御プロセスは、表604および608を更新するために有効な、BALモジュール502により使うためのメモリ書き込みコマンドをパイプラインに送信して、対象の金融商品の追加をバスケットへ反映させることが好ましい。制御プロセスはまた、BALモジュール502により使うための総合(synthetic)イベントをパイプラインに即座に送信するように構成されることもあり、このイベントは、関係のある金融商品に対する現在の価格を含む。この動作は、対象のバスケットに対するNAV値に差分更新を引き起こし、これらの差分更新は、ゼロを基準とする(したがって、全価格寄与が決定される)。しかしながら、制御プロセスは、単にその後の市場イベントがパイプラインに到着するのを待ち、そのときに差分更新が適用されるようにするように構成されることがあることにも留意されるべきである。
バスケットからの金融商品の削除は、一般に対象の金融商品に対する表608内のレコードから対象のバスケットに対する(バスケットID、加重)対を削除することを伴う。さらに、NAV値を適切に更新して、バスケットからの金融情報の削除を反映させるためには、制御プロセスは、パイプラインに引き渡すための総合イベントを生成することが好ましく、対処の金融商品に対する価格情報はゼロである。これが、金融商品に対する差分価格値614に、表608内に記憶されたその金融商品に対する価格情報の負の値を生じさせ、したがって、その金融商品に対する対象のバスケットへの全価格寄与を取り除く。
システムにバスケット全体を追加するには、制御プロセスは当然、新しいバスケットの構成要素となっている金融商品のすべてに対する(バスケットID、加重)対を表608に追加する適切なメモリ書き込みコマンドをパイプラインに発行することができるということになる。制御プロセスはまた、上記に説明されたように、これらの構成要素となっている金融商品に対する現在の価格情報を反映させる、パイプラインに引き渡すための総合イベントを生成することもできる。さらに、以下の図9および図13に関連して理解されることができるように、制御プロセスは、除数表、NAV表、顧客NAV表、および顧客トリガしきい値表への該当する項目の追加を開始して、システムに新しいバスケットの追加を反映させることができる。
システムからバスケット全体を削除するには、制御プロセスは、対象のバスケットの構成要素となっている金融商品のすべてに対する(バスケットID、加重)対の表608からの削除を開始するように構成されることができるということにもなる。同様に、図9および図13に示される表内のレコードもまた、更新されて、削除されるバスケットのバスケットIDに関連するそれらのレコードを削除することができる。
BALモジュール502からの出力は、差分イベントのストリームである。各差分イベントは、取り出された(バスケットID、加重)対610、およびその取り出された(バスケットID、加重)対610に対応する金融商品に対する少なくとも1つの計算された価格変化614を含むことが好ましい。本発明の一実施形態では、価格差分のうちの1つ以上(たとえば、Δ買い呼値)がゼロであっても、各差分イベントは価格差分すべてを含む。しかしながら、以下に指摘するように、これが実情である必要はない。
BALモジュール502への入力で受信されるメッセージイベントごとに、受信されたメッセージの対象である金融商品が、複数のバスケットの構成要素となっている場合があるという事実により、BALモジュール502の出力で複数の差分イベントが生成されることがあるということも理解されるべきである。このように増加することもあって、パイプライン500の低遅延性質は、バスケット価値を更新するタスクが、異なる取引所からのイベントの流入に遅れないようについていけるようになるという点で特に有利である。
図5に戻ると、バスケット価値更新モジュール504は、BALモジュール502により生成される差分イベントごとに新しいバスケット価値を計算するように構成される。図8は、例示的バスケット価値更新(BVU)モジュール504を示す。
差分イベントバッファ900が、BALモジュール502により生成された差分イベントをバッファに入れる。バッファ900から読み出された差分イベントごとに、BVUモジュール504は、除数表902での探索を行って、現在の差分イベント内のバスケットIDに対応するバスケットに対して、除数dに対する適切な値を式(3)から決定する。したがって、表902は、各除数値を除数の対応するバスケットに対するバスケットIDによりインデックスすることが好ましいことが理解されることができる。差分イベントバッファ900および除数表902は、再構成可能論理デバイス102のための利用可能なオンチップメモリ内に位置することが好ましい。しかしながら、代わりに、バッファ900および表902は、コプロセッサ140内またはそれにアクセス可能などんなメモリ資源上にでも記憶されることが可能であることは留意されるべきである。
次に、NAV更新エンジン950は、入力として差分イベント情報((バスケットID、加重)対610および差分買い呼値/売り呼値/終値614)に加えて、その差分イベントに対する除数値dを受信して、少なくとも1つの更新されたバスケット価値NAVnewを計算する。NAV更新エンジン950は、バスケットごとに複数の異なる種別のバスケットNAVを計算するように構成されることが好ましい。たとえば、図9に示されるように、NAV更新エンジン950は、買い呼値、売り呼値、終値、買い呼値−価格変動(Tick)値、および売り呼値+価格変動値に基づく新しいNAV(それぞれ、買いNAVnew、売りNAVnew、最終NAVnew、買い−価格変動NAVnew、および売り+価格変動NAVnew)を並列に計算するように構成されることができる。これらの例では、価格変動値は、金融商品価格の変化を測定するために関係する取引所により使用される最小増分として定義される。
デマルチプレクサ904は、差分イベント情報および除数値の部分を該当するNAV計算論理回路916にルーティングするように動作する。NAV更新エンジンは、複数の並列計算経路を利用して、各種別のバスケットNAVを計算することが好ましい。
買いNAVnewを計算するための計算経路は、バスケットID、加重、除数、およびΔ買い呼値で動作することが好ましい。BVUモジュール504は、バスケットIDに基づいて買いNAV表906での探索を行って、対象のバスケットに対する記憶された買いNAV値(買いNAVold)を取り出す。この買いNAVold値は、買いNAVnew計算の間に式(2)中のNAVold値の役割を果たす。次に、NAV計算論理回路916は、(i)式(3)中のd項に除数値を、式(3)中のw項に加重値を、および式(3)中の
Figure 2011510382
項にΔ買いの値を使用して、式(3)に従って金融商品に対する差分寄与Δjを計算し、(ii)その後、計算されたΔj、および買いNAVold値に基づき式(2)に従って買いNAVnewを計算する。
売りNAVnewを計算するための計算経路は、バスケットIDに基づき売りNAV表908での探索を行い、Δ買い呼値の代わりにΔ売り呼値を使用するが、買いNAVnewのための計算経路と同じ方法で動作することが好ましい。
最終NAVnewを計算するための計算経路も、バスケットIDに基づき最終NAV表910での探索を行い、Δ買い呼値の代わりにΔ終値を使用するが、買いNAVnewのための計算経路と同じ方法で動作することが好ましい。
同様に、買い−価格変動NAVnew値および売り+価格変動NAVnew値を計算するための計算経路は、バスケットIDに基づきそれぞれ買い−価格変動NAV表912および売り−価格変動NAV表914での探索を行い、それぞれΔ買い呼値およびΔ売り呼値を使用するが、買いNAVnewのための計算経路と同じ方法で動作することが好ましい。
表912は、金融商品に対する価格に基づく、金融商品に対する以前の買い呼値から価格変動値を減算した、バスケットごとの以前に計算されたNAVを記憶することができる。表914は、金融商品に対する価格に基づく、金融商品に対する以前の売り呼値に価格変動値を加算した、バスケットごとの以前に計算されたNAVを記憶することができる。
表906、908、910、912、および914は、再構成可能論理デバイス102のための利用可能なオンチップメモリ内に記憶されることが好ましい。しかしながら、これらの表は、代わりにコプロセッサ140内、またはそれにアクセス可能などんなメモリ資源上にでも記憶されることができることは留意されるべきである。
したがって、NAV更新エンジン950は、クロックサイクルごとに、更新バスケットイベントを出力するように構成されることが好ましいことが理解されることができる。ここで、各更新バスケットイベントは、そのバスケットに対するバスケットIDと共に、特定のバスケットに対する複数の異なる更新されたNAVを含む。
BVUモジュールはまた、新しく計算されたNAV値を用いて表906、908、910、912、および914を更新するように構成されることが好ましい。したがって、所与のバスケットIDに対する新しく計算された買いNAVnewは、表906内のそのバスケットIDに対する項目にフィードバックされることができ、その結果、同じバスケットIDに関係する次の差分イベントが最新のNAVold値を取り出すことになる。表906、908、910、912、および914に対するメモリは、デュアルポートであることが好ましく、したがって、2つの読み出し/書き込み動作が各クロックサイクルで発生することができるようになる。BVUモジュールのための更新論理回路がパイプライン化されている場合、同じクロックサイクルでの読み出しおよび書き込みの動作の間に所与の表内の同じバスケットID項目に対する競合がまれになり、当該技術分野で知られる技術を使用して特定され、避けられことができることが期待され得る。
また、制御プロセスは、バスケットの除数に対する値変化のイベントの際に、BVUモジュールにより使うためのメモリ書き込みコマンドをパイプラインに発行して、除数表902内の項目を更新することができる。そのような制御プロセスは、プロセッサ112などのGPP上で実行するソフトウェアで行われることが好ましい。
図10aは、NAV計算論理回路916の例示的実施形態を示す。乗算器1000が、加重値および各差分イベントからの差分価格情報を使用して、式(3)の
Figure 2011510382
部分を計算するように動作する。除算器1002が、式(3)に従って
Figure 2011510382
値をdで除算して、それによりΔjを計算するように動作する。その後、加算器1004がΔjをNAVold値に加算するために使用され、それにより式(2)に従ってNAVnewを計算する。
図10bは、NAV計算論理回路916の別の例示的実施形態を示す。図10bの実施形態では、除算演算が最後に実行され、それにより図10aの実施形態と比較してNAV計算の精度を改善する。式(3)を介して式(2)に固有の除算演算が最後に実行されるように算術演算を再配列するために、図10bの実施形態は、乗算器1006を使用して乗算演算を追加することが好ましい。この乗算演算は、乗算器1000により行われる乗算演算と並列に行われことができる。乗算器1006は、NAVold値にdを乗算するように動作し、それにより値Soldが得られる。この実施形態では、金融商品の差分寄与は、図10bの1012に示されるように、
Figure 2011510382
と表されることができる。次に、加算器1004がSold
Figure 2011510382
の和を計算する。SoldはdNAVoldに等しいことを考慮すると、
Figure 2011510382
をdで除算する動作が、式(2)および(3)に従ってNAVnewをもたらすことが容易に理解されることができる。
図10cは、NAV計算論理回路916のさらに別の例示的実施形態を示す。図10cの実施形態では、図10bの実施形態の精度改善が維持される一方で、乗算器1006の必要性もなくする。そうするためには、図10cのNAV計算論理回路916を利用するBVUモジュールで、NAV表906、908、910、912、および914が、NAVold値の代わりにSold値を記憶することが好ましく、それにより、乗算器1006の必要性をなくする。さらに、表906、908、910、912、および914を更新するために、次の差分イベントが処理されるときに、SnewがSoldの役を果たすように、Snewの値(
Figure 2011510382
と同じである)が通信リンク1010を介して関連する表にフィードバックされる。
BVUモジュール504は、複数のNAV更新エンジン950を並列に利用して、それにより複数のバスケットに対する複数のバスケットNAV種別を同時に計算することができることは留意されるべきである。この一例が図11に示されている。ここで、BVUモジュール504は、2つの並列なNAV更新エンジン950を含む。このような実施形態では、BVUモジュール504は、クロックサイクルごとにバッファ900から2つの差分イベントを読み出す。差分イベントごとの該当する除数値を特定するために除数表902での探索が行われた後に、ルーティング論理回路1100が、差分イベント情報およびそれに関連する除数値を該当するNAV更新エンジン950にルーティングする。そのようなルーティング論理回路1100は、バスケットIDの範囲の異なる部分を各組の並列エンジン950に割り当てるように構成されることができる。
必要に応じて、ただ1組のNAV表906、908、910、912、および914が複数のNAV更新エンジン950により共用されることができることは留意されるべきである。NAV更新エンジンの数がNAV表から読み出すために利用可能なポート数を超える場合、BVUモジュール504は、異なるNAV更新エンジンからのこれらの表へのアクセスをインタリーブするように構成されることができる。これらの表はまた、そのようなインタリーブを避けるように望まれる場合には、複製されることもできる。同じことが、除数表902に関して主張されることができる(図11は、2つの除数表が利用される一実施形態を示すが、図11では単一の除数表902が異なる経路により共用される場合があることは留意されるべきである)。
図12は、パイプライン500が、BVUモジュール504からの出力と通信する価格イベントトリガモジュール1200を含む一実施形態を示す。価格イベントトリガ(PET)モジュール1200は、BVUモジュール504により生成されるどの更新されたバスケット価値が、関心のある顧客に報告されるべきかを決定するように構成される。これらの決定は、任意の数の基準に基づいて行われることができる。顧客はバスケットの価値が一定量変化するときに彼/彼女が通知されるように要求した特定のトレーダのこともあり、または顧客は売買システム内の別のアプリケーションのこともある。顧客はまた、コプロセッサ140上に導入された別のモジュールのともある(パイプライン500がFAMパイプラインの場合の別のFAM150など)。
図13は、PETモジュール1200の例示的実施形態を示す。PETモジュール1200は、BVUモジュール504により生成された、バスケットに対する各バスケット価値種別に対して並列に動作するように構成されることが好ましい。また、更新されたバスケット価値のうちどれが関心のある顧客に報告されるべきかを決定するために、PETモジュール1200は、各更新されたバスケット価値を顧客により定義されたトリガしきい値と比較することが好ましい。
PETモジュール1200は、異なるNAV種別に対応する複数の表にアクセスすることが好ましい。ここで、これらの表は、バスケットごとの顧客参照値を記憶する。これらの参照値は、新しいバスケット価値が、関心のある顧客に報告されるべきかどうかを判断するためにPETモジュール1200により使用される。例示的実施形態では、参照値は、以前にその顧客に報告された対象のバスケットに対するNAV値である。したがって、顧客NAV表は、BVUモジュール504により生成されるバスケット価値種別ごとに存在することが好ましい。すなわち、参照値表1302が、異なるバスケットに対する複数の顧客買いNAVを記憶する。ここで、各顧客買いNAVは、バスケット識別子によりインデックスされる。参照値表1304が、異なるバスケットに対する複数の顧客売りNAVを記憶する(各顧客売りNAVはバスケット識別子によりインデックスされる)。参照値表1306が、異なるバスケットに対する複数の顧客最終NAVを記憶する(各顧客最終NAVはバスケット識別子によりインデックスされる)。参照値表1308が、異なるバスケットに対する複数の顧客買い−価格変動NAVを記憶する(各顧客買い−価格変動NAVはバスケット識別子によりインデックスされる)。参照値表1310が、異なるバスケットに対する複数の顧客売り+価格変動NAVを記憶する(各顧客売り+価格変動NAVはバスケット識別子によりインデックスされる)。これらの表はそれぞれ、顧客に報告されるべき、それぞれの表のNAV種別の最新値を記憶することが好ましい。したがって、新しいバスケット価値により誘発されるトリガのうちの1つのイベントで、PETモジュールが、顧客表内のNAV値を新しいバスケット価値で更新するように構成されることが好ましい。そのような更新論理回路は、トリガを誘発するそれらのNAV値のためだけに表を更新するように構成されることができる、または任意のNAV値がトリガを誘発するときには、表のすべてを更新するように構成されることができる。
また、顧客NAVトリガしきい値表は、BVUモジュール504により生成されるバスケット価値種別ごとに存在することが好ましい。したがって、表1314が、異なるバスケットに対する複数の顧客買いNAVトリガしきい値を記憶する。ここで、各顧客買いNAVトリガしきい値は、バスケット識別子によりインデックスされる。表1316が、異なるバスケットに対する複数の顧客売りNAVトリガしきい値を記憶する(各顧客売りNAVトリガしきい値は、バスケット識別子によりインデックスされる)。表1318が、異なるバスケットに対する複数の顧客最終NAVトリガしきい値を記憶する(各顧客最終NAVトリガしきい値は、バスケット識別子によりインデックスされる)。表1320が、異なるバスケットに対する複数の顧客買い−価格変動NAVトリガしきい値を記憶する(各顧客買い−価格変動NAVトリガしきい値は、バスケット識別子によりインデックスされる)。表1322が、異なるバスケットに対する複数の顧客売り+価格変動NAVトリガしきい値を記憶する(各顧客売り+価格変動NAVトリガしきい値は、バスケット識別子によりインデックスされる)。
表1302、1304、1306、1308、1310、1314、1316、1318、1320、および1322は、再構成可能論理デバイス102のための利用可能なオンチップメモリ内に記憶されることが好ましい。しかしながら、これらの表は、代わりにコプロセッサ140内、またはそれにアクセス可能などんなメモリ資源上にでも記憶されることができることは留意されるべきである。
また、顧客NAV表および顧客NAVトリガしきい値表は、必要に応じて本発明のこの実施形態の実行者により任意選択で統合されることができることは留意されるべきである。そうする際には、各レコードが顧客買いNAVおよび顧客買いNAVトリガしきい値を含むように、顧客買いNAV表1302内のレコードが、顧客買いNAVトリガしきい値表1314内のレコードと併合される。同様に、表1304は表1316と、表1306は表1318と、表1308は表1320と、および表1310は表1322と併合されることができる。
PETモジュール1200は、複数の並列計算経路を使用して、各バスケットイベント内のNAV種別のいずれかが顧客トリガを誘発するかどうかを決定することが好ましい。
第1の計算経路が、現在の更新バスケットイベントのバスケットIDに基づいて、顧客買いNAV表1302での探索、および顧客買いNAVトリガしきい値表1314での探索を行って、それにより顧客買いNAVおよび顧客買いNAVトリガしきい値を取り出すように構成される。顧客買いNAVは、更新バスケットイベント内の買いNAVが比較されるトリガの役を果たす。次に、顧客買いNAVトリガしきい値は、トリガが誘発されたかどうか判断する基準として利用される。次に、NAV−トリガ比較論理回路1312がこの比較を行い、トリガが誘発されたかどうか決定するように動作する。ここで、買いNAVトリガフラグがこの決定の結果を示す。
追加の計算経路が、更新バスケットイベントの売りNAV、最終NAV、買い−価格変動NAV、および売り+価格変動NAVに対してこれらの操作を行って、図13に示されるように、それぞれ売りNAV、最終NAV、買い−価格変動NAV、および売り+価格変動NAVのトリガフラグを生成する。
トリガ検出論理回路1324が、計算経路により生成された異なるNAVトリガフラグを受信する。この論理回路1324は、所与の更新バスケットイベントに対するトリガフラグのうちいずれかがハイの状態となっているかどうかを決定するように構成される。トリガ検出論理回路1324は、その更新バスケットイベントに対するフラグのうちいずれかがハイの状態にある場合、更新バスケットイベントを出力として渡すように構成されることが好ましい。したがって、PETモジュール1200は、顧客により定義された基準に従って注目に値すると思われる更新バスケットイベントを通過させるフィルタの役を果たすことが理解されることができる。
図14は、比較論理回路1312の例示的実施形態を図示する。減算器1400が、取り出された顧客NAVを更新バスケットイベントのNAV(NAVnew)から減算するように動作する。次に、比較器1404が、NAVnewと顧客NAVとの差を、取り出された顧客トリガしきい値と比較して、NAVトリガフラグがセットされるべきかどうか決定する。差がしきい値を超える場合、比較器はNAVトリガフラグをハイに設定することが好ましい。
したがって、顧客が、バスケット145の買いNAVが0.05ドルだけ変化したときはいつでも、バスケット145に対する売りNAVが0.03ドルだけ変化したときはいつでも、またはバスケット145に対する最終NAVが0.02ドルだけ変化したときはいつでも、通知されたいと思う場合がある。このような例では、バスケット145に対する表1314内の顧客買いNAVトリガしきい値が0.05ドルに等しく設定されることができ、バスケット145に対する表1316内の顧客売りNAVトリガしきい値が、0.03ドルに等しく設定されることができ、バスケット145に対する表1318内の顧客最終NAVトリガしきい値が0.02ドルに等しく設定されることができる。バスケット145に対する更新バスケットイベント内の新しい買いNAV値、売りNAV値、および最終NAV値が、それぞれ20.50ドル、20.40ドル、および20.20ドルで、一方、バスケット145の顧客NAVに対する記憶された値が、それぞれ20ドル、20.42ドル、および20.19ドルの場合、比較論理回路は、買いNAVトリガフラグをハイに、売りNAVトリガフラグをローに、および最終NAVトリガフラグをハイに設定するように動作する。
しかしながら、比較論理回路1312は、顧客トリガがいくつかの方法のうちどれかで誘発されたかどうかを決定するように構成されることができることは留意されるべきである。たとえば、顧客しきい値は、必要に応じて、パーセントに換算して表現されることができる(新しいNAVと顧客NAVのパーセント差を計算するために、比較論理回路内で対応する調節を伴う)。また、トリガ条件は、対象のNAVとは異なるトラッキング証券に基づくことができる。たとえば、所与のバスケットに対するトリガ条件が、DJIAに対する記憶された価格に関連して定義されることができる。次に、顧客NAV表は、そのバスケットに対するDJIA価格を記憶し、そのバスケットのNAV価格が、取り出されたDJIA価格と比較されて、トリガしきい値に到達されたかどうかを決定する。
PETモジュール1200は、顧客NAV表および顧客トリガしきい値表を適切にポピュレートすることにより裁定取引条件を検出するように構成されることができる。たとえば、ETFについては、ETF自体の現在の株価(TETF)と共に顧客NAV表がポピュレートされることができる。したがって、顧客買いNAV表は、ETFの株式に対する現在の買い呼値と共にポピュレートされることができ、顧客売りNAV表は、ETFの株式に対する現在の売り呼値と共にポピュレートされることができ、顧客最終NAV表は、ETFの株式に対する最新の終値と共にポピュレートされることができるなどである。この方法で顧客NAV表をポピュレートすることにより、PETモジュールは、ETFの株価と、ETFの構成要素となっている金融商品の純資産価値の間に相違があるときを検出することができる。そのような相違は、以下に説明されるように、トレーダにより利用されることができる。
したがって、パイプラインによりTETFとETFのNAVの相違について通知される顧客アプリケーションが、1つ以上の金融市場で1つ以上の売買を申し込んで、検出された裁定取引から利益を得ることができる。たとえば、ETFのNAVが、ETFの株価よりも低い場合、顧客アプリケーションが、以下のステップを実行することができる:
ETFのポートフォリオ内の金融商品の株式をNAVにほぼ等しい総費用で購入することによりバスケットを整理し、
整理されたバスケットを投資信託の所有者と交換することによりETF株式を生成し、
取引所でETFをTETFにほぼ等しい価格で売る。
さらに、ETFのNAVがETFの株価よりも大きい場合、顧客アプリケーションが上記のステップを逆に実行することができる。すなわち、トレーダが、対象のETFの1つ以上の株式を市場から購入し、ETFをその構成要素となっている金融商品の株式と交換し、次に、構成要素となっている金融商品のこれらの株式を市場で売ることができる。
顧客トリガしきい値表内のトリガしきい値は、以下に説明されるように、価格相違を利用するそのような売買を行う過程に含まれるどんな予想される取引費用も考慮する値と共にポピュレートされることができることも留意されるべきである。したがって、整理されたETFに対する販売価格が、バスケットを整理するために購入された金融商品株式の集計した価格、およびそうする際の関連する取引費用を超える(または構成要素となっている金融商品に対する販売価格が、ETFの購入価格、および関連する取引費用を超える)場合、顧客アプリケーションを使用するトレーダは、裁定取引を介して利益を生むことができる。そのような行為がうまくいくためには、本発明者は、時間が本質的であることに注目し、開示されたパイプラインの低遅延性質は、そのような裁定取引条件が絶えず変化する市場に現れるときに、そのような裁定取引条件を認識しそこから利益を得るトレーダの能力を大きく高めると思われる。
さらに、PETモジュール1200は、複数の異なる顧客に対する更新バスケットイベントをフィルタにかけることができることは留意されるべきである。この方法では、加入している各顧客は、それ自身の1組の参照値およびトリガしきい値を定義することができる。そのような機能を実現するためには、各更新バスケットイベントは、図15に示されるように、複数の顧客特有PETモジュール1500を介して異なる顧客に対する複数の基準で並列に比較されることができる。顧客特有PETモジュール1500(それぞれが、図13のPETモジュール1200の顧客特有レプリカントである)は、直列に配置されることができる(ここで、各顧客特有PETモジュールは、各更新バスケットイベントに顧客特有フラグを任意選択で追加して、それによりその顧客のトリガ基準が満たされたかどうかを示す)ことも留意されるべきである。さらに、顧客特有PETモジュール1500はまた、必要に応じて、混成の並列/直列配列に配列されることができる。
図16は、パイプライン500がPETモジュール1200からの出力と通信するイベント生成器モジュール1600を含む一実施形態を示す。イベント生成器モジュール1600は、入力のトリガバスケットイベントをそれぞれ処理して、トリガバスケットイベント内に計算された新しいNAVを含む正規化された出力メッセージイベントを構築するように構成される。
図17は、イベント生成器モジュール1600の例示的実施形態を示す。イベント生成器モジュール1600は、各出力イベント1704にそのイベントに対する関係者一覧を定義するビット列を挿入するように構成されることが好ましい。ここで、関係者一覧は、イベントを通知されるべき各顧客を特定する。この関係者一覧は、各ビット位置が異なる顧客に対応するビットベクトルの形式をとることが好ましい。ハイ状態のどのビット位置についても、これは、そのビット位置に対応する顧客が通知されるべきであることを意味する。
関係者一覧表1700は、バスケットごとにそのようなビットベクトルを記憶することが好ましい。イベント生成器モジュール1600がPETモジュール1200からトリガバスケットイベントを受信するとき、イベント生成器モジュール1600は、トリガバスケットイベント内のバスケットIDに基づき関係者一覧表1700での探索を行う。この探索の結果、そのバスケットIDに対する関係者一覧ベクトルが取り出される。その後、フォーマッタ1702が、図17に示されるように、取り出された関係者一覧ベクトル1705、および受信されたトリガバスケットイベント内の情報から、出力メッセージイベント1704を組み立てる。フォーマッタ1702は、出力イベント1704が、出力イベント1704の顧客受信者(または複数の受信者)により適切に解釈されることができるように、出力イベント1704にヘッダ1708およびトレーラ1710を追加するように構成されることが好ましい。そのような出力イベントの形式は、知られていても(たとえば、FASTおよびFIX)独自でも、いくつかのメッセージングプロトコルのどれにも適合することができる。示されたように、出力イベント1704の関係者一覧ベクトル1706内のビット位置の値は、どの顧客がイベント1704の受信者になるべきかを定義する。
関係者一覧表1700は、再構成可能論理デバイス102のための利用可能なオンチップメモリ内に配置されることが好ましい。しかしながら、表1700は、代わりにコプロセッサ140内、またはそれにアクセス可能などんなメモリ資源上にでも記憶されることができることは留意されるべきである。また、フォーマッタ1702は、任意選択で出力イベント1704用の該当するフィールドを定義する1つ以上のデータ表(図示せず。オンチップまたはオフチップいずれか)にアクセスするように構成される場合があることも留意されるべきである。
イベント生成器モジュール1600は、このモジュールが受信するトリガバスケットイベントの数、このモジュールが生成する出力イベントの数、およびトリガバスケットイベントごとの平均イベント間時間などの統計データを記憶するように構成されることがあることも留意されるべきである。
図18は、パイプライン500が、BALモジュール502への入力と通信するメッセージ修飾子フィルタモジュール1800を含む一実施形態を示す。メッセージ修飾子フィルタモジュール1800は、入力メッセージイベントを処理し、かつBCEにとって関心のないどんなメッセージイベントもフィルタにかけて取り除くように構成される。関心のあるメッセージは、一般にNAV価格に影響を及ぼすことがあるメッセージを含む。本発明のこの実施形態の実行者がフィルタにかけたいと思うことがあるメッセージの例が、金融商品に対する買い呼値、売り呼値、または終値を含まないメッセージである。たとえば、実行者が、前日の終値を訂正するだけのメッセージ、および日々の出来高に寄与しない売買に関連するメッセージをフィルタにかけて取り除きたいと望む場合がある。
図19は、図18のパイプライン500で利用されることができる例示的メッセージ修飾子フィルタモジュール1800を示す。表1900が、複数の修飾子を記憶する。モジュール1800は、各入力メッセージのうち1つ以上のフィールド(入力メッセージの相場および売買の修飾子フィールドなど)を、表1900により記憶された別の修飾子と比較するように構成されることが好ましい。各メッセージ修飾子は、一般に条件を通知する小規模のバイナリコードである。表1900内の各修飾子は、各アドレスに通過/放棄フラグを含む、表1902内の項目にマッピングすることが好ましい。したがって、表1900からの修飾子[1]に関連するメッセージフィールドのどれかに一致が見つかった場合、この一致は表1902の位置n−2内の項目へマッピングし、表1902の位置n−2内のビット値が取り出され、AND論理回路1904への入力として提供される。表1900からのメッセージ修飾子は、表1902内の項目に直接アドレスされることができる。しかしながら、表1900のサイズが大きく増える場合、ハッシングが使用されて、修飾子を通過/放棄フラグにマッピングすることができることは留意されるべきである。
AND論理回路1904への入力のどれかがハイの場合、これが通過/放棄信号1906をハイとして続かせる。論理回路1908は、入力メッセージを出力に渡すかどうかを決定するときに、信号1906により制御されるように構成される。したがって、表1900からの一致する修飾子のどれかが、表1902内のハイビットにマッピングする場合、この結果、対象のメッセージは、メッセージ修飾子フィルタモジュール1800の出力に渡されることになる。
この方法では、修飾子表内の各修飾子が、入力メッセージ内に見つけられた場合、その入力メッセージがパイプライン500の下流に渡される、またはそこへ伝えられるのをさえぎられるメッセージ基準を定義することがある。メッセージがさえぎられるべきことを示すために表1900により記憶されることができるメッセージ修飾子の例が、メッセージを非企業相場、不利益な買い、撤回された相場、保持された売買、および順序が狂った売買のうちのどれでも特定する、メッセージ内の指標である。
表1900および1902は、再構成可能論理デバイス102のための利用できるオンチップメモリ内に配置されることが好ましい。しかしながら、これらの表は、代わりにコプロセッサ140内、またはそこにアクセス可能などんなメモリ資源上でも記憶されることができることは留意されるべきである。
パイプライン500への入力メッセージは、メッセージフィールドがパイプライン500により期待される方法でフォーマットされているという点で、正規化されたメッセージであることが好ましいことも留意されるべきである。そのような正規化は、メッセージがパイプライン500に到達する時点以前に任意選択で既に行われていたこともある。しかしながら、任意選択で、パイプライン500は、図20に示されるように、正規化機能を提供するメッセージ正規化モジュール2000を含むこともある。そのような正規化は、記号IDマッピング(ここでは、各メッセージが、メッセージの対象である金融商品を一意に特定する記号ID(固定サイズの2進数タグが好ましい)を割り当てられる)、およびGEIDマッピング(ここでは、各メッセージが、メッセージに対応する取引所を一意に特定するGEID(同様に、固定サイズの2進数タグが好ましい)を割り当てられる)などの機能を含むことが好ましい。そのような正規化機能を行うFAMモジュールが、上記で参照され組み込まれた米国特許出願第11/765,306号に記載されている。
BCE400の管理に関して、バスケットおよびトリガ条件が、いくつかの方法のうちのどれでも作成され、修正され、および/または削除されることができることに留意すべきである。たとえば、システム管理者および/または顧客アプリケーションが、バスケットおよび/またはトリガ条件を定義する能力を与えられることができる。
バスケットを作成および/または修正するためには、パイプライン500に関連して本明細書に記載される様々な表内の新しい/修正されたバスケットについて、適切な登録および割当が必要とされる。システム管理者が、制御インタフェースを使用して、バスケット構成を追加/修正することがある。顧客アプリケーションが、そのローカル機器上で動作するアプリケーションプログラミングインタフェース(API)を介してバスケット定義を提出することがある。
BCEパイプラインは、図21に示されるように、チッカ装置プラットフォーム2100のコプロセッサ140上に導入されることがある。そのようなチッカ装置プラットフォーム2100に関連する追加の詳細が、上記で参照され組み込まれた米国特許出願第11/765,306号明細書で得られることができる。要約すると、取引所からの金融市場データが、プロセッサ112上のカーネルスペースで実行する、O/Sにより供給されるプロトコルスタック2102で受信される(図1aから図bを参照のこと)。upjetドライバ2104が、この取引所データをプロセッサ112上のユーザ空間で実行するマルチスレッドフィード処理ソフトウェア2112に引き渡す。次に、これらのスレッドは、コプロセッサ140宛のデータを、カーネル空間で動作しているハードウェアインタフェースドライバソフトウェア2106に伝達することがある。
顧客アプリケーションからの命令はまた、最終的にコプロセッサ140に引き渡すためにハードウェアインタフェースドライバ2106に伝達されて、コプロセッサ140上でインスタンスを生成されるBCEパイプラインを適切に構成することがある。そのような命令は、O/Sにより供給されるプロトコルスタック2110に到着し、そこから要求処理ソフトウェアモジュール2116に引き渡される。その後、バックグラウンドおよび保守の処理ソフトウェアモジュール2114が、顧客アプリケーションがバスケットを追加/変更/修正する適切な資格があるかどうかを決定する。そのような資格がある場合、バックグラウンドおよび保守の処理ブロック2114は、以前上記で説明されたように、コプロセッサに運ぶためのコマンド命令をハードウェアインタフェースドライバ2106に伝達して、BCEパイプライン内の表項目を適切に更新して、追加/変更/修正されたバスケットを反映させる。BCEパイプラインからのトリガ条件の追加/修正/削除だけでなくバスケットの削除も、上記に示されるように、同様の過程で行われることができる。
次に、ハードウェアインタフェースドライバ2106は、金融市場データおよびコマンドのインタリーブされたストリームをコプロセッサ140により使うためにそこに運ぶことができる。コプロセッサ140からの出力データが、ハードウェアインタフェースドライバ2106に戻り、そこから、(プロトコルスタック2110を介して)顧客接続に引き渡すために、ならびに/またはバックグラウンドおよび保守の処理ブロック2114に引き渡すために、MDCドライバ2108に供給されることができる。
上記で説明されたように、ETFなどの一部の金融商品バスケットが、それに対して何らかの形の現金要素を有する場合がある。これらの現金要素は、いくつかの方法のうちのどれでもシステムにより考慮されることができる。
たとえば、現金要素をバスケットのNAVに挿入するためには、制御プロセスが、パイプラインに引き渡すための総合イベントを生成するように構成されることができる。記号IDが所与の現金勘定に割り当てられ、その複合記号IDに対する価格は1ドルであり、その現金勘定に対する加重値wは、現金勘定の現金価値と等しく設定される。BALモジュールにより使用される表は更新されて、この総合記号IDを反映し、かつ現金勘定がバスケットに対するNAVに影響を与えるようになる。より複雑なシナリオでは、現金勘定の価値が、外国為替市場での関係する通貨の価値で変動することができるように、パイプラインにイベントが引き渡されることができる。
バスケットの現金要素をシステムに導入する別の方法は、現金要素量が表1314、1316、1318、1320、および1322のトリガしきい値に組み込まれるように、トリガしきい値を定義することである。
また、BALモジュール(またはBVUモジュール)が、そのイベントに対する差分価格のすべてがゼロである場合に、イベントを捨てるように構成されることができることは留意されるべきである。
同様に、図9の実施形態では、NAV更新エンジン950は、対応する差分価格がゼロであるNAV種別に対してさえも更新されたNAVを計算するように構成されることは留意されるべきである。すなわち、BVUモジュールにより処理されている現在の差分イベントが、Δ買い呼値に対して0.03ドルの値を含むが、Δ売り呼値およびΔ終値に対してゼロ値を含むことがある。したがって、図9の実施形態の場合は、古いNAVに対して変化がない場合、並列経路の異なるNAV計算論理回路エンジン916の一部が、新しいNAVを計算するために使用される(たとえば、所与の例については、売りNAVnew、最終NAVnew、および売り+価格変動NAVnewの値は、これらの古い値に比べて変更されない)。パイプラインにより処理されるイベントの大部分が、相場活動を伴うことが予想されることを考慮すると、この構成は依然として有効な効率をもたらすと思われている。しかしながら、差分イベントにどんなゼロ差分イベントも含めず、NAV更新エンジン950内のすべての利用可能な計算経路をより十分に利用するために、差分イベントをNAV更新エンジン950内の該当する計算経路に向ける動的スケジューラおよびメモリコントローラを含めることにより、BVUモジュールの効率を高めることを実行者が自由に選択することができる。
NAV計算はまた、出来高加重平均価格(VWAP)などの導出された統計データに基づき、売買された出来高の差など、メッセージ内の利用可能なことがある他のフィールドを使用するように、論理回路がBVUモジュールに追加されることができることも留意されるべきである。
本発明の一実施形態の実行者により望まれる場合、コプロセッサ140は、BCEの計算の他の計算を行うように構成されることができることにも留意されるべきである。たとえば、コプロセッサ140はまた、上記で参照され組み込まれた米国特許出願第11/765,306号に記載されているように、最終価値キャッシング(LVC)モジュールを利用することもできる。
本発明の一実施形態の実行者は、Δjに対する値を計算するが、NAVnewに対する値は計算しないように選択することがあることは留意されるべきである。この場合、BVUモジュールは、どんなNAVnew値も生成する必要がない。そのような例では、PETモジュール1200により使用されるトリガ条件は、NAVnewではなくΔjの変動を中心に作り上げられることができる。そのような状況では、顧客は、任意選択でΔj値からNAV値自体を決定することができるが、実行者は、古いNAV値と実際に組み合わせて、新しいNAV値を見つけるほかに、Δj値自体に価値を見いだすことがある。
また、VALモジュール502のための好ましい実施形態は、入力メッセージ内の終値/買い呼値/売り呼値に対する差分値を計算するように構成されるが、そのような差分値の計算は、BALモジュール502から上流の1つ以上のモジュール、またはBCEパイプライン全体により任意選択で行われることができることは留意されるべきである。したがって、BCEパイプライン500への入力メッセージは、対象の金融商品に対するΔ買い呼値、Δ売り呼値、および/またはΔ終値を既に含むことがある。そのような例では、表608は、金融商品ごとの以前の買い呼値/売り呼値/終値を記憶する必要がなく、BALモジュール502は、これらの差分価格を計算するために必要な論理回路を利用する必要がない。
さらに、本明細書で開示された好ましい実施形態では、コプロセッサ140は、FPGAなどの再構成可能論理デバイス102を含むが、コプロセッサ140は他の処理デバイスを使用して実現されることができることは留意されるべきである。たとえば、コプロセッサ140は、グラフィックプロセッサユニット(GPU)、汎用グラフィックプロセッサ、チップマルチプロセッサ(CMP)、専用メモリデバイス、複合プログラム可能論理デバイス、特定用途向け集積回路(ASIC)、および他の入出力処理構成部品を含むことがある。さらに、システム100は、直列および並列のマルチコプロセッサアーキテクチャのいずれか、または両方で、複数のコプロセッサ140を利用することがあることは留意されるべきである。
なおさらに、本明細書で開示されたパイプラインを使用して、金融情報を処理し、かつ金融商品バスケットに対する更新された値を計算することに関して特別な利点があると本発明者は思っているが、開示されたパイプラインはまた、バスケットに関係する非金融データを処理するときにも、遅延の利点を提供することを本発明者はさらに注目する。たとえば、バスケット計算エンジンは、多国籍小売企業により行われる在庫品の純資産価値を計算するように構成されることがある。したがって、パイプラインへの製品販売および/または製品出荷に対応する入力イベントが、製品ごとに記憶された値を更新するために使用されることができる。ここで、これらの記憶された値は、在庫品カウント値に対応する。製品ごとに割り当てられた加重は、製品に割り当てられた価格値に対応する。したがって、本明細書で開示されたパイプラインのようなパイプラインが、企業の製品の純棚卸評価額を正確に追跡するために使用されることができる。次に、棚卸評価額が所与のしきい値だけ上がるまたは下がるときに、経営者に通知するためにトリガが使用されることがある。
別の例が、ある種の科学実験によるデータ点の集合であるバスケットに関するものである。各データ点は、サイズ、質量などの関連する値を有することがあり、これらのデータ点は、1つ以上の監視場所からストリーミングデータとして時間をかけて到達することがある。パイプラインは、入力データ列からサイズの加重和を計算することによりサイズNAVを、および/または入力データ列から質量の加重和を計算することにより質量NAVを導出するように容易に構成されることができる。
本発明はその好ましい実施形態に関して上記に説明されたが、それに対して本発明の範囲内に依然として収まる様々な修正が加えられてもよい。本発明に対するそのような修正は、本明細書の教示を検討することで知り得る。したがって、本発明の範囲全体が、添付の特許請求の範囲、およびその法的均等物のみにより定義されるものである。

Claims (99)

  1. データを処理する方法であって、
    プロセッサを介してデータをストリーミングするステップであって、データがメッセージを含み、メッセージが要素に対する価値に対応する該ステップと、
    メッセージに基づき記憶されたデータを取り出すステップであって、取り出されたデータがバスケットに対応し、バスケットが構成要素として要素を有するステップと、
    取り出されたデータ、およびメッセージに基づきバスケットに対する純価値を計算するステップとを含み、取り出すステップおよび計算するステップが、プロセッサを介したデータストリームとしてプロセッサにより実行される、方法。
  2. プロセッサがコプロセッサを備える、請求項1に記載の方法。
  3. データが金融市場データを含み、要素が金融商品を含む、請求項1または2に記載の方法。
  4. 取り出すステップおよび計算するステップをパイプライン方式でさらに実行するステップを含む、請求項1から3のいずれか一項に記載の方法。
  5. 計算される純価値がバスケットに対する純資産価値(NAV)を含む、請求項1から4のいずれか一項に記載の方法。
  6. メッセージが金融商品に関する価格情報を含み、計算するステップが、NAVへの金融商品価格情報の寄与に基づく差分計算手法を使用してNAVを計算するステップを含む、請求項1から5のいずれか一項に記載の方法。
  7. 取り出すステップがバスケットに関連する以前の価値を取り出すステップをさらに含み、NAVを計算するステップが取り出された以前の価値への寄与を付加して、それによりNAVを計算するステップを含む、請求項1から6のいずれか一項に記載の方法。
  8. 以前の価値がバスケットに対する以前のNAVを含む、請求項1から7のいずれか一項に記載の方法。
  9. 以前の価値がSを含み、Sがバスケットに対する除数値を乗算された、バスケットに対する以前のNAVに対応する価値を現し、NAVを計算するステップが寄与とSの和を除数値で除算するステップをさらに含む、請求項1から8のいずれか一項に記載の方法。
  10. NAVを計算するステップがバスケットに対する複数の異なるNAVを同時に計算するステップを含み、各NAVが異なるNAV種別に対応する、請求項1から9のいずれか一項に記載の方法。
  11. 複数の異なるNAV種別が買いNAV、売りNAV、および最終NAVを含む、請求項1から10のいずれか一項に記載の方法。
  12. 複数の異なるNAV種別が買い−価格変動NAV、および売り+価格変動NAVをさらに含む、請求項1から11のいずれか一項に記載の方法。
  13. 金融商品が複数のバスケットの構成要素であり、取り出されたデータがバスケットに対応し、計算するステップがバスケットごとのNAVを計算するステップを含む、請求項1から12のいずれか一項に記載の方法。
  14. 計算するステップが、金融商品価格情報、およびバスケットに対する金融商品に割り当てられた加重値に基づき、そのバスケットごとのNAVへの寄与を計算するステップを含み、取り出すステップがバスケットに対する加重値を取り出すステップをさらに含む、請求項1から13のいずれか一項に記載の方法。
  15. 取り出すステップがバスケットごとのバスケット識別子を取り出すステップをさらに含み、各バスケット識別子が、バスケットのうちの異なる1つに対応し、加重値のうちの異なる1つに関連付けられる、請求項1から14のいずれか一項に記載の方法。
  16. NAVを計算するステップが金融商品に対する価格差分を計算するステップを含み、方法が取り出されたデータに基づき複数の差分イベントを生成するステップをさらに含み、各差分イベントが計算された価格差分、取り出されたバスケット識別子、および取り出された加重値を含み、NAVを計算するステップが各差分イベントに基づきNAVを計算するステップを含み、取り出すステップ、生成するステップ、およびNAVを計算するステップが、金融市場データがコプロセッサを通って流れるときに、コプロセッサによりパイプライン方式で実行される、請求項1から15のいずれか一項に記載の方法。
  17. バスケット識別子、およびそれに関連する加重値を複数の対として表に記憶するステップをさらに含む、請求項1から16のいずれか一項に記載の方法。
  18. 記憶するステップが金融商品に対する以前の価格情報を表に記憶するステップをさらに含む、請求項1から17のいずれか一項に記載の方法。
  19. メッセージに基づいて表内の以前の価格情報を更新するステップをさらに含む、請求項1から18のいずれか一項に記載の方法。
  20. メッセージが金融商品に対応する、金融商品への金融商品識別子を含み、表が第1の表を含み、記憶するステップが第2の表に複数のポインタを記憶するステップをさらに含み、ポインタが金融商品識別子によりインデックスされ、第1の表内の対がポインタによりインデックスされ、取り出すステップが(i)メッセージの金融商品識別子に基づき第2の表からポインタを取り出すステップ、および(ii)取り出されたポインタに基づいて第1の表から対を取り出すステップをさらに含む、請求項1から19のいずれか一項に記載の方法。
  21. 顧客からの入力に応答して、表内のバスケット定義を追加および削除するステップをさらに含む、請求項1から20のいずれか一項に記載の方法。
  22. 顧客からの入力に応答して表を修正することにより、(i)バスケットに金融商品を追加するステップ、(ii)バスケットに関する金融商品に対する加重を修正するステップ、および(iii)バスケットから金融商品を削除するステップからなるグループのうち少なくとも1つを実行するステップをさらに含む、請求項1から21のいずれか一項に記載の方法。
  23. メッセージが広域取引所識別子を含み、取り出すステップが広域取引所識別子に基づいて複合金融商品に対応するデータ、および少なくとも1つの地域金融商品に対応するデータを取り出すステップを含む、請求項1から22のいずれか一項に記載の方法。
  24. トリガ条件に対して、NAVが顧客に報告されるべきかどうかを決定するようにNAVを処理するステップと、
    NAVが顧客に報告されることになる処理するステップによる決定に応答して、顧客に引き渡すためのメッセージを生成するステップであって、生成されたメッセージがNAVを含むステップとをさらに含む、請求項1から23のいずれか一項に記載の方法。
  25. 取り出すステップ、計算するステップ、および処理するステップが、金融市場データがコプロセッサを通って流れるときに、コプロセッサにより実行される、請求項1から24のいずれか一項に記載の方法。
  26. 取り出すステップ、計算するステップ、および処理するステップをパイプライン方式で実行するステップをさらに含む、請求項1から25のいずれか一項に記載の方法。
  27. 取り出すステップ、計算するステップ、処理するステップ、および生成するステップが、金融市場データがコプロセッサを通って流れるときに、コプロセッサによりパイプライン方式で行われる、請求項1から26のいずれか一項に記載の方法。
  28. 処理するステップが、
    計算されたNAVに関連するバスケット識別子に基づきバスケットに対する参照値を第1の表から取り出すステップと、
    取り出された参照値と計算されたNAVの相違点を決定するステップと、
    バスケット識別子に基づき第2の表からバスケットに対するトリガしきい値を取り出すステップと、
    取り出されたトリガしきい値と相違点を比較して、それによりNAVが顧客に報告されるべきかどうかを決定するステップとを含む、請求項1から27のいずれか一項に記載の方法。
  29. 相違点を決定するステップが、取り出された参照値と計算されたNAVとの差を計算するステップを含む、請求項1から28のいずれか一項に記載の方法。
  30. 顧客からの入力に応答して複数のバスケットに対する複数のトリガ条件を定義するステップをさらに含む、請求項1から29のいずれか一項に記載の方法。
  31. 金融市場データが複数のメッセージを含み、
    フィルタリングステップを通過するメッセージに対して取り出すステップが実行されるように、少なくとも1つのフィルタリング基準に基づき、取り出すステップの前にメッセージをフィルタリングするステップをさらに含む、請求項1から30のいずれか一項に記載の方法。
  32. フィルタリングするステップ、取り出すステップ、および計算するステップが、金融市場データがコプロセッサを通って流れるときに、コプロセッサにより行われる、請求項1から31のいずれか一項に記載の方法。
  33. フィルタリングするステップ、取り出すステップ、および計算するステップをパイプライン方式で実行するステップをさらに含む、請求項1から32のいずれか一項に記載の方法。
  34. コプロセッサが再構成可能論理デバイスを含み、実行するステップが取り出すステップおよび計算するステップを、再構成可能論理デバイスを用いて実行するステップを含む、請求項1から33のいずれか一項に記載の方法。
  35. データを処理するシステムであって、
    (i)データのストリームを受信し、データが少なくとも1つのメッセージを含み、メッセージが要素の価値に対応し、(ii)メッセージに基づいて記憶されたデータを取り出し、取り出されたデータがバスケットに対応し、バスケットが構成要素として要素を有し、かつ(iii)取り出されたデータ、およびメッセージに基づいてバスケットに対する純価値を計算するように構成されたプロセッサを備える、システム。
  36. プロセッサがコプロセッサを含む、請求項35に記載のシステム。
  37. プロセッサがコプロセッサと通信する主プロセッサをさらに含み、プロセッサがデータのストリームをコプロセッサに引き渡すように構成される、請求項35または36に記載のシステム。
  38. データが金融市場データを含み、要素が金融商品を含む、請求項35から37のいずれか一項に記載のシステム。
  39. コプロセッサがパイプライン方式で配列されたバスケット連関探索モジュールおよびバスケット価値更新モジュールを含み、バスケット連関探索モジュールがメッセージに基づいて、記憶されたデータを取り出すように構成され、バスケット価値更新モジュールが取り出されたデータ、およびメッセージに基づいて、バスケットに対する純価値を計算するように構成される、請求項35から38のいずれか一項に記載のシステム。
  40. 計算された純価値がバスケットに対する純資産価値(NAV)を含み、メッセージが金融商品に関する価格情報を含み、バスケット価値更新モジュールが、NAVへの金融商品価格情報の寄与に基づく差分計算手法を使用してNAVを計算するようにさらに構成される、請求項35から39のいずれか一項に記載のシステム。
  41. バスケット価値更新モジュールがバスケットに対する複数の異なるNAVを同時に計算するようにさらに構成され、各NAVが異なるNAV種別に対応する、請求項35から40のいずれか一項に記載のシステム。
  42. 金融商品が複数のバスケットの構成要素であり、取り出されたデータがバスケットに対応し、バスケット価値更新モジュールがバスケットごとのNAVを計算するようにさらに構成される、請求項35から41のいずれか一項に記載のシステム。
  43. バスケット価値更新モジュールが金融商品価格情報、およびバスケットに対する金融商品に割り当てられた加重値に基づいてバスケットごとのNAVへの寄与を計算するようにさらに構成され、バスケット連関探索モジュールがバスケットに対する加重値を取り出すようにさらに構成される、請求項35から42のいずれか一項に記載のシステム。
  44. バスケット連関探索モジュールがバスケットごとのバスケット識別子を取り出すようにさらに構成され、各バスケット識別子がバスケットのうちの異なる1つに対応し、加重値のうちの異なる1つに関連付けられる、請求項35から43のいずれか一項に記載のシステム。
  45. メッセージが広域取引所識別子を含み、バスケット連関探索モジュールが広域取引所識別子に基づいて複合金融商品に対応するデータ、および少なくとも1つの地域金融商品に対応するデータを取り出すようにさらに構成される、請求項35から44のいずれか一項に記載のシステム。
  46. コプロセッサがバスケット価値更新モジュールと通信する価格イベントトリガモジュールをさらに含み、価格イベントトリガモジュールがトリガ条件と対照してNAVを処理して、NAVが顧客に報告されるべきかどうかを決定するように構成される、請求項35から45のいずれか一項に記載のシステム。
  47. バスケット連関探索モジュール、バスケット価値更新モジュール、および価格イベントトリガモジュールがパイプライン方式で配列される、請求項35から46のいずれか一項に記載のシステム。
  48. コプロセッサが価格イベントトリガモジュールと通信するイベント生成器モジュールをさらに含み、イベント生成器モジュールが、NAVが顧客に報告されるべきであるという価格イベントトリガモジュールによる決定に応答して、顧客に引き渡すためのメッセージを生成するように構成され、生成されたメッセージがNAVを含む、請求項35から47のいずれか一項に記載のシステム。
  49. バスケット連関探索モジュール、バスケット価値更新モジュール、および価格イベントトリガモジュールがパイプライン方式で配列される、請求項35から48のいずれか一項に記載のシステム。
  50. 価格イベントトリガモジュールが、
    計算されたNAVに関連するバスケット識別子に基づいて、バスケットに対する参照値を第1の表から取り出し、
    取り出された参照値と計算されたNAVの相違点を決定し、
    バスケット識別子に基づいて、バスケットに対するトリガしきい値を第2の表から取り出し、
    取り出されたトリガしきい値と相違点を比較して、それにより、NAVが顧客に報告されるべきかどうかを決定するようにさらに構成される、請求項35から49のいずれか一項に記載のシステム。
  51. 金融市場データが複数のメッセージを含み、コプロセッサがバスケット連関探索モジュールと通信するメッセージ修飾子フィルタをさらに含み、メッセージ修飾子フィルタは、バスケット連関探索モジュールが、メッセージ修飾子フィルタを渡すメッセージを受信するように、少なくとも1つのフィルタリング基準に基づいてメッセージをフィルタにかけるように構成される、請求項35から50のいずれか一項に記載のシステム。
  52. メッセージ修飾子フィルタ、バスケット連関探索モジュール、およびバスケット価値更新モジュールが、パイプライン方式で配列される、請求項35から51のいずれか一項に記載のシステム。
  53. コプロセッサが再構成可能論理デバイスを含み、再構成可能論理デバイスが、バスケット連関探索モジュール、およびバスケット価値更新モジュールを備える、請求項35から52のいずれか一項に記載のシステム。
  54. プロセッサと通信する別のプロセッサをさらに備え、別のプロセッサが顧客アプリケーションを実行するように構成され、主プロセッサが計算されたバスケット価値に対応するデータを顧客アプリケーションに引き渡すようにさらに構成される、請求項35から53のいずれか一項に記載のシステム。
  55. データを処理する方法であって、
    ビット列がプロセッサを通って流れ込むときに、プロセッサを使用してビット列に対して複数のバスケット計算演算を行って、それにより、複数の純バスケット価値を計算するステップを含む、方法。
  56. ビット列が金融市場データを表し、純バスケット価値が金融商品バスケットに対する複数の純資産価値(NAV)を含む、請求項55に記載の方法。
  57. プロセッサがコプロセッサおよび主プロセッサを含み、主プロセッサがビット列をコプロセッサに引き渡すように構成され、コプロセッサがバスケット計算演算を行うように構成される、請求項55または56に記載の方法。
  58. 行うステップが、各パイプラインモジュールがビット列内の異なる金融市場データに対して同時に動作するように、コプロセッサ上に導入された複数のパイプラインモジュールを介してバスケット計算演算を行うステップをさらに含む、請求項55から57のいずれか一項に記載の方法。
  59. コプロセッサが再構成可能論理デバイスを備える、請求項55から58のいずれか一項に記載の方法。
  60. 行うステップが、
    ビット列を処理して、どのデータが複数の表から取り出されるべきかを決定するステップと、
    決定されたデータを表から取り出すステップと、
    取り出されたデータ、およびビット列に基づいてバスケットNAVを計算するステップとをさらに含む、請求項55から59のいずれか一項に記載の方法。
  61. バスケットに対する純資産価値(NAV)に関係する価値を計算する装置であって、
    (i)金融商品に対する価格情報、および金融商品に対する識別子を含むメッセージを受信し、(ii)少なくとも一部が金融商品識別子に基づいて、金融商品が構成要素となっている複数のバスケットを決定し、(iii)新しいNAVへの複数のバスケットごとの差分寄与を計算するように構成されるファームウェアパイプラインを備える、装置。
  62. ファームウェアパイプラインが、計算された差分寄与に基づいて複数のバスケットごとの新しいNAVを計算するようにさらに構成される、請求項61に記載の装置。
  63. ファームウェアパイプラインが、(i)式
    Figure 2011510382
    に従って新しいNAVへの複数のバスケットごとの差分寄与を計算し、ここでwがバスケット内の金融商品に対する加重を表し、dがバスケットに対する除数値を表し、
    Figure 2011510382
    が金融商品に対する価格情報を表し、
    Figure 2011510382
    が金融商品に対する古い価格情報を表し、(ii)式NAVnew=NAVold+Δjに従って複数のバスケットごとの新しいNAVを計算し、ここで、NAVnewがバスケットに対する新しいNAVであり、NAVoldがバスケットに対する古いNAVであるようにさらに構成される、請求項61または62に記載の装置。
  64. 値、d値、
    Figure 2011510382
    値、およびNAVold値が記憶される複数の表をさらに含み、ファームウェアパイプラインが、メッセージがパイプラインを通って流れるときに、w値、d値、
    Figure 2011510382
    値、およびNAVold値を表から取り出すようにさらに構成される、請求項61から63のいずれか一項に記載の装置。
  65. ファームウェアパイプラインがコプロセッサ上に実装される、請求項61から64のいずれか一項に記載の装置。
  66. コプロセッサが再構成可能論理デバイスを備える、請求項61から65のいずれか一項に記載の装置。
  67. 表が再構成可能論理デバイス内に記憶される、請求項61から66のいずれか一項に記載の装置。
  68. ファームウェアパイプラインが、(i)式
    Figure 2011510382
    に従って複数のバスケットごとに新しいNAVへの差分寄与を計算し、ここで、wがバスケット内の金融商品に対する加重を表し、
    Figure 2011510382
    が金融商品に対する価格情報を表し、
    Figure 2011510382
    が金融商品に対する古い価格情報を表し、(ii)バスケットごとの価値Soldを取り出し、(iii)バスケットごとにSold
    Figure 2011510382
    の和を計算し、(iv)バスケットに対する除数値を取り出し、(v)取り出された除数値により各和を除算することにより複数のバスケットごとの新しいNAVを計算するようにさらに構成される、請求項61から67のいずれか一項に記載の装置。
  69. 金融市場データを処理する方法であって、
    金融市場データがコプロセッサを通って流れるときに、コプロセッサを使用して金融市場データのストリームを処理して、金融商品の純資産価値を計算するステップと、
    計算された純資産価値に基づいてバスケットに関連する裁定取引条件を検出するステップとを含む、方法。
  70. 検出するステップに応答して、少なくとも1つの金融市場に関して少なくとも1つの売買注文を行って、それにより、検出された裁定取引条件を利用するステップをさらに含む、請求項69に記載の方法。
  71. 検出するステップが、金融市場データがコプロセッサを通って流れるときに、コプロセッサを使用して裁定取引条件を検出するステップを含む、請求項69から70のいずれか一項に記載の方法。
  72. 検出するステップが、
    計算された純資産価値と、参照値との差を計算するステップと、
    計算された差をトリガしきい値と比較して、裁定取引条件が存在するかどうかを検出するステップとをさらに含む、請求項69から71のいずれか一項に記載の方法。
  73. コプロセッサが再構成可能論理デバイスを備える、請求項69から72のいずれか一項に記載の方法。
  74. バスケットが上場投資信託(ETF)を含む、請求項69から73のいずれか一項に記載の方法。
  75. データを処理する方法であって、
    要素に対する値を含むデータのストリームを受信するステップと、
    要素に関係するバスケットを決定するステップと、
    少なくとも一部が要素値に基づいて、決定されたバスケットに適用可能な価値を計算するステップとを含み、
    決定するステップがパイプライン内の第1のモジュールにより実行され、
    計算するステップがパイプライン内の第2のモジュールにより実行される、方法。
  76. データが金融市場データを含み、要素が金融商品を含み、要素値が金融商品に対する価格情報を含み、バスケットが金融商品バスケットを含む、請求項75に記載の方法。
  77. 計算された値が金融商品バスケットに対する純資産価値を含み、方法が、計算された純資産価値に基づいてバスケットに関連する裁定取引条件を検出するステップをさらに含む、請求項75または76に記載の方法。
  78. 検出するステップに応答して、少なくとも1つの金融市場に関して少なくとも1つの売買注文を行って、それにより、検出された裁定取引条件を利用するステップをさらに含む、請求項75から77のいずれか一項に記載の方法。
  79. 検出するステップがパイプライン内の第3のモジュールにより実行される、請求項75から78のいずれか一項に記載の方法。
  80. 検出するステップが、
    計算された純資産価値と参照値との差を計算するステップと、
    計算された差をトリガしきい値と比較して、裁定取引条件が存在するかどうかを検出するステップとをさらに含む、請求項75から79のいずれか一項に記載の方法。
  81. 顧客の入力に応答して、参照値およびトリガしきい値を定義するステップをさらに含む、請求項75から80のいずれか一項に記載の方法。
  82. 計算するステップが、決定されたバスケットの純資産価値への金融商品の差分寄与を計算するステップを含む、請求項75から81のいずれか一項に記載の方法。
  83. 計算するステップが、計算された差分寄与に基づいて、決定されたバスケットの純資産価値を計算するステップをさらに含む、請求項75から82のいずれか一項に記載の方法。
  84. パイプラインがファームウェアパイプラインを備える、請求項75から83のいずれか一項に記載の方法。
  85. ファームウェアパイプラインが再構成可能論理回路内に導入される、請求項75から84のいずれか一項に記載の方法。
  86. バスケットが上場投資信託(ETF)を含む、請求項75から85のいずれか一項に記載の方法。
  87. 計算するステップが、決定されたバスケットに対する純資産価値への金融商品の差分寄与を計算するステップを含む、請求項75から86のいずれか一項に記載の方法。
  88. 複数のバスケットに対応する複数の表を管理する方法であって、
    第1の表に複数のポインタを記憶するステップであって、各ポインタが金融商品に対する識別子によりインデックスされる該ステップと、
    第2の表に複数のヘッダブロックを記憶するステップとを含み、ヘッダブロックがポインタによりインデックスされ、各ヘッダブロックが金融商品に関連付けられ、各ヘッダブロックが、バスケットに対する複数のバスケット識別子、およびバスケットに対応する複数の加重値を含み、バスケットの識別子および加重値が複数の対として表に記憶され、各加重値が、その加重値と対になるバスケット識別子に対応するバスケット内の金融商品に対する加重を定義する、方法。
  89. ヘッダブロックが、金融商品に対する価格情報をさらに含む、請求項88に記載の方法。
  90. 各ヘッダブロックが、そのヘッダブロック内にどれだけの対が存在するかを示すカウント値を含むカウントフィールドをさらに含む、請求項88または89に記載の方法。
  91. 第2の表に複数の拡張ブロックを記憶するステップをさらに含み、少なくとも複数のヘッダブロックが、拡張ブロックのうちの1つへのポインタを含む拡張ポインタフィールドをさらに含み、拡張ブロックがバスケット識別子および加重値のオーバフロー対を含む、請求項88から90のいずれか一項に記載の方法。
  92. 第1の表が複数の広域取引所識別子インデックスをさらに含み、各広域取引所識別子インデックスが第2の表内の異なるヘッダブロックに対応する、請求項88から91のいずれか一項に記載の方法。
  93. バスケット価値を計算する方法であって、
    差分イベントを受信するステップであって、差分イベントがバスケットに対するバスケット識別子、金融商品に関する価格差分、バスケットの構成要素となっている金融商品、およびバスケット内の金融商品の加重を表す加重値を含むステップと、
    バスケット識別子に基づいて、バスケットに対する除数値を取り出すステップと、
    差分イベントおよび除数値に基づいて、差分計算手法に従ってバスケットに対する純資産価値(NAV)を計算するステップとを含む、方法。
  94. コプロセッサを使用して方法の諸ステップを実行することをさらに含む、請求項93に記載の方法。
  95. バスケット価値を計算する装置であって、
    (i)差分イベントを受信し、差分イベントがバスケットに対するバスケット識別子、金融商品に関する価格差分、バスケットの構成要素となっている金融商品、およびバスケット内の金融商品の加重を表す加重値を含み、(ii)バスケット識別子に基づいてバスケットに対する除数値を取り出し、(iii)差分イベントおよび除数値に基づいて差分計算手法に従ってバスケットに対する純資産価値(NAV)を計算するように構成されるプロセッサを備える、装置。
  96. バスケット連関方法であって、
    ビット列を受信するステップであって、ビット列が金融商品に関係するメッセージを表し、メッセージが金融商品に対する記号識別子、およびメッセージに関係する取引所に対する広域取引所識別子(GEID)を含む該ステップと、
    記号IDに基づいて第1の表での探索を行って、第1の表からレコードを取り出すステップと、
    取り出されたレコードからポインタを決定するステップと、
    GEIDに基づいて、取り出されたレコードからインデックス値を決定するステップと、
    ポインタおよびインデックスの値に基づいて第2の表での探索を行って、金融商品が構成要素となっている各バスケットに関係するバスケット連関データを取り出すステップと、
    取り出されたバスケット連関データを表すビット列を出力するステップとを含む、方法。
  97. バスケット連関装置であって、
    (i)金融商品に関係するメッセージを受信し、メッセージが金融商品に対する記号識別子、およびメッセージに関係する取引所に対する広域取引所識別子(GEID)を含み、(ii)記号IDに基づいて第1の表での探索を行って、第1の表からレコードを取り出し、(iii)取り出されたレコードからポインタを決定し、(iv)GEIDに基づいて、取り出されたレコードからインデックス値を決定し、(v)ポインタおよびインデックスの値に基づいて第2の表での探索を行って、金融商品が構成要素となっている各バスケットに関係するバスケット連関データを取り出し、(vi)取り出されたバスケット連関データを出力するように構成されるプロセッサを備える、装置。
  98. 更新されたバスケット価値を顧客に報告する方法であって、
    ビット列を受信するステップであって、ビット列がバスケットイベントを表し、バスケットイベントがバスケットに対するバスケット識別子、およびバスケットに対する更新された純資産価値(NAV)を含む該ステップと、
    バスケット識別子に基づいてバスケットに対する参照値を取り出すステップと、
    取り出された参照値と更新されたNAVの相違点を決定するステップと、
    バスケット識別子に基づいてバスケットに対するトリガしきい値を取り出すステップと、
    相違点と取り出されたトリガしきい値を比較して、それにより、更新されたNAVが顧客に報告されるべきかどうかを決定するステップと、
    更新されたNAVが顧客に報告されるべきであるという比較するステップによる決定に応答して、更新されたNAVを表すビット列を顧客に引き渡すステップとを含む、方法。
  99. 更新されたバスケット価値を顧客に報告する装置であって、
    (i)バスケットイベントを受信し、バスケットイベントがバスケットに対するバスケット識別子、およびバスケットに対する更新された純資産価値(NAV)を含み、(ii)バスケット識別子に基づいてバスケットに対する参照値を取り出し、(iii)取り出された参照値と更新されたNAVの相違点を決定し、(iv)バスケット識別子に基づいてバスケットに対するトリガしきい値を取り出し、(v)取り出されたトリガしきい値と相違点を比較して、それにより、更新されたNAVが顧客に報告されるべきかどうかを決定し、(vi)更新されたNAVが顧客に報告されるべきであるという決定に応答して、更新されたNAVを顧客に報告するように構成されるプロセッサを備える、装置。
JP2010542380A 2008-01-11 2009-01-09 低遅延バスケット計算のための方法およびシステム Active JP5586477B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/013,302 2008-01-11
US12/013,302 US10229453B2 (en) 2008-01-11 2008-01-11 Method and system for low latency basket calculation
PCT/US2009/030623 WO2009089467A2 (en) 2008-01-11 2009-01-09 Method and system for low latency basket calculation

Publications (3)

Publication Number Publication Date
JP2011510382A true JP2011510382A (ja) 2011-03-31
JP2011510382A5 JP2011510382A5 (ja) 2012-03-01
JP5586477B2 JP5586477B2 (ja) 2014-09-10

Family

ID=40851517

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010542380A Active JP5586477B2 (ja) 2008-01-11 2009-01-09 低遅延バスケット計算のための方法およびシステム

Country Status (5)

Country Link
US (2) US10229453B2 (ja)
EP (1) EP2243112A4 (ja)
JP (1) JP5586477B2 (ja)
CA (1) CA2707044C (ja)
WO (1) WO2009089467A2 (ja)

Families Citing this family (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7139743B2 (en) * 2000-04-07 2006-11-21 Washington University Associative database scanning and information retrieval using FPGA devices
US7809627B2 (en) * 2001-11-14 2010-10-05 The Nasdaq Omx Group, Inc. Balancing arbitragable tracking securities
US7792719B2 (en) 2004-02-04 2010-09-07 Research Affiliates, Llc Valuation indifferent non-capitalization weighted index and portfolio
US8005740B2 (en) 2002-06-03 2011-08-23 Research Affiliates, Llc Using accounting data based indexing to create a portfolio of financial objects
US8374951B2 (en) 2002-04-10 2013-02-12 Research Affiliates, Llc System, method, and computer program product for managing a virtual portfolio of financial objects
US7747502B2 (en) 2002-06-03 2010-06-29 Research Affiliates, Llc Using accounting data based indexing to create a portfolio of assets
US8374937B2 (en) 2002-04-10 2013-02-12 Research Affiliates, Llc Non-capitalization weighted indexing system, method and computer program product
US8589276B2 (en) 2002-06-03 2013-11-19 Research Afiliates, LLC Using accounting data based indexing to create a portfolio of financial objects
US10572824B2 (en) 2003-05-23 2020-02-25 Ip Reservoir, Llc System and method for low latency multi-functional pipeline with correlation logic and selectively activated/deactivated pipelined data processing engines
US20070277036A1 (en) 2003-05-23 2007-11-29 Washington University, A Corporation Of The State Of Missouri Intelligent data storage and processing using fpga devices
US7917299B2 (en) 2005-03-03 2011-03-29 Washington University Method and apparatus for performing similarity searching on a data stream with respect to a query string
US7634584B2 (en) 2005-04-27 2009-12-15 Solarflare Communications, Inc. Packet validation in virtual network interface architecture
US7840482B2 (en) 2006-06-19 2010-11-23 Exegy Incorporated Method and system for high speed options pricing
US7921046B2 (en) 2006-06-19 2011-04-05 Exegy Incorporated High speed processing of financial information using FPGA devices
US7660793B2 (en) 2006-11-13 2010-02-09 Exegy Incorporated Method and system for high performance integration, processing and searching of structured and unstructured data using coprocessors
US8374986B2 (en) 2008-05-15 2013-02-12 Exegy Incorporated Method and system for accelerated stream processing
US8285620B1 (en) * 2008-09-10 2012-10-09 Westpeak Global Advisors, LLC Methods and systems for building and managing portfolios based on ordinal ranks of securities
CA3059606C (en) 2008-12-15 2023-01-17 Ip Reservoir, Llc Method and apparatus for high-speed processing of financial market depth data
US20100174664A1 (en) * 2009-01-05 2010-07-08 Blackrock Institutional Trust Company, N.A. ETF Trading in Secondary Market Based on Underlying Basket
US20110137785A1 (en) * 2009-12-04 2011-06-09 Lutnick Howard W Multicomputer distributed processing of trading information
US20100287087A1 (en) * 2009-05-11 2010-11-11 Peter Bartko Apparatus and methods for exchanging products at calculated rate
JP6045505B2 (ja) 2010-12-09 2016-12-14 アイピー レザボア, エルエルシー.IP Reservoir, LLC. 金融市場における注文を管理する方法および装置
US10873613B2 (en) 2010-12-09 2020-12-22 Xilinx, Inc. TCP processing for devices
US9674318B2 (en) 2010-12-09 2017-06-06 Solarflare Communications, Inc. TCP processing for devices
US9600429B2 (en) 2010-12-09 2017-03-21 Solarflare Communications, Inc. Encapsulated accelerator
US9003053B2 (en) 2011-09-22 2015-04-07 Solarflare Communications, Inc. Message acceleration
US8996644B2 (en) 2010-12-09 2015-03-31 Solarflare Communications, Inc. Encapsulated accelerator
US9258390B2 (en) 2011-07-29 2016-02-09 Solarflare Communications, Inc. Reducing network latency
US8763018B2 (en) 2011-08-22 2014-06-24 Solarflare Communications, Inc. Modifying application behaviour
AU2012298732A1 (en) * 2011-08-23 2014-02-27 Research Affiliates, Llc Using accounting data based indexing to create a portfolio of financial objects
US9047243B2 (en) 2011-12-14 2015-06-02 Ip Reservoir, Llc Method and apparatus for low latency data distribution
US10121196B2 (en) 2012-03-27 2018-11-06 Ip Reservoir, Llc Offload processing of data packets containing financial market data
US10650452B2 (en) 2012-03-27 2020-05-12 Ip Reservoir, Llc Offload processing of data packets
EP2832045A4 (en) 2012-03-27 2015-11-25 Ip Reservoir Llc DEPLOYMENT PROCESSING OF DATA PACKETS
US9990393B2 (en) 2012-03-27 2018-06-05 Ip Reservoir, Llc Intelligent feed switch
US11436672B2 (en) 2012-03-27 2022-09-06 Exegy Incorporated Intelligent switch for processing financial market data
US9391840B2 (en) 2012-05-02 2016-07-12 Solarflare Communications, Inc. Avoiding delayed data
US20130332326A1 (en) * 2012-06-07 2013-12-12 Blackrock Institutional Trust Company, N.A. Blind etf with small lot redemption trigger
US9391841B2 (en) 2012-07-03 2016-07-12 Solarflare Communications, Inc. Fast linkup arbitration
CA2871322C (en) 2012-09-12 2018-10-16 Bradley Katsuyama Transmission latency leveling apparatuses, methods and systems
US10505747B2 (en) 2012-10-16 2019-12-10 Solarflare Communications, Inc. Feed processing
US10133802B2 (en) 2012-10-23 2018-11-20 Ip Reservoir, Llc Method and apparatus for accelerated record layout detection
US10146845B2 (en) 2012-10-23 2018-12-04 Ip Reservoir, Llc Method and apparatus for accelerated format translation of data in a delimited data format
US9633093B2 (en) 2012-10-23 2017-04-25 Ip Reservoir, Llc Method and apparatus for accelerated format translation of data in a delimited data format
US20140279342A1 (en) * 2013-03-15 2014-09-18 International Securities Exchange, Llc System and Method for Processing Quotes Using an Integrated Circuit
US10742604B2 (en) 2013-04-08 2020-08-11 Xilinx, Inc. Locked down network interface
US9426124B2 (en) 2013-04-08 2016-08-23 Solarflare Communications, Inc. Locked down network interface
EP2809033B1 (en) 2013-05-30 2018-03-21 Solarflare Communications Inc Packet capture in a network
US10394751B2 (en) 2013-11-06 2019-08-27 Solarflare Communications, Inc. Programmed input/output mode
US9691102B2 (en) 2013-11-07 2017-06-27 Chicago Mercantile Exchange Inc. Transactionally deterministic high speed financial exchange having improved, efficiency, communication, customization, performance, access, trading opportunities, credit controls, and fault tolerance
US11037239B2 (en) 2013-11-07 2021-06-15 Chicago Mercantile Exchange Inc. Transactionally deterministic high speed financial exchange having improved, efficiency, communication, customization, performance, access, trading opportunities, credit controls, and fault tolerance
US10467693B2 (en) 2013-11-07 2019-11-05 Chicago Mercantile Exchange Inc. Transactionally deterministic high speed financial exchange having improved, efficiency, communication, customization, performance, access, trading opportunities, credit controls, and fault tolerance
US20150127509A1 (en) 2013-11-07 2015-05-07 Chicago Mercantile Exchange Inc. Transactionally Deterministic High Speed Financial Exchange Having Improved, Efficiency, Communication, Customization, Performance, Access, Trading Opportunities, Credit Controls, and Fault Tolerance
US10366452B2 (en) 2013-11-07 2019-07-30 Chicago Mercantile Exchange Inc. Transactionally deterministic high speed financial exchange having improved, efficiency, communication, customization, performance, access, trading opportunities, credit controls, and fault tolerance
US10929926B2 (en) 2013-11-07 2021-02-23 Chicago Mercantile Exchange Inc. Transactionally deterministic high speed financial exchange having improved, efficiency, communication, customization, performance, access, trading opportunities, credit controls, and fault tolerance
US10332206B2 (en) 2013-11-07 2019-06-25 Chicago Mercantile Exchange Inc. Transactionally deterministic high speed financial exchange having improved, efficiency, communication, customization, performance, access, trading opportunities, credit controls, and fault tolerance
US10692143B2 (en) 2013-11-07 2020-06-23 Chicago Mercantile Exchange Inc. Transactionally deterministic high speed financial exchange having improved, efficiency, communication, customization, performance, access, trading opportunities, credit controls, and fault tolerance
SG11201608606WA (en) 2014-04-16 2016-11-29 Iex Group Inc Systems and methods for providing up-to-date information for transactions
WO2015164639A1 (en) 2014-04-23 2015-10-29 Ip Reservoir, Llc Method and apparatus for accelerated data translation
US11164248B2 (en) 2015-10-12 2021-11-02 Chicago Mercantile Exchange Inc. Multi-modal trade execution with smart order routing
US11288739B2 (en) 2015-10-12 2022-03-29 Chicago Mercantile Exchange Inc. Central limit order book automatic triangulation system
US10942943B2 (en) 2015-10-29 2021-03-09 Ip Reservoir, Llc Dynamic field data translation to support high performance stream data processing
US10580100B2 (en) 2016-06-06 2020-03-03 Chicago Mercantile Exchange Inc. Data payment and authentication via a shared data structure
US11514448B1 (en) 2016-07-11 2022-11-29 Chicago Mercantile Exchange Inc. Hierarchical consensus protocol framework for implementing electronic transaction processing systems
US10417217B2 (en) 2016-08-05 2019-09-17 Chicago Mercantile Exchange Inc. Systems and methods for blockchain rule synchronization
US10748210B2 (en) 2016-08-09 2020-08-18 Chicago Mercantile Exchange Inc. Systems and methods for coordinating processing of scheduled instructions across multiple components
US10943297B2 (en) 2016-08-09 2021-03-09 Chicago Mercantile Exchange Inc. Systems and methods for coordinating processing of instructions across multiple components
US10592912B1 (en) 2016-12-06 2020-03-17 Xignite, Inc. Methods and systems for taking an electronic communication action in response to detecting a market condition
WO2018119035A1 (en) 2016-12-22 2018-06-28 Ip Reservoir, Llc Pipelines for hardware-accelerated machine learning
US11164255B1 (en) 2018-07-13 2021-11-02 Xignite, Inc. Methods and systems for generating a financial market snapshot
US11379726B2 (en) * 2018-11-02 2022-07-05 Intuit Inc. Finite rank deep kernel learning for robust time series forecasting and regression
US10880211B2 (en) 2019-05-06 2020-12-29 Seth Gregory Friedman Transaction encoding and verification by way of data-link layer fields
JP2022532230A (ja) * 2019-05-14 2022-07-13 エクセジー インコーポレイテッド 金融市場データからの取引シグナルを低遅延で生成しかつ配信するための方法およびシステム
US10795874B2 (en) * 2019-07-29 2020-10-06 Alibaba Group Holding Limited Creating index in blockchain-type ledger
EP4144048A4 (en) 2020-06-08 2024-06-26 Liquid-Markets GmbH HARDWARE-BASED TRANSACTION EXCHANGE
EP4295301A1 (en) 2021-02-16 2023-12-27 Exegy Incorporated Methods and systems for low latency automated trading

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11259559A (ja) * 1998-03-12 1999-09-24 Nippon Steel Corp 金融情報処理システム
JP2001283000A (ja) * 2000-03-29 2001-10-12 Hitachi Kokusai Electric Inc 情報表示方法及び情報表示システム
JP2002269343A (ja) * 2001-03-08 2002-09-20 Nri & Ncc Co Ltd 簿価・実現損益リアルタイム計算システム
JP2003036360A (ja) * 2001-07-25 2003-02-07 Hitachi Kokusai Electric Inc 情報表示システム
JP2003256660A (ja) * 2002-03-05 2003-09-12 Kabu.Com Securities Co Ltd リアルタイム情報通知システム及びリアルタイムの情報通知方法
JP2003528411A (ja) * 2000-03-27 2003-09-24 ジ アメリカン ストック エクスチェンジ エルエルシー アクティブ運用型上場投資信託の日中純資産価値代用値の決定
WO2007127336A2 (en) * 2006-04-28 2007-11-08 Towsend Analytics, Ltd. Order management for electronic securities trading

Family Cites Families (373)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2046381A (en) * 1930-12-10 1936-07-07 Teleregister Corp Bid and asked quotation system
US3082402A (en) * 1960-05-10 1963-03-19 Scantlin Electronics Inc Securities quotation apparatus
US3296597A (en) * 1963-10-28 1967-01-03 Scantlin Electronics Inc Market quotation apparatus
US3581072A (en) * 1968-03-28 1971-05-25 Frederick Nymeyer Auction market computation system
US3573747A (en) * 1969-02-24 1971-04-06 Institutional Networks Corp Instinet communication system for effectuating the sale or exchange of fungible properties between subscribers
US4412287A (en) * 1975-05-29 1983-10-25 Braddock Iii Walter D Automated stock exchange
US4044334A (en) * 1975-06-19 1977-08-23 Honeywell Information Systems, Inc. Database instruction unload
US4300193A (en) * 1979-01-31 1981-11-10 Honeywell Information Systems Inc. Data processing system having data multiplex control apparatus
US4903201A (en) * 1983-11-03 1990-02-20 World Energy Exchange Corporation Automated futures trading exchange
US5270922A (en) * 1984-06-29 1993-12-14 Merrill Lynch & Company, Inc. System for distributing, processing and displaying financial information
US4674044A (en) * 1985-01-30 1987-06-16 Merrill Lynch, Pierce, Fenner & Smith, Inc. Automated securities trading system
US5038284A (en) * 1988-02-17 1991-08-06 Kramer Robert M Method and apparatus relating to conducting trading transactions with portable trading stations
US5023910A (en) * 1988-04-08 1991-06-11 At&T Bell Laboratories Vector quantization in a harmonic speech coding arrangement
JPH0219963A (ja) * 1988-07-08 1990-01-23 Hitachi Ltd 実時間状況監視方法及びシステム
US5050075A (en) * 1988-10-04 1991-09-17 Bell Communications Research, Inc. High performance VLSI data filter
JPH02224060A (ja) * 1989-02-27 1990-09-06 Hitachi Ltd リアルタイム意思決定支援方式
AU5281590A (en) 1989-03-14 1990-10-09 Chicago Board Of Trade Simulated pit trading system
US5249292A (en) * 1989-03-31 1993-09-28 Chiappa J Noel Data packet switch using a primary processing unit to designate one of a plurality of data stream control circuits to selectively handle the header processing of incoming packets in one data packet stream
US5077665A (en) * 1989-05-25 1991-12-31 Reuters Limited Distributed matching system
US5101353A (en) * 1989-05-31 1992-03-31 Lattice Investments, Inc. Automated system for providing liquidity to securities markets
US5126936A (en) * 1989-09-01 1992-06-30 Champion Securities Goal-directed financial asset management system
JPH03179863A (ja) * 1989-09-04 1991-08-05 Hitachi Ltd 自動取引方法および装置
US5243655A (en) * 1990-01-05 1993-09-07 Symbol Technologies Inc. System for encoding and decoding data in machine readable graphic form
US5319776A (en) * 1990-04-19 1994-06-07 Hilgraeve Corporation In transit detection of computer virus with safeguard
US5313560A (en) * 1990-05-11 1994-05-17 Hitachi, Ltd. Method for determining a supplemental transaction changing a decided transaction to satisfy a target
US5497488A (en) * 1990-06-12 1996-03-05 Hitachi, Ltd. System for parallel string search with a function-directed parallel collation of a first partition of each string followed by matching of second partitions
US5404488A (en) * 1990-09-26 1995-04-04 Lotus Development Corporation Realtime data feed engine for updating an application with the most currently received data from multiple data feeds
US5258908A (en) * 1990-11-02 1993-11-02 Foreign Exchange Transaction Services, Inc. Detection and prevention of duplicate trading transactions over a communications network
US5297032A (en) * 1991-02-01 1994-03-22 Merrill Lynch, Pierce, Fenner & Smith Incorporated Securities trading workstation
US5421028A (en) * 1991-03-15 1995-05-30 Hewlett-Packard Company Processing commands and data in a common pipeline path in a high-speed computer graphics system
US5477451A (en) * 1991-07-25 1995-12-19 International Business Machines Corp. Method and system for natural language translation
US5826075A (en) 1991-10-16 1998-10-20 International Business Machines Corporation Automated programmable fireware store for a personal computer system
US5375055A (en) * 1992-02-03 1994-12-20 Foreign Exchange Transaction Services, Inc. Credit management for electronic brokerage system
US6985883B1 (en) 1992-02-03 2006-01-10 Ebs Dealing Resources, Inc. Credit management for electronic brokerage system
EP0573991B1 (en) 1992-06-10 2002-01-16 Cantor Fitzgerald Fixed income portfolio data processor and method for using same
US5802290A (en) * 1992-07-29 1998-09-01 Virtual Computer Corporation Computer network of distributed virtual computers which are EAC reconfigurable in response to instruction to be executed
US5684980A (en) * 1992-07-29 1997-11-04 Virtual Computer Corporation FPGA virtual computer for executing a sequence of program instructions by successively reconfiguring a group of FPGA in response to those instructions
GB9220404D0 (en) * 1992-08-20 1992-11-11 Nat Security Agency Method of identifying,retrieving and sorting documents
US6173270B1 (en) 1992-09-01 2001-01-09 Merrill Lynch, Pierce, Fenner & Smith Stock option control and exercise system
WO1994009443A1 (en) 1992-10-16 1994-04-28 Arne Halaas Non-numeric coprocessor
US6044407A (en) * 1992-11-13 2000-03-28 British Telecommunications Public Limited Company Interface for translating an information message from one protocol to another
US5481735A (en) * 1992-12-28 1996-01-02 Apple Computer, Inc. Method for modifying packets that meet a particular criteria as the packets pass between two layers in a network
US6456982B1 (en) 1993-07-01 2002-09-24 Dragana N. Pilipovic Computer system for generating projected data and an application supporting a financial transaction
US5500793A (en) 1993-09-02 1996-03-19 Equitrade Computerized system for developing multi-party property equity exchange scenarios
DE69429061T2 (de) 1993-10-29 2002-07-18 Advanced Micro Devices Inc Superskalarmikroprozessoren
US5371794A (en) * 1993-11-02 1994-12-06 Sun Microsystems, Inc. Method and apparatus for privacy and authentication in wireless networks
US5497317A (en) * 1993-12-28 1996-03-05 Thomson Trading Services, Inc. Device and method for improving the speed and reliability of security trade settlements
US5813000A (en) * 1994-02-15 1998-09-22 Sun Micro Systems B tree structure and method
US5461712A (en) * 1994-04-18 1995-10-24 International Business Machines Corporation Quadrant-based two-dimensional memory manager
US5809483A (en) 1994-05-13 1998-09-15 Broka; S. William Online transaction processing system for bond trading
US5987432A (en) 1994-06-29 1999-11-16 Reuters, Ltd. Fault-tolerant central ticker plant system for distributing financial market data
JPH0822392A (ja) 1994-07-11 1996-01-23 Hitachi Ltd 意志決定方法及び装置
US6263321B1 (en) 1994-07-29 2001-07-17 Economic Inventions, Llc Apparatus and process for calculating an option
US5884286A (en) 1994-07-29 1999-03-16 Daughtery, Iii; Vergil L. Apparatus and process for executing an expirationless option transaction
EP2110732A3 (en) 1995-02-13 2009-12-09 Intertrust Technologies Corporation Systems and methods for secure transaction management and electronic rights protection
US5845266A (en) 1995-12-12 1998-12-01 Optimark Technologies, Inc. Crossing network utilizing satisfaction density profile with price discovery features
GB2300991B (en) * 1995-05-15 1997-11-05 Andrew Macgregor Ritchie Serving signals to browsing clients
JPH0981574A (ja) 1995-09-14 1997-03-28 Fujitsu Ltd 検索集合表示画面を利用したデータベース検索法およびシステム
US6134551A (en) * 1995-09-15 2000-10-17 Intel Corporation Method of caching digital certificate revocation lists
US5701464A (en) * 1995-09-15 1997-12-23 Intel Corporation Parameterized bloom filters
JPH09145544A (ja) 1995-11-20 1997-06-06 Ricoh Co Ltd Mtf測定方法
US5864738A (en) 1996-03-13 1999-01-26 Cray Research, Inc. Massively parallel processing system using two data paths: one connecting router circuit to the interconnect network and the other connecting router circuit to I/O controller
US20050267836A1 (en) 1996-03-25 2005-12-01 Cfph, Llc Method and system for transacting with a trading application
JPH09269901A (ja) 1996-04-01 1997-10-14 Hitachi Ltd 複数ジョブ間データ引き継ぎ方法
US5713793A (en) 1996-04-05 1998-02-03 Oris, L.L.C. Sporting event options market trading game
US5781921A (en) 1996-05-06 1998-07-14 Ohmeda Inc. Method and apparatus to effect firmware upgrades using a removable memory device under software control
GB2314433A (en) * 1996-06-22 1997-12-24 Xerox Corp Finding and modifying strings of a regular language in a text
US6147976A (en) * 1996-06-24 2000-11-14 Cabletron Systems, Inc. Fast network layer packet filter
US5995963A (en) 1996-06-27 1999-11-30 Fujitsu Limited Apparatus and method of multi-string matching based on sparse state transition list
US6061662A (en) 1997-08-15 2000-05-09 Options Technology Company, Inc. Simulation method and system for the valuation of derivative financial instruments
US6016483A (en) 1996-09-20 2000-01-18 Optimark Technologies, Inc. Method and apparatus for automated opening of options exchange
US6178494B1 (en) * 1996-09-23 2001-01-23 Virtual Computer Corporation Modular, hybrid processor and method for producing a modular, hybrid processor
US5991881A (en) * 1996-11-08 1999-11-23 Harris Corporation Network surveillance system
US5963923A (en) 1996-11-12 1999-10-05 Garber; Howard B. System and method for trading having a principal market maker
JP3231673B2 (ja) 1996-11-21 2001-11-26 シャープ株式会社 文字,文字列検索方法及び該方法に用いる記録媒体
DE19651075A1 (de) 1996-12-09 1998-06-10 Pact Inf Tech Gmbh Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen
US5905974A (en) 1996-12-13 1999-05-18 Cantor Fitzgerald Securities Automated auction protocol processor
US6073160A (en) * 1996-12-18 2000-06-06 Xerox Corporation Document communications controller
US5911778A (en) 1996-12-31 1999-06-15 Sun Microsystems, Inc. Processing system security
US6028939A (en) * 1997-01-03 2000-02-22 Redcreek Communications, Inc. Data security system and method
US5873071A (en) 1997-05-15 1999-02-16 Itg Inc. Computer method and system for intermediated exchange of commodities
JP3372455B2 (ja) 1997-07-03 2003-02-04 富士通株式会社 パケット中継制御方法,パケット中継装置およびプログラム記憶媒体
US6067569A (en) * 1997-07-10 2000-05-23 Microsoft Corporation Fast-forwarding and filtering of network packets in a computer system
US6317795B1 (en) * 1997-07-22 2001-11-13 International Business Machines Corporation Dynamic modification of multimedia content
US5950196A (en) * 1997-07-25 1999-09-07 Sovereign Hill Software, Inc. Systems and methods for retrieving tabular data from textual sources
US6772136B2 (en) 1997-08-21 2004-08-03 Elaine Kant System and method for financial instrument modeling and using Monte Carlo simulation
US6173276B1 (en) 1997-08-21 2001-01-09 Scicomp, Inc. System and method for financial instrument modeling and valuation
JPH11110320A (ja) 1997-10-03 1999-04-23 Matsushita Electric Ind Co Ltd メッセージ交換装置
US6442533B1 (en) 1997-10-29 2002-08-27 William H. Hinkle Multi-processing financial transaction processing system
US6216167B1 (en) 1997-10-31 2001-04-10 Nortel Networks Limited Efficient path based forwarding and multicast forwarding
US6594643B1 (en) 1997-11-14 2003-07-15 Charles C. Freeny, Jr. Automatic stock trading system
US6138176A (en) 1997-11-14 2000-10-24 3Ware Disk array controller with automated processor which routes I/O data according to addresses and commands received from disk drive controllers
WO1999027684A1 (en) 1997-11-25 1999-06-03 Packeteer, Inc. Method for automatically classifying traffic in a packet communications network
US7124106B1 (en) 1997-12-17 2006-10-17 Omega Consulting, Inc. Apparatus for trading of bundled assets including bundle substitution and method therefor
US6339819B1 (en) 1997-12-17 2002-01-15 Src Computers, Inc. Multiprocessor with each processor element accessing operands in loaded input buffer and forwarding results to FIFO output buffer
US6147890A (en) * 1997-12-30 2000-11-14 Kawasaki Steel Corporation FPGA with embedded content-addressable memory
US6519686B2 (en) 1998-01-05 2003-02-11 Intel Corporation Information streaming in a multi-process system using shared memory
US5987610A (en) 1998-02-12 1999-11-16 Ameritech Corporation Computer virus screening methods and systems
US6304858B1 (en) 1998-02-13 2001-10-16 Adams, Viner And Mosler, Ltd. Method, system, and computer program product for trading interest rate swaps
KR100441171B1 (ko) 1998-02-20 2004-10-14 삼성전자주식회사 플래쉬롬과램을이용한펌웨어구현방법
US6279113B1 (en) * 1998-03-16 2001-08-21 Internet Tools, Inc. Dynamic signature inspection-based network intrusion detection
JP4073536B2 (ja) 1998-03-27 2008-04-09 株式会社日立国際電気 証券情報表示装置
US6236980B1 (en) 1998-04-09 2001-05-22 John P Reese Magazine, online, and broadcast summary recommendation reporting system to aid in decision making
US6415269B1 (en) 1998-05-29 2002-07-02 Bidcatcher, L.P. Interactive remote auction bidding system
US6397259B1 (en) 1998-05-29 2002-05-28 Palm, Inc. Method, system and apparatus for packet minimized communications
US6105067A (en) * 1998-06-05 2000-08-15 International Business Machines Corp. Connection pool management for backend servers using common interface
US6289461B1 (en) * 1998-06-09 2001-09-11 Placeware, Inc. Bi-directional process-to-process byte stream protocol
US6243753B1 (en) 1998-06-12 2001-06-05 Microsoft Corporation Method, system, and computer program product for creating a raw data channel form an integrating component to a series of kernel mode filters
US6272616B1 (en) * 1998-06-17 2001-08-07 Agere Systems Guardian Corp. Method and apparatus for executing multiple instruction streams in a digital processor with multiple data paths
US6169969B1 (en) * 1998-08-07 2001-01-02 The United States Of America As Represented By The Director Of The National Security Agency Device and method for full-text large-dictionary string matching using n-gram hashing
GB9819183D0 (en) 1998-09-04 1998-10-28 Int Computers Ltd Multiple string search method
US6226676B1 (en) * 1998-10-07 2001-05-01 Nortel Networks Corporation Connection establishment and termination in a mixed protocol network
US6317728B1 (en) 1998-10-13 2001-11-13 Richard L. Kane Securities and commodities trading system
US7181548B2 (en) 1998-10-30 2007-02-20 Lsi Logic Corporation Command queueing engine
DK1145541T3 (da) 1998-11-24 2013-03-11 Niksun Inc Apparat og fremgangsmåde til at indsamle og analysere kommunikationsdata
US6624761B2 (en) 1998-12-11 2003-09-23 Realtime Data, Llc Content independent data compression method and system
US6195024B1 (en) * 1998-12-11 2001-02-27 Realtime Data, Llc Content independent data compression method and system
US6625150B1 (en) 1998-12-17 2003-09-23 Watchguard Technologies, Inc. Policy engine architecture
US6499107B1 (en) 1998-12-29 2002-12-24 Cisco Technology, Inc. Method and system for adaptive network security using intelligent packet analysis
US6329996B1 (en) 1999-01-08 2001-12-11 Silicon Graphics, Inc. Method and apparatus for synchronizing graphics pipelines
US6578147B1 (en) 1999-01-15 2003-06-10 Cisco Technology, Inc. Parallel intrusion detection sensors with load balancing for high speed networks
US6601104B1 (en) 1999-03-11 2003-07-29 Realtime Data Llc System and methods for accelerated data storage and retrieval
US6604158B1 (en) 1999-03-11 2003-08-05 Realtime Data, Llc System and methods for accelerated data storage and retrieval
US6778968B1 (en) 1999-03-17 2004-08-17 Vialogy Corp. Method and system for facilitating opportunistic transactions using auto-probes
US6839686B1 (en) 1999-03-29 2005-01-04 Dlj Long Term Investment Corporation Method and system for providing financial information and evaluating securities of a financial debt instrument
US6993504B1 (en) 1999-04-09 2006-01-31 Trading Technologies International, Inc. User interface for semi-fungible trading
US6278982B1 (en) * 1999-04-21 2001-08-21 Lava Trading Inc. Securities trading system for consolidation of trading on multiple ECNS and electronic exchanges
US6336117B1 (en) 1999-04-30 2002-01-01 International Business Machines Corporation Content-indexing search system and method providing search results consistent with content filtering and blocking policies implemented in a blocking engine
AU779731B2 (en) 1999-05-19 2005-02-10 S.F. Ip Properties 35 Llc Network-based trading system and method
US6597812B1 (en) 1999-05-28 2003-07-22 Realtime Data, Llc System and method for lossless data compression and decompression
US6765918B1 (en) * 1999-06-16 2004-07-20 Teledata Networks, Ltd. Client/server based architecture for a telecommunications network
US6463474B1 (en) 1999-07-02 2002-10-08 Cisco Technology, Inc. Local authentication of a client at a network device
US7996296B2 (en) * 1999-07-21 2011-08-09 Longitude Llc Digital options having demand-based, adjustable returns, and trading exchange therefor
US6418419B1 (en) 1999-07-23 2002-07-09 5Th Market, Inc. Automated system for conditional order transactions in securities or other items in commerce
GB2352548B (en) 1999-07-26 2001-06-06 Sun Microsystems Inc Method and apparatus for executing standard functions in a computer system
US20030093343A1 (en) 1999-08-31 2003-05-15 Sidley Austin Brown & Wood Llp Dynamic order visibility system for the trading of assets
WO2001022425A1 (en) 1999-09-20 2001-03-29 Seagate Technology Llc Field programmable gate array hard disk system
US6546375B1 (en) 1999-09-21 2003-04-08 Johns Hopkins University Apparatus and method of pricing financial derivatives
US7181424B1 (en) 1999-09-23 2007-02-20 The Nasdaq Stock Market, Inc. Montage for automated market system
US6581098B1 (en) 1999-09-27 2003-06-17 Hewlett-Packard Development Company, L.P. Server providing access to a plurality of functions of a multifunction peripheral in a network
US7251629B1 (en) 1999-10-14 2007-07-31 Edge Capture, Llc Automated trading system in an electronic trading exchange
US6886103B1 (en) * 1999-10-28 2005-04-26 Lucent Technologies Inc. Method and apparatus for extending network address translation for unsupported protocols
JP2003529818A (ja) 1999-11-12 2003-10-07 イー − ブレイン・ソリュージョンズ・エルエルシー グラフィックユーザインタフェース
US6710702B1 (en) 1999-11-22 2004-03-23 Motorola, Inc. Method and apparatus for providing information to a plurality of communication units in a wireless communication system
US6804667B1 (en) * 1999-11-30 2004-10-12 Ncr Corporation Filter for checking for duplicate entries in database
FI109319B (fi) 1999-12-03 2002-06-28 Nokia Corp Päätelaitteelle välitettävän elektronisen informaation suodattaminen
US6850906B1 (en) 1999-12-15 2005-02-01 Traderbot, Inc. Real-time financial search engine and method
US7356498B2 (en) 1999-12-30 2008-04-08 Chicago Board Options Exchange, Incorporated Automated trading exchange system having integrated quote risk monitoring and integrated quote modification services
ATE364866T1 (de) * 2000-01-06 2007-07-15 Ibm Verfahren und schaltungen zum schnellen auffinden des minimalen / maximalen wertes in einer menge von zahlen
US20030191876A1 (en) 2000-02-03 2003-10-09 Fallon James J. Data storewidth accelerator
US20010047473A1 (en) * 2000-02-03 2001-11-29 Realtime Data, Llc Systems and methods for computer initialization
US7228289B2 (en) 2000-03-02 2007-06-05 Trading Technologies International, Inc. System and method for trading and displaying market information in an electronic trading environment
US7127424B2 (en) 2000-03-02 2006-10-24 Trading Technologies International, Inc. Click based trading with intuitive grid display of market depth and price consolidation
US6772132B1 (en) 2000-03-02 2004-08-03 Trading Technologies International, Inc. Click based trading with intuitive grid display of market depth
US20020049841A1 (en) 2000-03-03 2002-04-25 Johnson Scott C Systems and methods for providing differentiated service in information management environments
US20030093347A1 (en) 2000-03-15 2003-05-15 Gray Dale F. Managing risk using macro-financial risk analysis
US9924216B2 (en) 2000-03-21 2018-03-20 Ted R. Rittmaster System and process for distribution of information on a communication network
US7103569B1 (en) 2000-03-24 2006-09-05 Groveman Lloyd A Active account management using volatility arbitrage
US7099838B1 (en) 2000-03-27 2006-08-29 American Stock Exchange, Llc Hedging exchange traded mutual funds or other portfolio basket products
US7363277B1 (en) 2000-03-27 2008-04-22 International Business Machines Corporation Detecting copyright violation via streamed extraction and signature analysis in a method, system and program
US7571130B2 (en) 2002-06-17 2009-08-04 Nyse Alternext Us Llc Hedging exchange traded mutual funds or other portfolio basket products
US7139743B2 (en) 2000-04-07 2006-11-21 Washington University Associative database scanning and information retrieval using FPGA devices
US8095508B2 (en) 2000-04-07 2012-01-10 Washington University Intelligent data storage and processing using FPGA devices
US6711558B1 (en) 2000-04-07 2004-03-23 Washington University Associative database scanning and information retrieval
US8799138B2 (en) * 2000-04-10 2014-08-05 Stikine Technology, Llc Routing control for orders eligible for multiple markets
CA2406418C (en) 2000-04-13 2017-07-11 Superderivatives, Inc. Method and system for pricing options
WO2001080558A2 (en) 2000-04-14 2001-10-25 Solidstreaming, Inc. A system and method for multimedia streaming
GB2366957A (en) 2000-05-26 2002-03-20 Roke Manor Research Reconfiguration manager
US7685052B2 (en) 2000-06-01 2010-03-23 Pipeline Financial Group, Inc. Confidential block trading system and method
US6981054B1 (en) * 2000-06-06 2005-12-27 Advanced Micro Devices, Inc. Flow control arrangement in a network switch based on priority traffic
US20020019812A1 (en) 2000-06-16 2002-02-14 Board Karen Eleanor System and service for receiving, customizing, and re-broadcasting high-speed financial data to users operating wireless network-capable devices
WO2002001472A1 (en) 2000-06-26 2002-01-03 Tradingscreen, Inc. Securities trading system with latency check
US7089206B2 (en) 2000-06-30 2006-08-08 Ubs Ag Trade allocation
US7177833B1 (en) 2000-07-18 2007-02-13 Edge Capture, Llc Automated trading system in an electronic trading exchange
US20030033450A1 (en) 2000-07-20 2003-02-13 John Appleby-Alis System, method, and article of manufacture for remote updating of hardware
US20020010825A1 (en) 2000-07-20 2002-01-24 Alex Wilson Memory resource arbitrator for multiple gate arrays
US20020100029A1 (en) 2000-07-20 2002-07-25 Matt Bowen System, method and article of manufacture for compiling and invoking C functions in hardware
US6931545B1 (en) 2000-08-28 2005-08-16 Contentguard Holdings, Inc. Systems and methods for integrity certification and verification of content consumption environments
US6381242B1 (en) 2000-08-29 2002-04-30 Netrake Corporation Content processor
US8692695B2 (en) 2000-10-03 2014-04-08 Realtime Data, Llc Methods for encoding and decoding data
US7417568B2 (en) 2000-10-03 2008-08-26 Realtime Data Llc System and method for data feed acceleration and encryption
US9143546B2 (en) 2000-10-03 2015-09-22 Realtime Data Llc System and method for data feed acceleration and encryption
JP2002117232A (ja) 2000-10-11 2002-04-19 Konami Co Ltd 株取引支援システム並びに方法、仮想株取引ゲームシステム、及び仮想株取引ゲーム提供方法
US20020069375A1 (en) 2000-10-12 2002-06-06 Matt Bowen System, method, and article of manufacture for data transfer across clock domains
US20020072893A1 (en) 2000-10-12 2002-06-13 Alex Wilson System, method and article of manufacture for using a microprocessor emulation in a hardware application with non time-critical functions
US20020091826A1 (en) 2000-10-13 2002-07-11 Guillaume Comeau Method and apparatus for interprocessor communication and peripheral sharing
US7065475B1 (en) 2000-10-31 2006-06-20 Goldman Sachs & Co. Modeling option price dynamics
US7089293B2 (en) 2000-11-02 2006-08-08 Sun Microsystems, Inc. Switching system method for discovering and accessing SCSI devices in response to query
US6807156B1 (en) * 2000-11-07 2004-10-19 Telefonaktiebolaget Lm Ericsson (Publ) Scalable real-time quality of service monitoring and analysis of service dependent subscriber satisfaction in IP networks
US7184984B2 (en) 2000-11-17 2007-02-27 Valaquenta Intellectual Properties Limited Global electronic trading system
US7212998B1 (en) 2000-11-21 2007-05-01 Olsen Data Ltd. Method for creating and pricing options
US7178100B2 (en) * 2000-12-15 2007-02-13 Call Charles G Methods and apparatus for storing and manipulating variable length and fixed length data elements as a sequence of fixed length integers
US20030033588A1 (en) 2001-01-29 2003-02-13 John Alexander System, method and article of manufacture for using a library map to create and maintain IP cores effectively
US20030037321A1 (en) 2001-01-29 2003-02-20 Matt Bowen System, method and article of manufacture for extensions in a programming lanauage capable of programming hardware architectures
US20030028864A1 (en) 2001-01-29 2003-02-06 Matt Bowen System, method and article of manufacture for successive compilations using incomplete parameters
US20030105620A1 (en) 2001-01-29 2003-06-05 Matt Bowen System, method and article of manufacture for interface constructs in a programming language capable of programming hardware architetures
US20030023653A1 (en) 2001-01-29 2003-01-30 Andrew Dunlop System, method and article of manufacture for a single-cycle floating point library
US20030046668A1 (en) 2001-01-29 2003-03-06 Matt Bowen System, method and article of manufacture for distributing IP cores
US20020199173A1 (en) 2001-01-29 2002-12-26 Matt Bowen System, method and article of manufacture for a debugger capable of operating across multiple threads and lock domains
US20030033594A1 (en) 2001-01-29 2003-02-13 Matt Bowen System, method and article of manufacture for parameterized expression libraries
US20020180742A1 (en) 2001-01-29 2002-12-05 Hammad Hamid Graphics macros for a frame buffer
US20020101425A1 (en) 2001-01-29 2002-08-01 Hammad Hamid System, method and article of manufacture for increased I/O capabilities in a graphics processing framework
US20030074177A1 (en) 2001-01-29 2003-04-17 Matt Bowen System, method and article of manufacture for a simulator plug-in for co-simulation purposes
US6691301B2 (en) 2001-01-29 2004-02-10 Celoxica Ltd. System, method and article of manufacture for signal constructs in a programming language capable of programming hardware architectures
US7386046B2 (en) 2001-02-13 2008-06-10 Realtime Data Llc Bandwidth sensitive data compression and decompression
US20030055771A1 (en) 2001-02-23 2003-03-20 Rudusky Daryl System, method and article of manufacture for a reverse-auction-based system for hardware development
US20030033234A1 (en) 2001-02-23 2003-02-13 Rudusky Daryl System, method and article of manufacture for a hardware configuration service
US20030055658A1 (en) 2001-02-23 2003-03-20 Rudusky Daryl System, method and article of manufacture for dynamic, automated fulfillment of an order for a hardware product
US20030055769A1 (en) 2001-02-23 2003-03-20 Rudusky Daryl System, method and article of manufacture for a library-based hardware configuration service
US20030061409A1 (en) 2001-02-23 2003-03-27 Rudusky Daryl System, method and article of manufacture for dynamic, automated product fulfillment for configuring a remotely located device
US20030055770A1 (en) 2001-02-23 2003-03-20 Rudusky Daryl System, method and article of manufacture for an auction-based system for hardware development
US20030028408A1 (en) 2001-02-23 2003-02-06 Rudusky Daryl System, method and article of manufacture for a contractor-based hardware development service
WO2002071227A1 (en) 2001-03-01 2002-09-12 Cyber Operations, Llc System and method for anti-network terrorism
US7681032B2 (en) 2001-03-12 2010-03-16 Portauthority Technologies Inc. System and method for monitoring unauthorized transport of digital content
US20030035547A1 (en) 2001-03-27 2003-02-20 John Newton Server with multiple encryption libraries
US20030079060A1 (en) 2001-04-02 2003-04-24 Andrew Dunlop Universal download program for establishing communication with a gate array
US7325249B2 (en) 2001-04-30 2008-01-29 Aol Llc Identifying unwanted electronic messages
US6785677B1 (en) 2001-05-02 2004-08-31 Unisys Corporation Method for execution of query to search strings of characters that match pattern with a target string utilizing bit vector
US6944168B2 (en) * 2001-05-04 2005-09-13 Slt Logic Llc System and method for providing transformation of multi-protocol packets in a data stream
US7152151B2 (en) 2002-07-18 2006-12-19 Ge Fanuc Embedded Systems, Inc. Signal processing resource for selective series processing of data in transit on communications paths in multi-processor arrangements
US7558753B2 (en) 2001-05-30 2009-07-07 Morgan Stanley Price improvement crossing system
JP2002352070A (ja) 2001-05-30 2002-12-06 Good Lots:Kk 株取引における処理の高速化システム
US7702563B2 (en) 2001-06-11 2010-04-20 Otc Online Partners Integrated electronic exchange of structured contracts with dynamic risk-based transaction permissioning
AU2002322109A1 (en) 2001-06-13 2002-12-23 Intruvert Networks, Inc. Method and apparatus for distributed network security
US20030009411A1 (en) 2001-07-03 2003-01-09 Pranil Ram Interactive grid-based graphical trading system for real time security trading
US7149715B2 (en) 2001-06-29 2006-12-12 Goldman Sachs & Co. Method and system for simulating implied volatility surfaces for use in option pricing simulations
US6928549B2 (en) 2001-07-09 2005-08-09 International Business Machines Corporation Dynamic intrusion detection for computer systems
US7845004B2 (en) 2001-07-27 2010-11-30 International Business Machines Corporation Correlating network information and intrusion information to find the entry point of an attack upon a protected computer
US6931408B2 (en) 2001-08-17 2005-08-16 E.C. Outlook, Inc. Method of storing, maintaining and distributing computer intelligible electronic data
US7133405B2 (en) 2001-08-30 2006-11-07 International Business Machines Corporation IP datagram over multiple queue pairs
US6978223B2 (en) * 2001-09-06 2005-12-20 Bbnt Solutions Llc Systems and methods for network performance measurement using packet signature collection
EP1436936A4 (en) 2001-09-12 2006-08-02 Safenet Inc RECOGNITION OF FORMS OF HIGH-SPEED DATA FLOW
US7835966B2 (en) 2001-09-17 2010-11-16 Recognia Inc. Technical analysis formation recognition using pivot points
US20030065943A1 (en) 2001-09-28 2003-04-03 Christoph Geis Method and apparatus for recognizing and reacting to denial of service attacks on a computerized network
US20030187662A1 (en) 2001-10-04 2003-10-02 Alex Wilson System, method, and article of manufacture for a reconfigurable hardware-based audio decoder
US20030184593A1 (en) 2001-10-09 2003-10-02 Andrew Dunlop System, method and article of manufacture for a user interface for an MP3 audio player
US7181765B2 (en) 2001-10-12 2007-02-20 Motorola, Inc. Method and apparatus for providing node security in a router of a packet network
US8423443B2 (en) 2001-10-13 2013-04-16 Super Derivatives, Inc. Method and system for pricing financial derivatives
US7716330B2 (en) 2001-10-19 2010-05-11 Global Velocity, Inc. System and method for controlling transmission of data packets over an information network
WO2003036429A2 (en) 2001-10-24 2003-05-01 Lee Theodore C Automated financial market information and trading system
US20030121010A1 (en) 2001-12-21 2003-06-26 Celoxica Ltd. System, method, and article of manufacture for estimating a potential performance of a codesign from an executable specification
US20030117971A1 (en) 2001-12-21 2003-06-26 Celoxica Ltd. System, method, and article of manufacture for profiling an executable hardware model using calls to profiling functions
US20030140337A1 (en) 2001-12-21 2003-07-24 Celoxica Ltd. System, method, and article of manufacture for data transfer reporting for an application
US20030120460A1 (en) 2001-12-21 2003-06-26 Celoxica Ltd. System, method, and article of manufacture for enhanced hardware model profiling
US6772345B1 (en) * 2002-02-08 2004-08-03 Networks Associates Technology, Inc. Protocol-level malware scanner
US7454603B2 (en) 2002-02-11 2008-11-18 Intel Corporation Method and system for linking firmware modules in a pre-memory execution environment
US6765408B2 (en) 2002-02-11 2004-07-20 Lattice Semiconductor Corporation Device and method with generic logic blocks
US7496689B2 (en) 2002-04-22 2009-02-24 Alacritech, Inc. TCP/IP offload device
US7249118B2 (en) 2002-05-17 2007-07-24 Aleri, Inc. Database system and methods
US7277887B1 (en) 2002-05-20 2007-10-02 News Technologies, Llc High-speed term and phrase matching via successive complexity reduction
US8027893B1 (en) 2002-05-20 2011-09-27 News Technologies, Llc News induced automated electronic securities transactions
US7093023B2 (en) 2002-05-21 2006-08-15 Washington University Methods, systems, and devices using reprogrammable hardware for high-speed processing of streaming data to find a redefinable pattern and respond thereto
EP1514190A4 (en) 2002-05-22 2006-09-20 Procera Networks SWITCH FOR A LOCAL NETWORK
US7167980B2 (en) * 2002-05-30 2007-01-23 Intel Corporation Data comparison process
AU2003276626A1 (en) 2002-06-18 2003-12-31 Douglas Ray Duquette System and method for analyzing and displaying security trade transactions
AU2003252093A1 (en) 2002-07-17 2004-02-02 Ubs Ag Computer-implemented system for automated trading
WO2004014065A2 (en) 2002-08-05 2004-02-12 John Campbell System of finite state machines
US7711844B2 (en) 2002-08-15 2010-05-04 Washington University Of St. Louis TCP-splitter: reliable packet monitoring methods and apparatus for high speed networks
US20040034587A1 (en) 2002-08-19 2004-02-19 Amberson Matthew Gilbert System and method for calculating intra-period volatility
US7389330B2 (en) 2002-09-11 2008-06-17 Hughes Network Systems, Llc System and method for pre-fetching content in a proxy architecture
US7761459B1 (en) 2002-10-15 2010-07-20 Ximpleware, Inc. Processing structured data
US8032440B1 (en) 2002-10-30 2011-10-04 Optionmetrics LLC Method of determining implied volatility for American options
US7386704B2 (en) 2002-10-31 2008-06-10 Lockheed Martin Corporation Pipeline accelerator including pipeline circuits in communication via a bus, and related system and method
JP4154213B2 (ja) 2002-11-01 2008-09-24 富士通株式会社 パケット処理装置
US7603303B1 (en) 2002-11-26 2009-10-13 Trading Technologies International, Inc. System and method for risk management
US7769668B2 (en) 2002-12-09 2010-08-03 Sam Balabon System and method for facilitating trading of financial instruments
US6901461B2 (en) 2002-12-31 2005-05-31 Intel Corporation Hardware assisted ATA command queuing
US7752117B2 (en) 2003-01-31 2010-07-06 Trading Technologies International, Inc. System and method for money management in electronic trading environment
TW591532B (en) 2003-03-07 2004-06-11 Mediatek Inc Firmware structuring method and related apparatus for unifying handling of execution responses of subroutines
US7440917B2 (en) 2003-03-10 2008-10-21 Chicago Mercantile Exchange, Inc. Order risk management system
US7640201B2 (en) 2003-03-19 2009-12-29 General Electric Company Methods and systems for analytical-based multifactor Multiobjective portfolio risk optimization
US20040186804A1 (en) 2003-03-19 2004-09-23 Anindya Chakraborty Methods and systems for analytical-based multifactor multiobjective portfolio risk optimization
US7593880B2 (en) 2003-03-19 2009-09-22 General Electric Company Methods and systems for analytical-based multifactor multiobjective portfolio risk optimization
US7660352B2 (en) 2003-04-04 2010-02-09 Sony Corporation Apparatus and method of parallel processing an MPEG-4 data stream
US20070277036A1 (en) 2003-05-23 2007-11-29 Washington University, A Corporation Of The State Of Missouri Intelligent data storage and processing using fpga devices
US7058735B2 (en) 2003-06-02 2006-06-06 Emulex Design & Manufacturing Corporation Method and apparatus for local and distributed data memory access (“DMA”) control
US20040267657A1 (en) 2003-06-28 2004-12-30 Global Skyline Llc Method for valuing forwards, futures and options on real estate
US7788726B2 (en) 2003-07-02 2010-08-31 Check Point Software Technologies, Inc. System and methodology providing information lockbox
US7756782B2 (en) 2003-07-28 2010-07-13 Trading Technologies International, Inc. System and method for improved electronic trading
US7444515B2 (en) 2003-08-14 2008-10-28 Washington University Method and apparatus for detecting predefined signatures in packet payload using Bloom filters
US7222114B1 (en) 2003-08-20 2007-05-22 Xilinx, Inc. Method and apparatus for rule-based operations
US20050080649A1 (en) 2003-10-08 2005-04-14 Alvarez Andres C. Systems and methods for automating the capture, organization, and transmission of data
US10002385B2 (en) 2003-10-28 2018-06-19 Bgc Partners, Inc. Managing the execution of trades between market makers
US20050097027A1 (en) 2003-11-05 2005-05-05 Sylvan Kavanaugh Computer-implemented method and electronic system for trading
US7454418B1 (en) 2003-11-07 2008-11-18 Qiang Wang Fast signature scan
US7529703B2 (en) 2003-11-18 2009-05-05 Citigroup Global Markets, Inc. Method and system for artificial neural networks to predict price movements in the financial markets
US20050216384A1 (en) 2003-12-15 2005-09-29 Daniel Partlow System, method, and computer program for creating and valuing financial instruments linked to real estate indices
US7019674B2 (en) 2004-02-05 2006-03-28 Nec Laboratories America, Inc. Content-based information retrieval architecture
US7602785B2 (en) 2004-02-09 2009-10-13 Washington University Method and system for performing longest prefix matching for network address lookup using bloom filters
US7542932B2 (en) 2004-02-20 2009-06-02 General Electric Company Systems and methods for multi-objective portfolio optimization
US8219477B2 (en) 2004-02-20 2012-07-10 General Electric Company Systems and methods for multi-objective portfolio analysis using pareto sorting evolutionary algorithms
US8126795B2 (en) 2004-02-20 2012-02-28 General Electric Company Systems and methods for initial sampling in multi-objective portfolio analysis
US7630928B2 (en) 2004-02-20 2009-12-08 General Electric Company Systems and methods for multi-objective portfolio analysis and decision-making using visualization techniques
US7469228B2 (en) 2004-02-20 2008-12-23 General Electric Company Systems and methods for efficient frontier supplementation in multi-objective portfolio analysis
US20050187845A1 (en) 2004-02-20 2005-08-25 Eklund Neil Holger W. Systems and methods for multi-objective portfolio analysis using dominance filtering
US7835961B2 (en) 2004-03-05 2010-11-16 Cantor Index Llc System and method for wagering in a financial market environment
US7711628B2 (en) 2004-03-05 2010-05-04 Cantor Index Llc System and method for offering intraday wagering in a financial market environment
US20050197938A1 (en) 2004-03-05 2005-09-08 Cantor Index Llc System and method for determining odds for wagering in a financial market environment
EP1589450A1 (en) 2004-04-23 2005-10-26 Deutsche Börse Ag Integrated order matching system combining visible and hidden parameters
US7756033B2 (en) 2004-05-03 2010-07-13 Verizon Business Global Llc Systems and methods for managing multicast data transmissions
US20050283743A1 (en) 2004-06-07 2005-12-22 Mulholland Philip J Method for generating hardware information
US7305383B1 (en) 2004-06-10 2007-12-04 Cisco Technology, Inc. Processing system using bitmap array to compress deterministic finite automation state table allowing direct indexing
US7555449B2 (en) 2004-06-18 2009-06-30 Sap Ag System and method for updating stop loss orders
US20080162378A1 (en) 2004-07-12 2008-07-03 Rosenthal Collins Group, L.L.C. Method and system for displaying a current market depth position of an electronic trade on a graphical user interface
US8200568B2 (en) 2004-07-21 2012-06-12 Bgc Partners, Inc. System and method for managing trading orders received from market makers
US7529707B2 (en) 2004-08-04 2009-05-05 Bgc Partners, Inc. System and method for managing trading using alert messages for outlying trading orders
US7577605B2 (en) 2004-08-04 2009-08-18 Bgc Partners, Inc. System and method for managing trading using alert messages for outlying trading orders
JP4397761B2 (ja) 2004-08-20 2010-01-13 株式会社大和証券グループ本社 有価証券売買注文システムおよび有価証券売買注文処理方法、注文処理サーバ、並びにプログラム
WO2006023948A2 (en) 2004-08-24 2006-03-02 Washington University Methods and systems for content detection in a reconfigurable hardware
US8849711B2 (en) 2004-09-10 2014-09-30 Chicago Mercantile Exchange Inc. System and method for displaying a combined trading and risk management GUI display
US7509275B2 (en) 2004-09-10 2009-03-24 Chicago Mercantile Exchange Inc. System and method for asymmetric offsets in a risk management system
US7428508B2 (en) 2004-09-10 2008-09-23 Chicago Mercantile Exchange System and method for hybrid spreading for risk management
US7426487B2 (en) 2004-09-10 2008-09-16 Chicago Mercantile Exchange, Inc. System and method for efficiently using collateral for risk offset
US7593877B2 (en) 2004-09-10 2009-09-22 Chicago Mercantile Exchange, Inc. System and method for hybrid spreading for flexible spread participation
US7430539B2 (en) 2004-09-10 2008-09-30 Chicago Mercantile Exchange System and method of margining fixed payoff products
US20060143099A1 (en) 2004-09-23 2006-06-29 Daniel Partlow System, method, and computer program for creating and valuing financial insturments linked to average credit spreads
US7461064B2 (en) 2004-09-24 2008-12-02 International Buiness Machines Corporation Method for searching documents for ranges of numeric values
US7788293B2 (en) 2005-03-02 2010-08-31 Google Inc. Generating structured information
US7917299B2 (en) 2005-03-03 2011-03-29 Washington University Method and apparatus for performing similarity searching on a data stream with respect to a query string
US7561573B2 (en) 2005-03-23 2009-07-14 Fujitsu Limited Network adaptor, communication system and communication method
EP1866829A4 (en) 2005-04-05 2010-08-04 Broadway Technology Llc TRADING SYSTEM WITH VOTING INTERNAL ORDERS
JP4786218B2 (ja) 2005-04-13 2011-10-05 株式会社日立製作所 情報処理装置、情報処理装置の制御方法、及びプログラム
US7801801B2 (en) 2005-05-04 2010-09-21 Rosenthal Collins Group, Llc Method and system for providing automatic execution of black box strategies for electonic trading
EP1736876A1 (en) 2005-06-01 2006-12-27 Sap Ag Parallel generation of bundles of data objects
US8130758B2 (en) 2005-06-27 2012-03-06 Bank Of America Corporation System and method for low latency market data
US7933828B2 (en) 2005-07-26 2011-04-26 Cfph, Llc System and method for displaying and/or analyzing a limit order book
US8024253B2 (en) 2005-08-19 2011-09-20 Interactive Brokers Llc Inter-market smart-routing for combination spread order trading
US7782873B2 (en) * 2005-08-23 2010-08-24 Slt Logic, Llc Omni-protocol engine for reconfigurable bit-stream processing in high-speed networks
US8140362B2 (en) * 2005-08-30 2012-03-20 International Business Machines Corporation Automatically processing dynamic business rules in a content management system
US20070061241A1 (en) 2005-09-15 2007-03-15 Jovanovic Vladan D Method for trading securities
US8073763B1 (en) 2005-09-20 2011-12-06 Liquidnet Holdings, Inc. Trade execution methods and systems
US10628883B2 (en) 2005-11-18 2020-04-21 Chicago Mercantile Exchange Inc. Detection of intra-firm matching and response thereto
EP1949323A1 (en) 2005-11-18 2008-07-30 Rts Realtime Systems Ag Algorithmic trading system, a method for computer-based algorithmic trading and a computer program product
US7702629B2 (en) * 2005-12-02 2010-04-20 Exegy Incorporated Method and device for high performance regular expression pattern matching
US7668849B1 (en) 2005-12-09 2010-02-23 BMMSoft, Inc. Method and system for processing structured data and unstructured data
WO2007074903A1 (ja) 2005-12-28 2007-07-05 Matsui Securities Co., Ltd. 有価証券即時決済システム、株式即時決済システム及び有価証券即時決済装置
US7954114B2 (en) * 2006-01-26 2011-05-31 Exegy Incorporated Firmware socket module for FPGA-based pipeline processing
US20070179935A1 (en) 2006-01-31 2007-08-02 Tsern-Huei Lee Apparatus and method for efficient data pre-filtering in a data stream
WO2007121035A2 (en) 2006-03-23 2007-10-25 Exegy Incorporated Method and system for high throughput blockwise independent encryption/decryption
US7539845B1 (en) 2006-04-14 2009-05-26 Tilera Corporation Coupling integrated circuits in a parallel processing environment
US7636703B2 (en) 2006-05-02 2009-12-22 Exegy Incorporated Method and apparatus for approximate pattern matching
US20060282369A1 (en) 2006-06-13 2006-12-14 White William P One touch hybrid trading model and interface
EP2036031A4 (en) 2006-06-16 2011-07-20 Itg Software Solutions Inc ALGORITHMIC TRADE SYSTEM AND METHOD
US7921046B2 (en) 2006-06-19 2011-04-05 Exegy Incorporated High speed processing of financial information using FPGA devices
US7840482B2 (en) 2006-06-19 2010-11-23 Exegy Incorporated Method and system for high speed options pricing
US7856545B2 (en) 2006-07-28 2010-12-21 Drc Computer Corporation FPGA co-processor for accelerated computation
US7856546B2 (en) 2006-07-28 2010-12-21 Drc Computer Corporation Configurable processor module accelerator using a programmable logic device
US20080086274A1 (en) 2006-08-10 2008-04-10 Chamberlain Roger D Method and Apparatus for Protein Sequence Alignment Using FPGA Devices
US8244718B2 (en) 2006-08-25 2012-08-14 Teradata Us, Inc. Methods and systems for hardware acceleration of database operations and queries
US20080071664A1 (en) 2006-09-18 2008-03-20 Reuters America, Inc. Limiting Counter-Party Risk in Multiple Party Transactions
US20080077793A1 (en) 2006-09-21 2008-03-27 Sensory Networks, Inc. Apparatus and method for high throughput network security systems
US7930314B2 (en) 2006-09-28 2011-04-19 Verint Americas Inc. Systems and methods for storing and searching data in a customer center environment
US8326819B2 (en) 2006-11-13 2012-12-04 Exegy Incorporated Method and system for high performance data metatagging and data indexing using coprocessors
EP2092419B1 (en) 2006-11-13 2020-01-01 IP Reservoir, LLC Method and system for high performance data metatagging and data indexing using coprocessors
US7660793B2 (en) 2006-11-13 2010-02-09 Exegy Incorporated Method and system for high performance integration, processing and searching of structured and unstructured data using coprocessors
US20080175239A1 (en) 2007-01-23 2008-07-24 Yipes Enterprise Services, Inc Multicast wide-area network for distributing data to selected destinations with limited or no replication
US8015099B2 (en) 2007-06-18 2011-09-06 Penson Worldwide, Inc. Order routing system and method incorporating dark pools
US20090076981A1 (en) 2007-09-18 2009-03-19 Stephen Richard Schonberg Apparatuses, methods and systems for a high density financial asset information display
US20090259598A1 (en) 2008-04-14 2009-10-15 Stevens Dale M John Graphical display of market depth in an order book
US8175946B2 (en) 2008-04-25 2012-05-08 Bloomberg Finance L.P. System and method for providing the execution probability of a limit order
US8374986B2 (en) 2008-05-15 2013-02-12 Exegy Incorporated Method and system for accelerated stream processing
US8788841B2 (en) 2008-10-23 2014-07-22 Samsung Electronics Co., Ltd. Representation and verification of data for safe computing environments and systems
CA3059606C (en) 2008-12-15 2023-01-17 Ip Reservoir, Llc Method and apparatus for high-speed processing of financial market depth data
FR2945394B1 (fr) 2009-05-08 2023-01-27 HPC Platform SAS Dispositif de traitement a tres faible latence de paquets de donnees propres a une application specifique.
WO2011006153A1 (en) 2009-07-10 2011-01-13 Itg Software Solutions, Inc. Systems, methods and computer program products for redirecting electronic trade orders
WO2011150346A2 (en) 2010-05-28 2011-12-01 Laurich Lawrence A Accelerator system for use with secure data storage
JP6045505B2 (ja) 2010-12-09 2016-12-14 アイピー レザボア, エルエルシー.IP Reservoir, LLC. 金融市場における注文を管理する方法および装置
US9047243B2 (en) 2011-12-14 2015-06-02 Ip Reservoir, Llc Method and apparatus for low latency data distribution
US10650452B2 (en) 2012-03-27 2020-05-12 Ip Reservoir, Llc Offload processing of data packets
US9990393B2 (en) 2012-03-27 2018-06-05 Ip Reservoir, Llc Intelligent feed switch
US20140180904A1 (en) 2012-03-27 2014-06-26 Ip Reservoir, Llc Offload Processing of Data Packets Containing Financial Market Data
US10121196B2 (en) 2012-03-27 2018-11-06 Ip Reservoir, Llc Offload processing of data packets containing financial market data
US11436672B2 (en) 2012-03-27 2022-09-06 Exegy Incorporated Intelligent switch for processing financial market data

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11259559A (ja) * 1998-03-12 1999-09-24 Nippon Steel Corp 金融情報処理システム
JP2003528411A (ja) * 2000-03-27 2003-09-24 ジ アメリカン ストック エクスチェンジ エルエルシー アクティブ運用型上場投資信託の日中純資産価値代用値の決定
JP2001283000A (ja) * 2000-03-29 2001-10-12 Hitachi Kokusai Electric Inc 情報表示方法及び情報表示システム
JP2002269343A (ja) * 2001-03-08 2002-09-20 Nri & Ncc Co Ltd 簿価・実現損益リアルタイム計算システム
JP2003036360A (ja) * 2001-07-25 2003-02-07 Hitachi Kokusai Electric Inc 情報表示システム
JP2003256660A (ja) * 2002-03-05 2003-09-12 Kabu.Com Securities Co Ltd リアルタイム情報通知システム及びリアルタイムの情報通知方法
WO2007127336A2 (en) * 2006-04-28 2007-11-08 Towsend Analytics, Ltd. Order management for electronic securities trading

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSNB200001278001; 安達 智彦: 'よくわかる 金融先物取引入門' よくわかる 金融先物取引入門 第1版, 19970830, p.113-115,221-227, 日本実業出版社 *
JPN6013036612; 安達 智彦: 'よくわかる 金融先物取引入門' よくわかる 金融先物取引入門 第1版, 19970830, p.113-115,221-227, 日本実業出版社 *

Also Published As

Publication number Publication date
JP5586477B2 (ja) 2014-09-10
WO2009089467A3 (en) 2009-12-30
WO2009089467A2 (en) 2009-07-16
CA2707044A1 (en) 2009-07-16
US20090182683A1 (en) 2009-07-16
EP2243112A4 (en) 2012-09-26
US20190205975A1 (en) 2019-07-04
US10229453B2 (en) 2019-03-12
CA2707044C (en) 2019-02-12
EP2243112A2 (en) 2010-10-27

Similar Documents

Publication Publication Date Title
JP5586477B2 (ja) 低遅延バスケット計算のための方法およびシステム
US20230214927A1 (en) System and method for processing composite trading orders
US20190156418A1 (en) System and method for processing composite trading orders at a client
US20190340685A1 (en) Blockchain-based asset and immutable real-time intelligent securities platform
JP5871619B2 (ja) 金融市場深度データの高速処理のための方法および装置
JP5492767B2 (ja) 高速なオプション価格付けの方法およびシステム
KR102447254B1 (ko) 고속 거래 체결을 지원하는 거래소 운영 방법 및 시스템
US20190188790A1 (en) Apparatus, system, and method for intelligent choice in currency
US20220405841A1 (en) Method and system of algorithmic metals testing and composition risk algorithms
US20230020590A1 (en) Method and system of commodity trading and risk management
CN113450216A (zh) 用于量化交易的数据处理方法、系统、设备和存储介质
KR102611819B1 (ko) 하이브리드 월렛 기반의 어카운트 솔루션을 제공하는 서버, 방법 및 컴퓨터 프로그램
KR102664348B1 (ko) 암호화폐 지갑 주소를 클러스터링하는 방법 및 이를 위한 장치
Blose et al. Overnight versus day returns in gold and gold related assets
CN113222742A (zh) 基于区块链的货币基金快速赎回份额共享方法及装置
CN115099974A (zh) 一种银行对客商品远期交易系统及交易方法
CN112036942A (zh) 一种债券累计平均成本计算方法、装置、设备和介质
CN113298379A (zh) 债券业绩归因方法、系统、设备和介质
CN115082238A (zh) 虚拟资源增长量的确定方法和装置、存储介质、电子装置
JP2007265156A (ja) 入出金経路分析システム及びプログラム
AU2014268143A1 (en) System and method for processing composite trading orders

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120106

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130104

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130719

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130730

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20131028

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20131105

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20131120

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140130

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140624

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140722

R150 Certificate of patent or registration of utility model

Ref document number: 5586477

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250