(57)【特許請求の範囲】
【請求項１】
市場取引シナリオによる売買の数量および売買の値段を表す第１の発注と、アルゴリズム要素群における一のアルゴリズム要素による売買の数量および売買の値段を表す第２の発注とを受け取り、前記第１および第２の発注に基づく売買の数量および売買の値段が並べられた板情報を用いて取引のシミュレーションを実行することにより、前記取引の約定結果を得るシミュレーション実行手段と、
１日の取引における複数の時間帯それぞれが終了した時点の約定結果および板情報を前記シミュレーション実行手段から抽出する抽出手段と、
前記抽出手段により抽出された約定結果および板情報を記憶する記憶手段と、
シミュレーション時刻が最終の時間帯における最終時刻に達する時点までに前記シミュレーションがなされた複数のアルゴリズム要素の組合せの中から、いずれか最良の組合せを選別する最終結果選別手段と、を具備し、
前記シミュレーション実行手段は、
第１の時間帯に適用された第１のアルゴリズム要素と第２の時間帯に適用された第２のアルゴリズム要素との組合せのシミュレーション実行について、前記第１のアルゴリズム要素のシミュレーションは実行せずに前記記憶手段に記憶された約定結果および板情報を以てシミュレーション結果とし、前記第２のアルゴリズム要素のみについて前記シミュレーションを実行することを特徴とする取引アルゴリズム作成装置。
【請求項２】
前記複数の時間帯それぞれが終了した時点の前記第１および第２の発注の約定結果を評価することにより、前記一のアルゴリズム要素の成績を採点する採点手段と、
前記成績に基づいて、前記複数の時間帯についてのシミュレーションの途中の段階における複数のアルゴリズム要素の組合せを、現時点以降にシミュレーションを行うアルゴリズム要素の組合せと現時点以降にシミュレーションを行わないアルゴリズム要素の組合せとに選別する中間結果選別手段と、
をさらに具備することを特徴とする請求項１に記載の取引アルゴリズム作成装置。
【請求項３】
前記現時点以降にシミュレーションを行うアルゴリズム要素の組合せは、第１の時間帯について第１の選択基準により前記アルゴリズム要素群から選択された第１のアルゴリズム要素と、第２の時間帯について第２の選択基準により前記アルゴリズム要素群から選択された第２のアルゴリズム要素との組合せであることを特徴とする請求項２に記載の装置。
【請求項４】
前記第１の発注として、価格変動の特定の傾向を持つ市場取引の発注を前記市場取引シナリオから生成する手段をさらに具備することを特徴とする請求項１乃至３のいずれかに記載の装置。
【請求項５】
シミュレーション実行手段が、市場取引シナリオによる売買の数量および売買の値段を表す第１の発注と、アルゴリズム要素群における一のアルゴリズム要素による売買の数量および売買の値段を表す第２の発注とを受け取り、前記第１および第２の発注に基づく売買の数量および売買の値段が並べられた板情報を用いて取引のシミュレーションを実行することにより、前記取引の約定結果を得るステップと、
抽出手段が、１日の取引における複数の時間帯それぞれが終了した時点の約定結果および板情報を前記シミュレーション実行手段から抽出するステップと、
記憶手段が、前記抽出手段により抽出された約定結果および板情報を記憶するステップと、
最終結果選別手段が、シミュレーション時刻が最終の時間帯における最終時刻に達する時点までに前記シミュレーションがなされた複数のアルゴリズム要素の組合せの中から、いずれか最良の組合せを選別するステップと、を具備し、
前記シミュレーション実行手段が、
第１の時間帯に適用された第１のアルゴリズム要素と第２の時間帯に適用された第２のアルゴリズム要素との組合せのシミュレーション実行について、前記第１のアルゴリズム要素のシミュレーションは実行せずに前記記憶手段に記憶された約定結果および板情報を以てシミュレーション結果とし、前記第２のアルゴリズム要素のみについて前記シミュレーションを実行することを特徴とする取引アルゴリズム作成方法。
【請求項６】
コンピュータを、
市場取引シナリオによる売買の数量および売買の値段を表す第１の発注と、アルゴリズム要素群における一のアルゴリズム要素による売買の数量および売買の値段を表す第２の発注とを受け取り、前記第１および第２の発注に基づく売買の数量および売買の値段が並べられた板情報を用いて取引のシミュレーションを実行することにより、前記取引の約定結果を得るシミュレーション実行手段、
１日の取引における複数の時間帯それぞれが終了した時点の約定結果および板情報を前記シミュレーション実行手段から抽出する抽出手段、
前記抽出手段により抽出された約定結果および板情報を記憶する記憶手段、
シミュレーション時刻が最終の時間帯における最終時刻に達する時点までに前記シミュレーションがなされた複数のアルゴリズム要素の組合せの中から、いずれか最良の組合せを選別する最終結果選別手段、
として機能させるためのプログラムであって、
前記シミュレーション実行手段は、
第１の時間帯に適用された第１のアルゴリズム要素と第２の時間帯に適用された第２のアルゴリズム要素との組合せのシミュレーション実行について、前記第１のアルゴリズム要素のシミュレーションは実行せずに前記記憶手段に記憶された約定結果および板情報を以てシミュレーション結果とし、前記第２のアルゴリズム要素のみについて前記シミュレーションを実行することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータを利用した証券等のアルゴリズム取引に用いられるアルゴリズムをシミュレーションによって作成する取引アルゴリズム作成装置、方法およびプログラムに関する。
【背景技術】
【０００２】
アルゴリズム取引は、コンピュータプログラムに基づいて証券取引を自動的に行う取引のことである。アルゴリズム取引はアメリカ合衆国において活発に利用され、日本国でもその利用が広まりつつある。例えば、単一のアルゴリズムを一日中利用する自動執行システムについて下記特許文献１に記載されている。また、アルゴリズムを作成する際に、その有効性を評価するための市場シミュレーションシステムについて下記特許文献２に記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−２０９９８７号公報
【特許文献２】特開２００９−２６２２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
株式市場の出来高は午前の開始直後（寄り付き）や午後の終了直前（大引け）に多くなることでも知られるように、市場の動きは時々刻々変化する。このため、アルゴリズム取引は、株式市場の時間的な変化に対応できることが有益である。ある一日のアルゴリズム取引の方法のひとつは、その一日における複数の時間帯それぞれについて、事前に準備された複数のアルゴリズムの構成要素（以下「アルゴリズム要素」と呼ぶ）からいずれかを選択して適用することである。このため、一日の取引において適用される一連のアルゴリズム要素すなわちアルゴリズム要素の組合せを、動的なアルゴリズム取引に用いられるアルゴリズムとして作成する手法を考えることができる。作成されたアルゴリズムは、現実の証券取引に有効であるかどうかを評価する必要がある。具体的には、多数のアルゴリズム要素の組合せについて、複数日の証券取引データを利用して証券取引シミュレーションを行い、そのシミュレーション結果を統計的に評価する。
【０００５】
この場合、検証するアルゴリズム要素の組合せは数が多く、それぞれに組み合わせられる証券取引データを考慮すると、証券取引シミュレーションで処理すべきデータのサイズは膨大である。したがって、証券取引シミュレーションを実行するのに多大な時間がかかるという問題点がある。
【０００６】
本発明はこの問題を解決するためになされたものであり、動的なアルゴリズム取引に用いられるアルゴリズム要素の膨大な組合せに対処し、シミュレーションを高速に行って取引アルゴリズムを作成することのできる取引アルゴリズム作成装置、方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
一態様に係る取引アルゴリズム作成装置は、市場取引シナリオによる売買の数量および売買の値段を表す第１の発注と、アルゴリズム要素群における一のアルゴリズム要素による売買の数量および売買の値段を表す第２の発注とを受け取り、前記第１および第２の発注に基づく売買の数量および売買の値段が並べられた板情報を用いて取引のシミュレーションを実行することにより、前記取引の約定結果を得るシミュレーション実行手段と、１日の取引における複数の時間帯それぞれが終了した時点の約定結果および板情報を前記シミュレーション実行手段から抽出する抽出手段と、前記抽出手段により抽出された約定結果および板情報を記憶する記憶手段と、シミュレーション時刻が最終時刻に達する時点までに前記シミュレーションがなされた複数のアルゴリズム要素の組合せの中から、いずれか最良の組合せを選別する最終結果選別手段と、を具備し、前記シミュレーション実行手段は、第１の時間帯に適用された第１のアルゴリズム要素と第２の時間帯に適用された第２のアルゴリズム要素との組合せのシミュレーション実行について、前記第１のアルゴリズム要素のシミュレーションは実行せずに前記記憶手段に記憶された約定結果および板情報を以てシミュレーション結果とし、前記第２のアルゴリズム要素のみについて前記シミュレーションを実行する。
【発明の効果】
【０００８】
本発明によれば、動的なアルゴリズム取引に用いられるアルゴリズム要素の膨大な組合せに対処し、シミュレーションを高速に行って取引アルゴリズムを作成することのできる取引アルゴリズム作成装置、方法およびプログラムを提供することができる。
【図面の簡単な説明】
【０００９】
【図１】第１の実施形態に係る取引アルゴリズム作成装置のハードウェア構成図
【図２】第１の実施形態に係る取引アルゴリズム作成装置の機能ブロック図
【図３】証券取引シミュレーションの実行タイミングおよび繰り返しについての模式図
【図４】シミュレーション実行部により実行される、板情報に基づく証券取引の模式図
【図５】市場取引シナリオ生成部により生成される発注シナリオを示す図
【図６】アルゴリズム要素記憶部に記憶されるアルゴリズム要素の２つの例を示す図
【図７】約定結果記憶部に記憶されるアルゴリズム要素による発注の約定結果と市場全体の約定結果を示す図
【図８】板情報記憶部に記憶される板情報を示す図
【図９】アルゴリズム要素採点部によるアルゴリズム要素の採点結果を示す図
【図１０】アルゴリズム中間結果選別部によるアルゴリズム要素の組合せの選別についての模式図
【図１１】アルゴリズム中間結果選別部において利用される選別基準を示す図
【図１２】アルゴリズム中間結果選別部により得られたアルゴリズム要素の組合せの選別結果を示す図
【図１３】アルゴリズム中間結果選別部によるアルゴリズム要素の組合せの選別についての模式図
【図１４】板情報記憶部に記憶される板情報の選別についての模式図
【図１５】取引アルゴリズム作成装置の動作手順を示すフローチャート
【図１６】取引アルゴリズム作成装置の動作手順を示すフローチャート
【図１７】どのような時間帯に分割するかを示す図
【図１８】アルゴリズム最終結果選別部による選別の基準を示す図
【図１９】アルゴリズム最終結果選別部により選別されたアルゴリズム最終結果を示す図
【図２０】第２の実施形態に係る取引アルゴリズム作成装置のアルゴリズム中間結果選別部によるアルゴリズム要素の組合せの選別についての模式図
【図２１】第３の実施形態に係る取引アルゴリズム作成装置の市場取引シナリオ生成部において利用される市場取引シナリオを示す図
【発明を実施するための形態】
【００１０】
以下、図面を参照しながら本発明の種々の実施形態を説明する。
【００１１】
（第１の実施形態）  
図１は、第１の実施形態に係る取引アルゴリズム作成装置のハードウェア構成図である。主記憶装置１１からプログラムが補助記憶装置１２に読み込まれる。このプログラムは、コンピュータ１を、本実施形態に係る取引アルゴリズム作成装置として機能させるためのものであって、ＣＰＵ１０により実行される。本実施形態において、主記憶装置１１は、後述する板情報記憶部２５、約定結果記憶部２６、アルゴリズム最終結果記憶部３０を含む。入力装置１３は、本実施形態に係る取引アルゴリズム作成装置を利用する利用者からの入力を受ける。出力装置１４は、ＣＰＵ１０によって行われた演算の結果などを表示するディスプレイデバイスやプリンタデバイス等である。通信装置１５は、上記演算の結果などの処理結果をネットワーク１６を介してコンピュータ１から他のコンピュータへ送信する。本実施形態に係る取引アルゴリズム作成装置は、基本的には１台のコンピュータによって実現することが可能であるが、主記憶装置１１が記憶するデータの一部を他のコンピュータによって記憶してもよい。この場合、複数のコンピュータ間でネットワーク１６を介してデータをやり取りする。
【００１２】
図２は、第１の実施形態に係る取引アルゴリズム作成装置を機能ブロック図によって表現したものである。本装置は、シミュレーション実行部２０、市場取引シナリオ生成部２１、アルゴリズム発注生成部２２、アルゴリズム要素記憶部２３、シミュレーション途中経過抽出部２４、板情報記憶部２５、約定結果記憶部２６、アルゴリズム要素採点部２７、アルゴリズム中間結果選別部２８、アルゴリズム最終結果選別部２９、アルゴリズム最終結果記憶部３０を備え、動的なアルゴリズム取引に用いられるアルゴリズム要素の膨大な組合せに対処し、証券取引シミュレーションを高速に行って取引アルゴリズムを作成するものである。以下では、説明の便宜上、一の銘柄の株式を取引する場合を例にとって説明するが、複数の銘柄の取引も可能である。また、本装置で扱えるアルゴリズム取引の対象は、証券（株券等）に限定されない。
【００１３】
シミュレーション実行部２０は、証券取引のシミュレーション（以下、シミュレーションという）を実行する。シミュレーション実行部２０には、市場の取引を再現する市場取引シナリオに基づく発注と、アルゴリズム発注すなわちアルゴリズム要素によりなされた発注とが入力される。市場取引シナリオがＸ日分ある場合、シミュレーション実行部２０は全Ｘ日それぞれの日の取引に関するシミュレーションを実行する。
【００１４】
図３は、証券取引シミュレーションの実行タイミングおよび繰り返しについての模式図である。ここでは、一日の取引を６つの時間帯ａ１〜ａ６に分割している。シミュレーション実行部２０は、Ｘ日分の市場取引シナリオを利用し、各時間帯のシミュレーションを、複数のアルゴリズム要素（図３では、Ａ，Ｂ，Ｃ，Ｄの４つ）の組合せについて実行する。これにより各時間帯の終了時点において、取引成立結果（約定結果）と証券取引の情報（板情報）とが得られ、主記憶装置１１に記憶される。これらは、後述するシミュレーション途中経過抽出部２４によって抽出され、板情報の再現と約定結果の統計的評価が行われる。なお、時間帯の分割の仕方は図３に例示した６分割（ａ１〜ａ６）に限らない。一日の時間帯をどのように分割するかは任意である。複数の時間帯への分割数をより多くすれば、一日の取引においてアルゴリズム要素を細かく切り替えることができるが、アルゴリズム要素の組合せの数は増大する。一方、複数の時間帯への分割数をより少なくすれば、アルゴリズム要素の組合せの数を抑えることができるが、一日の取引においてアルゴリズム要素を細かく切り替えることはできない。
【００１５】
図４は、シミュレーション実行部２０により実行される、板情報に基づく証券取引の模式図である。シミュレーション実行部２０で行われる証券取引（のシミュレーション）は、同図のように売買を希望する値段（価格）ごとに売数量および買数量が並べられた板に基づいて行われる。９時３５分時点の板によると、値段１９０円で売数量が６０００株あり、買数量が２０００株あるため、この２０００株について売買が成立する。９時３６分時点の板によると、いずれの売買数量においても値段が等しくないため、売買が成立しない。シミュレーション実行部２０は、発注が市場取引シナリオからのものかアルゴリズム要素からのものかを区別する。９時３６分の板の買数量２５００の内訳において、先頭の発注４０は、市場取引シナリオからの数量１０００の発注であり、２番目の発注４１はアルゴリズム要素Ｂからの数量５００の発注であり、３番目の発注４２は、市場取引シナリオからの数量１０００の発注である。アルゴリズム要素からの発注４１については、アルゴリズム要素名４３、発注を行った時刻４４、発注内容の変更回数４５等の情報が含まれる。
【００１６】
市場取引シナリオ生成部２１は、図５に示すように、日付、時刻、売買種別、数量、値段によって構成される市場取引シナリオを生成する。同図は、Ｘ日分の市場取引シナリオのデータを示している。市場取引シナリオ生成部２１は、このようなＸ日分の市場取引シナリオのデータを、過去の実際の市場取引のデータに基づいて生成する。あるいは、事前に準備された仮想的な市場取引のデータに基づいて、市場取引シナリオのデータを生成してもよい。
【００１７】
市場取引シナリオ生成部２１により生成された市場取引シナリオによる発注が、シミュレーション実行部２０に入力される。シミュレーション実行部２０はＸ日分のシミュレーションを繰り返すことから、第１日のシミュレーション実行に際して、第１の日付を有する１つまたは複数の市場取引シナリオのデータが発注データとしてシミュレーション実行部２０に入力され、第２日のシミュレーション実行に際して、第２の日付を有する１つまたは複数の市場取引シナリオのデータが発注データとしてシミュレーション実行部２０に入力される。
【００１８】
アルゴリズム発注生成部２２は、アルゴリズム要素記憶部２３からアルゴリズム要素を取得し、アルゴリズム要素に基づく発注を生成してシミュレーション実行部２０に入力する。図６は、アルゴリズム要素記憶部２３に記憶されるアルゴリズム要素の２つの例を示している。同図に示すように、アルゴリズム要素は、発注時の市場状態、売買指定、発注間隔（秒）、発注数量、発注形態（指値・成行指定）等の情報を含む。同図（ａ）に示すアルゴリズム要素Ａは、市場の状態が寄り付き・引け・ザラバそれぞれの状態での発注を行えるものである。寄り付きとザラバでは指値で発注を行うので、指値の位置（注文を出す価格の位置）を指定している。同図（ｂ）に示すアルゴリズム要素Ｂは、ザラバの発注のみを行うものである。アルゴリズム要素Ｂでは、発注時点から時間が経つと価格を変更して発注をしなおす。アルゴリズム要素Ｂにおいて、発注時指値は「最良気配値＋２ｔｉｃｋ」となっているが、この「ｔｉｃｋ」とは、取引価格の単位を表す。例えば、取引価格が１円単位ならば、１ｔｉｃｋは１円である。
【００１９】
シミュレーション途中経過抽出部２４は、各時間帯終了時点のアルゴリズム要素による約定結果および市場全体の約定結果をシミュレーション実行部２０から抽出して約定結果記憶部２６に記憶する。アルゴリズム要素による約定結果は、アルゴリズム要素の発注による約定結果のみに相当し、日付および時間帯それぞれの、売買高および売買代金である。市場全体の約定結果は、アルゴリズム要素による発注と市場取引シナリオによる発注による全ての約定結果の和に相当し、日付および時間帯それぞれの、売買高および売買代金である。またシミュレーション途中経過抽出部２４は、各時間帯終了時点の板情報をシミュレーション実行部２０から抽出して板情報記憶部２５に記憶する。
【００２０】
シミュレーション実行部２０によりＸ日分の市場取引データについてシミュレーションが実行される場合、シミュレーション途中経過抽出部２４は、Ｘ日分の約定結果と板情報とを抽出して板情報記憶部２５と約定結果記憶部２６にそれぞれ記憶する。図７は、約定結果記憶部２６に記憶される約定結果の例を示している。同図（ａ）はアルゴリズム要素に基づく発注の約定結果であり、同図（ｂ）は市場全体の約定結果である。これら約定結果は、いずれも２００９年６月１日と６月２日の約定結果を示したものであるが、Ｘ日分の取引シミュレーションを行う場合、約定結果もＸ日分記憶される。なお、アルゴリズム要素に基づく発注の約定結果だけではなく市場全体の約定結果についても、同図（ｂ）に示すように、どのアルゴリズム要素が当該時間帯のシミュレーションに適用されているかが示される。
【００２１】
図８に、板情報記憶部２５に記憶される板情報の例を示す。同図は、時間帯ａ１にアルゴリズム要素Ａが適用された際の、時間帯ａ１の終了時点の板情報の例である。Ｘ日分の取引シミュレーションを行う場合、板情報もＸ日分記憶される。図８の例は、２００９年６月１日から２００９年１２月１５日までの、時間帯ａ１の終了時点の板情報である。２００９年６月１日の板情報の買数量３５００の内訳において、先頭の発注８０は、市場取引シナリオからの数量１５００の発注であり、２番目の発注８１は、アルゴリズム要素Ａからの数量１０００の発注であり、３番目の発注８２は、市場取引シナリオからの数量１０００の発注である。シミュレーション途中経過抽出部２４は、シミュレーション実行部２０と同様、発注が市場取引シナリオからのものかアルゴリズム要素からのものかを区別して、板情報を板情報記憶部２５に記憶する。
【００２２】
アルゴリズム要素採点部２７は、約定結果記憶部２６に記憶されているアルゴリズム要素の発注による約定結果と市場全体の約定結果とを統計的に評価することにより、各時間帯のアルゴリズム要素の成績を採点する。図９は、図３に示した時間帯ａ１における各アルゴリズム要素の採点結果の例である。同図（ａ）はＶＷＡＰ基準による成績を示し、同図（ｂ）は出来高基準による成績を示している。ＶＷＡＰ基準における「ＶＷＡＰ」とは、Ｖｏｌｕｍｅ  Ｗｅｉｇｈｔｅｄ  Ａｖｅｒａｇｅ  Ｐｒｉｃｅ（出来高加重平均価格）の略であり、取引成立時の売買価格の出来高に関する加重平均のことである。
【００２３】
図９（ａ）は、Ｘ日分の約定結果から、アルゴリズム要素のＶＷＡＰと市場全体のＶＷＡＰとの差について、それぞれの平均９０と標準偏差９１とを求めた例である。また、図９（ｂ）は、Ｘ日分の約定結果から、アルゴリズム要素の出来高と市場全体の出来高との比（アルゴリズム要素の出来高の市場全体の出来高に対する割合）について、それぞれの平均９２と標準偏差９３とを求めた例である。このようにアルゴリズム要素採点部２７は、複数の採点基準に関してアルゴリズム要素の成績を算出することができる。採点基準は、ここで挙げた２つの例だけはなく、ＴＷＡＰ（Ｔｉｍｅ  Ｗｅｉｇｈｔｅｄ  Ａｖｅｒａｇｅ  Ｐｒｉｃｅ：時間加重平均価格）等の他の基準も利用することができる。
【００２４】
アルゴリズム中間結果選別部２８は、アルゴリズム要素採点部２７により採点されたアルゴリズム要素の成績を中間結果として利用し、複数の時間帯についてのシミュレーション実行部２０によるシミュレーションの途中の段階における複数のアルゴリズム要素の組合せを、現時点以降にシミュレーション実行するアルゴリズム要素の組合せと現時点以降にシミュレーション実行を行わないアルゴリズム要素の組合せとに選別する。
【００２５】
図１０は、アルゴリズム中間結果選別部２８によるアルゴリズム要素の組合せの選別についての模式図である。同図において、時間帯ａ１からａ３までシミュレーションを行った時点で、アルゴリズム要素の組合せＡＡＡは、選別基準から有益なアルゴリズムとは判定されず、この組合せに続くアルゴリズム要素のシミュレーションは行われない。一方、アルゴリズム要素の組合せＡＡＢは、選別基準から有益な組合せであると判定され、以降の時間帯においてもこの組合せに続くアルゴリズム要素のシミュレーションが行われる。アルゴリズム要素の組合せを選別する基準としては、以下のようなものが挙げられる。
【００２６】
（１）個々のアルゴリズム要素を選択する基準に基づく選別基準（１）  
各時間帯について、アルゴリズム要素のＶＷＡＰと市場全体のＶＷＡＰとの差の平均が最大となるアルゴリズム要素を選択する。これにより選択された各時間帯のアルゴリズム要素を時間帯の順に組み合わせることにより、現時点以降にシミュレーションを行うアルゴリズム要素の組合せとする。このアルゴリズム要素の組合せを含まないものは、現時点以降にシミュレーションを行わない。
【００２７】
（２）アルゴリズム要素の組合せについての選別基準  
個々のアルゴリズム要素を選択する基準ではなく、アルゴリズム要素の組合せについての選別基準に基づいて、アルゴリズム要素の組合せを選別してもよい。図１１は、この場合の選別基準を２つ例示している。これら図１１の選別基準に対して望ましい性能を出すことができなかったアルゴリズム要素の組合せに関するシミュレーションは、これ以降行わない。選別基準１は、アルゴリズム取引のＶＷＡＰと市場全体のＶＷＡＰとの差に基づくものである。アルゴリズム取引のＶＷＡＰは、アルゴリズム要素の組合せのＶＷＡＰのことであり、当該組合せに対応する時間帯の組合せについて、アルゴリズム要素採点部２７により既に得られている個々の時間帯のＶＷＡＰおよび／または約定結果記憶部２６に記憶されている約定結果を用いて、算出することができる。市場全体のＶＷＡＰについても同様である。図１２は、図１１における選別基準１を用いてアルゴリズム要素の組合せを選別した例である。ここでは、アルゴリズム要素が行う発注は「売り」であるとする。図１２（ａ）に示すように、アルゴリズム要素の組合せＡＡＡについては、アルゴリズム取引のＶＷＡＰすなわちアルゴリズム要素の組合せのＶＷＡＰと、市場全体のＶＷＡＰとの差の平均は０．８であり、この差の標準偏差は０．５４８である。また、この差の分布における下方５パーセンタイル点は−０．０７９であって−０．０１を下回っている。したがって、当該アルゴリズム要素の組合せＡＡＡは、差の分布における下方５パーセンタイル点が−０．０１以上のアルゴリズムはこれ以降もシミュレーションを行うという選別基準１を満たしていないから、当該アルゴリズム要素の組合せＡＡＡは、現時点以降にシミュレーションを行わないアルゴリズム要素の組合せとする。一方、アルゴリズム要素の組合せＡＡＢについては、図１２（ｂ）に示すように、差の分布における下方５パーセンタイル点が０．３４９であり、上記選別基準１の−０．０１を上回っていることから、現時点以降にシミュレーションを行うアルゴリズム要素の組合せとする。なお、アルゴリズム要素の組合せについての選別基準は、図１１に示したもののみに限定されず、これら以外のもの利用してもよい。
【００２８】
（３）個々のアルゴリズム要素を選択する基準に基づく選別基準（２）  
最初の時間帯について、アルゴリズム要素のＶＷＡＰと市場全体のＶＷＡＰとの差の平均が最大になるアルゴリズム要素を選択し、その後の時間帯について、１つ前の時間帯で選択されたアルゴリズム要素との相関が最大になるアルゴリズム要素を選択する。これにより選択された各時間帯のアルゴリズム要素を時間帯の順に組み合わせることにより、現時点以降にシミュレーションを行うアルゴリズム要素の組合せとする。このアルゴリズム要素の組合せを含まないものは、現時点以降にシミュレーションを行わない。
【００２９】
図１３は、アルゴリズム中間結果選別部２８によるアルゴリズム要素の組合せの選別についての模式図である。同図において、時間帯ａ１からａ３までシミュレーションを行った時点で、アルゴリズム要素の組合せＢＣＤは、当該選別基準から有益な組合せであると判定され、以降の時間帯においてもこの組合せに続くアルゴリズム要素のシミュレーションが行われる。それ以外のアルゴリズム要素の組合せについては、当該選別基準から有益なアルゴリズムとは判定されず、この組合せに続くアルゴリズム要素のシミュレーションは行われない。図１３に示すように、最初の時間帯ａ１について、アルゴリズム要素のＶＷＡＰと市場全体のＶＷＡＰとの差の平均が最大になるアルゴリズム要素Ｂが選択される。この時間帯ａ１について、アルゴリズム要素Ｂ以外のアルゴリズム要素は選択されない。次の時間帯ａ２については、時間帯ａ１におけるアルゴリズム要素Ｂとの相関が最大になるアルゴリズム要素Ｃが選択される。この時間帯ａ２について、アルゴリズム要素Ｃ以外のアルゴリズム要素は選択されない。以降の時間帯についても同様の方法でアルゴリズム要素が１つずつ選択される。アルゴリズム要素間の相関を求めるための技術としては、公知の相関係数を用いてもよいし、相互情報量を用いることも可能である。また、最初の時間帯ａ１についてはアルゴリズム要素のＶＷＡＰと市場全体のＶＷＡＰとの差の平均が最大になるアルゴリズム要素を選択することとしたが、これ以外の選択基準を用いてもよい。
【００３０】
なお、アルゴリズム要素の組合せの選別基準としては、以上説明した（１）乃至（３）のいずれかに限定されるものではなく、これら以外の選別基準を用いてもよい。
【００３１】
アルゴリズム中間結果選別部２８によりシミュレーションを行うアルゴリズム要素の組合せが選別されることによって、板情報記憶部２５と約定結果記憶部２６に記憶されているデータの一部は、以降のシミュレーションにおいて不要となる。ここで、時間帯ａ１、ａ２、ａ３の順でアルゴリズム要素の組合せＡＡＡとＡＢＣのシミュレーションが行われたとする。このとき、アルゴリズム要素の組合せＡＡＡとＡＢＣが図１２の選別基準によって評価され、アルゴリズム要素の組合せＡＡＡについては以降のシミュレーションを行わず、アルゴリズム要素の組合せＡＢＣについては以降のシミュレーションが行われると仮定する。この場合、図１４（ａ）に示すように、時間帯ａ３においてアルゴリズム要素Ａのシミュレーションを行って得られた板情報は、アルゴリズム要素の組合せＡＡＡが現時点以降のシミュレーションを行わない組合せとして選別された時点で、当該アルゴリズム要素の組合せＡＡＡを含む時間帯ａ４以降の新たな組合せについてシミュレーションは行われないことが判明するから、不要になる。これに対し、時間帯ａ３においてアルゴリズム要素Ｃのシミュレーションを行って得られた板情報は、アルゴリズム要素の組合せＡＢＣが現時点以降のシミュレーションを行う組合せとして選別された時点で、アルゴリズム要素の組合せＡＢＣを含む時間帯ａ４以降の新たな組合せについて、少なくとも一度はシミュレーションが行われることが判明するから、現時点では必要である。
【００３２】
約定結果記憶部２６に記憶されている約定結果についても、板情報記憶部２５と同様である。すなわち、時間帯ａ３においてアルゴリズム要素Ａのシミュレーションを行って得られた約定結果は、アルゴリズム要素の組合せＡＡＡが現時点以降のシミュレーションを行わない組合せとして選別された時点で、当該アルゴリズム要素の組合せＡＡＡを含む時間帯ａ４以降の新たな組合せについてシミュレーションは行われないことが判明するから、不要になる。これに対し、時間帯ａ３においてアルゴリズム要素Ｃのシミュレーションを行って得られた約定結果は、アルゴリズム要素の組合せＡＢＣが現時点以降のシミュレーションを行う組合せとして選別された時点で、アルゴリズム要素の組合せＡＢＣを含む時間帯ａ４以降の新たな組合せについて、少なくとも一度はシミュレーションが行われることが判明するから、現時点では必要である。
【００３３】
図１に示したように、シミュレーション途中におけるアルゴリズム要素の組合せ選別結果はアルゴリズム中間結果選別部２８からシミュレーション実行部２０に送られる。これに従い、シミュレーション実行部２０は、アルゴリズム要素の全ての組合せよりも少ない数の組合せについてシミュレーションを実行する。シミュレーションが終了時刻まで達すると、アルゴリズム最終結果選別部２９は、最終結果の選別基準に基づいて最良のアルゴリズムを選別し、アルゴリズム最終結果記憶部３０に記憶する。
【００３４】
図１５および図１６は、第１の実施形態に係る取引アルゴリズム作成装置の動作手順を示すフローチャートである。以下、このフローチャートのステップに従って、本装置の動作手順を説明する。この動作手順では、特定の株式銘柄の取引に用いるための取引アルゴリズムを本装置が生成するものとする。
【００３５】
シミュレーション実行部２０がシミュレーションを開始するにあたり、図１７に示すように１日の取引時間を種々の時間帯に分割する幾つかの候補の中からいずれかを指定する（ステップＳ１０１）。この指定は例えばユーザが本装置のシミュレーション実行部２０に対して行う。本動作手順では、例えば、午前の取引時間（前場）と午後の取引時間（後場）をそれぞれ３つの時間帯に均等に分割する図１７（ａ）の候補１がユーザから指定されたものとする。なお、１１：００から１２：３０までの時間帯に取引は行われていないものとし、当該時間帯についてのシミュレーションは行わない。またステップＳ１０１において、検証するアルゴリズム要素群を同様にユーザが本装置に対して指定する。本動作手順では、４つのアルゴリズム要素Ａ、Ｂ、Ｃ、Ｄからなるアルゴリズム要素群が指定されたものとする。これら４つのアルゴリズム要素Ａ、Ｂ、Ｃ、Ｄに基づいて、本装置は最適な取引アルゴリズムを生成する。個々のアルゴリズム要素の例については図６に示している。またステップＳ１０１において、ユーザが本装置に対して市場取引シナリオを指定する。これには、過去の実際のデータを市場取引シナリオとして利用する旨を指定する場合と、仮想的に生成されたデータを市場取引シナリオとして利用する旨を指定する場合とがある。例えば本動作手順では、過去の実際のデータを市場取引シナリオとして利用するシミュレーションを行うものとする。過去の実際のデータを利用する場合、その期間（上述したＸ日）を指定できるようにするのが好ましい。過去の実際のデータおよび仮想的に生成されたデータのいずれについても、市場取引シナリオは、１つまたは複数の取引日を有する。
【００３６】
ステップＳ１０２において、シミュレーション実行部２０は、シミュレーションを開始する初期の時間帯を設定する。ステップＳ１０３において、シミュレーション実行部２０は、ステップＳ１０１で設定されたアルゴリズム要素群のなかから、一のアルゴリズム要素を設定する。ステップＳ１０４において、シミュレーション実行部２０は、ステップＳ１０１で指定された市場取引シナリオの取引期間における一の取引日を設定する。また、市場取引シナリオ生成部２１から市場取引シナリオによる発注を受け取り、アルゴリズム要素取得部２２から当該アルゴリズム要素による発注を受け取る。さらにシミュレーション実行部２０は、シミュレーションを開始する時刻が取引開始時刻よりも後であるならば、板情報記憶部２５から板情報を読み込む。以上の読み込みを終えた後、ステップＳ１０５において、シミュレーション実行部２０がシミュレーションを実行する。
【００３７】
取引日ごとに行われるシミュレーションが終了すると、ステップＳ１０６において、シミュレーション途中経過抽出部２４は、取引日ごとの約定結果と板情報をシミュレーション実行部２０から抽出し、約定結果記憶部２６および板情報記憶部２５にそれぞれ記憶する。
【００３８】
ここで、各時間帯の終了時点で約定結果および板情報を抽出することによって、取引開始時刻までさかのぼることなく、シミュレーションを行っている時間帯の次の時間帯からその実行を開始することが可能となる。以下にその説明を行う。
【００３９】
ある１日の取引について、各時間帯のシミュレーション実行時間がＴであるとする。検証すべき４つのアルゴリズム要素Ａ〜Ｄそれぞれをすべての時間帯でシミュレーション実行する。時間帯の数は６である。仮に、シミュレーションを行っている時間帯終了時点の約定結果および板情報がシミュレーション途中経過抽出部２４によって抽出されることなく、各時間帯のシミュレーションが行われるとする。この場合、当該時間帯以前の時間帯におけるすべてのアルゴリズム要素のシミュレーション実行が必要となり、検証すべき場合の数は１日の取引あたり４の６乗＝４０９６通りである。よって、取引日１日分についてすべてのアルゴリズムをシミュレーションするのに必要となる計算時間は４の６乗×６Ｔ＝２４５７６Ｔとなる。
【００４０】
ここで、時間帯ａ１とａ２について（Ａ，Ａ）というアルゴリズム要素の組合せシミュレーションを行った後に、時間帯ａ１とａ２について（Ａ，Ｂ）のシミュレーションを実施する場合、どちらも最初のシミュレーションはアルゴリズム要素Ａであることに着目する。時間帯ａ１についてアルゴリズム要素Ａのシミュレーションを終えた時点での約定結果および板情報をシミュレーション途中経過抽出部２４によって抽出して記憶し、これら約定結果および板情報をシミュレーション実行部２０において再現することによって、時間帯ａ２についてアルゴリズム要素ＡとＢの組合せに係るシミュレーション（Ａ，Ａ），（Ａ，Ｂ）を行う際に、時間帯ａ１でのアルゴリズム要素Ａのシミュレーション実行を繰り返さなくても良い（時間帯ａ２にアルゴリズム要素Ａを適用するシミュレーション実行は必要である）。
【００４１】
取引日１日について、検証すべき４つのアルゴリズム要素それぞれを６つの時間帯すべてでシミュレーション実行する際に、上記の時間帯終了時の約定結果および板情報をシミュレーション途中経過抽出部２４によって抽出し、これら約定結果および板情報をシミュレーション実行部２０において再現することによってシミュレーション実行の繰り返しを行わないようにすると、計算時間は、
【数１】
0005404504.tif 000002
【００４２】
とすることができる。
【００４３】
したがって、各時間帯の終了時点での約定結果および板情報をシミュレーション途中経過抽出部２４によって抽出せず板情報を再現しない場合と比較して、約定結果および板情報を再現する場合はおよそ四分の一に計算時間を短縮することができる。各時間帯終了時点の証券取引の情報（約定情報および板情報）を取引日数分記憶することによって、シミュレーションを途中から行うことができる。これにより、シミュレーションの計算時間を削減することができ、取引アルゴリズムの作成時間を削減することができる。
【００４４】
図１５のフローチャートの説明に戻る。ステップＳ１０６においてシミュレーション途中経過抽出部２４が約定結果と板情報を抽出した後、ステップＳ１０７において、シミュレーション実行部２０はシミュレーションを行った取引日が終了したかどうかを判定する。終了していない場合は、ステップＳ１０４に戻って取引日を更新してシミュレーションを繰り返す。ステップＳ１０４乃至Ｓ１０７が取引日終了まで繰り返されることにより、当該時間帯について、当該アルゴリズム要素を適用した場合のシミュレーション結果、すなわち約定結果および板情報とが、取引日ごとに得られることになる。このようにステップＳ１０７のシミュレーションがすべての取引日で行われると、ステップＳ１０８において、アルゴリズム要素採点部２７は、約定結果記憶部２６に記憶された約定結果を利用して当該時間帯のアルゴリズム要素の成績を採点する。次にステップＳ１０９において、シミュレーション実行部２０は、当該時間帯についてシミュレーションを行っていないアルゴリズム要素が残っているかどうか判定する。当該時間帯についてシミュレーションを行っていないアルゴリズム要素が残っている場合はステップＳ１０４に戻る。ステップＳ１０４においては、当該時間帯についてシミュレーションを行っていないアルゴリズム要素がアルゴリズム要素群の中から選ばれて設定される。
【００４５】
当該時間帯についてシミュレーションを行っていないアルゴリズム要素が残っていない場合（ステップＳ１０９＝ＮＯ）、アルゴリズム中間結果選別部２８は、この時点までにシミュレーションを行ったアルゴリズム要素の組合せの中で以降の時間帯においてシミュレーションを行う組合せを選別する（ステップＳ１１０）。
【００４６】
アルゴリズム要素の組合せをどのように選別するかについては、既に説明したように、個々のアルゴリズム要素についての基準によって選別するだけではなく、図１１および図１２を参照して説明したようにアルゴリズム要素の組合せに関する選別基準に基づいてアルゴリズム要素の組合せを選別することができる。シミュレーションを行うアルゴリズム要素の組合せを選別することによって、アルゴリズム作成に必要とする計算時間を大幅に削減することができる。
【００４７】
図１５のフローチャートに再び戻る。ステップＳ１１１において、シミュレーション時刻が取引の最終時刻に到達したかどうかを判定する。最終時刻に到達していない場合（ステップＳ１１１＝ＮＯ）、時間帯を次の時間帯に更新する（ステップＳ１１２）。
【００４８】
シミュレーション時刻が最終時刻に到達すると（ステップＳ１１１＝ＹＥＳ）、アルゴリズム最終結果選別部２９は、最終時刻までシミュレーション実行がなされたアルゴリズム要素の組合せの中から、最終結果の選別基準を満たす最良の組合せを選別し（ステップＳ１１３）、アルゴリズム最終結果記憶部３０に記憶する（ステップＳ１１４）。図１９は、選別基準に従い選別されたアルゴリズム最終結果の２つの例を示す図である。図１９（ａ）および（ｂ）は、図１８（ａ）および（ｂ）に示す２つの選別基準それぞれに基づいて選別されたアルゴリズム（アルゴリズム要素の組合せ）の最終結果の例を示している。アルゴリズム取引のＶＷＡＰと市場全体のＶＷＡＰとの差に基づく第１の選別基準により、アルゴリズム要素の最良の組合せ、すなわちアルゴリズム要素ＤＡＣＢＣＤが選別され、アルゴリズム取引の出来高の市場全体出来高に対する割合に基づく第２の選別基準により、アルゴリズム要素の最良の組合せ、すなわちアルゴリズム要素ＢＣＤＡＣＢが選別されている。
【００４９】
（第２の実施形態）  
第２の実施形態は上述した第１の実施形態の変形に係わり、時間帯ごとに異なる採点基準によるアルゴリズム要素の採点結果に基づいて、以降もシミュレーションを行うアルゴリズム要素の組合せを選別するものである。
【００５０】
図２０は、時間帯ｂ１が前場寄り付きに対応し、時間帯ｂ２が前場ザラバと前場の引けに対する場合について、時間帯ごとに異なる採点基準でアルゴリズム要素を採点し、アルゴリズム要素の組合せを選別する例を示している。この例では、前場の寄り付きでは市場全体の発注量が非常に多いことから、アルゴリズム要素の採点基準としてアルゴリズム要素による発注の出来高と市場全体の発注の出来高の比の平均５０を用いる。この採点基準によれば、図２０に示すように、アルゴリズム要素Ｂが得点が高くベストであり、次に得点が高いセカンドベストはアルゴリズム要素Ｃである。
【００５１】
ここで、上位２位までのアルゴリズム要素が先頭である組合せについては以降のシミュレーションを行うとすると、時間帯ｂ１のアルゴリズム要素がＢもしくはＣであるもののみがアルゴリズム中間結果選別部２８で選別される。時間帯ｂ２では、アルゴリズム要素の採点基準としてアルゴリズム要素の発注によるＶＷＡＰと市場全体のＶＷＡＰとの差５１を用いる。時間帯ｂ２においても、上位２位までのアルゴリズム要素に続く組合せについては以降のシミュレーションを行うこととする。
【００５２】
図２０に示すように、採点基準５１によると、時間帯ｂ１のアルゴリズム要素がＢである場合、時間帯ｂ２で最良のアルゴリズム要素はＡ（５３）であり次点がＤ（５４）である。時間帯ｂ１のアルゴリズム要素がＣである場合、時間帯ｂ２で最良のアルゴリズム要素はＤ（５５）であり次点がＡ（５６）である。
【００５３】
以上のことから、アルゴリズム中間結果選別部２８では、アルゴリズム要素の組合せとして（Ｂ，Ａ），（Ｂ，Ｄ），（Ｃ，Ｄ），（Ｃ，Ａ）が選別され、これらの組合せに続くアルゴリズム要素のみに関するシミュレーションが時間帯ｂ３以降で実行される。
【００５４】
この第２の本実施形態で述べたように、時間帯で異なる出来高の傾向を持つ市場の発注に対して、時間帯で異なる採点基準によってアルゴリズム要素の組合せを選別することにより、第１の実施形態よりも柔軟に市場の傾向に対応するアルゴリズムを少ない計算量で作成することができる。
【００５５】
（第３の実施形態）  
第１の実施形態では、市場取引シナリオ生成部２１においてＸ日分の市場取引シナリオを生成できる場合、それらをすべて利用した。一方で、市場取引シナリオには様々な価格変動の傾向を有するシナリオが含まれている。価格変動の特定の傾向を有するシナリオのみを利用することによって、当該シナリオに特化したアルゴリズムを作成することが可能である。
【００５６】
図２１は、各時間帯において価格変動に傾向が存在するシナリオを例示したものである。同図に示すように、時間帯ｂ１で株価が上昇し、時間帯ｂ２とｂ３とでは株価は一進一退となり、時間帯ｂ４では株価は下落するという市場取引シナリオがＸ１日分あるとしている。Ｘ日分すべてのシナリオを利用するのではなく、上記Ｘ１日分のシナリオのみを利用して第１の実施形態で述べたアルゴリズム作成を行うことによって、上記Ｘ１日分の市場取引シナリオに特化したアルゴリズムを作成することができる。
【００５７】
第３の実施形態は第２の実施形態と組み合わせて実施することも可能である。第２の実施形態において、利用する市場取引シナリオをＸ日分すべてとするのではなく、上記Ｘ１日分の市場取引シナリオのみを利用することによって、時間帯で異なる出来高の傾向と価格変動の傾向を持つ市場取引シナリオに特化したアルゴリズムを少ない計算時間で作成することができる。なお、時間帯において価格変動に傾向が存在するシナリオは、図２１に例示したものだけに限定されない。このような価格変動に対応できるアルゴリズムを作成することは、実際の取引において株価の価格変動をある程度予想できる状況下で有用である。
【００５８】
以上説明した実施形態によれば、動的なアルゴリズム取引に用いられるアルゴリズム要素の膨大な組合せに対処し、シミュレーションを高速に行って取引アルゴリズムを作成することのできる取引アルゴリズム作成装置、方法およびプログラムを提供することができる。
【００５９】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【００６０】
１…アルゴリズム取引作成装置
１０…ＣＰＵ
１１…主記憶装置
１２…補助記憶装置
１３…入力装置
１４…出力装置
１５…通信装置
１６…ネットワーク
２０…シミュレーション実行部
２１…市場取引シナリオ生成部
２２…アルゴリズム発注生成部
２３…アルゴリズム要素記憶部
２４…シミュレーション途中経過抽出部
２５…板情報記憶部
２６…約定結果記憶部
２７…アルゴリズム要素採点部
２８…アルゴリズム中間結果選別部
２９…アルゴリズム最終結果選別部
３０…アルゴリズム最終結果記憶部
【図１】
0005404504.tif 000003
【図２】
0005404504.tif 000004
【図３】
0005404504.tif 000005
【図４】
0005404504.tif 000006
【図５】
0005404504.tif 000007
【図６】
0005404504.tif 000008
【図７】
0005404504.tif 000009
【図８】
0005404504.tif 000010
【図９】
0005404504.tif 000011
【図１０】
0005404504.tif 000012
【図１１】
0005404504.tif 000013
【図１２】
0005404504.tif 000014
【図１３】
0005404504.tif 000015
【図１４】
0005404504.tif 000016
【図１５】
0005404504.tif 000017
【図１６】
0005404504.tif 000018
【図１７】
0005404504.tif 000019
【図１８】
0005404504.tif 000020
【図１９】
0005404504.tif 000021
【図２０】
0005404504.tif 000022
【図２１】
0005404504.tif 000023