アルゴリズム取引システム、方法およびプログラム
【課題】 動的なアルゴリズム取引に用いられるアルゴリズム要素の膨大な組合せに対処し、オンライン取引を行うことができるようにする。
【解決手段】 アルゴリズム要素群における一のアルゴリズム要素による取引の個別シミュレーションを実行することにより、一の時間帯の約定結果を得る個別シミュレーション実行手段と、一日の取引における全ての時間帯それぞれについて前記アルゴリズム要素群のそれぞれのアルゴリズム要素を適用し、時間帯数とアルゴリズム要素数との積に相当する回数の個別シミュレーションを行うよう前記個別シミュレーション実行手段を制御する制御手段と、前記制御手段により制御された個別シミュレーション実行手段から得られる時間帯ごとの約定結果に基づいて、前記アルゴリズム要素の最良の組合せを選別する選別手段と、前記選別手段により選別されたアルゴリズム要素の最良の組合せによりオンライン発注を行う発注手段と、を具備する。
【解決手段】 アルゴリズム要素群における一のアルゴリズム要素による取引の個別シミュレーションを実行することにより、一の時間帯の約定結果を得る個別シミュレーション実行手段と、一日の取引における全ての時間帯それぞれについて前記アルゴリズム要素群のそれぞれのアルゴリズム要素を適用し、時間帯数とアルゴリズム要素数との積に相当する回数の個別シミュレーションを行うよう前記個別シミュレーション実行手段を制御する制御手段と、前記制御手段により制御された個別シミュレーション実行手段から得られる時間帯ごとの約定結果に基づいて、前記アルゴリズム要素の最良の組合せを選別する選別手段と、前記選別手段により選別されたアルゴリズム要素の最良の組合せによりオンライン発注を行う発注手段と、を具備する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータを利用したオンラインによる証券等のアルゴリズム取引に用いられるシステム、方法およびプログラムに関する。
【背景技術】
【0002】
近年、株券の売買をコンピュータで自動的に実施するアルゴリズム取引のシステムが実現している。アルゴリズム取引システムを用いるためには、取引アルゴリズムを設計しコンピュータに実装しなければならない。アルゴリズムそのものの妥当性と実装の正しさを検証するためには、実際のマーケットに発注して損益を評価すればよいのであるが、アルゴリズムが不十分で実装に問題があった場合には、大きな損失をひきおこす可能性がある。アルゴリズムの適切な検証手段が無いことが、アルゴリズム取引導入の大きな課題であった。
【0003】
実在する証券市場での株券受発注の記録(ティックデータ)を用いて、仮想的な証券市場を実現することができる。このようなシステムを約定シミュレーションシステムと言う。コンピュータによる自動売買システム(アルゴリズム取引システム)では、設計したアルゴリズムの妥当性とそのアルゴリズムの実装の妥当性を検証するために、この約定シミュレーションシステムを用いる。設計したアルゴリズムを実装し、約定シミュレーションシステムに自動発注し、成績を確認することでアルゴリズムそのものの妥当性と正しく実装されたかどうか判断できる。アルゴリズムの検証を正確に実施するために、市場の振る舞いをできるだけ忠実に再現できることが望ましい。特に、発注が市場価格に与える影響(マーケットインパクト)を正確に再現できることが重要である。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2009−26225号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
株式市場の出来高は午前の開始直後(寄り付き)や午後の終了直前(大引け)に多くなることでも知られるように、市場の動きは時々刻々変化する。このため、アルゴリズム取引は、株式市場の時間的な変化に対応できることが有益である。ある一日のアルゴリズム取引の方法のひとつは、その一日における複数の時間帯それぞれについて、事前に準備された複数のアルゴリズムの構成要素(以下「アルゴリズム要素」と呼ぶ)からいずれかを選択して適用することである。このため、一日の取引において適用される一連のアルゴリズム要素すなわちアルゴリズム要素の組合せを、動的なアルゴリズム取引に用いられるアルゴリズムとして作成する手法が考えられている。作成されたアルゴリズムは、現実の証券取引に有効であるかどうかを評価する必要がある。具体的には、多数のアルゴリズム要素の組合せについて、複数日の証券取引データを利用して証券取引シミュレーションを行い、そのシミュレーション結果を統計的に評価する。
【0006】
この場合、検証するアルゴリズム要素の組合せは数が多く、それぞれに組み合わせられる証券取引データを考慮すると、証券取引シミュレーションで処理すべきデータのサイズは膨大である。したがって、証券取引シミュレーションを実行するのに多大な時間がかかるという問題点がある。
【0007】
本発明はこの問題を解決するためになされたものであり、動的なアルゴリズム取引に用いられるアルゴリズム要素の膨大な組合せに対処し、オンライン取引を行うことができるアルゴリズム取引システム、方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
一態様に係るアルゴリズム取引システムは、アルゴリズム要素群における一のアルゴリズム要素による取引の個別シミュレーションを実行することにより、一の時間帯の約定結果を得る個別シミュレーション実行手段と、一日の取引における全ての時間帯それぞれについて前記アルゴリズム要素群のそれぞれのアルゴリズム要素を適用し、時間帯数とアルゴリズム要素数との積に相当する回数の個別シミュレーションを行うよう前記個別シミュレーション実行手段を制御する制御手段と、前記制御手段により制御された個別シミュレーション実行手段から得られる時間帯ごとの約定結果に基づいて、前記アルゴリズム要素の最良の組合せを選別する選別手段と、前記選別手段により選別されたアルゴリズム要素の最良の組合せによりオンライン発注を行う発注手段と、を具備することを特徴とする。
【図面の簡単な説明】
【0009】
【図1】実施形態に係るアルゴリズム取引システムの機能ブロック図
【図2】実施形態に係るアルゴリズム取引システムのハードウェア構成図
【図3】証券取引シミュレーションの実行タイミングおよび繰り返しについての模式図
【図4】板情報に基づく証券取引の模式図
【図5】市場取引シナリオ生成部により生成される発注シナリオを示す図
【図6】アルゴリズム要素記憶部に記憶されるアルゴリズム要素の2つの例を示す図
【図7】ある時間帯が終了した時点での板情報を示す図
【図8】取引アルゴリズム作成装置の動作手順を示すフローチャート
【図9】取引アルゴリズム作成装置の動作手順を示すフローチャート
【図10】出来高の時間分布を示す図
【図11】アルゴリズム要素の組合せの最良解を示す図
【図12】各時刻の約定価格を示す図
【図13】各時刻の出来高を示す図
【図14】各時刻の買注文、売注文、および約定を示す図
【図15】一の取引時間帯を前半と後半に分割した場合の一定約定価格を示す図
【図16】一の取引時間帯を前半と後半に分割した場合の一定出来高を示す図
【図17】アルゴリズム最終結果選別部による選別の基準を示す図
【図18】アルゴリズム最終結果選別部により選別されたアルゴリズム最終結果を示す図
【図19】アルゴリズム選択補正画面の一例を示す図
【発明を実施するための形態】
【0010】
以下、図面を参照しながら本発明の種々の実施形態を説明する。
【0011】
(第1の実施形態)
図1は、実施形態に係るアルゴリズム取引システムを機能ブロック図によって表現したものである。本システムは、大別すると取引アルゴリズム作成装置2、オンライン発注装置3、操作端末4により構成される。証券会社のディーラー等のユーザが操作端末4から指示を行うことにより、取引アルゴリズムを用いた発注がネットワーク16を介してマーケット200に対して行われる。
【0012】
取引アルゴリズム作成装置2は、個別シミュレーション実行部20、市場取引シナリオ生成部21、アルゴリズム発注生成部22、アルゴリズム要素記憶部23、シミュレーション補正部24、個別シミュレーション結果記憶部25、シミュレーション補正結果記憶部26、制御部27、アルゴリズム最終結果選別部29、アルゴリズム最終結果記憶部30を備え、動的なアルゴリズム取引に用いられるアルゴリズム要素の膨大な組合せに対処し、証券取引シミュレーションを高速に行って取引アルゴリズムを作成するものである。
【0013】
オンライン発注装置3は、取引アルゴリズム作成装置2によって作成された複数の取引アルゴリズムからいずれかを選択したり、一の取引アルゴリズムを構成するアルゴリズム要素の組合せを補正したりするためのアルゴリズム選択補正部7と、操作端末4からの指示により、最終的な取引アルゴリズムを用いてマーケット200に対するオンライン発注を行うアルゴリズム取引発注部8とを有する。オンライン発注装置3には、ネットワーク16を介して情報提供会社201から提供された情報が蓄積され、該情報は操作端末4において表示することができる。
【0014】
操作端末4は、証券会社のディーラー等のユーザがオンラインによりアルゴリズム取引に関する指示入力等を行う入力部5と、オンライン発注画面やアルゴリズム選択補正画面等を表示する表示するための表示部6を有する。
【0015】
図2は、実施形態に係るアルゴリズム取引システムのハードウェア構成図である。主記憶装置11からプログラムが補助記憶装置12に読み込まれる。このプログラムは、コンピュータ1を、本実施形態に係るアルゴリズム取引システムとして機能させるためのものであって、CPU10により実行される。主記憶装置11は、個別シミュレーション結果記憶部25、シミュレーション補正結果記憶部26、アルゴリズム最終結果記憶部30等を実現するためのメモリ等の記憶手段である。また補助記憶装置12は、磁気ディスク装置やCD−ROM装置等である。上記プログラムを機械読み取り可能な記録媒体から読み出して補助記憶装置12に記憶するようにしてもよい。入力装置13は、本実施形態に係るアルゴリズム取引システムを利用するユーザが種々の入力操作を行うためのキーボートやマウス等である。出力装置14は、CPU10によって行われた演算の結果などを表示するディスプレイデバイスやプリンタデバイス等である。通信装置15は、上記演算の結果などの処理結果をネットワーク16を介してコンピュータ1から他のコンピュータへ送信するための通信手段である。
【0016】
本実施形態に係るアルゴリズム取引システムは、1台のコンピュータによって実現することが可能であるが、複数のコンピュータによって実現してもよい。例えば、取引アルゴリズム作成装置2、オンライン発注装置3、操作端末4がそれぞれ別のコンピュータによって実現されてもよい。また主記憶装置11が記憶するデータの一部を他のコンピュータによって記憶してもよい。この場合、複数のコンピュータ間でネットワーク16を介してデータをやり取りする。
【0017】
以下では、説明の便宜上、一の銘柄の株式を取引する場合を例にとって説明するが、複数の銘柄の取引も可能である。また、本装置で扱えるアルゴリズム取引の対象は、証券(株券等)に限定されない。
【0018】
個別シミュレーション実行部20は、証券取引のシミュレーション(以下、シミュレーションという)を実行する。個別シミュレーション実行部20には、市場の取引を再現する市場取引シナリオに基づく発注と、アルゴリズム発注すなわちアルゴリズム要素によりなされた発注とが入力される。市場取引シナリオがX日分ある場合、個別シミュレーション実行部20は、全X日それぞれの日の取引に関して、時間帯ごとの個別シミュレーションを実行する。
【0019】
図3は、証券取引シミュレーションの実行タイミングおよび繰り返しについての模式図である。ここでは、一日の取引を6つの時間帯a1〜a6に分割している。個別シミュレーション実行部20は、X日分の市場取引シナリオを利用し、時間帯ごとの個別シミュレーションを、複数のアルゴリズム要素(図3では、A,B,C,Dの4つ)のそれぞれについて実行する。これにより各時間帯の終了時点において、取引成立結果(約定結果)と証券取引の情報(板情報)とが得られ、個別シミュレーション結果記憶部25に記憶される。なお、時間帯の分割の仕方は図3に例示した6分割(a1〜a6)に限らない。一日の時間帯をどのように分割するかは任意である。複数の時間帯への分割数をより多くすれば、一日の取引においてアルゴリズム要素を細かく切り替えることができるが、アルゴリズム要素の組合せの数は増大する。一方、複数の時間帯への分割数をより少なくすれば、アルゴリズム要素の組合せの数を抑えることができるが、一日の取引においてアルゴリズム要素を細かく切り替えることはできない。
【0020】
図4は、個別シミュレーション実行部20により実行される、板情報に基づく証券取引の模式図である。個別シミュレーション実行部20で行われる証券取引(の個別シミュレーション)は、同図のように売買を希望する値段(価格)ごとに売数量および買数量が並べられた板に基づいて行われる。9時35分時点の板によると、値段190円で売数量が6000株あり、買数量が2000株あるため、この2000株について売買が成立する。9時36分時点の板によると、いずれの売買数量においても値段が等しくないため、売買が成立しない。個別シミュレーション実行部20は、発注が市場取引シナリオからのものかアルゴリズム要素からのものかを区別する。9時36分の板の買数量2500の内訳において、先頭の発注40は、市場取引シナリオからの数量1000の発注であり、2番目の発注41はアルゴリズム要素Bからの数量500の発注であり、3番目の発注42は、市場取引シナリオからの数量1000の発注である。アルゴリズム要素からの発注41については、アルゴリズム要素名43、発注を行った時刻44、発注内容の変更回数45等の情報が含まれる。
【0021】
図5に示すように、市場取引シナリオ生成部21は、日付、時刻、売買種別、数量、値段によって構成される市場取引シナリオを生成する。同図は、X日分の市場取引シナリオのデータを示している。市場取引シナリオ生成部21は、このようなX日分の市場取引シナリオのデータを、過去の実際の市場取引のデータに基づいて生成する。あるいは、事前に準備された仮想的な市場取引のデータに基づいて、市場取引シナリオのデータを生成してもよい。市場取引シナリオ生成部21により生成された市場取引シナリオによる発注が、個別シミュレーション実行部20に入力される。個別シミュレーション実行部20はX日分の個別シミュレーションを繰り返すことから、第1日の個別シミュレーション実行に際して、第1の日付を有する1つまたは複数の市場取引シナリオのデータが発注データとして個別シミュレーション実行部20に入力され、第2日の個別シミュレーション実行に際して、第2の日付を有する1つまたは複数の市場取引シナリオのデータが発注データとして個別シミュレーション実行部20に入力される。
【0022】
図6は、アルゴリズム要素記憶部23に記憶されるアルゴリズム要素の2つの例を示している。アルゴリズム発注生成部22は、アルゴリズム要素記憶部23からこれらのようなアルゴリズム要素を取得し、アルゴリズム要素に基づく発注を生成して個別シミュレーション実行部20に入力する。同図に示すように、アルゴリズム要素は、発注時の市場状態、売買指定、発注間隔(秒)、発注数量、発注形態(指値・成行指定)等の情報を含む。同図(a)に示すアルゴリズム要素Aは、市場の状態が寄り付き・引け・ザラバそれぞれの状態での発注を行えるものである。寄り付きとザラバでは指値で発注を行うので、指値の位置(注文を出す価格の位置)を指定している。同図(b)に示すアルゴリズム要素Bは、ザラバの発注のみを行うものである。アルゴリズム要素Bでは、発注時点から時間が経つと価格を変更して発注をしなおす。アルゴリズム要素Bにおいて、発注時指値は「最良気配値+2tick」となっているが、この「tick」とは、取引価格の単位を表す。例えば、取引価格が1円単位ならば、1tickは1円である。
【0023】
各時間帯の終了時点のアルゴリズム要素による約定結果および市場全体の約定結果が個別シミュレーション実行部20から出力され、個別シミュレーション結果記憶部26に記憶される。アルゴリズム要素による約定結果は、アルゴリズム要素の発注による約定結果のみに相当し、日付および時間帯それぞれの、約定数および約定価格である。市場全体の約定結果は、アルゴリズム要素による発注と市場取引シナリオによる発注による全ての約定結果の和に相当し、日付および時間帯それぞれの、約定数および約定価格である。本実施形態のようにX日分の市場取引データについてシミュレーションが実行される場合、個別シミュレーション実行部20から出力されるX日分の約定結果が個別シミュレーション結果情報記憶部25に記憶されることになる。
【0024】
図7は、ある時間帯が終了した時点での板情報の例を示している。同図81はアルゴリズム要素に基づく発注の約定結果であり、同図80,82は市場全体の約定結果である。これら約定結果は、いずれも2009年6月1日と6月2日の約定結果を示したものであるが、X日分の取引シミュレーションを行う場合、約定結果もX日分記憶される。なお、アルゴリズム要素に基づく発注の約定結果だけではなく市場全体の約定結果についても、同図81に示すように、どのアルゴリズム要素が当該時間帯のシミュレーションに適用されているかが区別される。
【0025】
図1に示すように、個別シミュレーション実行部20は、個別VWAP計算部28を有する。この個別VWAP計算部28は、アルゴリズム要素による時間帯ごとの約定結果に基づいて、時間帯毎のVWAP(以下、「時間帯ごとの個別VWAP」という)を計算する。VWAPとは、Volume Weighted Average Price(出来高加重平均価格)の略であり、取引成立時の売買価格すなわち約定価格の出来高(約定数)に関する加重平均のことである。
【0026】
シミュレーション補正部24は、複数のアルゴリズム要素の組合せによる、ある1日の取引の全時間帯を通したVWAP(以下、「アルゴリズム取引のVWAP」という)、および市場全体における、ある1日の取引の全時間帯を通したVWAP(以下、「市場全体のVWAP」という)を計算する。
【0027】
本実施形態のようにX日分のデータを用いたシミュレーションを行う場合の、それぞれの日の取引の時間帯ごとの個別VWAPを個別VWAP計算部28がどのように計算し、それぞれの日の取引の全時間帯を通したVWAP(すなわちアルゴリズム取引のVWAP)をシミュレーション補正部24がどのように計算するかについては後述する。
【0028】
制御部27は、後述する動作手順に従って個別シミュレーションの実行およびシミュレーション補正を行うよう、個別シミュレーション実行部20およびシミュレーション補正部24を制御する。
【0029】
アルゴリズム最終結果選別部29は、シミュレーションが終了時刻に達した時点における制御部27からの指示により、選別基準に基づいて最良の取引アルゴリズムを選別し、その結果をアルゴリズム最終結果記憶部30に記憶する。アルゴリズム最終結果記憶部30には、作成された複数の取引アルゴリズムが格納され、どの取引アルゴリズムが最良のものであるかが識別可能となっている。
【0030】
図8および図9は、取引アルゴリズム作成装置2の動作手順を示すフローチャートである。以下、このフローチャートのステップに従って、本装置の動作手順を説明する。この動作手順では、特定の株式銘柄の取引に用いるための取引アルゴリズムを取引アルゴリズム作成装置2が生成するものとする。
【0031】
個別シミュレーション実行部20がシミュレーションを開始するにあたり、1日の取引時間を種々の時間帯に分割する幾つかの候補の中からいずれかを指定する(ステップS101)。この指定は、例えばユーザが取引アルゴリズム作成装置2の個別シミュレーション実行部20に対して行う。本動作手順では、例えば午前の取引時間(前場)と午後の取引時間(後場)をそれぞれ2つの時間帯に分割する指定がユーザからなされたものとする。なお、11時00分から12時30分までの時間帯に取引は行われていないものとし、当該時間帯についてのシミュレーションは行わない。またステップS101において、検証するアルゴリズム要素群をユーザが取引アルゴリズム作成装置2に対して指定する。本動作手順では、アルゴリズム要素A、B、C、Dの4つのアルゴリズム要素群が指定されたものとする。これら4つのアルゴリズム要素A、B、C、Dに基づいて、取引アルゴリズム作成装置2は最適な取引アルゴリズムを生成する。個々のアルゴリズム要素の例については図6に示している。またステップS101において、ユーザが取引アルゴリズム作成装置2に対して市場取引シナリオを指定する。これには、過去の実際のデータを市場取引シナリオとして利用する旨を指定する場合と、仮想的に生成されたデータを市場取引シナリオとして利用する旨を指定する場合とがある。例えば本動作手順では、過去の実際のデータを市場取引シナリオとして利用するシミュレーションを行うものとする。過去の実際のデータを利用する場合、その期間(上述したX日)を指定できるようにするのが好ましい。過去の実際のデータおよび仮想的に生成されたデータのいずれについても、市場取引シナリオは、1つまたは複数の取引日を有する。
【0032】
ステップS102において、個別シミュレーション実行部20は、シミュレーションを開始する初期の時間帯を設定する。ステップS103において、個別シミュレーション実行部20は、ステップS101で設定されたアルゴリズム要素群のなかから、一のアルゴリズム要素を設定する。ステップS104において、個別シミュレーション実行部20は、ステップS101で指定された市場取引シナリオの取引期間における一の取引日を設定する。また、市場取引シナリオ生成部21から市場取引シナリオによる発注を受け取り、アルゴリズム要素取得部22から当該アルゴリズム要素による発注を受け取る。以上の読み込みを終えた後、ステップS105において、制御部27からの指示により個別シミュレーション実行部20がシミュレーションを実行する。
【0033】
取引日および時間帯ごとに個別に行われる個別シミュレーションが終了すると、ステップS106において、個別シミュレーション実行部20から取引日および時間帯ごとの約定結果が出力され、個別シミュレーション結果記憶部25に記憶される。
【0034】
ステップS107において、制御部27はシミュレーションを行った取引日が終了したかどうかを判定する。終了していない場合は、ステップS104に戻り、取引日を更新して個別シミュレーションを繰り返すように個別シミュレーション実行部20を制御する。
【0035】
ステップS104乃至S107が取引日終了まで繰り返されることにより、当該時間帯について、当該アルゴリズム要素を適用した場合の個別シミュレーション結果が取引日ごとに得られることになる。このようにステップS107のシミュレーションが全ての取引日で行われると、ステップS108において、個別VWAP計算部28は、当該時間帯における当該アルゴリズム要素による個別VWAPを計算する。
【0036】
次にステップS109において、制御部27は、当該時間帯についてシミュレーションを行っていないアルゴリズム要素が残っているかどうか判定する。当該時間帯についてシミュレーションを行っていないアルゴリズム要素が残っている場合はステップS103に戻る。ステップS104においては、当該時間帯についてシミュレーションを行っていないアルゴリズム要素がアルゴリズム要素群の中から選ばれて設定される。
【0037】
当該時間帯についてシミュレーションを行っていないアルゴリズム要素が残っていない場合(ステップS109=NO)、制御部27は、シミュレーション時刻が当該取引日における最終の時間帯に到達したかどうかを判定する(ステップS110)。最終時間帯に到達していない場合(ステップS110=NO)、制御部27は、時間帯を次の時間帯に更新する(ステップS111)。
【0038】
シミュレーション時刻が最終時間帯に到達すると(ステップS110=YES)、制御部27は、シミュレーション補正部24に対し、個別シミュレーション結果に基づいてシミュレーション補正を行うよう指示する(ステップS112)。
【0039】
ステップS112において、シミュレーション補正部24は、取引日ごとに、1日の全時間帯を通したVWAP(アルゴリズム取引のVWAP)を計算する。これは、ステップS108で計算された時間帯ごとの個別VWAPに、時間帯ごとの約定数を乗じた値の全時間帯の総和を、全時間帯の累積約定数で除算すること(シミュレーション補正)により行う。また、シミュレーション補正部24は、アルゴリズム取引のVWAPと同様に市場全体のVWAPも算出する。
【0040】
ステップS113において、アルゴリズム最終結果選別部29は、全アルゴリズム要素の組合せの中から、選別基準を満たす最良の組合せを選別し(ステップS113)、アルゴリズム最終結果記憶部30に記憶する(ステップS114)。この選別においては、ステップS112で計算されたアルゴリズム取引のVWAPと市場全体のVWAPを比較することにより行う。
【0041】
本実施形態に係る取引アルゴリズム作成装置2は、1日の取引における全時間帯を通したシミュレーションを実行してシミュレーション結果を得るのではなく、時間帯ごとの個別シミュレーションのみ行い、これにより得られた個別シミュレーション結果(時間帯ごとの個別VWAP)を用いて取引アルゴリムの選定に必要な情報(アルゴリズム取引のVWAP)を得るものである。つまり、個別シミュレーション実行部20は、高々、(アルゴリズム要素の数)×(時間帯の数)回のシミュレーションを実行する。これにより、アルゴリズム要素の全ての組合せについてシミュレーションを実行する場合に比べて高速に、アルゴリズム要素の最良の組合せ(すなわち最終的な取引アルゴリズム)を得ることができる。このような本実施形態の特徴について詳細に説明する。
【0042】
VWAP(出来高加重平均価格)で株を売却する場合を考える。1日において取引が行われる時間帯を9時00分から10時00分、10時00分から12時00分、12時30分から14時00分、14時00分から15時00分までの4つの時間帯a1〜a4に分割したとする。そして、各時間帯の出来高の累積が例えば図10のようであるとする。図10において、L1は1日を通した累積出来高を表し、L2は各時間帯の累積出来高を表している。9時00分から10時00分までの時間帯a1において、L1とL2は一致している。日本の市場には、前場(9時00分から12時00分)の寄り付き(9時00分)と後場(12時30分から15時00分)の寄り付き(14時30分)で板寄せ取引による大量の約定が発生するという特徴がある。9時00分および12時30分において、累積約定が0から始まっていないのはそのためである。また、前場と後場の引け(11時00分および15時00分)においても大量の約定が生じやすい。このような特徴を考慮し、次のような3つのアルゴリズム要素を仮定する。
【0043】
アルゴリズム要素A:始めに大量約定、終わりに少量約定。
【0044】
アルゴリズム要素B:始めに少量約定、終わりに大量約定。
【0045】
アルゴリズム要素C:約定がほぼ一定。
【0046】
上述したように1日において取引が行われる時間帯を9時00分から10時00分、10時00分から12時00分、12時30分から14時00分、14時00分から15時00分までの4つの時間帯a1〜a4に分割し、各時間帯にアルゴリズム要素A〜Cのいずれかを適用する場合、その全ての組合せは、(A,A,A,A)(A,A,A,B)(A,A,A,C)(A,A,B,A)(A,A,B,B)(A,A,B,C)…(C,C,C,C)のように81通りとなる。
【0047】
実際にこれだけの組合せを厳密に評価する必要はないと考えられる。このような多数の組合せを検証する必要があるのは、前段の評価が次の市場に影響する場合である。例えば、アルゴリズム要素のある組合せ(A,A)とアルゴリズム要素の別の組合せ(B,A)とを考えたとき、前者の組合せでは最初にアルゴリズム要素Aが適用され、後者の組合せでは最初にアルゴリズム要素Bが適用されることになる。このように最初にアルゴリズム要素Aを適用したときとアルゴリズム要素Bを適用したときとで、次の時間帯の市場が大きく変わるのであれば、前者および後者の組合せを厳密に評価しなければならない。
【0048】
しかしながら、アルゴリズム取引は、大量注文を少量注文に分割し、市場を大きく変えることを防ぐことを主な目的として行われるものである。また、株価はブラウン運動し、前の価格が後の価格に影響しないことが知られている。大量注文等で価格を大きく変えた場合、ブラウン運動するがために、先々の価格がどうなるか、予想はますます難しくなってしまう。そのためにも、市場を大きく変えるような大量発注は原則避けなければならない。したがって、4つの時間帯a1〜a4が独立したマーケットと仮定することができ、この場合3つのアルゴリズム要素A,B,Cを評価して成績が最もよいもの、例えば図11に示すようにアルゴリズム要素(A,C,A,C)の組合せが最良解となる。
【0049】
より定量的にアルゴリズムの良否を判断するために、81通りの組合せについて成績を評価する必要がある。この場合、時間帯ごとにアルゴリズム要素A,B,Cについて個別シミュレーションを実行すると、その実行回数は3×4=12回である。ただし、4つの時間帯を通して評価した場合に比べて各時間帯の初期条件が異なる。前の時間帯で所定の株数をVWAPで売買できたかどうかはわからないからである。
【0050】
例えば、アルゴリズム要素(C,C,C,C)の組合わせについて、売却をシミュレーションした場合を考えてみる。最初の時間帯a1は、初めに大量の注文があるにもかかわらず、少量の注文しか出されないので、結果的にはVWAPよりも安い価格で売却することになり、売り数量も予定より少なくなるはずである。その分だけ時間帯a1は損となる。次の時間帯a2では、アルゴリズム要素Cの適用は正解であるから時間帯a1で売却できなかった分も売却できると考えてよい。ある時間帯でのVWAPが前の時間帯の平均売却価格よりも高ければ益となり、逆に、ある時間帯でのVWAPが前の時間帯の平均売却価格(特に前の時間帯のVWAP)よりも安ければ損となる。これは、少ない計算時間で補正することができ、あらためてシミュレーションする必要はない。したがって、12回のシミュレーションと81回の補正計算によって全ての場合についての成績を出すことができる。
【0051】
現状では、市場の1時間の推移のシミュレーションに1分程度を要するシミュレータが多く、シミュレート自体が1分であるとすると、補正計算は1ミリ秒程度であろうから、全ての場合を通してシミュレーションを行う場合には81分程度を要するのに対し、時間帯ごとの個別シミュレーションおよび補正計算を行う場合は、12分+81×1ミリ秒であり、81/12倍の高速化を実現することができる。これまで、アルゴリズム要素の数と時間帯の数が少しでも増えると、アルゴリズム要素の組合せの数が爆発的に増加してシミュレーションに多大な時間を要することから、取引戦術や戦略の評価が十分に行えるものではなかった。これに対し本実施形態では、上記のように高速化によって、このような課題を解決することができる。
【0052】
ここで、上記補正計算について詳細に説明する。なお、既に述べたように時間帯ごとの個別シミュレーションは個別シミュレーション実行部20が実行する。上記補正計算は、シミュレーション補正部24が行う。
【0053】
証券市場では、売注文および買注文について、その価格および注文株数が時々刻々と提示され、それらの注文が合致すると、売買が成立(約定)する。図12は約定の価格を示しており、図13はそれぞれの約定に対する約定数(出来高)である。株価の動きは数学的関数で表すことはできず、せいぜいブラウン運動モデルが適用できるにすぎない。出来高についても、ある時間に大量の約定が成立することもあり、連続関数のような数学的関数で表すことはできない。
【0054】
証券市場シミュレータは、価格の動きや出来高の動きを様々なモデルを駆使してシミュレートする。図14に示すように、例えば東京証券取引所等の証券市場では、買注文(黒丸および破線)と売注文(四角および実線)が時々刻々と提示される。この図を例に説明すると、10時20分08秒頃に売注文が33170円で1900株提示され、買注文が33130円で300株ほど提示されている。また、10時20分22秒頃に33130円の買注文が800株になり、500株の追加注文があったことがわかる。さらに、10時20分24秒頃に33140円で500株の買注文が新規に発注され、10時20分34秒頃に33150円で1000株の売注文が新規に発注され、売注文と買注文の価格差が最小(ここでは10円)となり、10時20分33秒頃に、33150円で500株の買注文が出されたため、この500株が33150円で売買成立(約定)している。その後、33150円の売注文に対して、100株の買注文が2回あり、33150円の売注文は100株づつ減り、400株、300株と変わっていく。証券市場シミュレータは、これらの値動きを模擬して、シミュレータの利用者が出した注文を市場ルールに則って約定させようとする。
【0055】
まず、シミュレータで厳密にシミュレートしたときの4つの時間帯を通したVWAPをどのように計算するかについて説明する。
【0056】
時間帯a1における約定価格×約定数を計算して第1の合計値αする。次に、時間帯a2における約定価格×約定数と第1の合計値αとを合計して第2の合計値αとするとともに、時間帯a2における全約定株数と時間帯a1における全約定株数とを合計して第2の合計値βとする。次に、時間帯a3における約定価格×約定数と第2の合計値αとを合計して第3の合計値αとするとともに、時間帯a3における全約定株数と第2の合計値βとを合計して第3の合計値βとする。そして、時間帯a4における約定価格×約定数と第3の合計値αとを合計して第4の合計値αとするとともに、時間帯a4における全約定株数と第3の合計値βとを合計して第4の合計値βとする。ここで、4つの時間帯を通したVWAPを第4の合計値α/第4の合計値βによって計算することができる。
【0057】
証券市場シミュレータでは約定をモニターし、約定価格×約定株数を計算していくので、精密な市場シミュレータとなると、そのプロセスを単純な数式で表せるわけではないが、理解を容易にするために、次のように単純化して検討しても、本質を損ねることはない。図15および図16に示すように市場の4つの時間帯a1〜a4それぞれをさらに前半と後半の2つの時間帯に分割し、このように分割された時間帯における価格と出来高は一定とする(図15における一定価格を示す点線C11〜C42,図16における一定出来高を示す点線D11〜42)。
【0058】
シミュレートする前には価格は全く予測できず、価格変化のパターンすら仮定もできないとする。また出来高も予測できないが、時間帯の前半と後半での大小のパターンを仮定できるとする。
【0059】
以上の前提で、アルゴリズムの組合せについてVWAPで説明する。VWAPは、取引する時間帯での出来高時間分布の予測の優劣で結果が変わる。その時間帯の出来高時間分布を正しく予想できることが重要である。
【0060】
時間帯a1〜a4それぞれにおける前半と後半の時間帯について、出来高時間分布の3つの変化パターンを次のように想定する。
【0061】
パターンA 前半:出来高大(全体の2/3),後半:出来高小(全体の1/3)
パターンB 前半と後半の出来高が同じ(1/2ずつ)
パターンC 前半:出来高小(全体の1/3),後半:出来高大(全体の2/3)
これら3つのパターンでVWAPの結果は異なってくるので、これらは同じVWAPではあるが、A,B,Cの3つの異なるアルゴリズム要素であるとする。
【0062】
ここで、4つの時間帯a1〜a4それぞれにアルゴリズム要素A〜Cのいずれかを適用する場合、考えられるアルゴリズム要素A〜Cの組合せは、3の4乗通りの81通りとなる。
【0063】
価格が次のように推移したとする。
【0064】
【表1】
【0065】
出来高時間分布の変化パターンとして上記の通りパターンA〜Cの3通りを想定し、これを次のように表す。パターンA〜Cはそれぞれアルゴリズム要素A〜Cに対応する。
【0066】
【表2】
【0067】
例えば、時間帯a1にパターンAが適用された場合、前半の価格は1000円で約定数は2、後半の価格は990円で約定数は1である。時間帯a1にパターンBが適用された場合、前半の価格は1000円で約定数は1、後半の価格は990円で約定数は1である。時間帯a1にパターンCが適用された場合、前半の価格は1000円で約定数は1、後半の価格は990円で約定数は2である。
【0068】
4つの時間帯a1〜a4において、出来高分布が全てパターンAの場合、VWAPは、以下のようにして求めることができる。
【0069】
【表3】
【0070】
表3によると、各時間帯で個別にVWAPを計算できることがわかり、これを表4に示す。
【0071】
【表4】
【0072】
上記表4のような各時間帯のVWAPを用いれば、シミュレータで再度約定数等を数え上げなくても、全時間帯を通したVWAPを次の表5のように計算することができる。
【0073】
【表5】
【0074】
この例のように、時間帯a1からa2について事前に個別のVWAPを計算しておけば、全時間帯を通したVWAPを計算することができる。この例は、出来高分布がパターンA,A,A,Aという組合せである。A,B,C,Aというパターンの組合せについては、時間帯a1についてパターンAの個別VWAPを計算し、時間帯a2についてパターンBの個別VWAPを計算し、時間帯a3についてパターンCの個別VWAPを計算し、時間帯a4についてパターンAの個別VWAPを事前に計算しておけばよい。
【0075】
上記のような計算手法が有効であるのは時間帯a1〜a4それぞれを独立にシミュレートしてよい場合である。時間帯a1でパターンAの出来高分布を用いた場合と、パターンBの出来高分布を用いた場合とで、時間帯a2での価格や出来高分布が変わるようであれば、独立にシミュレートすることは無意味である。このような場合が生じるのは、大量の注文を出したときである。アルゴリズム取引の最も重要な目的は、市場を乱さないように発注することであるから、時間帯a1〜a4それぞれについて独立にシミュレートしても、時間帯a1〜a4を通してシミュレートしても結果が変わらないことが理想である。
【0076】
以上のように、個々の時間帯について独立にVWAPを求め、それらを用いて任意の出来高分布についてVWAPを求めることができる。またそうできるアルゴリズムが理想のアルゴリズムである。
【0077】
図2に示した本実施形態の構成においては、上記計算を行うために個別シミュレーション実行部20が(アルゴリズム要素数×時間帯数)に相当する12通りの個別シミュレーション、すなわち
(時間帯a1−A),(時間帯a2−A),(時間帯a3−A),(時間帯a4−A),
(時間帯a1−B),(時間帯a2−B),(時間帯a3−B),(時間帯a4−B),
(時間帯a1−C),(時間帯a2−C),(時間帯a3−C),(時間帯a4−C)
を実行する。その結果、個別シミュレーション実行結果がそれぞれ得られる。個別シミュレーション実行結果は、当該時間帯に複数のアルゴリズム要素のいずれかを適用して取引を行って得られた約定結果(少なくとも約定数および約定価格を含む)である。
【0078】
個別VWAP計算部28は、上述したように当該時間帯の取引による約定価格に約定数を乗じた値を当該時間帯における約定数で除算することにより個別VWAPを計算する。これにより計算された個別VWAPは、個別シミュレーション実行結果としてそれぞれ個別シミュレーション実行結果記憶部25に格納される。
【0079】
シミュレーション補正部24は、各時間帯について事前に計算された個別VWAPに基づいて、全時間帯を通したVWAPを計算する。具体的には、シミュレーション補正部24は、時間帯ごとの個別VWAPに時間帯ごとの約定数を乗じた値の全時間帯の総和を、全時間帯の累積約定数で除算することにより計算する。各時間帯の個別VWAPに約定数を乗算することは、全時間帯を通したVWAPを求める際の、個別時間帯でのVWAPを「補正」していると見ることができる。
【0080】
例えばアルゴリズム要素A,B,B,Cの組合せの場合、{(時間帯a1−Aの個別VWAP)×(時間帯a1の約定数)+(時間帯a2−Bの個別VWAP)×(時間帯a2の約定数)+(時間帯a3−Bの個別VWAP)×(時間帯a3の約定数)+(時間帯a4−Cの個別VWAP)×(時間帯a4の約定数)}/(全時間帯における累積約定数)によって全時間帯を通したVWAPを計算することができる。これにより計算されたVWAPは、A,B,B,Cについて時間帯a1〜a4を通して連続的にシミュレーション実行することにより得られるVWAPとほぼ一致すると考えることができ、またそのような結果となるアルゴリズムが良いアルゴリズムである。
【0081】
シミュレーション補正部24は、制御部27から指示されたアルゴリズム要素の任意の組合せ(例えばA,A,A,AであるとかA,B,A,B)について、任意の日の全時間帯を通したVWAPを計算することができる。本実施形態において、上述したように1日において取引が行われる時間帯を9時00分から10時00分、10時00分から12時00分、12時30分から14時00分、14時00分から15時00分までの4つの時間帯a1〜a4に分割し、各時間帯にアルゴリズム要素A〜Cのいずれかを適用する場合、その全ての組合せは81通りとなる。制御部27は、この全ての組合せをシミュレーション補正部24に指示し、ある1日において取引が行われる全時間帯を通したVWAPを計算する。本実施形態のようにX日分のシナリオによって評価をする場合、X日分のVWAP計算結果を得る。
【0082】
シミュレーション補正部24による上記VWAPの計算結果は、シミュレーション補正結果としてシミュレーション補正結果記憶部26に格納され、アルゴリズム最終結果選別部29に与えられる。アルゴリズム最終結果選別部29は、選別基準に基づいて最良の取引アルゴリズムを選別する。
【0083】
図17は、最良の取引アルゴリズムを選別するための選別基準の一例を示し、図18は、該選別基準により選別されたアルゴリズム要素の組合せの例を示している。アルゴリズム最終結果選別部29は、アルゴリズム取引のVWAPと市場全体のVWAPとの差を求め、アルゴリズム要素の最良の組合せ、すなわちアルゴリズム要素DACBCDを選別している。ただし、この例は、1日の取引の時間帯を6つの時間帯に分割した場合であって、4つのアルゴリズム要素A〜Dのいずれかを適用する場合の組合せである。
【0084】
(アルゴリズム取引システムにおける取引戦略等の評価支援)
現状では、取引アルゴリズムの種類は多岐にわたる上、発注タイミング設定値などの種々のパラメータを適宜設定する必要があることから、単独のアルゴリズムを長期間にわたって適用する状態にはなっていない。このためアルゴリズム取引では、多数のアルゴリズム要素が事前に用意され、これらの組合せを検証しなければならない。アルゴリズム要素の組合せは膨大であり、これら全ての組合せを検証するには膨大な計算時間を必要としていた。株の売買は、トレーダーの立場によって売買のパターンが大きく異なる。
【0085】
トレーダーを分類すると大きく3つに分けることができる。第1は、零細な個人レベルのデイトレーダーと呼ばれる顧客を対象としたトレーダーである。彼らは、基本的に1日の売買で損益の決着をつける。第2は、マーケットメーカーと呼ばれるタイプのトレーダーである。現在、日本ではマーケットメーク型の証券市場は殆ど存在しないが、証券会社の自己売買部門はそれに近いと思われる。彼らは、1週間から1ケ月程度の期間で損益の決着をつける。第3は、年金運用機関等の機関投資家を顧客としたトレーダーである。彼らは、顧客の注文を正確に実施することがミッションである。数ヶ月から1年間にわたって買注文のみ、または売注文のみが発生し、かつ大量の売買を実施する。
【0086】
トレーダーは、独自の売買戦略を持つばかりでなく、市場の状況に応じて多様な売買戦術を使いこなす。損益の基準も、自分で選択できる場合もあれば、顧客から設定され自分で選択できない場合もある。基本的には、顧客(自分も含む)からの指値以上で売れれば益、指値以下で買えれば益、その逆は損となるが、適切な指値を設定しにくいときは、出来高加重平均株価(VWAP)を基準とする場合もある。VWAPは市場が閉まった後に公開されるので、独力でVWAPを常に評価し、VWAPに影響しない私設取引所(PTS)の活用も考慮しなければならない。日本ではPTSでの取引は活発でないが、米国等でPTS(DMA、ダークプールともいう)で活発な取引があり、これらの活用も重要となる。指値で取引する場合には、一度に大量の注文を出すと、自分の注文が市場を動かし、買/売に応じて市場価格が大きく上/下し指値で売買できないリスクがある。自分の注文が市場価格に与える影響(マーケットインパクト)を評価しながら小刻みに注文を出していかなければならない。先物のような証拠金取引では、証拠金の値洗いが終値を基準にするので、終値より有利な条件で売買できなければならない。終値もVWAPと同様に市場が閉まってから決まるので、引けに合わせて取引を集中させる手法が有効となる。このように、株の売買戦術は多岐にわたることがわかる。ここで挙げた戦術はVWAP、指値、終値のような3つの基準に基づくものであるが、実際には、まだ多くの戦術が存在する。また、1つの戦術でも、これを実現するためには複数のアルゴリズムが存在する。アルゴリズムを適用する時間帯についても、1日あたり、最少でも前場(9時00分から11時00分)と後場(12時30分から15時00分)の2つがあり、状況によっては前場と後場をより詳細に分割することもありうる。一の取引について、アルゴリズム要素の数が10、時間帯の数が100程度の状況になることは希ではない。
【0087】
このような状況に対し、本実施形態に係る取引アルゴリズム作成装置2によれば、アルゴリズム要素の全ての組合せについてシミュレーションを実行する場合に比べて高速に、アルゴリズム要素の組合せ(取引アルゴリズム)を評価することができ、その最良の組合せを選別してオンライン発注装置3に提供することができる(アルゴリズム最終結果記憶部30)。
【0088】
オンライン発注装置3は、トレーダーが操作する操作端末4に対し、アルゴリズム選択補正部7を通じて取引アルゴリズムの選択ならびにその補正を行うためのユーザーインタフェースを提供することにより上述したようなトレーダーによる取引の戦略ならびに戦術の評価を支援しつつ、アルゴリズム取引のオンライン発注を行うように構成される。
【0089】
図2に示したように、東証や大証のような証券取引場であるマーケット200から、注文、約定状況等の情報がネットワーク16を介して本実施形態のアルゴリズム取引システムに提供される。この情報は、端末操作部4によってユーザである証券ディーラーに提示される。ロイター等の情報提供会社201からも情報が提供され、端末操作部4を介してディーラーに提供される。
【0090】
ディーラーは、操作端末部4の入力部5(キーボードやマウス等)を操作することにより、売買の注文をオンライン発注装置3に対して与える。この発注に関する情報は、アルゴリズム選択補正部7に入力される。アルゴリズム選択補正部7は、アルゴリズム選択結果記憶部30からいくつかのアルゴリズム要素の組合わせを読み出す。これらは、取引アルゴリズム作成装置2によって作成されたものであるが、取引を行うディーラーの立場を必ずしも完全に反映できるものであるとは限らない。例えば、取引アルゴリズム作成装置2に盛り込むことのできなかった企業のファンダメンタル情報、例えば、新聞のリーク記事等の緊急発表された情報等から、取引アルゴリズム作成装置2からの提示とは異なったアルゴリズム要素を選択することは十分にありうることである。
【0091】
そこで、アルゴリズム選択補正部7は、アルゴリズム選択補正画面を操作端末4の表示部6に表示させる。操作端末4を操作するディーラーは、このアルゴリズム選択補正画面を通じて、取引アルゴリズム作成装置2によって作成されたアルゴリズム要素の組合せを変更することができる。
【0092】
図19は、アルゴリズム選択補正画面の一例を示す図である。この画面は、N種類のアルゴリズム要素A−1〜A−Nの組合せ190を、N通りの収益および出来高192が優れた順に一覧表示するものである。T−1〜T−Mは、分割されたM個の時間帯191を表している。ここで、銘柄企業の業績発表によってトレーダーが何らかの判断をし、最適なアルゴリズム要素の組合せを変更することができる。例えば、組合せ変更以前では、アルゴリズム要素(A−1,A−1,A−1,…A−1)の組合せは(収益−1,出来高−1)であり最良のものであると取引アルゴリズム作成装置2によって判定されたところ、トレーダーは、アルゴリズム要素の組合せを図中の網掛けのように(A−1,A−3,A−1,…A−3)に変更することができ、この場合に対応する(収益−3,出来高−3)を表示することができる。したがって、トレーダー自身の判断とシミュレータの判断との乖離が甚だしくないことを確認する手段を提供することができる。選択または補正された取引アルゴリズムは、アルゴリズム補正選択部7からアルゴリズム取引発注部8に送られる。アルゴリズム取引発注部8は、アルゴリズム補正選択部7から受け取った取引アルゴリズムを用い、マーケット200に対してオンラインの発注を行う。
【0093】
以上説明した実施形態によれば、動的なアルゴリズム取引に用いられるアルゴリズム要素の膨大な組合せに対処し、シミュレーションを高速に行って取引アルゴリズムを作成し、そのような取引アルゴリズムによるオンライン取引を行うことのできる取引アルゴリズム作成装置、方法およびプログラムを提供することができる。
【0094】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【0095】
1…コンピュータ
2…取引アルゴリズム作成装置
3…オンライン発注装置
4…操作端末
5…入力部
6…表示部
7…アルゴリズム選択補正部
8…アルゴリズム取引発注部
16…ネットワーク
20…個別シミュレーション実行部
21…市場取引シナリオ生成部
22…アルゴリズム発注生成部
23…アルゴリズム要素記憶部
24…シミュレーション補正部
25…個別シミュレーション結果記憶部
26…シミュレーション補正結果記憶部
27…制御部
28…個別VWAP計算部
29…アルゴリズム最終結果選別部
30…アルゴリズム最終結果記憶部
200…マーケット
201…情報提供会社
【技術分野】
【0001】
本発明は、コンピュータを利用したオンラインによる証券等のアルゴリズム取引に用いられるシステム、方法およびプログラムに関する。
【背景技術】
【0002】
近年、株券の売買をコンピュータで自動的に実施するアルゴリズム取引のシステムが実現している。アルゴリズム取引システムを用いるためには、取引アルゴリズムを設計しコンピュータに実装しなければならない。アルゴリズムそのものの妥当性と実装の正しさを検証するためには、実際のマーケットに発注して損益を評価すればよいのであるが、アルゴリズムが不十分で実装に問題があった場合には、大きな損失をひきおこす可能性がある。アルゴリズムの適切な検証手段が無いことが、アルゴリズム取引導入の大きな課題であった。
【0003】
実在する証券市場での株券受発注の記録(ティックデータ)を用いて、仮想的な証券市場を実現することができる。このようなシステムを約定シミュレーションシステムと言う。コンピュータによる自動売買システム(アルゴリズム取引システム)では、設計したアルゴリズムの妥当性とそのアルゴリズムの実装の妥当性を検証するために、この約定シミュレーションシステムを用いる。設計したアルゴリズムを実装し、約定シミュレーションシステムに自動発注し、成績を確認することでアルゴリズムそのものの妥当性と正しく実装されたかどうか判断できる。アルゴリズムの検証を正確に実施するために、市場の振る舞いをできるだけ忠実に再現できることが望ましい。特に、発注が市場価格に与える影響(マーケットインパクト)を正確に再現できることが重要である。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2009−26225号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
株式市場の出来高は午前の開始直後(寄り付き)や午後の終了直前(大引け)に多くなることでも知られるように、市場の動きは時々刻々変化する。このため、アルゴリズム取引は、株式市場の時間的な変化に対応できることが有益である。ある一日のアルゴリズム取引の方法のひとつは、その一日における複数の時間帯それぞれについて、事前に準備された複数のアルゴリズムの構成要素(以下「アルゴリズム要素」と呼ぶ)からいずれかを選択して適用することである。このため、一日の取引において適用される一連のアルゴリズム要素すなわちアルゴリズム要素の組合せを、動的なアルゴリズム取引に用いられるアルゴリズムとして作成する手法が考えられている。作成されたアルゴリズムは、現実の証券取引に有効であるかどうかを評価する必要がある。具体的には、多数のアルゴリズム要素の組合せについて、複数日の証券取引データを利用して証券取引シミュレーションを行い、そのシミュレーション結果を統計的に評価する。
【0006】
この場合、検証するアルゴリズム要素の組合せは数が多く、それぞれに組み合わせられる証券取引データを考慮すると、証券取引シミュレーションで処理すべきデータのサイズは膨大である。したがって、証券取引シミュレーションを実行するのに多大な時間がかかるという問題点がある。
【0007】
本発明はこの問題を解決するためになされたものであり、動的なアルゴリズム取引に用いられるアルゴリズム要素の膨大な組合せに対処し、オンライン取引を行うことができるアルゴリズム取引システム、方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
一態様に係るアルゴリズム取引システムは、アルゴリズム要素群における一のアルゴリズム要素による取引の個別シミュレーションを実行することにより、一の時間帯の約定結果を得る個別シミュレーション実行手段と、一日の取引における全ての時間帯それぞれについて前記アルゴリズム要素群のそれぞれのアルゴリズム要素を適用し、時間帯数とアルゴリズム要素数との積に相当する回数の個別シミュレーションを行うよう前記個別シミュレーション実行手段を制御する制御手段と、前記制御手段により制御された個別シミュレーション実行手段から得られる時間帯ごとの約定結果に基づいて、前記アルゴリズム要素の最良の組合せを選別する選別手段と、前記選別手段により選別されたアルゴリズム要素の最良の組合せによりオンライン発注を行う発注手段と、を具備することを特徴とする。
【図面の簡単な説明】
【0009】
【図1】実施形態に係るアルゴリズム取引システムの機能ブロック図
【図2】実施形態に係るアルゴリズム取引システムのハードウェア構成図
【図3】証券取引シミュレーションの実行タイミングおよび繰り返しについての模式図
【図4】板情報に基づく証券取引の模式図
【図5】市場取引シナリオ生成部により生成される発注シナリオを示す図
【図6】アルゴリズム要素記憶部に記憶されるアルゴリズム要素の2つの例を示す図
【図7】ある時間帯が終了した時点での板情報を示す図
【図8】取引アルゴリズム作成装置の動作手順を示すフローチャート
【図9】取引アルゴリズム作成装置の動作手順を示すフローチャート
【図10】出来高の時間分布を示す図
【図11】アルゴリズム要素の組合せの最良解を示す図
【図12】各時刻の約定価格を示す図
【図13】各時刻の出来高を示す図
【図14】各時刻の買注文、売注文、および約定を示す図
【図15】一の取引時間帯を前半と後半に分割した場合の一定約定価格を示す図
【図16】一の取引時間帯を前半と後半に分割した場合の一定出来高を示す図
【図17】アルゴリズム最終結果選別部による選別の基準を示す図
【図18】アルゴリズム最終結果選別部により選別されたアルゴリズム最終結果を示す図
【図19】アルゴリズム選択補正画面の一例を示す図
【発明を実施するための形態】
【0010】
以下、図面を参照しながら本発明の種々の実施形態を説明する。
【0011】
(第1の実施形態)
図1は、実施形態に係るアルゴリズム取引システムを機能ブロック図によって表現したものである。本システムは、大別すると取引アルゴリズム作成装置2、オンライン発注装置3、操作端末4により構成される。証券会社のディーラー等のユーザが操作端末4から指示を行うことにより、取引アルゴリズムを用いた発注がネットワーク16を介してマーケット200に対して行われる。
【0012】
取引アルゴリズム作成装置2は、個別シミュレーション実行部20、市場取引シナリオ生成部21、アルゴリズム発注生成部22、アルゴリズム要素記憶部23、シミュレーション補正部24、個別シミュレーション結果記憶部25、シミュレーション補正結果記憶部26、制御部27、アルゴリズム最終結果選別部29、アルゴリズム最終結果記憶部30を備え、動的なアルゴリズム取引に用いられるアルゴリズム要素の膨大な組合せに対処し、証券取引シミュレーションを高速に行って取引アルゴリズムを作成するものである。
【0013】
オンライン発注装置3は、取引アルゴリズム作成装置2によって作成された複数の取引アルゴリズムからいずれかを選択したり、一の取引アルゴリズムを構成するアルゴリズム要素の組合せを補正したりするためのアルゴリズム選択補正部7と、操作端末4からの指示により、最終的な取引アルゴリズムを用いてマーケット200に対するオンライン発注を行うアルゴリズム取引発注部8とを有する。オンライン発注装置3には、ネットワーク16を介して情報提供会社201から提供された情報が蓄積され、該情報は操作端末4において表示することができる。
【0014】
操作端末4は、証券会社のディーラー等のユーザがオンラインによりアルゴリズム取引に関する指示入力等を行う入力部5と、オンライン発注画面やアルゴリズム選択補正画面等を表示する表示するための表示部6を有する。
【0015】
図2は、実施形態に係るアルゴリズム取引システムのハードウェア構成図である。主記憶装置11からプログラムが補助記憶装置12に読み込まれる。このプログラムは、コンピュータ1を、本実施形態に係るアルゴリズム取引システムとして機能させるためのものであって、CPU10により実行される。主記憶装置11は、個別シミュレーション結果記憶部25、シミュレーション補正結果記憶部26、アルゴリズム最終結果記憶部30等を実現するためのメモリ等の記憶手段である。また補助記憶装置12は、磁気ディスク装置やCD−ROM装置等である。上記プログラムを機械読み取り可能な記録媒体から読み出して補助記憶装置12に記憶するようにしてもよい。入力装置13は、本実施形態に係るアルゴリズム取引システムを利用するユーザが種々の入力操作を行うためのキーボートやマウス等である。出力装置14は、CPU10によって行われた演算の結果などを表示するディスプレイデバイスやプリンタデバイス等である。通信装置15は、上記演算の結果などの処理結果をネットワーク16を介してコンピュータ1から他のコンピュータへ送信するための通信手段である。
【0016】
本実施形態に係るアルゴリズム取引システムは、1台のコンピュータによって実現することが可能であるが、複数のコンピュータによって実現してもよい。例えば、取引アルゴリズム作成装置2、オンライン発注装置3、操作端末4がそれぞれ別のコンピュータによって実現されてもよい。また主記憶装置11が記憶するデータの一部を他のコンピュータによって記憶してもよい。この場合、複数のコンピュータ間でネットワーク16を介してデータをやり取りする。
【0017】
以下では、説明の便宜上、一の銘柄の株式を取引する場合を例にとって説明するが、複数の銘柄の取引も可能である。また、本装置で扱えるアルゴリズム取引の対象は、証券(株券等)に限定されない。
【0018】
個別シミュレーション実行部20は、証券取引のシミュレーション(以下、シミュレーションという)を実行する。個別シミュレーション実行部20には、市場の取引を再現する市場取引シナリオに基づく発注と、アルゴリズム発注すなわちアルゴリズム要素によりなされた発注とが入力される。市場取引シナリオがX日分ある場合、個別シミュレーション実行部20は、全X日それぞれの日の取引に関して、時間帯ごとの個別シミュレーションを実行する。
【0019】
図3は、証券取引シミュレーションの実行タイミングおよび繰り返しについての模式図である。ここでは、一日の取引を6つの時間帯a1〜a6に分割している。個別シミュレーション実行部20は、X日分の市場取引シナリオを利用し、時間帯ごとの個別シミュレーションを、複数のアルゴリズム要素(図3では、A,B,C,Dの4つ)のそれぞれについて実行する。これにより各時間帯の終了時点において、取引成立結果(約定結果)と証券取引の情報(板情報)とが得られ、個別シミュレーション結果記憶部25に記憶される。なお、時間帯の分割の仕方は図3に例示した6分割(a1〜a6)に限らない。一日の時間帯をどのように分割するかは任意である。複数の時間帯への分割数をより多くすれば、一日の取引においてアルゴリズム要素を細かく切り替えることができるが、アルゴリズム要素の組合せの数は増大する。一方、複数の時間帯への分割数をより少なくすれば、アルゴリズム要素の組合せの数を抑えることができるが、一日の取引においてアルゴリズム要素を細かく切り替えることはできない。
【0020】
図4は、個別シミュレーション実行部20により実行される、板情報に基づく証券取引の模式図である。個別シミュレーション実行部20で行われる証券取引(の個別シミュレーション)は、同図のように売買を希望する値段(価格)ごとに売数量および買数量が並べられた板に基づいて行われる。9時35分時点の板によると、値段190円で売数量が6000株あり、買数量が2000株あるため、この2000株について売買が成立する。9時36分時点の板によると、いずれの売買数量においても値段が等しくないため、売買が成立しない。個別シミュレーション実行部20は、発注が市場取引シナリオからのものかアルゴリズム要素からのものかを区別する。9時36分の板の買数量2500の内訳において、先頭の発注40は、市場取引シナリオからの数量1000の発注であり、2番目の発注41はアルゴリズム要素Bからの数量500の発注であり、3番目の発注42は、市場取引シナリオからの数量1000の発注である。アルゴリズム要素からの発注41については、アルゴリズム要素名43、発注を行った時刻44、発注内容の変更回数45等の情報が含まれる。
【0021】
図5に示すように、市場取引シナリオ生成部21は、日付、時刻、売買種別、数量、値段によって構成される市場取引シナリオを生成する。同図は、X日分の市場取引シナリオのデータを示している。市場取引シナリオ生成部21は、このようなX日分の市場取引シナリオのデータを、過去の実際の市場取引のデータに基づいて生成する。あるいは、事前に準備された仮想的な市場取引のデータに基づいて、市場取引シナリオのデータを生成してもよい。市場取引シナリオ生成部21により生成された市場取引シナリオによる発注が、個別シミュレーション実行部20に入力される。個別シミュレーション実行部20はX日分の個別シミュレーションを繰り返すことから、第1日の個別シミュレーション実行に際して、第1の日付を有する1つまたは複数の市場取引シナリオのデータが発注データとして個別シミュレーション実行部20に入力され、第2日の個別シミュレーション実行に際して、第2の日付を有する1つまたは複数の市場取引シナリオのデータが発注データとして個別シミュレーション実行部20に入力される。
【0022】
図6は、アルゴリズム要素記憶部23に記憶されるアルゴリズム要素の2つの例を示している。アルゴリズム発注生成部22は、アルゴリズム要素記憶部23からこれらのようなアルゴリズム要素を取得し、アルゴリズム要素に基づく発注を生成して個別シミュレーション実行部20に入力する。同図に示すように、アルゴリズム要素は、発注時の市場状態、売買指定、発注間隔(秒)、発注数量、発注形態(指値・成行指定)等の情報を含む。同図(a)に示すアルゴリズム要素Aは、市場の状態が寄り付き・引け・ザラバそれぞれの状態での発注を行えるものである。寄り付きとザラバでは指値で発注を行うので、指値の位置(注文を出す価格の位置)を指定している。同図(b)に示すアルゴリズム要素Bは、ザラバの発注のみを行うものである。アルゴリズム要素Bでは、発注時点から時間が経つと価格を変更して発注をしなおす。アルゴリズム要素Bにおいて、発注時指値は「最良気配値+2tick」となっているが、この「tick」とは、取引価格の単位を表す。例えば、取引価格が1円単位ならば、1tickは1円である。
【0023】
各時間帯の終了時点のアルゴリズム要素による約定結果および市場全体の約定結果が個別シミュレーション実行部20から出力され、個別シミュレーション結果記憶部26に記憶される。アルゴリズム要素による約定結果は、アルゴリズム要素の発注による約定結果のみに相当し、日付および時間帯それぞれの、約定数および約定価格である。市場全体の約定結果は、アルゴリズム要素による発注と市場取引シナリオによる発注による全ての約定結果の和に相当し、日付および時間帯それぞれの、約定数および約定価格である。本実施形態のようにX日分の市場取引データについてシミュレーションが実行される場合、個別シミュレーション実行部20から出力されるX日分の約定結果が個別シミュレーション結果情報記憶部25に記憶されることになる。
【0024】
図7は、ある時間帯が終了した時点での板情報の例を示している。同図81はアルゴリズム要素に基づく発注の約定結果であり、同図80,82は市場全体の約定結果である。これら約定結果は、いずれも2009年6月1日と6月2日の約定結果を示したものであるが、X日分の取引シミュレーションを行う場合、約定結果もX日分記憶される。なお、アルゴリズム要素に基づく発注の約定結果だけではなく市場全体の約定結果についても、同図81に示すように、どのアルゴリズム要素が当該時間帯のシミュレーションに適用されているかが区別される。
【0025】
図1に示すように、個別シミュレーション実行部20は、個別VWAP計算部28を有する。この個別VWAP計算部28は、アルゴリズム要素による時間帯ごとの約定結果に基づいて、時間帯毎のVWAP(以下、「時間帯ごとの個別VWAP」という)を計算する。VWAPとは、Volume Weighted Average Price(出来高加重平均価格)の略であり、取引成立時の売買価格すなわち約定価格の出来高(約定数)に関する加重平均のことである。
【0026】
シミュレーション補正部24は、複数のアルゴリズム要素の組合せによる、ある1日の取引の全時間帯を通したVWAP(以下、「アルゴリズム取引のVWAP」という)、および市場全体における、ある1日の取引の全時間帯を通したVWAP(以下、「市場全体のVWAP」という)を計算する。
【0027】
本実施形態のようにX日分のデータを用いたシミュレーションを行う場合の、それぞれの日の取引の時間帯ごとの個別VWAPを個別VWAP計算部28がどのように計算し、それぞれの日の取引の全時間帯を通したVWAP(すなわちアルゴリズム取引のVWAP)をシミュレーション補正部24がどのように計算するかについては後述する。
【0028】
制御部27は、後述する動作手順に従って個別シミュレーションの実行およびシミュレーション補正を行うよう、個別シミュレーション実行部20およびシミュレーション補正部24を制御する。
【0029】
アルゴリズム最終結果選別部29は、シミュレーションが終了時刻に達した時点における制御部27からの指示により、選別基準に基づいて最良の取引アルゴリズムを選別し、その結果をアルゴリズム最終結果記憶部30に記憶する。アルゴリズム最終結果記憶部30には、作成された複数の取引アルゴリズムが格納され、どの取引アルゴリズムが最良のものであるかが識別可能となっている。
【0030】
図8および図9は、取引アルゴリズム作成装置2の動作手順を示すフローチャートである。以下、このフローチャートのステップに従って、本装置の動作手順を説明する。この動作手順では、特定の株式銘柄の取引に用いるための取引アルゴリズムを取引アルゴリズム作成装置2が生成するものとする。
【0031】
個別シミュレーション実行部20がシミュレーションを開始するにあたり、1日の取引時間を種々の時間帯に分割する幾つかの候補の中からいずれかを指定する(ステップS101)。この指定は、例えばユーザが取引アルゴリズム作成装置2の個別シミュレーション実行部20に対して行う。本動作手順では、例えば午前の取引時間(前場)と午後の取引時間(後場)をそれぞれ2つの時間帯に分割する指定がユーザからなされたものとする。なお、11時00分から12時30分までの時間帯に取引は行われていないものとし、当該時間帯についてのシミュレーションは行わない。またステップS101において、検証するアルゴリズム要素群をユーザが取引アルゴリズム作成装置2に対して指定する。本動作手順では、アルゴリズム要素A、B、C、Dの4つのアルゴリズム要素群が指定されたものとする。これら4つのアルゴリズム要素A、B、C、Dに基づいて、取引アルゴリズム作成装置2は最適な取引アルゴリズムを生成する。個々のアルゴリズム要素の例については図6に示している。またステップS101において、ユーザが取引アルゴリズム作成装置2に対して市場取引シナリオを指定する。これには、過去の実際のデータを市場取引シナリオとして利用する旨を指定する場合と、仮想的に生成されたデータを市場取引シナリオとして利用する旨を指定する場合とがある。例えば本動作手順では、過去の実際のデータを市場取引シナリオとして利用するシミュレーションを行うものとする。過去の実際のデータを利用する場合、その期間(上述したX日)を指定できるようにするのが好ましい。過去の実際のデータおよび仮想的に生成されたデータのいずれについても、市場取引シナリオは、1つまたは複数の取引日を有する。
【0032】
ステップS102において、個別シミュレーション実行部20は、シミュレーションを開始する初期の時間帯を設定する。ステップS103において、個別シミュレーション実行部20は、ステップS101で設定されたアルゴリズム要素群のなかから、一のアルゴリズム要素を設定する。ステップS104において、個別シミュレーション実行部20は、ステップS101で指定された市場取引シナリオの取引期間における一の取引日を設定する。また、市場取引シナリオ生成部21から市場取引シナリオによる発注を受け取り、アルゴリズム要素取得部22から当該アルゴリズム要素による発注を受け取る。以上の読み込みを終えた後、ステップS105において、制御部27からの指示により個別シミュレーション実行部20がシミュレーションを実行する。
【0033】
取引日および時間帯ごとに個別に行われる個別シミュレーションが終了すると、ステップS106において、個別シミュレーション実行部20から取引日および時間帯ごとの約定結果が出力され、個別シミュレーション結果記憶部25に記憶される。
【0034】
ステップS107において、制御部27はシミュレーションを行った取引日が終了したかどうかを判定する。終了していない場合は、ステップS104に戻り、取引日を更新して個別シミュレーションを繰り返すように個別シミュレーション実行部20を制御する。
【0035】
ステップS104乃至S107が取引日終了まで繰り返されることにより、当該時間帯について、当該アルゴリズム要素を適用した場合の個別シミュレーション結果が取引日ごとに得られることになる。このようにステップS107のシミュレーションが全ての取引日で行われると、ステップS108において、個別VWAP計算部28は、当該時間帯における当該アルゴリズム要素による個別VWAPを計算する。
【0036】
次にステップS109において、制御部27は、当該時間帯についてシミュレーションを行っていないアルゴリズム要素が残っているかどうか判定する。当該時間帯についてシミュレーションを行っていないアルゴリズム要素が残っている場合はステップS103に戻る。ステップS104においては、当該時間帯についてシミュレーションを行っていないアルゴリズム要素がアルゴリズム要素群の中から選ばれて設定される。
【0037】
当該時間帯についてシミュレーションを行っていないアルゴリズム要素が残っていない場合(ステップS109=NO)、制御部27は、シミュレーション時刻が当該取引日における最終の時間帯に到達したかどうかを判定する(ステップS110)。最終時間帯に到達していない場合(ステップS110=NO)、制御部27は、時間帯を次の時間帯に更新する(ステップS111)。
【0038】
シミュレーション時刻が最終時間帯に到達すると(ステップS110=YES)、制御部27は、シミュレーション補正部24に対し、個別シミュレーション結果に基づいてシミュレーション補正を行うよう指示する(ステップS112)。
【0039】
ステップS112において、シミュレーション補正部24は、取引日ごとに、1日の全時間帯を通したVWAP(アルゴリズム取引のVWAP)を計算する。これは、ステップS108で計算された時間帯ごとの個別VWAPに、時間帯ごとの約定数を乗じた値の全時間帯の総和を、全時間帯の累積約定数で除算すること(シミュレーション補正)により行う。また、シミュレーション補正部24は、アルゴリズム取引のVWAPと同様に市場全体のVWAPも算出する。
【0040】
ステップS113において、アルゴリズム最終結果選別部29は、全アルゴリズム要素の組合せの中から、選別基準を満たす最良の組合せを選別し(ステップS113)、アルゴリズム最終結果記憶部30に記憶する(ステップS114)。この選別においては、ステップS112で計算されたアルゴリズム取引のVWAPと市場全体のVWAPを比較することにより行う。
【0041】
本実施形態に係る取引アルゴリズム作成装置2は、1日の取引における全時間帯を通したシミュレーションを実行してシミュレーション結果を得るのではなく、時間帯ごとの個別シミュレーションのみ行い、これにより得られた個別シミュレーション結果(時間帯ごとの個別VWAP)を用いて取引アルゴリムの選定に必要な情報(アルゴリズム取引のVWAP)を得るものである。つまり、個別シミュレーション実行部20は、高々、(アルゴリズム要素の数)×(時間帯の数)回のシミュレーションを実行する。これにより、アルゴリズム要素の全ての組合せについてシミュレーションを実行する場合に比べて高速に、アルゴリズム要素の最良の組合せ(すなわち最終的な取引アルゴリズム)を得ることができる。このような本実施形態の特徴について詳細に説明する。
【0042】
VWAP(出来高加重平均価格)で株を売却する場合を考える。1日において取引が行われる時間帯を9時00分から10時00分、10時00分から12時00分、12時30分から14時00分、14時00分から15時00分までの4つの時間帯a1〜a4に分割したとする。そして、各時間帯の出来高の累積が例えば図10のようであるとする。図10において、L1は1日を通した累積出来高を表し、L2は各時間帯の累積出来高を表している。9時00分から10時00分までの時間帯a1において、L1とL2は一致している。日本の市場には、前場(9時00分から12時00分)の寄り付き(9時00分)と後場(12時30分から15時00分)の寄り付き(14時30分)で板寄せ取引による大量の約定が発生するという特徴がある。9時00分および12時30分において、累積約定が0から始まっていないのはそのためである。また、前場と後場の引け(11時00分および15時00分)においても大量の約定が生じやすい。このような特徴を考慮し、次のような3つのアルゴリズム要素を仮定する。
【0043】
アルゴリズム要素A:始めに大量約定、終わりに少量約定。
【0044】
アルゴリズム要素B:始めに少量約定、終わりに大量約定。
【0045】
アルゴリズム要素C:約定がほぼ一定。
【0046】
上述したように1日において取引が行われる時間帯を9時00分から10時00分、10時00分から12時00分、12時30分から14時00分、14時00分から15時00分までの4つの時間帯a1〜a4に分割し、各時間帯にアルゴリズム要素A〜Cのいずれかを適用する場合、その全ての組合せは、(A,A,A,A)(A,A,A,B)(A,A,A,C)(A,A,B,A)(A,A,B,B)(A,A,B,C)…(C,C,C,C)のように81通りとなる。
【0047】
実際にこれだけの組合せを厳密に評価する必要はないと考えられる。このような多数の組合せを検証する必要があるのは、前段の評価が次の市場に影響する場合である。例えば、アルゴリズム要素のある組合せ(A,A)とアルゴリズム要素の別の組合せ(B,A)とを考えたとき、前者の組合せでは最初にアルゴリズム要素Aが適用され、後者の組合せでは最初にアルゴリズム要素Bが適用されることになる。このように最初にアルゴリズム要素Aを適用したときとアルゴリズム要素Bを適用したときとで、次の時間帯の市場が大きく変わるのであれば、前者および後者の組合せを厳密に評価しなければならない。
【0048】
しかしながら、アルゴリズム取引は、大量注文を少量注文に分割し、市場を大きく変えることを防ぐことを主な目的として行われるものである。また、株価はブラウン運動し、前の価格が後の価格に影響しないことが知られている。大量注文等で価格を大きく変えた場合、ブラウン運動するがために、先々の価格がどうなるか、予想はますます難しくなってしまう。そのためにも、市場を大きく変えるような大量発注は原則避けなければならない。したがって、4つの時間帯a1〜a4が独立したマーケットと仮定することができ、この場合3つのアルゴリズム要素A,B,Cを評価して成績が最もよいもの、例えば図11に示すようにアルゴリズム要素(A,C,A,C)の組合せが最良解となる。
【0049】
より定量的にアルゴリズムの良否を判断するために、81通りの組合せについて成績を評価する必要がある。この場合、時間帯ごとにアルゴリズム要素A,B,Cについて個別シミュレーションを実行すると、その実行回数は3×4=12回である。ただし、4つの時間帯を通して評価した場合に比べて各時間帯の初期条件が異なる。前の時間帯で所定の株数をVWAPで売買できたかどうかはわからないからである。
【0050】
例えば、アルゴリズム要素(C,C,C,C)の組合わせについて、売却をシミュレーションした場合を考えてみる。最初の時間帯a1は、初めに大量の注文があるにもかかわらず、少量の注文しか出されないので、結果的にはVWAPよりも安い価格で売却することになり、売り数量も予定より少なくなるはずである。その分だけ時間帯a1は損となる。次の時間帯a2では、アルゴリズム要素Cの適用は正解であるから時間帯a1で売却できなかった分も売却できると考えてよい。ある時間帯でのVWAPが前の時間帯の平均売却価格よりも高ければ益となり、逆に、ある時間帯でのVWAPが前の時間帯の平均売却価格(特に前の時間帯のVWAP)よりも安ければ損となる。これは、少ない計算時間で補正することができ、あらためてシミュレーションする必要はない。したがって、12回のシミュレーションと81回の補正計算によって全ての場合についての成績を出すことができる。
【0051】
現状では、市場の1時間の推移のシミュレーションに1分程度を要するシミュレータが多く、シミュレート自体が1分であるとすると、補正計算は1ミリ秒程度であろうから、全ての場合を通してシミュレーションを行う場合には81分程度を要するのに対し、時間帯ごとの個別シミュレーションおよび補正計算を行う場合は、12分+81×1ミリ秒であり、81/12倍の高速化を実現することができる。これまで、アルゴリズム要素の数と時間帯の数が少しでも増えると、アルゴリズム要素の組合せの数が爆発的に増加してシミュレーションに多大な時間を要することから、取引戦術や戦略の評価が十分に行えるものではなかった。これに対し本実施形態では、上記のように高速化によって、このような課題を解決することができる。
【0052】
ここで、上記補正計算について詳細に説明する。なお、既に述べたように時間帯ごとの個別シミュレーションは個別シミュレーション実行部20が実行する。上記補正計算は、シミュレーション補正部24が行う。
【0053】
証券市場では、売注文および買注文について、その価格および注文株数が時々刻々と提示され、それらの注文が合致すると、売買が成立(約定)する。図12は約定の価格を示しており、図13はそれぞれの約定に対する約定数(出来高)である。株価の動きは数学的関数で表すことはできず、せいぜいブラウン運動モデルが適用できるにすぎない。出来高についても、ある時間に大量の約定が成立することもあり、連続関数のような数学的関数で表すことはできない。
【0054】
証券市場シミュレータは、価格の動きや出来高の動きを様々なモデルを駆使してシミュレートする。図14に示すように、例えば東京証券取引所等の証券市場では、買注文(黒丸および破線)と売注文(四角および実線)が時々刻々と提示される。この図を例に説明すると、10時20分08秒頃に売注文が33170円で1900株提示され、買注文が33130円で300株ほど提示されている。また、10時20分22秒頃に33130円の買注文が800株になり、500株の追加注文があったことがわかる。さらに、10時20分24秒頃に33140円で500株の買注文が新規に発注され、10時20分34秒頃に33150円で1000株の売注文が新規に発注され、売注文と買注文の価格差が最小(ここでは10円)となり、10時20分33秒頃に、33150円で500株の買注文が出されたため、この500株が33150円で売買成立(約定)している。その後、33150円の売注文に対して、100株の買注文が2回あり、33150円の売注文は100株づつ減り、400株、300株と変わっていく。証券市場シミュレータは、これらの値動きを模擬して、シミュレータの利用者が出した注文を市場ルールに則って約定させようとする。
【0055】
まず、シミュレータで厳密にシミュレートしたときの4つの時間帯を通したVWAPをどのように計算するかについて説明する。
【0056】
時間帯a1における約定価格×約定数を計算して第1の合計値αする。次に、時間帯a2における約定価格×約定数と第1の合計値αとを合計して第2の合計値αとするとともに、時間帯a2における全約定株数と時間帯a1における全約定株数とを合計して第2の合計値βとする。次に、時間帯a3における約定価格×約定数と第2の合計値αとを合計して第3の合計値αとするとともに、時間帯a3における全約定株数と第2の合計値βとを合計して第3の合計値βとする。そして、時間帯a4における約定価格×約定数と第3の合計値αとを合計して第4の合計値αとするとともに、時間帯a4における全約定株数と第3の合計値βとを合計して第4の合計値βとする。ここで、4つの時間帯を通したVWAPを第4の合計値α/第4の合計値βによって計算することができる。
【0057】
証券市場シミュレータでは約定をモニターし、約定価格×約定株数を計算していくので、精密な市場シミュレータとなると、そのプロセスを単純な数式で表せるわけではないが、理解を容易にするために、次のように単純化して検討しても、本質を損ねることはない。図15および図16に示すように市場の4つの時間帯a1〜a4それぞれをさらに前半と後半の2つの時間帯に分割し、このように分割された時間帯における価格と出来高は一定とする(図15における一定価格を示す点線C11〜C42,図16における一定出来高を示す点線D11〜42)。
【0058】
シミュレートする前には価格は全く予測できず、価格変化のパターンすら仮定もできないとする。また出来高も予測できないが、時間帯の前半と後半での大小のパターンを仮定できるとする。
【0059】
以上の前提で、アルゴリズムの組合せについてVWAPで説明する。VWAPは、取引する時間帯での出来高時間分布の予測の優劣で結果が変わる。その時間帯の出来高時間分布を正しく予想できることが重要である。
【0060】
時間帯a1〜a4それぞれにおける前半と後半の時間帯について、出来高時間分布の3つの変化パターンを次のように想定する。
【0061】
パターンA 前半:出来高大(全体の2/3),後半:出来高小(全体の1/3)
パターンB 前半と後半の出来高が同じ(1/2ずつ)
パターンC 前半:出来高小(全体の1/3),後半:出来高大(全体の2/3)
これら3つのパターンでVWAPの結果は異なってくるので、これらは同じVWAPではあるが、A,B,Cの3つの異なるアルゴリズム要素であるとする。
【0062】
ここで、4つの時間帯a1〜a4それぞれにアルゴリズム要素A〜Cのいずれかを適用する場合、考えられるアルゴリズム要素A〜Cの組合せは、3の4乗通りの81通りとなる。
【0063】
価格が次のように推移したとする。
【0064】
【表1】
【0065】
出来高時間分布の変化パターンとして上記の通りパターンA〜Cの3通りを想定し、これを次のように表す。パターンA〜Cはそれぞれアルゴリズム要素A〜Cに対応する。
【0066】
【表2】
【0067】
例えば、時間帯a1にパターンAが適用された場合、前半の価格は1000円で約定数は2、後半の価格は990円で約定数は1である。時間帯a1にパターンBが適用された場合、前半の価格は1000円で約定数は1、後半の価格は990円で約定数は1である。時間帯a1にパターンCが適用された場合、前半の価格は1000円で約定数は1、後半の価格は990円で約定数は2である。
【0068】
4つの時間帯a1〜a4において、出来高分布が全てパターンAの場合、VWAPは、以下のようにして求めることができる。
【0069】
【表3】
【0070】
表3によると、各時間帯で個別にVWAPを計算できることがわかり、これを表4に示す。
【0071】
【表4】
【0072】
上記表4のような各時間帯のVWAPを用いれば、シミュレータで再度約定数等を数え上げなくても、全時間帯を通したVWAPを次の表5のように計算することができる。
【0073】
【表5】
【0074】
この例のように、時間帯a1からa2について事前に個別のVWAPを計算しておけば、全時間帯を通したVWAPを計算することができる。この例は、出来高分布がパターンA,A,A,Aという組合せである。A,B,C,Aというパターンの組合せについては、時間帯a1についてパターンAの個別VWAPを計算し、時間帯a2についてパターンBの個別VWAPを計算し、時間帯a3についてパターンCの個別VWAPを計算し、時間帯a4についてパターンAの個別VWAPを事前に計算しておけばよい。
【0075】
上記のような計算手法が有効であるのは時間帯a1〜a4それぞれを独立にシミュレートしてよい場合である。時間帯a1でパターンAの出来高分布を用いた場合と、パターンBの出来高分布を用いた場合とで、時間帯a2での価格や出来高分布が変わるようであれば、独立にシミュレートすることは無意味である。このような場合が生じるのは、大量の注文を出したときである。アルゴリズム取引の最も重要な目的は、市場を乱さないように発注することであるから、時間帯a1〜a4それぞれについて独立にシミュレートしても、時間帯a1〜a4を通してシミュレートしても結果が変わらないことが理想である。
【0076】
以上のように、個々の時間帯について独立にVWAPを求め、それらを用いて任意の出来高分布についてVWAPを求めることができる。またそうできるアルゴリズムが理想のアルゴリズムである。
【0077】
図2に示した本実施形態の構成においては、上記計算を行うために個別シミュレーション実行部20が(アルゴリズム要素数×時間帯数)に相当する12通りの個別シミュレーション、すなわち
(時間帯a1−A),(時間帯a2−A),(時間帯a3−A),(時間帯a4−A),
(時間帯a1−B),(時間帯a2−B),(時間帯a3−B),(時間帯a4−B),
(時間帯a1−C),(時間帯a2−C),(時間帯a3−C),(時間帯a4−C)
を実行する。その結果、個別シミュレーション実行結果がそれぞれ得られる。個別シミュレーション実行結果は、当該時間帯に複数のアルゴリズム要素のいずれかを適用して取引を行って得られた約定結果(少なくとも約定数および約定価格を含む)である。
【0078】
個別VWAP計算部28は、上述したように当該時間帯の取引による約定価格に約定数を乗じた値を当該時間帯における約定数で除算することにより個別VWAPを計算する。これにより計算された個別VWAPは、個別シミュレーション実行結果としてそれぞれ個別シミュレーション実行結果記憶部25に格納される。
【0079】
シミュレーション補正部24は、各時間帯について事前に計算された個別VWAPに基づいて、全時間帯を通したVWAPを計算する。具体的には、シミュレーション補正部24は、時間帯ごとの個別VWAPに時間帯ごとの約定数を乗じた値の全時間帯の総和を、全時間帯の累積約定数で除算することにより計算する。各時間帯の個別VWAPに約定数を乗算することは、全時間帯を通したVWAPを求める際の、個別時間帯でのVWAPを「補正」していると見ることができる。
【0080】
例えばアルゴリズム要素A,B,B,Cの組合せの場合、{(時間帯a1−Aの個別VWAP)×(時間帯a1の約定数)+(時間帯a2−Bの個別VWAP)×(時間帯a2の約定数)+(時間帯a3−Bの個別VWAP)×(時間帯a3の約定数)+(時間帯a4−Cの個別VWAP)×(時間帯a4の約定数)}/(全時間帯における累積約定数)によって全時間帯を通したVWAPを計算することができる。これにより計算されたVWAPは、A,B,B,Cについて時間帯a1〜a4を通して連続的にシミュレーション実行することにより得られるVWAPとほぼ一致すると考えることができ、またそのような結果となるアルゴリズムが良いアルゴリズムである。
【0081】
シミュレーション補正部24は、制御部27から指示されたアルゴリズム要素の任意の組合せ(例えばA,A,A,AであるとかA,B,A,B)について、任意の日の全時間帯を通したVWAPを計算することができる。本実施形態において、上述したように1日において取引が行われる時間帯を9時00分から10時00分、10時00分から12時00分、12時30分から14時00分、14時00分から15時00分までの4つの時間帯a1〜a4に分割し、各時間帯にアルゴリズム要素A〜Cのいずれかを適用する場合、その全ての組合せは81通りとなる。制御部27は、この全ての組合せをシミュレーション補正部24に指示し、ある1日において取引が行われる全時間帯を通したVWAPを計算する。本実施形態のようにX日分のシナリオによって評価をする場合、X日分のVWAP計算結果を得る。
【0082】
シミュレーション補正部24による上記VWAPの計算結果は、シミュレーション補正結果としてシミュレーション補正結果記憶部26に格納され、アルゴリズム最終結果選別部29に与えられる。アルゴリズム最終結果選別部29は、選別基準に基づいて最良の取引アルゴリズムを選別する。
【0083】
図17は、最良の取引アルゴリズムを選別するための選別基準の一例を示し、図18は、該選別基準により選別されたアルゴリズム要素の組合せの例を示している。アルゴリズム最終結果選別部29は、アルゴリズム取引のVWAPと市場全体のVWAPとの差を求め、アルゴリズム要素の最良の組合せ、すなわちアルゴリズム要素DACBCDを選別している。ただし、この例は、1日の取引の時間帯を6つの時間帯に分割した場合であって、4つのアルゴリズム要素A〜Dのいずれかを適用する場合の組合せである。
【0084】
(アルゴリズム取引システムにおける取引戦略等の評価支援)
現状では、取引アルゴリズムの種類は多岐にわたる上、発注タイミング設定値などの種々のパラメータを適宜設定する必要があることから、単独のアルゴリズムを長期間にわたって適用する状態にはなっていない。このためアルゴリズム取引では、多数のアルゴリズム要素が事前に用意され、これらの組合せを検証しなければならない。アルゴリズム要素の組合せは膨大であり、これら全ての組合せを検証するには膨大な計算時間を必要としていた。株の売買は、トレーダーの立場によって売買のパターンが大きく異なる。
【0085】
トレーダーを分類すると大きく3つに分けることができる。第1は、零細な個人レベルのデイトレーダーと呼ばれる顧客を対象としたトレーダーである。彼らは、基本的に1日の売買で損益の決着をつける。第2は、マーケットメーカーと呼ばれるタイプのトレーダーである。現在、日本ではマーケットメーク型の証券市場は殆ど存在しないが、証券会社の自己売買部門はそれに近いと思われる。彼らは、1週間から1ケ月程度の期間で損益の決着をつける。第3は、年金運用機関等の機関投資家を顧客としたトレーダーである。彼らは、顧客の注文を正確に実施することがミッションである。数ヶ月から1年間にわたって買注文のみ、または売注文のみが発生し、かつ大量の売買を実施する。
【0086】
トレーダーは、独自の売買戦略を持つばかりでなく、市場の状況に応じて多様な売買戦術を使いこなす。損益の基準も、自分で選択できる場合もあれば、顧客から設定され自分で選択できない場合もある。基本的には、顧客(自分も含む)からの指値以上で売れれば益、指値以下で買えれば益、その逆は損となるが、適切な指値を設定しにくいときは、出来高加重平均株価(VWAP)を基準とする場合もある。VWAPは市場が閉まった後に公開されるので、独力でVWAPを常に評価し、VWAPに影響しない私設取引所(PTS)の活用も考慮しなければならない。日本ではPTSでの取引は活発でないが、米国等でPTS(DMA、ダークプールともいう)で活発な取引があり、これらの活用も重要となる。指値で取引する場合には、一度に大量の注文を出すと、自分の注文が市場を動かし、買/売に応じて市場価格が大きく上/下し指値で売買できないリスクがある。自分の注文が市場価格に与える影響(マーケットインパクト)を評価しながら小刻みに注文を出していかなければならない。先物のような証拠金取引では、証拠金の値洗いが終値を基準にするので、終値より有利な条件で売買できなければならない。終値もVWAPと同様に市場が閉まってから決まるので、引けに合わせて取引を集中させる手法が有効となる。このように、株の売買戦術は多岐にわたることがわかる。ここで挙げた戦術はVWAP、指値、終値のような3つの基準に基づくものであるが、実際には、まだ多くの戦術が存在する。また、1つの戦術でも、これを実現するためには複数のアルゴリズムが存在する。アルゴリズムを適用する時間帯についても、1日あたり、最少でも前場(9時00分から11時00分)と後場(12時30分から15時00分)の2つがあり、状況によっては前場と後場をより詳細に分割することもありうる。一の取引について、アルゴリズム要素の数が10、時間帯の数が100程度の状況になることは希ではない。
【0087】
このような状況に対し、本実施形態に係る取引アルゴリズム作成装置2によれば、アルゴリズム要素の全ての組合せについてシミュレーションを実行する場合に比べて高速に、アルゴリズム要素の組合せ(取引アルゴリズム)を評価することができ、その最良の組合せを選別してオンライン発注装置3に提供することができる(アルゴリズム最終結果記憶部30)。
【0088】
オンライン発注装置3は、トレーダーが操作する操作端末4に対し、アルゴリズム選択補正部7を通じて取引アルゴリズムの選択ならびにその補正を行うためのユーザーインタフェースを提供することにより上述したようなトレーダーによる取引の戦略ならびに戦術の評価を支援しつつ、アルゴリズム取引のオンライン発注を行うように構成される。
【0089】
図2に示したように、東証や大証のような証券取引場であるマーケット200から、注文、約定状況等の情報がネットワーク16を介して本実施形態のアルゴリズム取引システムに提供される。この情報は、端末操作部4によってユーザである証券ディーラーに提示される。ロイター等の情報提供会社201からも情報が提供され、端末操作部4を介してディーラーに提供される。
【0090】
ディーラーは、操作端末部4の入力部5(キーボードやマウス等)を操作することにより、売買の注文をオンライン発注装置3に対して与える。この発注に関する情報は、アルゴリズム選択補正部7に入力される。アルゴリズム選択補正部7は、アルゴリズム選択結果記憶部30からいくつかのアルゴリズム要素の組合わせを読み出す。これらは、取引アルゴリズム作成装置2によって作成されたものであるが、取引を行うディーラーの立場を必ずしも完全に反映できるものであるとは限らない。例えば、取引アルゴリズム作成装置2に盛り込むことのできなかった企業のファンダメンタル情報、例えば、新聞のリーク記事等の緊急発表された情報等から、取引アルゴリズム作成装置2からの提示とは異なったアルゴリズム要素を選択することは十分にありうることである。
【0091】
そこで、アルゴリズム選択補正部7は、アルゴリズム選択補正画面を操作端末4の表示部6に表示させる。操作端末4を操作するディーラーは、このアルゴリズム選択補正画面を通じて、取引アルゴリズム作成装置2によって作成されたアルゴリズム要素の組合せを変更することができる。
【0092】
図19は、アルゴリズム選択補正画面の一例を示す図である。この画面は、N種類のアルゴリズム要素A−1〜A−Nの組合せ190を、N通りの収益および出来高192が優れた順に一覧表示するものである。T−1〜T−Mは、分割されたM個の時間帯191を表している。ここで、銘柄企業の業績発表によってトレーダーが何らかの判断をし、最適なアルゴリズム要素の組合せを変更することができる。例えば、組合せ変更以前では、アルゴリズム要素(A−1,A−1,A−1,…A−1)の組合せは(収益−1,出来高−1)であり最良のものであると取引アルゴリズム作成装置2によって判定されたところ、トレーダーは、アルゴリズム要素の組合せを図中の網掛けのように(A−1,A−3,A−1,…A−3)に変更することができ、この場合に対応する(収益−3,出来高−3)を表示することができる。したがって、トレーダー自身の判断とシミュレータの判断との乖離が甚だしくないことを確認する手段を提供することができる。選択または補正された取引アルゴリズムは、アルゴリズム補正選択部7からアルゴリズム取引発注部8に送られる。アルゴリズム取引発注部8は、アルゴリズム補正選択部7から受け取った取引アルゴリズムを用い、マーケット200に対してオンラインの発注を行う。
【0093】
以上説明した実施形態によれば、動的なアルゴリズム取引に用いられるアルゴリズム要素の膨大な組合せに対処し、シミュレーションを高速に行って取引アルゴリズムを作成し、そのような取引アルゴリズムによるオンライン取引を行うことのできる取引アルゴリズム作成装置、方法およびプログラムを提供することができる。
【0094】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【0095】
1…コンピュータ
2…取引アルゴリズム作成装置
3…オンライン発注装置
4…操作端末
5…入力部
6…表示部
7…アルゴリズム選択補正部
8…アルゴリズム取引発注部
16…ネットワーク
20…個別シミュレーション実行部
21…市場取引シナリオ生成部
22…アルゴリズム発注生成部
23…アルゴリズム要素記憶部
24…シミュレーション補正部
25…個別シミュレーション結果記憶部
26…シミュレーション補正結果記憶部
27…制御部
28…個別VWAP計算部
29…アルゴリズム最終結果選別部
30…アルゴリズム最終結果記憶部
200…マーケット
201…情報提供会社
【特許請求の範囲】
【請求項1】
アルゴリズム要素群における一のアルゴリズム要素による取引の個別シミュレーションを実行することにより、一の時間帯の約定結果を得る個別シミュレーション実行手段と、
一日の取引における全ての時間帯それぞれについて前記アルゴリズム要素群のそれぞれのアルゴリズム要素を適用し、時間帯数とアルゴリズム要素数との積に相当する回数の個別シミュレーションを行うよう前記個別シミュレーション実行手段を制御する制御手段と、
前記制御手段により制御された個別シミュレーション実行手段から得られる時間帯ごとの約定結果に基づいて、前記アルゴリズム要素の最良の組合せを選別する選別手段と、
前記選別手段により選別されたアルゴリズム要素の最良の組合せによりオンライン発注を行う発注手段と、
を具備することを特徴とするアルゴリズム取引システム。
【請求項2】
前記回数の個別シミュレーション実行によって前記個別シミュレーション実行手段から得られる約定結果に基づいて、一日の取引における全ての時間帯それぞれに前記アルゴリズム要素群のそれぞれのアルゴリズム要素を適用した場合の全ての組合せの成績値集合を計算するシミュレーション補正手段をさらに具備し、
前記選別手段は、前記成績値集合に基づいて前記最良の組合せを選別することを特徴とする請求項1に記載のアルゴリズム取引システム。
【請求項3】
前記約定結果は約定価格と約定数を含んでおり、
前記約定価格と前記約定数とを乗算することにより時間帯ごとのVWAP(出来高加重平均価格)を計算する個別VWAP計算手段と、
前記時間帯ごとのVWAPに時間帯ごとの約定数を乗じた値の全時間帯の総和を、全時間帯の累積約定数で除算することにより、全時間帯を通したVWAPを計算するシミュレーション補正手段と、をさらに具備し、
前記選別手段は、前記全時間帯を通したVWAPに基づいて前記最良の組合せを選別することを特徴とする請求項1に記載のアルゴリズム取引システム。
【請求項4】
個別シミュレーション実行手段が、アルゴリズム要素群における一のアルゴリズム要素による取引の個別シミュレーションを実行することにより一の時間帯の約定結果を得るステップと、
制御手段が、一日の取引における全ての時間帯それぞれについて前記アルゴリズム要素群のそれぞれのアルゴリズム要素を適用し、時間帯数とアルゴリズム要素数との積に相当する回数の個別シミュレーションを行うよう前記個別シミュレーション実行手段を制御するステップと、
選別手段が、前記制御手段により制御された個別シミュレーション実行手段から得られる時間帯ごとの約定結果に基づいて前記アルゴリズム要素の最良の組合せを選別するステップと、
発注手段が、前記選別手段により選別されたアルゴリズム要素の最良の組合せによりオンライン発注を行うステップと、
を具備することを特徴とするアルゴリズム取引方法。
【請求項5】
コンピュータを、
アルゴリズム要素群における一のアルゴリズム要素による取引の個別シミュレーションを実行することにより、一の時間帯の約定結果を得る個別シミュレーション実行手段、
一日の取引における全ての時間帯それぞれについて前記アルゴリズム要素群のそれぞれのアルゴリズム要素を適用し、時間帯数とアルゴリズム要素数との積に相当する回数の個別シミュレーションを行うよう前記個別シミュレーション実行手段を制御する制御手段、
前記制御手段により制御された個別シミュレーション実行手段から得られる時間帯ごとの約定結果に基づいて、前記アルゴリズム要素の最良の組合せを選別する選別手段、
前記選別手段により選別されたアルゴリズム要素の最良の組合せによりオンライン発注を行う発注手段、
として機能させるためのアルゴリズム取引プログラム。
【請求項1】
アルゴリズム要素群における一のアルゴリズム要素による取引の個別シミュレーションを実行することにより、一の時間帯の約定結果を得る個別シミュレーション実行手段と、
一日の取引における全ての時間帯それぞれについて前記アルゴリズム要素群のそれぞれのアルゴリズム要素を適用し、時間帯数とアルゴリズム要素数との積に相当する回数の個別シミュレーションを行うよう前記個別シミュレーション実行手段を制御する制御手段と、
前記制御手段により制御された個別シミュレーション実行手段から得られる時間帯ごとの約定結果に基づいて、前記アルゴリズム要素の最良の組合せを選別する選別手段と、
前記選別手段により選別されたアルゴリズム要素の最良の組合せによりオンライン発注を行う発注手段と、
を具備することを特徴とするアルゴリズム取引システム。
【請求項2】
前記回数の個別シミュレーション実行によって前記個別シミュレーション実行手段から得られる約定結果に基づいて、一日の取引における全ての時間帯それぞれに前記アルゴリズム要素群のそれぞれのアルゴリズム要素を適用した場合の全ての組合せの成績値集合を計算するシミュレーション補正手段をさらに具備し、
前記選別手段は、前記成績値集合に基づいて前記最良の組合せを選別することを特徴とする請求項1に記載のアルゴリズム取引システム。
【請求項3】
前記約定結果は約定価格と約定数を含んでおり、
前記約定価格と前記約定数とを乗算することにより時間帯ごとのVWAP(出来高加重平均価格)を計算する個別VWAP計算手段と、
前記時間帯ごとのVWAPに時間帯ごとの約定数を乗じた値の全時間帯の総和を、全時間帯の累積約定数で除算することにより、全時間帯を通したVWAPを計算するシミュレーション補正手段と、をさらに具備し、
前記選別手段は、前記全時間帯を通したVWAPに基づいて前記最良の組合せを選別することを特徴とする請求項1に記載のアルゴリズム取引システム。
【請求項4】
個別シミュレーション実行手段が、アルゴリズム要素群における一のアルゴリズム要素による取引の個別シミュレーションを実行することにより一の時間帯の約定結果を得るステップと、
制御手段が、一日の取引における全ての時間帯それぞれについて前記アルゴリズム要素群のそれぞれのアルゴリズム要素を適用し、時間帯数とアルゴリズム要素数との積に相当する回数の個別シミュレーションを行うよう前記個別シミュレーション実行手段を制御するステップと、
選別手段が、前記制御手段により制御された個別シミュレーション実行手段から得られる時間帯ごとの約定結果に基づいて前記アルゴリズム要素の最良の組合せを選別するステップと、
発注手段が、前記選別手段により選別されたアルゴリズム要素の最良の組合せによりオンライン発注を行うステップと、
を具備することを特徴とするアルゴリズム取引方法。
【請求項5】
コンピュータを、
アルゴリズム要素群における一のアルゴリズム要素による取引の個別シミュレーションを実行することにより、一の時間帯の約定結果を得る個別シミュレーション実行手段、
一日の取引における全ての時間帯それぞれについて前記アルゴリズム要素群のそれぞれのアルゴリズム要素を適用し、時間帯数とアルゴリズム要素数との積に相当する回数の個別シミュレーションを行うよう前記個別シミュレーション実行手段を制御する制御手段、
前記制御手段により制御された個別シミュレーション実行手段から得られる時間帯ごとの約定結果に基づいて、前記アルゴリズム要素の最良の組合せを選別する選別手段、
前記選別手段により選別されたアルゴリズム要素の最良の組合せによりオンライン発注を行う発注手段、
として機能させるためのアルゴリズム取引プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【公開番号】特開2011−215908(P2011−215908A)
【公開日】平成23年10月27日(2011.10.27)
【国際特許分類】
【出願番号】特願2010−83791(P2010−83791)
【出願日】平成22年3月31日(2010.3.31)
【出願人】(301063496)東芝ソリューション株式会社 (1,478)
【公開日】平成23年10月27日(2011.10.27)
【国際特許分類】
【出願日】平成22年3月31日(2010.3.31)
【出願人】(301063496)東芝ソリューション株式会社 (1,478)
[ Back to top ]