(58)【調査した分野】(Int.Cl.,DB名)
各々が、複数の実体のそれぞれ異なる一の実体により制御され関連付けられている、複数の処理デバイスを用いて、中央サーバインフラストラクチャの指揮下、金融アルゴリズムを含むコンピュータタスクを行う方法であって、
前記複数の処理デバイスの各々が、前記コンピュータタスクの異なるサブタスクを実行して複数の解決法を生成する段階と、
前記中央サーバインフラストラクチャが、前記複数の解決法を組み合わせて、前記コンピュータタスクのための結果を生成する段階と、
前記複数の実体に関連付けられた前記複数の処理デバイスによって、前記サブタスクに割り当てられたCPU動作の指標に基づいて、前記中央サーバインフラストラクチャが、前記複数の実体の各々に対する対価額を決定する段階と、
前記対価額に従って、前記複数の実体に対価が与えられる段階と
を備え、
前記中央サーバインフラストラクチャは、遺伝的アルゴリズムの演算によって経た遺伝子の世代数を、経時的に、前記複数の処理デバイスに知らせる方法。
前記複数の処理デバイスのうち所与の1つが、前記中央サーバインフラストラクチャへ送られる解決法の最小適合度レベルを前記中央サーバインフラストラクチャから学ぶ段階と、
前記最小適合度レベルを超える適合度レベルを有する前記所与の処理デバイスの解決法のみが前記中央サーバインフラストラクチャに送られる段階と
を更に備える請求項1から9のいずれか一項に記載の方法。
各々が、複数の実体のそれぞれ異なる一の実体により制御され関連付けられている、複数の処理デバイスを用いて、コンピュータタスクを実行し、中央サーバインフラストラクチャを有するネットワークコンピュータシステムであって、
前記コンピュータタスクの複数のサブタスクに応じて、前記複数の処理デバイスにより生成された複数の解決法を組み合わせて、前記コンピュータタスクのための結果を生成するモジュールと、
前記複数の実体に関連付けられた複数の処理デバイスによって、前記複数のサブタスクに割り当てられたCPU動作の指標に基づいて、前記複数の実体における、各々の実体に対する対価額を決定するモジュールと、
遺伝的アルゴリズムの演算によって経た遺伝子の世代数を、経時的に、前記複数の処理デバイスに知らせるモジュールと
を備え、
前記コンピュータタスクが金融アルゴリズムを表すネットワークコンピュータシステム。
【発明を実施するための形態】
【0025】
本発明の一実施形態においては、高度なソフトウェアベースの金融トレンドおよびパターン分析を行うコストを、このような分析を達成するのに必要な処理能力を、世界中の多数(例えば数千、数百万等)の個々のまたはクラスター化されたコンピュータノードに対して分散させ、インターネットに対してブロードバンド接続により接続された数百万の中央処理装置(CPU)またはグラフィック処理装置(GPU)を活用することにより、顕著に低減させる。以下の記載はCPUに関しているが、本発明の実施形態は同様のGPUにも適用可能である。
【0026】
ここで用いられる用語は以下の通りである。
・システムは、ハードウェアシステム、ソフトウェアシステム、または、ハードウェア/ソフトウェアシステムの組み合わせのことである。
・プロバイダは、本発明の分散型ネットワークコンピュータシステムに参加することに同意し、1以上の中央処理装置(CPU)を所有、維持、運営、管理、または制御する個人、会社、または組織を含む。
・ネットワークは、中央または発生/終端コンピュータインフラストラクチャおよび任意の数Nのプロバイダを含む幾らかの要素により形成され、各プロバイダは、それぞれが任意の数の処理デバイスを有する1以上のノードと関連づけられている。各処理デバイスは、少なくとも1つのCPUおよび/またはホストメモリ(例えばDRAM)を含む。
・CPUは、ネットワークの一部を形成する1以上のノードをサポートする。ノードは、コンピュータタスクを実行する機能を持つネットワーク要素である。マルチコアプロセッサの複数のCPU等のように、単一のノードが複数のCPU上に駐在してよい。
・ブロードバンド接続は、ケーブル、DSL、WiFi、3G無線、4G無線、または、CPUをインターネットに接続し、CPU同士を互いに接続するために開発される任意のその他の既存または将来の有線または無線の規格として定義される。
【0027】
図1は、本発明の一実施形態によるネットワークコンピュータシステム100のハイレベルブロック図の一例を示す。図中においてネットワークコンピュータシステム100は、4つのプロバイダ120、140、160、180、および、1以上の中央サーバインフラストラクチャ(CSI)200を含む。プロバイダ120の一例としては、プロバイダ120が所有、運営、維持、管理、または制御する幾らかのノードをホストするCPUのクラスタが含まれる。このクラスタは、処理デバイス122、124、および126を含む。本例において、処理デバイス122はラップトップコンピュータであり、処理デバイス124および126はデスクトップコンピュータである。同様に、プロバイダ140の一例としては、処理デバイス142(ラップトップコンピュータ)および、プロバイダ120が所有、運営、維持、管理、または制御するノードをホストする処理デバイス144(ハンドヘルドデジタル通信/コンピュータデバイス)に配置される複数のCPUが含まれる。一例として示されるプロバイダ160は、処理デバイス162(ラップトップコンピュータ)に配置されるCPUを含み、一例として示されるプロバイダ180は、処理デバイス182(セルラー式/VoIPハンドヘルドデバイス)に配置されるCPUを含む。本発明によるネットワークコンピュータシステムは、任意の数Nのプロバイダを含んでよく、各プロバイダは、1つの、またはそれ以上の数のノードと関連付けられ任意の数の処理デバイスを含んでよいことが理解されよう。各処理デバイスは、少なくとも1つのCPUおよび/またはホストメモリ(DRAM等)を含む。
【0028】
ブロードバンド接続により、プロバイダがCSI200に接続され、本発明のコンピュータ演算が実行される。これら接続は、ケーブル、DSL、WiFi、3G無線、4G無線、または、CPUをインターネットに接続するために開発される任意のその他の既存または将来の有線または無線の規格であってよい。幾らかの実施形態では、
図1に示すように、さらにノード同士で接続したり、情報を渡したりする機能を有していてもよい。
図1のプロバイダ140、160、および180は、互いに直接通信を行い、情報を渡す。本発明によるクライアントソフトウェアがCPU上で実行可能な場合には、任意のCPUを利用することができる。幾らかの実施形態では、マルチクライアントソフトウェアがマルチCPUデバイスに命令を提供し、これらデバイスで利用可能なメモリを利用する。
【0029】
一実施形態では、ネットワークコンピュータシステム100は、金融アルゴリズム/分析を実装し、取引方針を計算する。これを実行するべく、アルゴリズム/分析に関連付けられたコンピュータタスクを、複数のサブタスクに分割し、各サブタスクが、それぞれ異なる一のノードに割り当てられ処理をゆだねられる。これらノードが得た演算結果は、CSI200により収集され組み合わせられ、懸案のタスクに対する解決法が得られる。各ノードが受信するサブタスクには、関連するアルゴリズムまたは演算コード、アルゴリズムが実装すべきデータ、および、関連するアルゴリズムおよびデータを用いて解決する対象である1以上の課題/問題が含まれていてよい。従ってこれら実施形態では、CSI200は、ノードに配置されている複数のCPUが提供する部分的な解決法同士を受信して、組み合わせることで、要求されている演算問題の解決法を生成してもよく、これについては以下に詳述する。ネットワークコンピュータシステム100が処理中のコンピュータタスクが金融アルゴリズムに関するものである場合、複数のノードが供給する部分的な解決法同士を統合することで得られる最終結果は、1以上の資産の取引に関する助言に関していてよい。
【0030】
進化アルゴリズムの拡張は、2次元で行われてよい、つまり、プールサイズ、および/または、評価面で行われてよい。進化アルゴリズムでは、プールが大きいほど、あるいは、遺伝子集団が大きいほど、検索空間における多様性も大きくなる。これは、より適合度の高い遺伝子を見つける可能性が高くなることを意味する。こうするためには、プールを多くの処理クライアント間で分散するという方法が考えられる。各プロセッサは、自身の遺伝子プールを評価して、最も適合度の高い遺伝子をサーバに送るが、これについては後述する。
【0031】
本発明の一実施形態によると、金融的な報酬は、規制上の要件に従って、成功したノードに関連付けられた成功したアルゴリズム(1または複数)が示唆する取引方針を実行することにより生じる。アルゴリズム(例えば遺伝子アルゴリズムまたは実施形態で実装される後述するAIアルゴリズム)の遺伝子または実体は、考えられうるうちの最高の解決法を目指して、および最良の結果を得るべく、競合するよう構成されてよい。これらアルゴリズムでは、各プロバイダ(例えば
図1のプロバイダ120、140、160、および180)は、無作為に演算用の完全なアルゴリズム(コード)を受け取り、1以上のノードIDを割り当てられる。一実施形態では、各プロバイダは、さらに、経時的に、自身に関連するアルゴリズムに対して知識および決定を追加することができる。アルゴリズムは進化することができ、その幾らかは他のものよりも成功することもある。言い換えると、当初無作為に割り当てられたアルゴリズムの1以上が、他のものよりも高い知性レベルを得て、成功したアルゴリズムとなり、取引に関する助言を実行するのに利用することができる場合がある。成功したアルゴリズムを生成するノードのことを、成功したノードと称する。ノードIDは、成功したアルゴリズムをそれらのノードまで辿り、成功したノードを特定するのに利用される。CSI200は、最高のアルゴリズムを選択することにより、または、複数のCPUから得られた部分的なアルゴリズム同士を組み合わせることにより、アルゴリズムを構成してよい。構成されたアルゴリズムは、成功したアルゴリズムのみから定義されてもよいし、複数のノードまたはCPUが生成した部分的なアルゴリズム同士の組み合わせにより定義されてもよい。構成されたアルゴリズムは、取引を実行するのに利用される。
【0032】
図2に示すような幾らかの実施形態では、フィードバックループを利用して、複数のCPUに、自身のアルゴリズムの進化の最新情報を与える。これらには、自身に関連するCPUが計算したアルゴリズムまたは関連プロバイダが関心を持つ資産についてのアルゴリズムが含まれてよい。これは、経時的なアルゴリズムコンポーネントの向上についてのウィンドウに類似しており、該アルゴリズムにより動作しているプロバイダ数、経た世代数等の情報を提供する。これは、共同作業に参加する経験をさせることから、自身の演算能力の共有についてさらなる動機付けをプロバイダに対して与える。
【0033】
幾らかの実施形態では、本発明の個々のCPUまたはネットワークコンピュータシステムが実装するアルゴリズムは、ある資産または資産群のリスク調節した後の業績を計測し、この計測は、金融業界では通常、資産または資産群のアルファと称されている。アルファは、通常、安全保障基金またはミューチュアルファンド等の超過リターン等の資産を、S&P500の超過リターンに回帰することで生成される。別のよく知られているベータというパラメータは、リスク(勾配係数)を調節するのに利用され、アルファは切片である。
【0034】
例えば、ミューチュアルファンドが25%のリターンを有し、短期金利が5%(超過リターンが20%)であると仮定する。同じ時期に、マーケットの超過リターンが9%であるとする。さらに、ミューチュアルファンドのベータが2.0であると仮定する。言い換えると、このミューチュアルファンドは、S&P500より2倍のリスクを有することになる。リスクを想定して予想される超過リターンは2X9%=18%となる。実際の超過リターンは20%である。故に、アルファは2%または200ベーシスポイントとなる。アルファは、ジェンセン指標(Jensen Index)としても知られており、以下の式で表される。
【数1】
上の式において、n=観察数(例えば36ヶ月)、b=ファンドのベータ、x=マーケットのリターン率、および、y=ファンドのリターン率である。
【0035】
人口知能(AI)または機械学習グレードアルゴリズム(Machine Learning-grade algorithms)を利用して、トレンドを知り分析を行う。AIアルゴリズムの例には、識別器、エキスパートシステム、事例に基づく推論、ベイジアンネットワーク、行動ベースAI、ニューラルネットワーク、ファジーシステム、進化的計算法、および、ハイブリッド知的システムが含まれる。これらアルゴリズムの簡単な説明は下記のウィキピディアでなされている。
【0036】
識別器は例により調節することのできる機能である。幅広い範囲の識別器が利用可能であり、各々に長所短所がある。最も幅広く利用されている識別器は、ニューラルネットワーク、サポートベクターマシン、k最近傍アルゴリズム、ガウス混合モデル、単純ベイズ分類器、および決定木である。エキスパートシステムでは、結論に到達するのに推論能力を利用する。エキスパートシステムでは、大量の既知の情報を処理して、それに基づいて結論を得る。
【0037】
事例に基づく推論システムでは、事例と称される組織化されたデータ構造における問題と答えのセットが記憶されている。事例に基づく推論システムは、課題とともに提示されると、新たな課題に最も密接に関連している事例を自身の知識を基に見つけ、その解決法を適切な修正とともに、出力として提示する。行動ベースAIは、AIシステムを手動で構築するモジュール方式の方法である。ニューラルネットワークは、非常に強力なパターン認識機能を有する訓練可能なシステムである。
【0038】
ファジーシステムは、不確実性下の推論技術を提供し、現代の産業および消費者製品制御システムで幅広く利用されている。進化的計算法では、人口、変異、および、最も適したものの生き残りといった生物学に触発されたコンセプトを利用して、課題に益々適した解決法が生成されてゆく。これら方法は、最も顕著には、進化アルゴリズム(例えば遺伝的アルゴリズム)および群知識(蟻アルゴリズム)に分けられる。ハイブリッド知的システムは、上述のものの任意の組み合わせである。AI等の他のアルゴリズムを利用することもできる。
【0039】
下記のプロバイダに関連してノード間で交換される金融データの安全性を保護しながらこのような分散を可能とするべく、且つ、成功するパターンの整合性を保つべく、いかなるノードも、i)トレンド/パターン計算全体またはその一部を提起しているか、および、ii)ノードの計算の結果が、システムの金融取引方針に関する決定、該取引方針上での実行に活用されるか、を知らせられない。
【0040】
アルゴリズムの処理は、取引オーダの実行から切り離される。取引オーダの取引および実行に関する決定は、インフラストラクチャがクライアント‐サーバまたはピア‐ツー‐ピアの格子演算モデルとして組織化されるか否かに応じて、1または複数の中央サーバまたは終端サーバにより行われる。取引に関する決定は、プロバイダのノードでは行われない。プロバイダは、ここではノード所有者またはノードとも称されるが、以下に詳述するように、本発明の分散型ネットワークに参加することに同意し、1以上のCPUを所有、維持、運営、管理、または制御する個人、会社、または組織のことである。プロバイダは、故に下請け企業として扱われ、法的または金銭的にいかなる取引の責任も負わない。
【0041】
本発明におけるプロバイダは、ここでは、合意条件を統括するプロバイダライセンス契約(PLA)と称される書類に署名することで、自身のCPUの処理能力およびメモリ容量をリースし、利用可能とする。PLAは、本発明により各プロバイダが自身のCPUを共有させることに同意する最低限の要件を規定し、秘密保持および責任に関する事項を規定する。PLAは、関連プロバイダがエンドユーザではなく、自身のCPUの演算処理の結果から利益を得ないことを規定している。PLAはさらに、自身の演算インフラストラクチャをリースする際に報酬を受け取るために満たすべき条件を規定している。
【0042】
プロバイダは、自身のCPU能力およびメモリ容量を本発明のネットワークシステムに対してアクセス可能とさせることで、対価を受ける。対価は、定期的(月ごと)または不定期的に支払われてよく、各期間で同じ額であっても、期間ごとに異なった額であってもよく、(利用可能性を決定する)ピン機構により計測されうる最小のコンピュータ利用可能性/利用率の閾値に関していてよく、または、(利用率を決定するべく)利用されるCPUサイクルで、または、CPU動作の他の可能性ある指標で計算されてよい。一実施形態では、利用可能性/利用率の閾値に達しない場合に、対価を支払わないこともある。これにより、(i)プロバイダに対して定期的に利用可能なCPUに対してライブでブロードバンド接続を維持する動機付けを与え、(ii)プロバイダが自身の利用可能なCPUの能力を他のタスクに利用させない動機付けを与える。さらに、対価は、CPU一台について支払われることで、プロバイダに対して、本発明に利用可能なCPUの数を増やさせる動機付けを与えることができる。CPUファームを本発明に対して提供したプロバイダに対してはさらにボーナスを与えてもよい。他の金銭ではない形の対価または動機付けスキームは、単独で利用することもできるが、金銭ベースの対価スキームと組み合わせて利用することもでき、これについては後述する。
【0043】
プロバイダは、本発明のネットワークシステムに登録および参加すると、自身のCPU型および特性に適しており、自動インストールするよう、または、プロバイダによりインストールされるよう構成されたクライアントソフトウェアをダウンロードする。クライアントソフトウェアは、スクリーンセーバ等のサービスの簡単な視覚表示を提供する。この表示は、プロバイダに対して、各期間に稼げる金額を示す。この表示は例えば、金銭登録機に小銭が入るような形態をとってもよい。これにより、本発明のネットワークシステムに参加することで享受される利益を視覚的に示す効果が高まる。クライアントソフトウェアは背景で運用されるので、コンピュータでは認知される効果が感じられない。
【0044】
クライアントソフトウェアは、関連プロバイダのインタラクティブな体験を高めるよう定期的に更新されてよい。これを達成するべく、一実施形態では、「クラウドソーシング」知識モジュールをクライアントソフトウェアに配置して、個人に対して、例えばマーケット予測させたり、本発明の学習アルゴリズムの1以上の側面である全体像を活用(to leverage aggregate perspectives)させたりする。
【0045】
よりインタラクティブな体験を発展させる一貫として、プロバイダは自身のCPUに分析させたい資産(ファンド、商品、株式、通貨等)を選択する機会を与えられてもよい。このような選択は、プロバイダに提出される資産のリストまたはポートフォリオから無料(on a free basis)で行うことができるようにしてよい。
【0046】
一実施形態では、スクリーンセーバ/インタラクティブなクライアントソフトウェアを定期的に1以上の資産についてのニュース(会社報、株価チャート等)で更新する。プロバイダに対するこのような提示の「好感度を与える」効果は、特に経験豊富な投資家ではない人々には重要である。本発明をダウンロードして、例えば関心のある株式を幾らか選択することで、プロバイダは、金融界に関与している気分を味わうことができる。本発明の高度に見える金融スクリーンセーバは、金融に携わっているという印象(本発明のウィルスマーケティングコンセプトを高める役割を果たす「ハロー」効果)を高めるよう設計されている。
【0047】
プロバイダは、本発明により金銭を得、得られる報償に満足し始めると、友人、同僚、家族等に対して、コンピュータインフラストラクチャに対する現在の投資から元をとるまたは報奨を受ける機会があることについて知らせるようになる。これにより、サービスに対して貢献するノードの数は恒常的に増え続けることとなり、この結果、より高い処理能力およびより高い業績を達成することができる。業績が高いほど、リクルートに費やせる資源が増え、より多くのプロバイダの加入に繋がる。
【0048】
幾らかの実施形態では、以下に示すように、本発明の会員加入速度およびウィルスマーケティングの側面を高めるような動機付けを与える。例えば、一実施形態では、既存のプロバイダが新たなプロバイダを紹介した際に紹介料を支払う紹介システムを設けることもできる。プロバイダはさらに、周期的なくじ引きメカニズムに参加する権利を与えられ、任意の期間中にCPU容量の最小閾値にあたる量を提供した各プロバイダに対して抽選型のくじ引きに参加させるようにしてもよい。抽選の当選者には、例えばボーナス金、その他の形態の報酬を与えられる。他の形態の報酬には、例えば、(i)アルゴリズム性能を追跡して、成功したノード(任意の期間内に最も利益を上げたアルゴリズムを構築したと判断されるノードのこと)を持つので成功したアルゴリズムを有するプロバイダに対して、報酬を与えること、(ii)成功したアルゴリズムのサブセットを追跡して、これらサブセットそれぞれをIDでタグ付けして、成功したノードを特定し、コンピュータ生成アルゴリズムサブセットのIDがその成功したアルゴリズムに見つかる全てのプロバイダに対して報酬を与えること、および、(iii)任意の期間において最高の利用可能性を提供したCPU(1または複数)を追跡して報酬を与えること、が含まれる。
【0049】
幾らかの実施形態では、個人プロバイダが他の人とともに加入した場合、あるいは、他の人に「プロバイダチーム」を形成する勧誘をして、ボーナス報奨金を勝ち得る可能性を高めた場合、奨励金を与える。他の実施形態では、「クラウドソーシング」知識から正しいまたは最良のものを予測したことに対してボーナスを与えるといったゲームプランをボーナスの基礎として利用してもよい。
【0050】
幾らかの実施形態では、口座および金銭処理に纏わるロジスティックを最小限に抑えるべく、ウィルス預金口座を各プロバイダに提供する。各口座は、定期的に入金され(例えば毎月等)、上述のようにプロバイダに対して報酬金が支払われる。いかなる預金口座への入金も、プロバイダが自身の物理的な銀行への銀行振替を要求するまでは実際の金銭流出がないような、記帳された費用であってよい。
【0051】
プロバイダは、他の様々な方法で自身のCPUの共有利用について報酬を与えられてよい。例えば、プロバイダは、金銭の代わりに取引に関する助言(trading tip)を提供されてもよい。取引に関する助言には、特定の株式の、または、他の資産の売買を促すものを含む。取引助言を提供することについての現行の法律により、取引に関する助言は、例えば、無作為に与えられても、本発明を利用する実体が取引していない、または、取引するつもりのない資産のリストから与えられてもよい。このような取引に関する助言は、さらには、プロバイダがグループとしてあるいは個人的に所有している資産に対して提供されてもよいし、上述したように関心を示した資産に対して提供されてもよい。幾らかの実施形態では、維持費は、プロバイダの口座に関する処理について支払いが可能なようにプロバイダの口座に対して請求される。
【0052】
プロバイダのCPU上にクライアントソフトウェアがあることにより、マーケティング業者および広告業者に対して宣伝する機会を与える。高度に対象を絞られた宣伝は、プロバイダの関心のある分野について知ることにより可能となる(例えば、資産タイプ、特定の会社、ファンド等)。加えて、CPUクライアントは、例えばニュースのブロードキャスト、ニュース速報、RSS提供、ティッカーテープ、フォーラムおよびチャット、ビデオ等)のメッセージおよび媒体配信の機会を提供してもよい。全てのこれらサービスは、料金を支払うことにより利用可能であってよく、プロバイダの口座から直接差し引かれてよい。スクリーンセーバの代わりに利用され、背景で実行される関連ルーチンを含むインタラクティブなフロントエンドのアプリケーションにより、この機能が提供される。
【0053】
取引信号は、プロバイダおよび非プロバイダに対して、現行の法律および規制によって、個人ベースまたは組織ベースで売られてよい。取引信号は、本発明により実行されるトレンドおよび分析処理により生成される。クライアントソフトウェアは、最適な方法でこのような信号を配信するようにカスタマイズされてよい。サービス料金は、プロバイダの口座に対して自動的に請求されてよい。例えば、プロバイダは、月額ベースで支払う契約の場合には、毎月所定の数の株式に関する情報を受け取ってよい。
【0054】
幾らかのAPI、アプリケーションプログラミングインタフェースコンポーネントおよびツールが、第三者のマーケットへの参加者(例えばミューチュアルファンドまたはヘッジファンドのマネージャ)に対して提供されて、本発明が提供する多くの利益を享受することができる。第三者の参加者は、例えば、(i)本発明が提供する取引モデルで取引すること、(ii)本発明が提供するソフトウェア、ハードウェア、および処理インフラストラクチャを利用して自身の取引モデルを構築して、他の金融機関との間でこれらモデルを共有したり、他の金融機関に対してこれらモデルを売却したりすることができる。例えば、投資銀行は、Z時間の間、本発明を利用する実体から、例えば石油の将来に関する最新のトレンドおよび取引パターンを判断するべくWドルで、X百万の演算サイクルおよびY個のプログラミングルーチン一式(AIベースの実行可能ソフトウェア)をリースしたとする。このように、本発明は、固有の強力なトレンド/パターン分析アーキテクチャを活用する包括的な取引方針決定ツールおよび実行プラットフォームを提供する。
【0055】
プロバイダの口座は、さらに、1以上のオンライン証券会社との間で口座を開設するための取引口座または資金源として利用することもできる。紹介料はこのようにして、顧客の既知のベースを提供することによる見返りとして、オンライン証券会社から収集することができる。本発明のインフラストラクチャ(ハードウェア、ソフトウェア)APIおよびツール等は、さらに、遺伝学、化学工学、経済学、シナリオ分析、顧客行動分析、気象分析、防衛および諜報分野といった他の分野における同様に複雑なコンピュータタスクを解決する目的に拡張されてもよい。
<クライアント‐サーバ構成>
【0056】
本発明の一実施形態によるネットワークは、少なくとも5個の要素を含み、そのうち3つの要素は(以下に示すi、ii、およびiii)、本発明の様々な実施形態によるソフトウェアを実行する。これら5つの要素には、(i)中央サーバインフラストラクチャ、(ii)オペレーティングコンソール、(iii)ネットワークノード(または)ノード、(iv)実行プラットフォーム(その一部は通常プライムブローカーに属する)、および(iv)通常はプライムブローカーまたは金融情報供給会社に属するデータ供給サーバが含まれる。
【0057】
図3を参照すると、CSI200は、1以上のコンピュータサーバを含む。CSI200は、ノードの処理動作の統括者として、および、その管理者として機能するよう構成される。CSI200のこの「管制塔」的な役割は、どのノードが演算を行い、どの順序で行い、懸案になっている様々な課題およびデータのうちのどの種類の課題およびデータに対して演算を行うかといった演算処理の管理的な側面といった両面からの理解可能である。CSI200の処理はさらに、ノードが演算を要求される演算課題のフォーマッティング、特定の性能閾値と比したノードの演算結果の評価、および、結果が適切であるとされた場合に処理の続行中止を判断することといった演算課題の決定および解決からの側面からも理解可能である。
【0058】
CSI200は、ノードの心拍および定期的な要求をリッスンして、ネットワークの演算利用可能性を理解し管理するログサーバ(不図示)を含んでよい。CSI200はさらに、データフィード102、104、および106、および、他の外部情報源にアクセスして、関連情報(つまり、現在の課題を解決するのに必要な情報)を取得してよい。課題およびデータのパッケージングがCSI200で行われてよい。しかし、ノードは、法的および実際上可能な限りにおいて、自身の情報収集用に構成されてもいるが、これについては後述する。
【0059】
本実施形態のCSI200は単一のブロックとして、且つ、単一の機能的実体として示されているが、幾らかの実施形態のCSI200は分散型のプロセッサであってよい。CSI200はさらに、階層的、連合型のトポロジーの一部であってよく、ここではCSIは実際にはノードになりすまして(以下を参照)、クライアントとして親のCSIに接続することができる。
【0060】
幾らかの実施形態によると、例えば遺伝的アルゴリズムを利用する際、CSIは、段階的システムとして構成され、さらに連合型のクライアント‐サーバアーキテクチャと称される。これらの実施形態では、CSIは、遺伝的アルゴリズムが達成する殆どの結果を維持する。幾らかのノードを含む第2のコンポーネントは、遺伝的アルゴリズムを処理して、以下で詳述する「遺伝子」を生成するタスクを割り当てられる。第3のコンポーネントは遺伝子を評価する。これを達成する目的から、第3のコンポーネントは、第2の段階から形成され訓練された遺伝子を受け取り、解決法空間の部分においてそれらを評価する。これら評価を第2の段階で統合して、この特定の時点において、CSIに維持される遺伝子が達成する最小性能レベルが何であるかにより閾値一式に対して計測を行う。閾値とよく似た遺伝子(またはその一部)は、システムの第3の段階でCSIに提出される。この実施形態では、以下のアクション12で示すようにCSIが評価を行わなくてよく、システムのより効率的な動作が可能となる。
【0061】
本発明による段階的なシステムに関しては幾つもの利点がある。第一に、クライアントサーバ通信の拡張性が向上する、というのは、複数の仲介サーバがあるので、ノード数を増やすことができるからである。第二に、これら結果をメインサーバに転送する前に、連合型のサーバにおいて結果を異なるレベルでフィルタリングすることで、中央サーバへの負荷を減らすことができることである。つまり、ノード(クライアント)は、中央サーバと通信する自身のローカルサーバと通信するので、中央サーバに対する負荷が低減されるのである。第三に、任意のタスクをネットワークの特定のセグメントに分配することができる。この結果、現在のタスクに対して割り当てる処理能力を制御するべくネットワークの選択された部分を特化することができる。これらの実施形態では任意の数の段階を利用することができる。
<オペレーティングコンソール>
【0062】
オペレーティングコンソールは、システムとインタラクトする人間のオペレータに必要な人間‐機械のインタフェースコンポーネントである。オペレーティングコンソール220を利用することで、人間のオペレータは、アルゴリズムによる解決を望む特定の課題の決定要素を入力することができ、利用を望むアルゴリズムの種別を選択することができ、または、アルゴリズムの組み合わせを選択することができる。オペレータは、ネットワークの大きさを調節することができる(特に、任意の処理タスクに対して確保しておきたいノード数を調節することができる)。オペレータは、アルゴリズムの目的および性能閾値を入力することができる。オペレータは、任意の時点において処理の結果を視覚化し、これら結果を幾らかのツールを利用して分析して、この結果生じる取引方針をフォーマッティングして、取引シミュレーションを実行することができる。コンソールはさらに、ネットワークの負荷、故障、およびフェイルオーバの発生を追跡する監視的な役割を果たす。コンソールはさらに、任意の時点で利用可能な容量についての情報を提供し、ネットワークの故障、過負荷または速度上の問題、安全性の問題について警告を出し、過去の処理ジョブの履歴を取る。オペレーティングコンソール2s0は、実行プラットフォーム300とインタフェースして、取引方針を実行する。取引方針のフォーマッティングおよびその実行は、人による介入無しに自動で行われる、または、人による点検承認処理により動作を制御される。オペレーティングコンソールは、人間のオペレータに、上述のうちいずれかを選ばせる。
<ネットワークノード>
【0063】
ネットワークノード、またはノードは、現在の課題を演算する。5つのこのようなノード(つまり、ノード1、2、3、4、および5)を
図1に示す。ノードは、CSI200に自身の処理結果を戻す。この結果は、一部または全体であってよい進化アルゴリズム(1または複数)、および、該アルゴリズムの動作状況を示すデータであってよい。ノードは、現行の法律で許可され、現実的である場合に、さらにデータフィード102、104、106、および他の外部情報源にアクセスして、解決を要求されている課題に関連する情報を取得することができる。システムの高度な段階では、進化したノードは、インタラクティブ体験の形式でプロバイダにフィードバックを行うさらなる機能を提供することにより、プロバイダが関心のある資産、金融トレンドに関する意見等を入力することを可能とする。
<実行プラットフォーム>
【0064】
通常、実行プラットフォームは第三者が運営するコンポーネントである。実行プラットフォーム300は、オペレーティングコンソール220から送られた取引方針を受け取り、例えばニューヨーク証券取引所、ナスダック、シカゴマーカンタイル取引所等の金融マーケットに関して要求された処理を実行する。実行プラットフォームは、オペレーティングコンソール220から受け取った命令を、取引オーダに変換して、これら取引オーダのステータスに関して任意の時点において助言して、取引オーダが実行されると、オペレーティングコンソール220およびその他の「バックオフィス」システムに報告する(取引の価格、大きさ、オーダに適用されるその他の制約または条件等の取引オーダの詳細を含む)。
<データ供給サーバ>
【0065】
データ供給サーバは、通常、システムの第三者が運営するコンポーネントでもある。データ供給サーバ102、104、106等のデータ供給サーバは、リアルタイム且つ過去の金融データを幅広い範囲の取引資産(例えば、株式、債券、商品、通貨、および、選択売買権、先物契約等のそれらのデリバティブ等)に提供する。これらは直接CSI200とインタフェースされる、または、ノードとインタフェースされてよい。データ供給サーバは、さらに、アルゴリズムにより自身の処理の「条件」または「見通し(perspective)」として利用されうる金融指標(MACD、ボリンジャーバンド、ADX,RSI等)等のある範囲の技術分析ツールへのアクセスを提供する。適切なAPIを利用することにより、データ供給サーバは、アルゴリズムに技術分析ツールのパラメータを変更させて、条件および見通しの範囲を広げさせることができるので、アルゴリズムの検索空間を大きくすることができる。このような技術指標は、さらに、システムによりデータ供給サーバを介して受信された金融情報に基づいて計算することもできる。データ供給サーバはさらに、非構造化または定性的情報を含み、アルゴリズムがこれら情報を利用することで、システムは自身の検索空間で、構造化データおよび非構造化データを考慮に入れることができる。
<クライアント‐サーバ構成‐データおよび処理フロー>
【0066】
以下は、本発明の1つの例示的な実施形態によるデータおよび処理フローの一例である。以下に示す様々なアクションは、
図2を参照して示されている。矢印とそれに関するアクションは、同じ参照番号で識別される。
<アクション1>
【0067】
人間のオペレータが、オペレーティングコンソールを用いて、課題空間および該課題空間を解決する1以上のアルゴリズムを選択する。オペレータは、オペレーティングコンソール220を用いて、CSI200のアクション1に関する以下のパラメータを供給する。
【0068】
<目的>
目的は、処理から生じることが予期される取引方針の種別を定義して、適宜、アルゴリズムの性能の閾値を設定することである。一例を以下に示す。取引方針は、特定のインストラメント(株式、商品、通貨、指標、選択売買権、先物契約、それらの組み合わせ等)を「買い」「売り」「空売り(sell short)」、「売り決済(buy to cover)」「持ち(hold)」するべく発行されてよい。取引方針は、てこ入れ(leverage)を可能とする。取引方針は、取引されるインストラメントについて合意された量を含んでよい。取引方針は、金融上のインストラメントを夜間保持することを可能としてよく、その位置づけが日中の特定の時刻に自動的に清算されることを要求するようなものであってよい。
【0069】
<検索空間>
検索空間は、アルゴリズムで許可されている条件または見通しを定義する。例えば、条件または見通しには、(a)金融上のインストラメント(株式、商品、先物契約等)、(b)「ティック」(特定の時点におけるインストラメントのマーケット価格)、取引量、かつ株式の場合には空売り総額、先物契約の場合には建玉等の特定のインストラメントについての未加工のマーケットデータ、(c)S&P500株価指数データ、部門別のNYSE金融株指数等の株価指数(部門特定の指標)等の一般マーケットデータ等が含まれる。さらには、(d)「テクニカル指標」等の未加工のマーケットデータのデリバティブ(数学的変換)を含めてもよい。2008年6月4日付のウィキペディアの「テクニカル分析」によると、一般的なテクニカル指標には以下が含まれる。
・「蓄積/分配指標」とは、その日の範囲の大引け(close)に基づく
・「平均レンジ幅(ATR)」とは、その日の取引範囲の平均である。
・「ボリンジャーバンド」とは、価格の乱高下(volatility)の範囲のことである。
・「ブレイクアウト」とは、価格が上下の抵抗線(support or resistance)を突き抜けた状態で維持されること。
・「商品チャネル指標」とは、周期的なトレンドを特定する。
・「コポック」とは、エドウィン・コポック氏が、上げ相場の開始を特定することを唯一の目的として作成したコポック指標のことである。
・「エリオット波動理論」および「ゴールデンレシオ(golden ratio)」とは、連続した価格変動および綾戻しを計算するために利用される。
・「ヒッカケパターン(Hikkake Pattern)」とは、反転および継続を特定するパターンである。
・「MACD」とは、移動平均収束分岐のことである。
・「モメンタム」とは、価格の変動率である。
・「マネーフロー」とは、価格が上がった日に取引された株式の量である。
・「移動平均」とは、価格行動の遅れである。
・「オンバランスボリューム」とは、株式の売り買いのモメンタムのことである。
・「PACチャート」とは、量を価格レベルでチャートにする二次元法のことである。
・「パラボリックSAR」とは、トレンドの強い間に放物線内に留まる傾向のある価格に基づくワイルダー氏の提唱したトレーリングストップである。
・「ピボットポイント」とは、特定の通貨または株式の高値、低値、および終値の平均数値を計算することで得られる。
・「ポイントアンドフィギュアチャート」とは、時間に関わらない価格に基づくチャートである。
・「収益性」とは、異なる取引システム間またはあるシステム内の異なる投資間で性能を比較する際の基準である。
・「BPVレーティング」とは、量および価格両方を利用して反転を特定するためのパターンである。
・「RSI(相対力指数)」とは、価格の強さを示すオシレーターである。
・「抵抗(resistance)」とは、売り(selling)が増えた領域のことである。
・「Rahul Mohindarオシレーター」とは、指標を特定するトレンドのことである。
・「ストキャスティックオシレーター」とは、最新のトレーディング範囲内の閉位置(close position)のことである。
・「サポート(support)」とは、買いが増えた領域のことである。
・「トレンドライン」とは、サポートまたは抵抗の勾配線のことである。
・「トリックス(Trix)」とは、三度平滑化された(triple-smoothed)指数移動平均の勾配を示すオシレーターのことであり、1980年代にジャック・ハットソン氏により考案された。
【0070】
条件または見通しは、さらに、(e)基本分析指標を含んでよい。この種類の指標は、インストラメントが関連する組織(例えば企業の収益率またはギアリング率)、(f)マーケットニュース、部門ニュース、収益公開等の定性的データに関している。これらは通常、アルゴリズムにより可読となるには、前処理および組織化が必要な非構造化データである。条件または見通しはさらに、(g)アルゴリズムの現在の取引状況についての認識(例えば、アルゴリズムが特定のインストラメントに対して「長期的」あるいは「短期的」であるかの認識)および現在の利益損失状況を含んでよい。
【0071】
<調節可能なアルゴリズム>
調節可能なアルゴリズムは、規則毎の最大許容可能な規則または条件/見通し等の特定の設定を定義する。例えば、1つのアルゴリズムは、5つの「買い」規則および5つの「売り」規則を有することが許されていてよい。これら規則各々は、10つの条件を有することが許されていてよい(例えば、5つの株式に特定のテクニカル指標、3つの株式に特定の「ティック」データポイント、および2つの一般的なマーケット指標)。
【0072】
<ガイダンス>
ガイダンスは、アルゴリズムを検索空間のセクションへと導きより良い性能をより速く達成するための、既存の、または既に学習された条件または見通しを定義する(人為的に生成されたものであっても、前の処理サイクルから生成されたものであってもよい)。例えば、ガイダンス条件は、株式の市場価格の非常に強力な早期の高騰(early morning rise)により、阻止(interdiction)がトリガされて、アルゴリズムがその日の株式の売り持ち(short position)(ベアリッシュポジション)をとることを定めることができる。
【0073】
<データ要件>
データ要件は、過去から現在までの金融データを定義しており、アルゴリズムがi)自身を訓練する目的から、ii)テストする目的から必要とする。データは、考案された特定のインストラメント用の、またはマーケットまたは部門用の未加工のマーケットデータを含んでよい(例えば、ティックデータ、取引量データ、テクニカル分析指標データ、基本分析指標データ、および、可読フォーマットに組織化された非構造化データであってよい)。このデータは、上で定義した「検索空間」の範囲において提供されることが必要である。「現時点」は、動的値として理解されてよく、ここではデータは継続的に更新されアルゴリズムに提供される。
【0074】
<適時性>
適時性により、オペレータは、処理タスクを完了する時点を選ぶことができるようになる。これにより、CSIによるコンピュータタスクの優先順位に影響がでる。
【0075】
<処理能力分配>
処理能力分配に応じて、オペレータは、特定の処理タスクを他のタスクより優先的に行うことができ、処理キューをバイパスすることができる(以下を参照のこと)。オペレーティングコンソールは、上述の情報をCSIに伝送する。
【0076】
<取引実行>
取引実行に応じて、オペレータは、オペレーティングコンソールが、処理動作(およびこれら取引の期間、例えば、取引にかかる量等)の結果に基づいて自動的に取引を実行するか、または、取引を実行するには人為的な決定が必要であるか否かを規定する。これら設定の全てまたは一部は、ネットワークが自身の処理を実行している間に修正可能である。
<アクション2>
【0077】
このアクションには2つのシナリオが存在する。いずれの場合にも、CSI200は、検索空間が未所有のデータを必要とするか否かを特定する。
【0078】
シナリオA:アクション1の命令をオペレーティングコンソール200から受信後に、CSI200は、ノード(クライアント側)実行可能コードでアルゴリズムをフォーマッティングする。
【0079】
シナリオB:CSI200は、クライアント側(ノード)実行可能コードではアルゴリズムをフォーマッティングしない。このシナリオでは、ノードが既にアルゴリズムコードを所有しており、これらはアクション10で後述するように時折アップグレードされうる。コードはノード上で実行され、その結果はCSI200により累積または選択される。
<アクション3>
【0080】
CSI200は、1以上のデータ供給サーバに対してAPI呼び出しを行い、見当たらないデータを取得する。例えば、
図2に示すように、CSI200は、1995年から1999年の間のジェネラルエレクトリック社株の5分間のティッカデータが見当たらないと判断すると、データ供給サーバ102および104に対してAPI呼び出しを行って情報を入手する。
<アクション4>
【0081】
このアクションにより、データ供給サーバは、要求されたデータをCSIにアップロードする。例えば
図2に示すように、データ供給サーバ102および104は、要求された情報をCSI200にアップロードする。
<アクション5>
【0082】
データ供給サーバから要求したデータを受信すると、CSI200は、このデータを、実行するべきアルゴリズムと整合させて、要求した全てのデータが利用可能であることを確かめる。このデータをその後、CSI200に転送する。データが不完全である場合、CSI200は、フラグをたてて、ネットワークノードに対して、ネットワークノード自身がこのデータをフェッチすることを要求するが、これに関しては後述する。
<アクション6>
【0083】
このアクションには2つのシナリオがある。第1のシナリオにおいては、ノードは定期的にCSIに対して接続を確認し(ping)、自身が利用可能であることを知らせる。第2のシナリオにおいては、ノードは、ノードクライアントがクライアントマシンで実行されると、命令およびデータを要求してよい。CSI200は、クライアントがCSI200に対してアクセスしたときにおいてのみクライアントを確認することができる。このシナリオでは、CSI200は全ての接続クライアントについての状態テーブルを維持しない。
<アクション7>
【0084】
ノードの心拍信号(つまり、ノードが生成する利用可能性を示す信号)、または、第2のシナリオではそれらの命令およびデータ要求を累積することにより、CSI200は常に利用可能な処理容量を認識しておくことができる。さらに以下で説明するように、累積とは、各ノードに関する心拍信号の数を足し合わせる処理のことである。しかもCSI200はオペレーティングコンソール220にこの情報をリアルタイムで提供する。この情報およびオペレーティングコンソールから受信した他の命令(例えばアクション1に関して上述した適時性、優先処理等)に基づいて、CSI200は、(i)優先処理割り当てをその直後に任意の数のノードに対して強制する(つまり、クライアント処理能力をタスクの優先度に基づいて割り当てる)、あるいは、(ii)新たな処理タスクをノードの処理キューに追加し、適時性要件に基づいてキューを管理する、のいずれかを決定する。
【0085】
後述するように、CSIは定期的且つ動的に目的に対する演算の進捗状況を評価し、タスクスケジュールマネージャにより処理キューに対して容量を整合させる。優先処理が必要な場合(アクション1参照)を除き、CSIは、処理容量利用率の最適化を、処理キューの要請を提起するべく整合および分割することによって達成しようと試みる。このアクションは
図2には示されていない。
<アクション8>
【0086】
アクション7で上述した利用可能なネットワークノードの数、目的/閾値、適時性要件、その他の要素に基づいて、CSI200は1以上の分配パッケージを形成するが、これは、その後、処理用に選択した利用可能なノードに対して配信される。分配パッケージには、例えば(i)アルゴリズムの一部または全体の表現(例えばXML表現)、遺伝子アルゴリズムの場合には遺伝子を含む、(ii)対応するデータ(部分的または全体的)(上述のアクション5参照)、(iii)ノードの演算処理設定および実行命令、これには、ノード特定の、または包括的な演算目的/閾値、処理タイムライン、データ供給サーバに対してノードから直接、足りないデータを要求するための呼び出しをトリガするフラグ等が含まれる。閾値パラメータは、一例では、CSI200に存在している中で性能が最も悪いアルゴリズムの適合度またはコア性能メトリックとして定義されてもよい。処理タイムラインには、例えば1時間または24時間が含まれてよい。またはタイムラインは、オープンエンドであってもよい。
図2では、CSI200はノード3および4と通信して、優先処理割り当てを行い、パッケージをこれらノード間で分配していることが分かる。
【0087】
アクション2に示したように、ノードが既にアルゴリズムコードおよび実行命令を含んでいる場合、そのノードがCSIから受信するパッケージは、通常、そのアルゴリズムを実行するのにノードが必要とするデータのみを含む。
図2のノード5はアルゴリズムを含むと仮定されており、アクション8に関するデータのみを受信するべくCSI200と通信するとして示されている。
<アクション9>
【0088】
このアクションには、どの実装を選択するかによって、2つの可能なシナリオがある。第1のシナリオでは、CSI200は分配パッケージ(1または複数)を、処理用に選択した全てのノードに対して送る。第2のシナリオでは、CSI200は、ノードにより要求されると、分配パッケージ、または要求に応じたその関連部分を、該要求を送信した各ノードに対して送る。このアクションは
図2には示されていない。
<アクション10>
【0089】
選択された各ノードは、CSI200から送られてきたパッケージのコンテンツを傍受して、要求された命令を実行する。ノードは並列計算を行い、ここでは各ノードがそのノードに対して割り当てられたタスクを解決するよう指定される。あるノードで演算にさらなるデータが必要な場合には、関連命令により、ノードはCSI200からさらなる/異なるデータを該ノードのローカルデータベースへアップロードするようプロンプトされてよい。または、ノードが自身でデータ供給サーバにアクセスしてデータアップロード要求を発することができるよう構成することもできる。
図2ではノード5は、要求されたデータをアップロードするべくデータ供給サーバ106と通信するとして示されている。
【0090】
ノードは、さらなる遺伝子(遺伝的アルゴリズムを利用する際)およびデータを求めてCSIに対して定期的に接続を確認してよい。CSI200は、自身が様々なノードに対して無作為に送信する命令/データを管理するよう構成されてよい。この結果、該当する実施形態では、CSIはどの特定のノードにも頼らない。
【0091】
ノードのクライアントコード(クライアントにインストールされている実行可能コード)に対するアップデータも必要となる場合もある。従って、実行命令を定義するコードは、ノードのクライアントがコードの最新バージョンをダウンロードおよびインストールするよう促すことができる。ノードのクライアントは、その処理結果を定期的にノードのローカルドライブにロードして、CSIによる割り込みまたはアクシデントによる割り込みのあった場合に、ノードがそこで止まってしまった箇所を覚えておいて、そこから継続することができるようにしてよい。従って、本発明により実行される処理は、特定のノードの利用可能性に依存しないことになる。故に何らかの理由によりノードがダウンして利用不可能になった場合でも、特定のタスクを再度割り当てる必要がない。
<アクション11>
【0092】
(i)アクション8で説明した特定の目的/閾値、(ii)アクション8で説明した演算に割り当てられた最大時間に達すると、または、(iii)CSIの要求に応じて、ノードは、CSIで実行されているAPIを呼び出す。APIに対する呼び出しは、ノードの現在の利用可能性、その現在の容量(イベント条件(i)または(ii)が前には満たされていなかった場合、および/または、クライアントがさらに処理容量を持つ場合)、最後の通信からの処理履歴、関連処理結果(課題に対する最新の解決法)、およびノードのクライアントのコードに対してアップグレードが必要か否かのチェックに関するデータを含んでよい。このような通信は同期して(つまり、全てのノードが自身の結果を同時に送信する)行われても、非同期に(つまり、ノードの設定またはノードに送信される命令に応じてそれぞれ異なるノードが自身の結果を異なる時点に送信する)行われてもよい。
図2では、ノード1がAPI呼び出しをCSI200に対して行うと示されている。
<アクション12>
【0093】
1以上のノードから結果を受信すると、CSIは、その結果をi)当初の目的および/またはii)他のノードから得られた結果と比較する。CSIは任意の時点でノードが生成した最良の解決法のリストを維持する。遺伝的アルゴリズムの場合には、最良の解決法は、例えば、上位1,000個の遺伝子であってよく、これは、性能順にランク付けされるので、ノードが自身の処理を継続する中で越えるべき最小閾値を設定することができる。アクション12は
図2には示されていない。
<アクション13>
【0094】
アクション11で記載したように、あるノードがCSI200とコンタクトをとると、CSI200は、そのノードに対して指示を戻して、例えば新たなデータのアップロード、自身のアップグレード(クライアント実行可能コードの最新バージョンのダウンロードおよびインストール)、シャットダウン等を行わせてよい。CSIは、さらに、分配パッケージのコンテンツを動的に進化させるよう構成されていてもよい。このような進化は、(i)アルゴリズム、(ii)アルゴリズムの訓練または実行用に選択されたデータセット、または、(iii)ノードの演算処理設定に関して実行可能である。アルゴリズムの進化は、ノードの処理の結果である向上点を組み込むことにより、または、アルゴリズムがその中で動作する検索空間のサイズを拡張することにより行うことができる。CSI200は、アクション4で上述したようにクライアント実行可能コードでノードをシードする。この結果、新たな、向上したアルゴリズムを進化により得ることができる。
<アクション14>
【0095】
上述のアクションに纏わる処理は、以下の条件のいずれかが満たされるまで継続して繰り返される。条件とは、i)目的が達成された、ii)処理タスクが完了すべき時間に達した(上述のアクション2参照のこと)、iii)優先タスクがスケジューリングされ、割り込み処理中となった、iv)CSIのタスクスケジュールマネージャが、処理キューの管理の優先順位を変えた(上述のアクション7参照)、または、v)人間のオペレータが演算を中断または中止した、である。
【0096】
上述したiii)またはiv)に場合のようにタスクが中断されると、アルゴリズムの状態、データセット、結果の履歴、およびノード処理設定をCSI200にキャッシュしておいて、次に処理能力が回復したときにそのタスクを再開できるようにする。処理終了を知らせる信号は、CSI200によって、CSI200とコンタクトしたノード全てに対して送られる。任意の時点において、CSI200は、ノードのコンタクト要求を無視する、ノードをシャットダウンする、ノードに対して手元のジョブ完了を通知する信号を送信する、等の選択を行うことができる。
<アクション15>
【0097】
CSI200は、オペレーティングコンソール220へのタスク処理の実行状況に関する助言を、(i)定期的に、(ii)オペレーティングコンソール220の要請に応じて、(iii)処理の完了時に(例えば、処理タスクの目的に達したら)、または、(iv)処理タスクが完了すべき時に達したら、行ってよい。各ステータスの更新時、または処理の完了時に、CSI200は、ステータスの更新または完了時の、所謂「最良のアルゴリズム」と称されるものを提供する。最良のアルゴリズムとは、ノードおよびCSI200による処理の結果、および、ネットワークが行った結果および進化処理に対して行われる比較分析の結果である。
<アクション16>
【0098】
最良のアルゴリズム(1または複数)による取引方針(1または複数)に基づいて取引を行うか行わないかの決定を行う。この決定は、そのタスクに対して選択されている設定に応じて(アクション1参照)、オペレーティングコンソール220により自動に行われても、オペレータによる承認の下で行われてもよい。このアクションは
図2には示されていない。
<アクション17>
【0099】
オペレーティングコンソール220は、取引オーダをフォーマッティングして、実行プラットフォームのAPIフォーマットに合致させる。取引オーダは通常、(i)インストラメント、(ii)インストラメントの取引額面金額量、(iii)オーダが指値注文または成行注文のいずれかであるかの判断、(iv)選択された最良のアルゴリズムの取引方針により、売り、買い、または売り決済、または空売りのいずれかの決定を含む。このアクションは
図2には示されていない。
<アクション18>
【0100】
オペレーティングコンソールが、実行プラットフォーム300に対して取引オーダを送る。
<アクション19>
【0101】
実行プラットフォーム300において、金融マーケットでの取引を実行する。
【0102】
図3はクライアント300およびサーバ350に設けられる幾らかのコンポーネント/モジュールを示す。図示のように、各クライアントは、クライアントが最初に無作為に作成した遺伝子全てのプール302を含む。無作為に作成された遺伝子は、評価モジュール304を用いて評価される。評価は、プールの全ての遺伝子に対して行われる。各遺伝子は、多くの日数間(例えば100日間)かけて無作為に選択された複数の株式または株価指数に対して実行される。評価は、プールの全ての遺伝子に対して行われる。全ての遺伝子に対する評価が終了すると、最良の実績をあげた(上位5%)の遺伝子を選択して、エリートプール306に配置する。
【0103】
エリートプールの遺伝子は再生を許可される。これを行うべく、遺伝子再生モジュール308は、例えば親の遺伝子の作成に利用された規則を組み合わせることにより、2以上の遺伝子を無作為に選択して組み合わせる。その後、プール302に、新たに作成された遺伝子(子の遺伝子)と、すでにエリートプールに存在していた遺伝子を再配置する。古い遺伝子プールは破棄する。プール302の新たな遺伝子群には、引き続き上述の評価を行う。
【0104】
遺伝子選択モジュール310は、要請に応じて、より良い、より適合度の高い遺伝子をサーバ350に供給するよう構成される。例えば、サーバ350は、「私の最も悪い遺伝子はXですが、あなたはこれよりも業績のよい遺伝子をお持ちですか?」等の質問を遺伝子選択モジュール310へ送ることができる。遺伝子選択モジュール310は、「私はこれらより良い遺伝子を10個を持っています」等の応答を返して、これら遺伝子をサーバへ送る準備をすることができる。
【0105】
新たな遺伝子がサーバ350に受け入れられるためには、その遺伝子は、サーバに設けられている不正検出モジュール352による不正検出処理を受ける必要がある。貢献/総計モジュール354は、この貢献を総計するべく、各クライアントからの貢献を記録するよう構成される。クライアントの中でも有効度が異なる。クライアントのなかには他のクライアントよりもずっと高速のマシン上で実行されているものがある。クライアントデータベース356は、貢献/総計モジュール354により、各クライアントが貢献した処理能力で更新される。
【0106】
遺伝子受け入れモジュール360は、クライアントから到着する遺伝子が、サーバプール358に既存の遺伝子より優れていることを確認してから、サーバプール358へ追加する。遺伝子受け入れモジュール360は、受け入れた遺伝子各々にIDをつけて、受け入れた遺伝子をサーバプール358へ追加する前にハウスクリーニング処理を行う。
【0107】
図4は、
図1の各処理デバイスに配置される様々なコンポーネントを示す。各処理デバイスは、バスサブシステム404を介して複数の周辺デバイスと通信する少なくとも1つのプロセッサ402を含むとして示されている。これら周辺デバイスは、一部にメモリサブシステム408およびファイル格納サブシステム410を含む格納サブシステム406と、ユーザインタフェース入力デバイス412と、ユーザインタフェース出力デバイス414と、およびネットワークインタフェースサブシステム416とを含んでよい。入出力デバイスは、データ処理システム402との間のユーザインタラクションを可能とする。
【0108】
ネットワークインタフェースサブシステム416は、他のコンピュータシステム、ネットワーク、及び格納資源404をインタフェースする。ネットワークは、インターネット、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、無線ネットワーク、イントラネット、プライベートネットワーク、パブリックネットワーク、公衆回線ネットワーク、または任意の他の適切な通信ネットワークを含んでよい。ネットワークインタフェースサブシステム416は、他のソースからデータを受信して、処理デバイスから他のソースへデータを送信するインタフェースとして機能する。ネットワークインタフェースサブシステム416の実施形態には、イーサネット(登録商標)カード、モデム(電話、衛星、ケーブル、ISDN等)、(非同期)デジタル加入者線(DSL)ユニット等が含まれる。
【0109】
ユーザインタフェース入力デバイス412は、キーボード、マウス等のポインティングデバイス、トラックボール、タッチパッド、またはグラフィックタブレット、スキャナ、バーコードスキャナ、ディスプレイに組み込まれたタッチスクリーン、音声認識システム等のオーディオ入力デバイス、マイクロフォン、およびその他の種類の入力デバイスを含んでよい。一般的には、入力デバイスという用語は、処理デバイスに情報を入力する全ての種類のデバイスおよび方法を含むことが意図されている。
【0110】
ユーザインタフェース出力デバイス414は、表示サブシステム、プリンタ、ファックス機、またはオーディオ出力デバイス等の非視覚ディスプレイを含んでよい。表示サブシステムは、ブラウン管(CRT)、液晶ディスプレイ(LCD)等のフラットパネルデバイス、またはプロジェクションデバイスであってよい。一般的には、出力デバイスという用語は、処理デバイスから情報を出力する全ての種類のデバイスおよび方法を含むことが意図されている。格納サブシステム406は、本発明の実施形態による機能を提供する基礎プログラミングおよびデータ構成を格納するよう構成されてよい。例えば、本発明の一実施形態では、本発明の機能を実装するソフトウェアモジュールが格納サブシステム206に格納されていてよい。これらソフトウェアモジュールは、プロセッサ(1または複数)402により実行されてよい。格納サブシステム406は、さらに、本発明により利用されるデータを格納するリポジトリを提供してもよい。格納サブシステム406は例えば、メモリサブシステム408およびファイル/ディスク格納サブシステム410を含んでよい。
【0111】
メモリサブシステム408は、プログラム実行中の命令およびデータ格納用のメイン無作為アクセスメモリ(RAM)418、および、固定命令を格納する読み出し専用メモリ(ROM)420を含む複数のメモリを含むことができる。ファイル格納サブシステム410は、プログラムおよびデータファイルの永続的な(不揮発性)格納装置を提供し、ハードディスクドライブ、関連する着脱可能な媒体を含むフロッピー(登録商標)ディスクドライブ、CD−ROMドライブ、光学ドライブ、着脱可能媒体カートリッジ、およびその他の同様の格納媒体を含むことができる。
【0112】
バスサブシステム404は、処理デバイスの様々なコンポーネントおよびサブシステム間の通信を可能とするメカニズムを提供する。バスサブシステム404は、単一のバスとして概略表示されているが、バスサブシステムの他の実施形態では多数のバスが使用されてもよい。
【0113】
処理デバイスは、パソコン、携帯コンピュータ、ワークステーション、ネットワークコンピュータ、メインフレーム、キオスク、または任意の他のデータ処理システム等の様々な種類であってよい。
図4に示す処理デバイスの説明は、一例であり、多くの他の構成におけるコンポーネント数は、
図2に示したシステムのものより多くても少なくてもよい。
【0114】
本発明に関して上述した実施形態は、例示を目的としており限定は意図していない。様々な代替例および均等物が可能である。本開示に鑑みれば他の追加、省略、または変形例も自明であり、これらも添付請求項の範囲に含まれる。