(57)【要約】【課題】正確且つ再現性のあるシミュレーションを行うことを目的とする。【解決手段】シミュレーションの対象期間の一部の期間である部分期間を単位として、部分期間に実行すべきシミュレーションのそれぞれを実行する複数のシミュレーション手段と、仮想時間軸における部分期間に相当する実時間をカウントするカウント手段と、部分期間のカウントを終了する度に、直前にカウントが終了した部分期間に続く、次の部分期間のシミュレーションの開始を複数のシミュレーション手段に指示すると共に、カウントの開始をカウント手段に指示する開始管理手段とを有し、シミュレーション手段は、開始管理手段から部分期間のシミュレーションの開始を指示される度に、次の部分期間のシミュレーションを実行し、カウント手段は、開始管理手段から部分期間のカウントの開始を指示される度に、次の部分期間のカウントを開始する。【選択図】図１
2015075942.tif 000002
【特許請求の範囲】
【請求項１】
シミュレーションの対象期間の一部の期間である部分期間を単位として、前記部分期間に実行すべきシミュレーションのそれぞれを実行する複数のシミュレーション手段と、
仮想時間軸における前記部分期間に相当する実時間をカウントするカウント手段と、
前記カウント手段が前記部分期間のカウントを終了する度に、直前にカウントが終了した前記部分期間に続く、次の部分期間のシミュレーションの開始を前記複数のシミュレーション手段に指示すると共に、カウントの開始を前記カウント手段に指示する開始管理手段と
を有し、
前記シミュレーション手段は、前記開始管理手段から前記部分期間のシミュレーションの開始を指示される度に、前記次の部分期間のシミュレーションを実行し、
前記カウント手段は、前記開始管理手段から前記部分期間のカウントの開始を指示される度に、前記次の部分期間のカウントを開始する情報処理システム。
【請求項２】
前記開始管理手段は、前記複数のシミュレーション手段それぞれによる前記部分期間のシミュレーションが完了した時点において、前記カウントが終了していない場合に、前記カウントが終了するまで、前記次の部分期間のシミュレーションの開始及び前記カウントの開始を指示することなく待機する請求項１に記載の情報処理システム。
【請求項３】
前記カウント手段は、実時間軸において前記複数のシミュレーション手段が前記部分期間のシミュレーションを実行するのに要する実処理時間に比べて短い、前記仮想時間軸における部分期間に相当する実時間をカウントする請求項２に記載の情報処理システム。
【請求項４】
前記部分期間の設定指示を受け付ける第１の受付手段をさらに有し、
前記複数のシミュレーション手段は、前記設定指示に係る前記部分期間のシミュレーションを実行し、
前記カウント手段は、前記設定指示に係る前記部分期間をカウントする請求項１乃至３何れか１項に記載の情報処理システム。
【請求項５】
前記部分期間に相当する実時間の設定指示を受け付ける第２の受付手段をさらに有し、
前記複数のシミュレーション手段は、前記設定指示に係る前記部分期間のシミュレーションを実行し、
前記カウント手段は、前記設定指示に係る前記部分期間をカウントする請求項１乃至３何れか１項に記載の情報処理システム。
【請求項６】
前記仮想時間軸は、実時間軸のＮ（Ｎ＞０）倍の速度で時間が経過する時間軸である請求項１乃至５何れか１項に記載の情報処理システム。
【請求項７】
実時間軸に対する前記仮想時間軸の倍率の設定指示を受け付ける第３の受付手段をさらに有し、
前記カウント手段は、前記設定指示に係る倍率の前記仮想時間軸における前記部分期に相当する実時間をカウントする請求項１乃至６何れか１項に記載の情報処理システム。
【請求項８】
前記情報処理システムは、複数のシミュレーション装置と、前記複数のシミュレーション装置の同期を管理する情報処理装置とを有し、
前記複数のシミュレーション装置それぞれは、前記複数のシミュレーション手段それぞれを有し、
前記情報処理装置は、前記開始管理手段と、前記カウント手段とを有する請求項１乃至７何れか１項に記載の情報処理システム。
【請求項９】
シミュレーションの対象期間の一部の期間である部分期間を単位として、前記部分期間に実行すべきシミュレーションのそれぞれを実行する複数のシミュレーション手段と、
前記複数のシミュレーション手段すべてが前記部分期間のシミュレーションを完了した場合に、完了した前記部分期間に続く、次の部分期間のシミュレーションの開始を前記複数のシミュレーション手段に指示する開始管理手段と
を有し、
前記シミュレーション手段は、前記部分期間のシミュレーションの開始を指示される度に、前記部分期間のシミュレーションを実行する情報処理システム。
【請求項１０】
シミュレーションの対象期間の一部の期間である部分期間を単位として、前記部分期間に実行すべき複数のシミュレーションのそれぞれを実行する複数のシミュレーション手段と、
仮想時間軸における前記部分期間に相当する実時間をカウントするカウント手段と、
前記複数のシミュレーション手段すべてが前記部分期間のシミュレーションを完了し、かつ、前記カウント手段が前記部分期間のカウントを終了した場合に、シミュレーションが完了した前記部分期間に続く、次の部分期間のシミュレーションの開始を前記複数のシミュレーション手段に指示すると共に、前記次の部分期間のカウントの開始を前記カウント手段に指示する開始管理手段と、
を有し、
前記シミュレーション手段は、前記開始管理手段から前記部分期間のシミュレーションの開始を指示される度に、前記部分期間のシミュレーションを実行し、
前記カウント手段は、前記開始管理手段から前記部分期間のカウントの開始を指示される度に、前記部分期間のカウントを開始する情報処理システム。
【請求項１１】
仮想時間軸における、シミュレーションの対象期間の一部の期間である部分期間に相当する実時間をカウントするカウント手段と、
前記カウント手段が前記部分期間のカウントを終了する度に、直前にカウントが終了した前記部分期間に続く、次の部分期間のシミュレーションの開始指示を、複数のシミュレーション装置に送信する送信手段と
を有する情報処理装置。
【請求項１２】
複数のシミュレーション装置それぞれから、シミュレーションの対象期間の一部の期間である部分期間のシミュレーションの完了通知を受信する受信手段と、
前記受信手段が前記複数のシミュレーション装置のすべてから前記完了通知を受信した場合に、完了した前記部分期間に続く、次の前記部分期間におけるシミュレーションの開始指示を送信する送信手段と
を有する情報処理装置。
【請求項１３】
情報処理装置から開始指示を受信する受信手段と、
前記開始指示を受信すると、シミュレーションの対象期間の一部の期間である部分期間を単位として、前記部分期間に実行すべきシミュレーションを実行するシミュレーション手段と、
前記部分期間のシミュレーションが完了した場合に、前記情報処理装置に完了通知を送信する送信手段と
を有し、
前記シミュレーション手段は、前記送信手段が前記完了通知を送信した後に、前記受信手段が前記開始指示を受信した場合に、前記完了通知に係る前記シミュレーションの前記部分期間に続く、次の前記部分期間のシミュレーションを実行するシミュレーション装置。
【請求項１４】
情報処理システムが実行する情報処理方法であって、
シミュレーションの対象期間の一部の期間である部分期間を単位として、前記部分期間に実行すべきシミュレーションのそれぞれを実行する複数のシミュレーションステップと、
仮想時間軸における前記部分期間に相当する実時間をカウントするカウントステップと、
前記部分期間のカウントを終了する度に、直前にカウントが終了した前記部分期間に続く、次の部分期間のシミュレーションの開始を前記複数のシミュレーションステップに指示すると共に、カウントの開始を前記カウントステップに指示する開始管理ステップと
を含み、
前記シミュレーションステップにおいては、前記開始管理ステップにより前記部分期間のシミュレーションの開始を指示される度に、前記次の部分期間のシミュレーションを実行し、
前記カウントステップにおいては、前記開始管理ステップにより前記部分期間のカウントの開始を指示される度に、前記次の部分期間のカウントを開始する情報処理方法。
【請求項１５】
情報処理システムが実行する情報処理方法であって、
シミュレーションの対象期間の一部の期間である部分期間を単位として、前記部分期間に実行すべきシミュレーションのそれぞれを実行する複数のシミュレーションステップと、
前記部分期間のシミュレーションを完了した場合に、完了した前記部分期間に続く、次の部分期間のシミュレーションの開始を前記複数のシミュレーション手段に指示する開始管理ステップと
を含み、
前記シミュレーションステップにおいては、前記部分期間のシミュレーションの開始を指示される度に、前記部分期間のシミュレーションを実行する情報処理方法。
【請求項１６】
情報処理システムが実行する情報処理方法であって、
シミュレーションの対象期間の一部の期間である部分期間を単位として、前記部分期間に実行すべき複数のシミュレーションのそれぞれを実行する複数のシミュレーションステップと、
仮想時間軸における前記部分期間に相当する実時間をカウントするカウントステップと、
前記部分期間の複数のシミュレーションすべてが完了し、かつ、前記部分期間のカウントが終了した場合に、シミュレーションが完了した前記部分期間に続く、次の部分期間のシミュレーションの開始を前記複数のシミュレーションステップに指示すると共に、前記次の部分期間のカウントの開始を前記カウントステップに指示する開始管理ステップと、
を含み、
前記シミュレーションステップにおいては、前記開始管理ステップにおいて前記部分期間のシミュレーションの開始を指示される度に、前記部分期間のシミュレーションを実行し、
前記カウントにおいては、前記開始管理ステップにおいて前記部分期間のカウントの開始を指示される度に、前記部分期間のカウントを開始する情報処理方法。
【請求項１７】
情報処理装置が実行する情報処理方法であって、
仮想時間軸における、シミュレーションの対象期間の一部の期間である部分期間に相当する実時間をカウントするカウントステップと、
前記部分期間のカウントが終了する度に、直前にカウントが終了した前記部分期間に続く、次の部分期間のシミュレーションの開始指示を、複数のシミュレーション装置に送信する送信ステップと
を含む情報処理方法。
【請求項１８】
情報処理装置が実行する情報処理方法であって、
複数のシミュレーション装置それぞれから、シミュレーションの対象期間の一部の期間である部分期間のシミュレーションの完了通知を受信する受信ステップと、
前記複数のシミュレーション装置のすべてから前記完了通知を受信した場合に、完了した前記部分期間に続く、次の前記部分期間におけるシミュレーションの開始指示を送信する送信ステップと
を含む情報処理方法。
【請求項１９】
シミュレーション装置が実行するシミュレーション方法であって、
情報処理装置から開始指示を受信する受信ステップと、
前記開始指示を受信すると、シミュレーションの対象期間の一部の期間である部分期間を単位として、前記部分期間に実行すべきシミュレーションを実行するシミュレーションステップと、
前記部分期間のシミュレーションが完了した場合に、前記情報処理装置に完了通知を送信する送信ステップと
を含み、
前記シミュレーションステップにおいては、前記完了通知を送信した後に、前記開始指示を受信した場合に、前記完了通知に係る前記シミュレーションの前記部分期間に続く、次の前記部分期間のシミュレーションを実行するシミュレーション方法。
【請求項２０】
コンピュータを、
仮想時間軸において、シミュレーションの対象期間の一部の期間である部分期間のカウントを開始するカウント手段と、
前記カウント手段が前記部分期間のカウントを終了する度に、直前にカウントが終了した前記部分期間に続く、次の部分期間のシミュレーションの開始指示を、複数のシミュレーション装置に送信する送信手段と
して機能させるためのプログラム。
【請求項２１】
コンピュータを、
複数のシミュレーション装置それぞれから、シミュレーションの対象期間の一部の期間である部分期間のシミュレーションの完了通知を受信する受信手段と、
前記受信手段が前記複数のシミュレーション装置のすべてから前記完了通知を受信した場合に、完了した前記部分期間に続く、次の前記部分期間におけるシミュレーションの開始指示を送信する送信手段と
して機能させるためのプログラム。
【請求項２２】
コンピュータを、
情報処理装置から開始指示を受信する受信手段と、
前記開始指示を受信すると、シミュレーションの対象期間の一部の期間である部分期間を単位として、前記部分期間に実行すべきシミュレーションを実行するシミュレーション手段と、
前記部分期間のシミュレーションが完了した場合に、前記情報処理装置に完了通知を送信する送信手段と
して機能させ、
前記シミュレーション手段は、前記送信手段が前記完了通知を送信した後に、前記受信手段が前記開始指示を受信した場合に、前記完了通知に係る前記シミュレーションの前記部分期間に続く、次の前記部分期間のシミュレーションを実行するプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理装置、シミュレーション装置、情報処理方法、シミュレーション方法及びプログラムに関する。
【背景技術】
【０００２】
従来、株取引のシミュレーションを行うための種々のシミュレータが提案されている。例えば、特許文献１には、アルゴリズム処理装置と、市況模擬装置と、市場模擬装置とを備えた証券模擬売買システムが開示されている。本システムにおいては、市況模擬装置は、現実の時刻よりも速く進む模擬時刻を市場模擬装置に配信する。そして、市場模擬装置は、この模擬時刻に基づいて、市況情報と発注情報との約定判定を行う。
【０００３】
また、特許文献２には、特許文献１に記載の構成と同様の株式売買の取引シミュレーションにおいて、仮想時刻を用いて複数のプロセスの進行を同期させるシステムが開示されている。特許文献２のシステムでは、技術仮想時刻配信部は、自動執行プロセスの仮想時刻算出部及び仮想取引実行プロセスの仮想時刻算出部に、基準仮想時刻及び仮想時刻倍率を配信する。そして、それぞれの仮想時刻算出部は、自動執行プロセス及び仮想取引実行プロセスからの要求に応じて、下記の計算式により算出した仮想時刻をプロセスに返す。
仮想時刻＝基準仮想時刻＋倍率×（現在のシステム時刻−基準仮想時刻を受信した際のシステム時刻）
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−１５５４６４号公報
【特許文献２】特開２０１０−２３１５３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記特許文献２の技術においては、各プロセスは、注文受付開始等のイベント時刻のみを仮想時刻のオフセット値として取得し、その後は、各プロセスが稼働しているノード（計算機）上のシステム時刻を用いて仮想時刻を算出する。
【０００６】
しかしながら、各ノードにおける負荷の状況に起因し、各プロセスが稼働しているノードそれぞれがカウントするシステム時刻にずれが生じる可能性がある。例えば、シミュレーションにより負荷が増大した場合には、ＣＰＵの処理において遅延が発生し、各ノードのＣＰＵの時間のずれが生じ易くなる。このような場合には、ノード間において仮想時刻のずれが生じ、本来同一となるべき仮想時刻が異なる仮想時刻になってしまう。特に、株取引のシミュレーションにおいては、約定のタイミングが本来のタイミングからずれてしまい、正確なシミュレーションを行うことができない。このように、仮想時刻が各ノードにおける負荷の状況に応じて変動する場合には、再現性のあるシミュレーションを行うことができないという問題があった。
【０００７】
本発明はこのような問題点に鑑みなされたもので、正確且つ再現性のあるシミュレーションを行うことを目的とする。
【課題を解決するための手段】
【０００８】
そこで、本発明は、シミュレーションの対象期間の一部の期間である部分期間を単位として、前記部分期間に実行すべきシミュレーションのそれぞれを実行する複数のシミュレーション手段と、仮想時間軸における前記部分期間に相当する実時間をカウントするカウント手段と、前記カウント手段が前記部分期間のカウントを終了する度に、直前にカウントが終了した前記部分期間に続く、次の部分期間のシミュレーションの開始を前記複数のシミュレーション手段に指示すると共に、カウントの開始を前記カウント手段に指示する開始管理手段とを有し、前記シミュレーション手段は、前記開始管理手段から前記部分期間のシミュレーションの開始を指示される度に、前記次の部分期間のシミュレーションを実行し、前記カウント手段は、前記開始管理手段から前記部分期間のカウントの開始を指示される度に、前記次の部分期間のカウントを開始する。
【０００９】
上記の構成によれば、本発明に係る情報処理システムには、複数のシミュレーション手段が含まれる。各シミュレーション手段は、対象期間の一部の期間である部分期間を単位として、部分期間に各シミュレーション手段が実行すべきシミュレーションをそれぞれ実行する。シミュレーション手段は、例えば、複数の証券取引所に対応する市場シミュレータやＯＭＳ（オーダーマネジメントシステム）として実装されるが、これに限定されない。また、シミュレーション手段は、例えば、シミュレーション対象となる事象の１時間分の状況の推移についてシミュレーションを行う必要がある場合、１秒分の状況の推移についてのシミュレーションを１つの単位（部分期間）として繰り返し、１時間分のシミュレーションを実行する。
【００１０】
また、カウント手段は、仮想時間軸における部分期間に相当する実時間をカウントする。例えば、仮想時間軸における部分期間が１秒の場合、この１秒分の状況の推移についてのシミュレーションを、実時間上、例えば０．１秒ごとに進めていく場合には、仮想時間軸における部分期間１秒に相当する実時間は０．１秒ということになる。そして、カウント手段は、ＣＰＵのクロック等を利用して実時間上、０．１秒の経過を計測する。
【００１１】
開始管理手段は、カウント手段が部分期間のカウントを終了する度に、直前にカウントが終了した部分期間に続く、次の部分期間のカウントの開始をカウント手段に指示する。
【００１２】
そして、シミュレーション手段は、部分期間のカウントが開始される度に、開始された部分期間のシミュレーションを実行し、カウント手段は開始管理手段から部分期間のカウントの開始を指示される度に、部分期間のカウントを開始する。
【００１３】
これにより、例えば、仮想時間軸における部分期間１秒の状況の推移についてのシミュレーションが、あるときは０．０１秒で完了したり、あるときは０．０５秒で完了したりしても、各部分期間についてのシミュレーションを、実時間上０．１秒ごとに進めることができる。
【００１４】
例えば、株取引のシミュレーションにおいて、過去のある日の１時間分の取引についてのシミュレーションを１０秒で行うこともできるし、３０秒で行うこともできるし、仮想時間軸と同じ１時間で行うことも可能となる。つまり、ユーザが任意にシミュレーションの実時間上での実行速度を調整することが可能となる。特に株取引のシミュレーションにおいては、アルゴリズム取引等のモデルの検証のために、そのパラメータやその実行のタイミングを変更して、短時間に何回でも実施したいとの要求を満足させるために、シミュレーションの速度を調整できることは、非常に有効である。
【００１５】
また、複数のシミュレーション手段におけるシミュレーションの進行を、共通のカウント手段および開始管理手段により制御しているため、非常に高精度な同期をとることが可能となる。特に、部分期間を非常に小さい期間に設定すれば、複数のシミュレーション手段が異なるコンピュータ上で動作している場合においても、各コンピュータのそれぞれの負荷状況に起因するシステム時刻のズレによる影響を受けることがなくなるため、非常に高い精度で同期をとることができる。したがって、本発明によれば、正確且つ再現性のあるシミュレーションを行うことが可能となる。
【００１６】
本発明に係る情報処理システムでは、前記開始管理手段は、前記複数のシミュレーション手段それぞれによる前記部分期間のシミュレーションが完了した時点において、前記カウントが終了していない場合に、前記カウントが終了するまで、前記次の部分期間のシミュレーションの開始及び前記カウントの開始指示することなく待機することが好ましい。
【００１７】
上記の構成によれば、開始管理手段は、複数のシミュレーション手段がそれぞれによる部分期間のシミュレーションが完了した時点において、カウントが終了していない場合に、カウントが終了するまで、次の部分期間のシミュレーションの開始及びカウントの開始を指示することなく待機する。
【００１８】
例えば、仮想時間軸における部分期間に相当する実時間が０．１秒の場合に、全てのシミュレーション手段における部分期間についてのシミュレーションが実時間０．０６秒で完了した場合であっても、開始管理手段は０．０４秒待機する。
これにより、各部分期間のシミュレーションは常に０．１秒ごとに次の部分期間のシミュレーションに移行する。したがって、シミュレーションの実時間上での進行が調整可能となる。
【００１９】
本発明に係る情報処理システムでは、前記カウント手段は、実時間軸において前記複数のシミュレーション手段が前記部分期間のシミュレーションを実行するのに要する実処理時間に比べて短い、前記仮想時間軸における部分期間に相当する実時間をカウントすることが好ましい。
【００２０】
上記の構成によれば、仮想時間軸における部分期間に相当する実時間は、実時間軸において複数のシミュレーション手段が部分期間のシミュレーションを実行するのに要する実処理時間に比べて短い。
【００２１】
これにより、例えば、各部分期間のシミュレーションが０．０１秒以内には終わらないようなシミュレーションを実行する場合に、部分期間に相当する実時間を０．００１秒に設定すると、常にカウント手段におけるカウントがシミュレーションよりも先に完了するため、開始管理手段が待機することがないため、各シミュレーション手段でのシミュレーションが完了次第、次の部分期間のシミュレーションに移行する。したがって、高精度かつ最大速度でシミュレーションを実行することが可能となる。
【００２２】
本発明に係る情報処理システムは、前記部分期間の設定指示を受け付ける第１の受付手段をさらに有し、前記複数のシミュレーション手段は、前記設定指示に係る前記部分期間のシミュレーションを実行し、前記カウント手段は、前記設定指示に係る前記部分期間をカウントすることが好ましい。第１の受付手段は、ユーザから、部分期間の設定指示を受け付けることが好ましい。これにより、ユーザは部分期間を任意に設定可能となる。
【００２３】
本発明に係る情報処理システムは、前記部分期間に相当する実時間の設定指示を受け付ける第２の受付手段をさらに有し、前記複数のシミュレーション手段は、前記設定指示に係る前記部分期間のシミュレーションを実行し、前記カウント手段は、前記設定指示に係る前記部分期間をカウントすることが好ましい。
上記の構成によれば、第２の受付手段は、ユーザから、部分期間に相当する実時間の設定指示を受け付けることが好ましい。これにより、ユーザは部分期間に相当する実時間を任意に設定可能となる。
【００２４】
本発明に係る情報処理システムでは、前記仮想時間軸は、実時間軸のＮ（Ｎ＞０）倍の速度で時間が経過する時間軸であることが好ましい。上記の構成によれば、仮想時間軸は、実時間軸のＮ（Ｎ＞０）倍の速度で時間が経過する時間軸である。
【００２５】
例えば、仮想時間軸上における部分期間をΔＴとすると、仮想時間軸における部分期間に相当する実時間をΔＴ／Ｎ（Ｎ＞０）に設定する。より具体的には、ΔＴ＝１秒の場合、Ｎ＝１０とすると、ΔＴ／Ｎ＝０．１秒となり、実時間０．１秒ごとに、仮想時間軸上の１秒に相当するシミュレーションが進行することになる。
【００２６】
これにより、実時間軸でΔＴ／Ｎを経過したタイミングにおいて、仮想時間軸上の部分期間ΔＴのシミュレーションが次の部分期間ΔＴのシミュレーションに移るため、仮想時間軸では、実時間軸のＮ倍の速度で時間が経過することになる。したがって、ユーザはシミュレーションをＮ倍速（任意の速度倍率）で実行させることが可能となる。
【００２７】
本発明に係る情報処理システムは、実時間軸に対する前記仮想時間軸の倍率の設定指示を受け付ける第３の受付手段をさらに有し、前記カウント手段は、前記設定指示に係る倍率の前記仮想時間軸における前記部分期間に相当する実時間をカウントすることが好ましい。上記の構成によれば、第３の受付手段は、仮想時間軸に倍率の設定指示を受け付けることが好ましい。
【００２８】
これにより、ユーザは、仮想時間軸における部分期間に相当する実時間を、部分期間の倍率を指定することにより設定可能となる。
【００２９】
本発明に係る情報処理システムは、複数のシミュレーション装置と、前記複数のシミュレーション装置の同期を管理する情報処理装置とを有し、前記複数のシミュレーション装置それぞれは、前記複数のシミュレーション手段それぞれを有し、前記情報処理装置は、前記開始管理手段と、前記カウント手段とを有することが好ましい。
【００３０】
すなわち、情報処理システムは、複数のシミュレーション手段それぞれを有する複数のシミュレーション装置と、開始管理手段とカウント手段とを備えた複数のシミュレーション装置の同期を管理する情報処理装置とを有するシステムとして構成されることが好ましい。
【００３１】
本発明に係る情報処理システムは、シミュレーションの対象期間の一部の期間である部分期間を単位として、前記部分期間に実行すべきシミュレーションのそれぞれを実行する複数のシミュレーション手段と、前記複数のシミュレーション手段すべてが前記部分期間のシミュレーションを完了した場合に、完了した前記部分期間に続く、次の部分期間のシミュレーションの開始を前記複数のシミュレーション手段に指示する開始管理手段とを有し、前記シミュレーション手段は、前記部分期間のシミュレーションの開始を指示される度に、前記部分期間のシミュレーションを実行することが好ましい。
【００３２】
上記の構成によれば、情報処理システムには、同期管理の対象となる複数のシミュレーション手段が含まれる。各シミュレーション手段は、対象期間の一部の期間である部分期間を単位として、部分期間に各シミュレーション手段が実行すべきシミュレーションをそれぞれ実行する。シミュレーション手段は、例えば、複数の証券取引所に対応する市場シミュレータやＯＭＳ（オーダーマネジメントシステム）として実装されるが、これに限定されない。また、シミュレーション手段は、例えば、シミュレーション対象となる事象の１時間分の状況の推移についてシミュレーションを行う必要がある場合、１秒分の状況の推移についてのシミュレーションを１つの単位（部分期間）として繰り返し、１時間分のシミュレーションを実行する。
【００３３】
また、開始管理手段は、複数のシミュレーション手段すべてが部分期間のシミュレーションを完了した場合に、完了した部分期間に続く、次の部分期間のシミュレーションの開始を複数のシミュレーション手段に指示する。そして、シミュレーション手段は、部分期間のシミュレーションの開始を指示される度に、部分期間のシミュレーションを実行する。
【００３４】
これにより、同期管理の対象となる全てのシミュレーション手段が部分期間についてのシミュレーションを完了した上で、次の部分期間についてのシミュレーションが開始されるので、部分期間ごとのシミュレーションの進行の同期を完全にとることができる。特に、部分期間を非常に小さい期間に設定すれば、複数のシミュレーション手段が異なるコンピュータ上で動作している場合においても、各コンピュータのそれぞれの負荷状況に起因するシステム時刻のズレによる影響を受けることがなくなるため、全体として非常に高い精度で同期をとることができる。したがって、本発明によれば、正確且つ再現性のあるシミュレーションを行うことが可能となる。
【００３５】
本発明に係る情報処理システムによれば、シミュレーションの対象期間の一部の期間である部分期間を単位として、前記部分期間に実行すべき複数のシミュレーションのそれぞれを実行する複数のシミュレーション手段と、仮想時間軸における前記部分期間に相当する実時間をカウントするカウント手段と、前記複数のシミュレーション手段すべてが前記部分期間のシミュレーションを完了し、かつ、前記カウント手段が前記部分期間のカウントを終了した場合に、シミュレーションが完了した前記部分期間に続く、次の部分期間のシミュレーションの開始を前記複数のシミュレーション手段に指示すると共に、前記次の部分期間のカウントの開始を前記カウント手段に指示する開始管理手段と、を有し、前記シミュレーション手段は、前記開始管理手段から前記部分期間のシミュレーションの開始を指示される度に、前記部分期間のシミュレーションを実行し、前記カウント手段は、前記開始管理手段から前記部分期間のカウントの開始を指示される度に、前記部分期間のカウントを開始することが好ましい。
【００３６】
上記の構成によれば、開始管理手段は、複数のシミュレーション手段すべてが部分期間のシミュレーションを完了し、かつ、カウント手段が部分期間のカウントを終了した場合に、シミュレーションが完了した部分期間に続く、次の部分期間のシミュレーションの開始を複数のシミュレーション手段に指示すると共に、次の部分期間のカウントの開始をカウント手段に指示する。例えば、カウント手段がシミュレーションの完了前にカウントを終了した場合には、シミュレーションの完了を待って、次の部分期間のカウントとシミュレーションが開始される。また、例えば、シミュレーションがカウント手段によるカウント終了前に完了した場合には、カウントの終了を待って、次の部分期間のカウントとシミュレーションが開始される。
【００３７】
これにより、ユーザが任意にシミュレーションの実時間上での実行速度を調整しつつ、非常に高い精度で同期をとることができるため、正確且つ再現性のあるシミュレーションを行うことが可能となる。
【００３８】
本発明に係る情報処理装置は、仮想時間軸における、シミュレーションの対象期間の一部の期間である部分期間に相当する実時間をカウントするカウント手段と、前記カウント手段が前記部分期間のカウントを終了する度に、直前にカウントが終了した前記部分期間に続く、次の部分期間のシミュレーションの開始指示を、複数のシミュレーション装置に送信する送信手段とを有することが好ましい。
【００３９】
本発明に係る情報処理装置は、複数のシミュレーション装置それぞれから、シミュレーションの対象期間の一部の期間である部分期間のシミュレーションの完了通知を受信する受信手段と、前記受信手段が前記複数のシミュレーション装置のすべてから前記完了通知を受信した場合に、完了した前記部分期間に続く、次の前記部分期間におけるシミュレーションの開始指示を送信する送信手段とを有することが好ましい。
【００４０】
本発明に係るシミュレーション装置は、情報処理装置から開始指示を受信する受信手段と、前記開始指示を受信すると、シミュレーションの対象期間の一部の期間である部分期間を単位として、前記部分期間に実行すべきシミュレーションを実行するシミュレーション手段と、前記部分期間のシミュレーションが完了した場合に、前記情報処理装置に完了通知を送信する送信手段とを有し、前記シミュレーション手段は、前記送信手段が前記完了通知を送信した後に、前記受信手段が前記開始指示を受信した場合に、前記完了通知に係る前記シミュレーションの前記部分期間に続く、次の前記部分期間のシミュレーションを実行することが好ましい。
【発明の効果】
【００４１】
本発明によれば、正確且つ再現性のあるシミュレーションを行うことができる。
【図面の簡単な説明】
【００４２】
【図１】図１は、シミュレーションシステムを示す図である。
【図２】図２は、制御装置を示す図である。
【図３】図３は、仮想時刻管理処理を示すフローチャートである。
【図４】図４は、部分期間のシミュレーション処理を示すフローチャートである。
【図５】図５は、シミュレーション処理を示すシーケンス図である。
【図６】図６は、部分期間の経過と、ａｃｋ信号送信のタイミングの関係を説明するための図である。
【発明を実施するための形態】
【００４３】
図１は、情報処理システムとしてのシミュレーションシステム１０の全体構成を示す図である。本実施形態にかかるシミュレーションシステム１０は、株取引のシミュレーションを行う。シミュレーションシステム１０は、アルゴリズム取引に用いられるアルゴリズムの精度を検証する場合や、株取引の初心者が訓練を行う場合等に利用される。
【００４４】
シミュレーションシステム１０は、ユーザにより指定された期間をシミュレーションの対象期間とし、対象期間における株取引のシミュレーションを行う。シミュレーションシステム１０は、さらにユーザからの指示に応じて、対象期間におけるシミュレーションを、実際の対象期間の２倍、３倍といった速度で進む仮想時間軸に沿って進行及び完了することができる。
【００４５】
図１に示すように、シミュレーションシステム１０は、制御装置１００と、仮想時刻管理装置１１０とを有している。シミュレーションシステム１０はまた、オーダーマネジメントシステム（ＯＭＳ）１２０と、市場シミュレータ１３０，１４０（第１の市場シミュレータ１３０及び第２の市場シミュレータ１４０）と、を有している。制御装置１００と、仮想時刻管理装置１１０と、ＯＭＳ１２０と、市場シミュレータ１３０，１４０とは、例えばＬＡＮ等のネットワークを介して相互に通信可能であるものとする。ここで、仮想時刻管理装置１１０は、情報処理装置の一例である。また、ＯＭＳ１２０及び市場シミュレータ１３０，１４０は、シミュレーション装置の一例である。
【００４６】
ＯＭＳ１２０は、ユーザが株取引の発注を行うためのシステムである。ＯＭＳ１２０は、自身が備える記憶部に格納されたアプリケーションプログラムに従い発注処理を行う。このアプリケーションプログラムは、第１の市場シミュレータ１３０又は第２の市場シミュレータ１４０により生成された板情報に基づいて、注文情報を生成するアルゴリズムを実行するプログラムである。なお、アルゴリズムによる注文を行う際、ＯＭＳ１２０は、板情報以外に、ネットワークを介して取得可能な株取引に参考となる指標等の情報（例えば、ＰＢＲ、ＰＥＲ等）を取得して、それらの情報も用いて注文情報を生成してもよい。例えば、ＯＭＳ１２０は、インターネットのツイッターから情報を取得することも可能である。
【００４７】
なお、他の例としては、ＯＭＳ１２０は、第１の市場シミュレータ１３０又は第２の市場シミュレータ１４０により生成された板情報に基づいて、ユーザにより入力された発注指示を受け付けてもよい。この場合には、ＯＭＳ１２０は、発注指示に基づいて、注文情報を生成する。
【００４８】
市場シミュレータ１３０，１４０は、過去の市況情報に基づいて市場取引を再現するシステムである。第１の市場シミュレータ１３０は、東京証券取引所に対応する市場シミュレータである。第２の市場シミュレータ１４０は、名古屋証券取引所に対応する市場シミュレータである。各市場シミュレータ１３０，１４０は、それぞれ対応する証券取引所の過去のＴＩＣＫデータを取得し、取得したＴＩＣＫデータに基づいて、仮想の注文情報を生成する。なお、市場シミュレータ１３０，１４０は、それぞれ証券会社のシステム等の外部装置からＴＩＣＫデータを取得する。
【００４９】
ＴＩＣＫデータには、過去の実際の注文日時や約定日時などが含まれている。したがって、市場シミュレータ１３０，１４０は、シミュレーション対象期間に対応する過去の市況情報を用いてシミュレーションを行うこととなる。
【００５０】
第１の市場シミュレータ１３０は、注文シミュレータ１３１と、注文情報ＤＢ１３２と、取引シミュレータ１３３とを有している。注文シミュレータ１３１は、過去の市況情報に基づいて、仮想の注文情報を自動生成する。より詳細には、注文シミュレータ１３１は、取引シミュレータ１３３からフィードバックされる板情報を受信するが、その板情報を解釈するモデルを実装しており、板情報と過去の市況情報に基づいて、注文情報を生成する。本実施形態に係る注文シミュレータ１３１は、市況情報として、東証のＴＩＣＫデータを取得し、ＴＩＣＫデータに基づいて、注文情報を生成する。ここで、注文情報は、株式銘柄、注文日時、数量等の情報を含んでいる。
【００５１】
注文シミュレータ１３１は、例えば、過去の注文／板に基づいて、仮想の注文情報を自動生成する。注文シミュレータ１３１はまた、取引シミュレータ１３３からフィードバックされた板情報と、過去の注文情報に基づいて想定していた板と異なる場合には、カオス理論を用いてトレンドを見つけ、そのトレンドに追従するように仮想の注文情報を生成する。注文情報ＤＢ１３２は、注文シミュレータ１３１により生成された注文情報等を格納する。
【００５２】
取引シミュレータ１３３は、注文シミュレータ１３１により生成された注文情報に基づいて、仮想の板情報を生成し、生成した板情報をＯＭＳ１２０に配信する。ここで、板情報は、株式銘柄の取引情報を示す情報である。板情報は、より具体的には、買い注文や売り注文の価格、数量等の情報を含んでいる。取引シミュレータ１３３はまた、ＯＭＳ１２０から、注文情報を受信する。そして、取引シミュレータ１３３は、ＯＭＳ１２０から受信した注文情報と、自身が生成した板情報とのマッチングを行い、約定の可否を判定する。また、取引シミュレータ１３３は、注文シミュレータ１３１により生成された注文情報についても、同様に板情報とのマッチングを行い、約定の可否を判定する。
【００５３】
第２の市場シミュレータ１４０は、第１の市場シミュレータ１３０と同様に、注文シミュレータ１４１と、注文情報ＤＢ１４２と、取引シミュレータ１４３とを有している。注文シミュレータ１４１、注文情報ＤＢ１４２及び取引シミュレータ１４３の処理は、それぞれ注文シミュレータ１３１、注文情報ＤＢ１３２及び取引シミュレータ１３３の処理と同様である。
【００５４】
なお、第１の市場シミュレータ１３０及び第２の市場シミュレータ１４０のシミュレーションにおける具体的な処理内容は、異なっていてもよい。すなわち、第１の市場シミュレータ１３０及び第２の市場シミュレータ１４０は、注文情報や板情報の生成、約定の判定等のシミュレーションを行えばよく、シミュレーションにおける具体的な処理内容は、実施形態に限定されるものではない。例えば、第１の市場シミュレータ１３０及び第２の市場シミュレータ１４０それぞれが異なる証券取引所に対応する場合には、各市場シミュレータ１３０，１４０は、夫々に対応する証券取引所の取引システムに対応する異なる処理を行ってもよい。
【００５５】
制御装置１００は、シミュレーションシステム１０全体を管理する。制御装置１００は、例えば、仮想時刻管理装置１１０、ＯＭＳ１２０及び市場シミュレータ１３０，１４０をリモートで起動する。なお、他の例としては、仮想時刻管理装置１１０、ＯＭＳ１２０及び市場シミュレータ１３０，１４０のうち少なくとも１つの装置は、シミュレーションを行うユーザによる手動で起動してもよい。
【００５６】
制御装置１００は、ユーザによる入力を受け付けると、受け付けた入力内容に従い、仮想時刻管理装置１１０、ＯＭＳ１２０及び市場シミュレータ１３０，１４０を初期化する。制御装置１００は、例えば、シミュレーションの対象市場、対象期間、速度倍率（Ｎ）、部分期間（ΔＴ）等のユーザ入力を受け付ける。なお、シミュレーションの対象市場については、市場ごとに取引対象とする銘柄の一覧をユーザが入力する構成であってもよい。
【００５７】
ここで、対象市場は、例えば、東証、名証などシミュレーションを希望する市場である。本実施形態にかかるシミュレーションシステムにおいては、市場シミュレータ１３０，１４０に対応し、ユーザは、対象市場として、東証及び名証を選択することができる。シミュレーションシステム１０が、福証など他の市場に対応した市場シミュレータをさらに有している場合には、ユーザは、これらの市場についても選択することができる。
【００５８】
対象期間は、仮想時間軸上におけるシミュレーションの開始日時から終了日時までの期間である。対象期間は、例えば、「２０１３年７月１日１０：００：００から２０１３年７月１日１１：００：００」というように設定される。
【００５９】
速度倍率（Ｎ）は、実時間軸上での時間経過速度に対する、仮想時間軸上での時間経過速度の倍率である。すなわち、仮想時間軸上では、実時間軸上での時間経過に対しＮ倍の速度で時間が経過する。例えば、速度倍率２倍の場合には、実時間軸上において５分が経過する間に、仮想時間軸上においては、１０分が経過する。ここで、速度倍率（Ｎ）は、正の数である。速度倍率（Ｎ）は、ユーザにより入力される任意の値である。速度倍率（Ｎ）としては、例えば、１００倍等の値が入力される。
【００６０】
シミュレーションシステム１０は、過去のＴＩＣＫデータに基づいて、シミュレーションを実行する。したがって、シミュレーション装置（ＯＭＳ１２０及び市場シミュレータ１３０，１４０）は、実際に１ｓ待つことなく、実際の株取引における１ｓの間のＴＩＣＫデータを取得することができる。このため、シミュレーションシステム１０は、実時間に比べて早い速度で進行する仮想時間軸上でシミュレーションを実行することができる。
【００６１】
部分期間（ΔＴ）は、ＯＭＳ１２０及び市場シミュレータ１３０，１４０がシミュレーションを実行する際の単位期間であり、対象期間の一部の期間である。すなわち、ＯＭＳ１２０及び市場シミュレータ１３０，１４０は、部分期間を単位としてシミュレーションを逐次的に実行することにより、対象期間内のすべてのシミュレーションを完了する。本実施形態においては、部分期間は、ユーザにより設定された長さの期間である。部分期間としては、例えば１ｓ等の値が入力される。
【００６２】
本実施形態にかかるシミュレーション装置（ＯＭＳ１２０等）は、部分期間におけるシミュレーションを実行単位とし、シミュレーション装置間で同期を取りながら、逐次的にシミュレーションを実行する。例えば、部分期間が１ｓ、シミュレーションの対象期間が１ｍｉｎである場合には、シミュレーション装置は、部分期間のシミュレーションを逐次的に６０回繰り返すことにより、対象期間のシミュレーションを完了する。なお、シミュレーション装置が同期をとるための処理については、後に詳述する。
【００６３】
制御装置１００は、さらに、ＯＭＳ１２０及び市場シミュレータ１３０，１４０に、対象期間及び部分期間（ΔＴ）を送信することで、ＯＭＳ１２０及び市場シミュレータ１３０，１４０を初期化する。制御装置１００は、また、対象市場に基づいて、シミュレーションを実行する実行装置を選択する。例えば、対象市場として東証及び名証が選択された場合には、制御装置１００は、ＯＭＳ１２０及び市場シミュレータ１３０，１４０をシミュレーションの実行装置として選択する。そして、制御装置１００は、仮想時刻管理装置１１０に、シミュレーションの実行装置、対象期間、速度倍率（Ｎ）及び部分期間（ΔＴ）を送信することで、仮想時刻管理装置１１０を初期化する。
【００６４】
なお、他の例としては、部分期間（ΔＴ）は、予め定められた固定値であってもよい。この場合には、部分期間（ΔＴ）は、仮想時刻管理装置１１０、ＯＭＳ１２０及び市場シミュレータ１３０，１４０の記憶部等に予め設定されているものとする。そして、この場合、制御装置１００が各装置に部分期間（ΔＴ）を送信する処理は不要である。また、部分期間（ΔＴ）以外の値についても、仮想時刻管理装置１１０、ＯＭＳ１２０、市場シミュレータ１３０、１４０に予め設定しておき、予め設定されていないものについてのみ制御装置１００が送信する構成であってもよい。
【００６５】
仮想時刻管理装置１１０は、ＯＭＳ１２０及び市場シミュレータ１３０，１４０がシミュレーションを実行する際の仮想時刻の経過を管理する。仮想時刻管理装置１１０は、開始管理部１１１と、カウント部１１２とを有している。
【００６６】
開始管理部１１１は、ＯＭＳ１２０からシミュレーションの開始指示を受信すると、仮想時間軸上における第１の部分期間の開始時刻の初期値Ｔ（０）をＯＭＳ１２０及び市場シミュレータ１３０，１４０に送信する。開始管理部１１１はさらに、（式１）により、第１の部分期間に続く第２の部分期間の開始時刻Ｔ（１）、第２の部分期間に続く第３の部分期間の開始時刻Ｔ（２）を順次算出する。開始管理部１１１は、同様の処理を繰り返すことにより、シミュレーションの対象期間の開始日時から終了日時までの部分期間の開始時刻Ｔ（ｋ）（ｋ＝０，１，２…）を算出する。
Ｔ（ｋ＋１）＝Ｔ（ｋ）＋ΔＴ（ｋ＝０，１，２…）      …（式１）
【００６７】
例えば、Ｔ（０）＝１０：００：００、ΔＴ＝１ｓである場合には、開始管理部１１１は、Ｔ（１）及びＴ（２）として、それぞれ「１０：００：０１」、「１０：００：０２」を算出する。
【００６８】
そして、開始管理部１１１は、後述のカウント部１１２が部分期間のカウントを終了する度に、開始時刻Ｔ（１）、Ｔ（２）…を順番に、ＯＭＳ１２０及び市場シミュレータ１３０，１４０に送信する。
【００６９】
カウント部１１２は、開始管理部１１１により、開始時刻が送信される度に、仮想時間軸において部分期間（ΔＴ）のカウントを開始し、仮想時間軸において部分期間（ΔＴ）が経過するまでカウントを行う。ここで、カウントとは、時間の経過をＣＰＵのクロックを利用して計測する機能である。ＣＰＵのクロックは、実時間軸における実時間を計測するものである。すなわち、カウント部１１２は、具体的には、ＣＰＵのクロックを利用して、仮想時間軸における部分期間（ΔＴ）に相当する実時間軸上の実時間（ΔＴ／Ｎ）をカウントする。カウント部１１２は、開始管理部１１１の制御の下、シミュレーションの対象期間の終了日時までカウントを繰り返す。カウント部１１２は、開始管理部１１１の制御の下、シミュレーションの対象期間の終了日時までカウントを繰り返す。
【００７０】
なお、ＯＭＳ１２０及び市場シミュレータ１３０，１４０は、開始時刻を受信する度に、開始時刻を始点とする部分期間におけるシミュレーションを実行する。そして、ＯＭＳ１２０及び市場シミュレータ１３０，１４０は、シミュレーションが完了すると、仮想時刻管理装置１１０に対し、完了通知を送信する。
【００７１】
開始管理部１１１は、カウント部１１２による部分期間のカウントが終了し（すなわち部分期間が経過し）、且つＯＭＳ１２０及び市場シミュレータ１３０，１４０すべてから完了通知を受信すると、（式１）により、次の部分期間の開始時刻を算出する。そして、開始管理部１１１は、算出した開始時刻をＯＭＳ１２０及び市場シミュレータ１３０，１４０に送信する。
【００７２】
図２は、制御装置１００のハードウェア構成を示す図である。制御装置１００は、ＣＰＵ１０１と、ＲＯＭ１０２と、ＲＡＭ１０３と、ＨＤＤ１０４と、ネットワークＩ／Ｆ１０５と、操作部１０６と、表示部１０７とを有している。ＣＰＵ１０１は、制御装置１００の全体を総括的に制御する。ＲＯＭ１０２は、制御プログラム等を記憶する。ＲＡＭ１０３は、ＣＰＵ１０１の主メモリ、ワークエリア等の一時記憶領域として用いられる。ＨＤＤ１０４は、画像データや各種プログラム等を記憶する。
【００７３】
ネットワークＩ／Ｆ１０５は、ネットワークに接続し、仮想時刻管理装置１１０や、ＯＭＳ１２０、市場シミュレータ１３０，１４０と通信する。操作部１０６は、ユーザによる操作入力を受け付ける。表示部１０７は、各種情報を表示する。表示部１０７は、例えば、シミュレーション結果を表示する。
【００７４】
なお、仮想時刻管理装置１１０、ＯＭＳ１２０及び市場シミュレータ１３０，１４０のハードウェア構成は、図２を参照しつつ説明した制御装置１００のハードウェア構成と同様である。ただし、仮想時刻管理装置１１０、ＯＭＳ１２０及び市場シミュレータ１３０，１４０は、操作部１０６及び表示部１０７を備えなくともよい。
【００７５】
後述する制御装置１００の機能や処理は、制御装置１００が備えるＣＰＵ１０１がＲＯＭ１０２又はＨＤＤ１０４に格納されているプログラムを読み出し、このプログラムを実行することにより実現されるものである。同様に、後述する仮想時刻管理装置１１０の機能や処理は、仮想時刻管理装置１１０が備えるＣＰＵ１０１がＲＯＭ１０２又はＨＤＤ１０４に格納されているプログラムを読み出し、このプログラムを実行することにより実現されるものである。また、ＯＭＳ１２０及び市場シミュレータ１３０，１４０それぞれの機能や処理は、各装置が備えるＣＰＵ１０１がＲＯＭ１０２又はＨＤＤ１０４に格納されているプログラムを読み出し、このプログラムを実行することにより実現されるものである。
【００７６】
図３は、仮想時刻管理装置１１０による仮想時刻管理処理を示すフローチャートである。Ｓ１００において、仮想時刻管理装置１１０は、制御装置１００からシミュレーションの開始指示と共に初期条件を受信する。初期条件には、シミュレーションの実行装置、対象期間、速度倍率（Ｎ）及び部分期間（ΔＴ）が含まれている。仮想時刻管理装置１１０は、初期条件を受信すると、初期条件を初期値としてＲＡＭ１０３等に格納することにより、初期化処理を行う。
【００７７】
次に、Ｓ１０１において、仮想時刻管理装置１１０の開始管理部１１１は、部分期間（ΔＴ）を開始する（開始管理処理）。すなわち、開始管理部１１１は、開始時刻の初期値Ｔ（０）を、シミュレーションの対象として選択された実行装置（例えば、ＯＭＳ１２０及び市場シミュレータ１３０，１４０）に送信する。ここで、開始時刻は、部分期間のシミュレーションの開始指示の一例である。また、Ｓ１０１の処理は、開始指示を送信する送信処理の一例である。
【００７８】
初期値Ｔ（０）を受信した実行装置は、初期値Ｔ（０）を始点とする部分期間（ΔＴ）におけるシミュレーションを実行し、実行が完了すると、仮想時刻管理装置１１０に完了通知としてのａｃｋ信号を送信する。
【００７９】
次に、Ｓ１０２において、仮想時刻管理装置１１０のカウント部１１２は、仮想時間軸における部分期間（ΔＴ）のカウントを開始する（カウント処理）。次に、Ｓ１０３において、仮想時刻管理装置１１０の開始管理部１１１は、シミュレーションの実行装置のすべてからａｃｋ信号を受信するまで待機する。そして、開始管理部１１１は、すべての実行装置からａｃｋ信号を受信すると（Ｓ１０３でＹｅｓ）、処理をＳ１０４へ進める。ここで、ａｃｋ信号は、部分期間のシミュレーションの完了を通知する情報である。また、Ｓ１０３の処理は、部分期間のシミュレーションの完了通知を受信する受信処理の一例である。
【００８０】
Ｓ１０４において、開始管理部１１１は、カウント部１１２によるカウント結果を参照し、仮想時間軸において部分期間（ΔＴ）（実時間軸におけるΔＴ／Ｎ）が経過したか否かを確認する。開始管理部１１１は、仮想時間軸における部分期間（ΔＴ）が経過していない場合には、（Ｓ１０４でＮｏ）、部分期間（ΔＴ）が経過するまで待機する（開始管理処理）。
【００８１】
このように、仮想時刻管理装置１１０は、すべての実行装置からａｃｋ信号を受信した場合であっても、部分期間が経過するまで次の部分期間に移行することなく待機する。これにより、仮想時刻管理装置１１０は、ユーザにより設定された速度倍率でシミュレーションを進行することができる。
【００８２】
一方、Ｓ１０４において、開始管理部１１１は、仮想時間軸における部分期間（ΔＴ）が経過した場合には（Ｓ１０４でＹｅｓ）、処理をＳ１０５へ進める。Ｓ１０５において、開始管理部１１１は、カウント部１１２によるカウント結果を参照し、仮想時間軸において、シミュレーションの対象期間が経過したか否かを確認する。開始管理部１１１は、対象期間が終了した場合には（Ｓ１０５でＹｅｓ）、仮想時刻管理処理を終了する。開始管理部１１１は、対象期間が終了していない場合には（Ｓ１０５でＮｏ）、処理をＳ１０６へ進める。
【００８３】
Ｓ１０６において、開始管理部１１１は、（式１）により、直前に送信した開始時刻Ｔ（ｋ）をΔＴだけ進めた値を新たな開始時刻Ｔ（ｋ）として算出する。ここで、新たな開始時刻Ｔ（ｋ）は、直前にカウント部１１２によるカウントが完了した部分期間に続く、次の部分期間の開始時刻である。
【００８４】
例えば、直前に初期値Ｔ（０）を送信した場合には、開始管理部１１１は、直前に送信した初期値Ｔ（０）に基づいて、（式１）により、続く開始時刻Ｔ（１）を算出する。なお、開始時刻Ｔ（１）は、初期値Ｔ（０）をΔＴだけ進めた時刻である。同様に、開始管理部１１１は、開始時刻Ｔ（２）、Ｔ（３）…を、それぞれ、直前の開始時刻Ｔ（１）、Ｔ（２）…に基づいて算出する。なお、開始時刻の算出処理（Ｓ１０６）は、Ｓ１０７の処理前に完了していればよく、開始時刻の算出処理の実行タイミングは、実施形態に限定されるものではない。
【００８５】
次に、Ｓ１０７において、開始管理部１１１は、Ｓ１０６において算出した開始時刻Ｔ（ｋ）を実行装置に送信し、処理をＳ１０２へ進める。そして、Ｓ１０２において、カウント部１１２は、再び部分期間（ΔＴ）のカウントを開始し、開始管理部１１１は、ａｃｋ信号の受信を待つ。
【００８６】
なお、Ｓ１０６の処理は、カウント部１１２が部分期間（ΔＴ）のカウントを完了する度に、直前にカウントが完了した部分期間に続く、次の部分期間を開始する開始管理処理の一例である。そして、カウント部１１２は、Ｓ１０６を経由した後のＳ１０２において、開始管理部１１１により部分期間が開始される度に、開始された部分期間のカウントを開始する。
【００８７】
また、Ｓ１０７の処理は、カウント部１１２が部分期間（ΔＴ）のカウントを終了する度に、次の部分期間の開始時刻（開始指示）を、実行装置に送信する送信処理の一例である。
【００８８】
以上のように、仮想時刻管理装置１１０は、対象期間が終了するまで、仮想時間軸における部分期間のカウントを繰り返す。そして、仮想時刻管理装置１１０は、部分期間のカウントが完了する度に、次の部分期間の開始時刻を実行装置に送信する。
【００８９】
図４は、ＯＭＳ１２０及び市場シミュレータ１３０，１４０が実行する、部分期間のシミュレーション処理を示すフローチャートである。以下、第１の市場シミュレータ１３０によるシミュレーション処理を例に説明する。Ｓ２００において、第１の市場シミュレータ１３０は、制御装置１００から開始指示と共に、対象期間及び部分期間（ΔＴ）を初期条件として受信する。第１の市場シミュレータ１３０は、初期条件を初期値としてＲＡＭ１０３等に格納することにより、初期化処理を行う。
【００９０】
次に、Ｓ２０１において、第１の市場シミュレータ１３０は、仮想時刻管理装置１１０から部分期間（ΔＴ）の開始時刻Ｔ（ｋ）（ｋ＝０，１，２…）を受信するまで待機する。ここで、Ｓ２０１の処理は、開始指示としての開始時刻を受信する受信処理の一例である。第１の市場シミュレータ１３０は、開始時刻Ｔ（ｋ）を受信すると（Ｓ２０１でＹｅｓ）、処理をＳ２０２へ進める。Ｓ２０２において、第１の市場シミュレータ１３０は、受信した開始時刻Ｔ（ｋ）を始点とし、Ｔ（ｋ）＋ΔＴを終点とする部分期間を特定する。そして、第１の市場シミュレータ１３０は、部分期間の開始時刻Ｔ（ｋ）と、終了時刻Ｔ（ｋ）＋ΔＴをＲＡＭ１０３等に格納する。
【００９１】
次に、Ｓ２０３において、第１の市場シミュレータ１３０は、部分期間を単位として、部分期間のシミュレーションを実行する（シミュレーション処理）。なお、第２の市場シミュレータ１４０及びＯＭＳ１２０も、各装置が実行する、部分期間のシミュレーション処理のＳ２０３において、部分期間のシミュレーションを実行する。
【００９２】
ＯＭＳ１２０及び市場シミュレータ１３０，１４０は、それぞれＳ２０２において、以下に示す＜i＞〜＜iii＞の処理を繰り返し実行する。なお、説明の便宜上、＜i＞〜＜iii
＞においては、ＯＭＳ１２０と第１の市場シミュレータ１３０の処理について説明するが、第２の市場シミュレータ１４０も、第１の市場シミュレータ１３０と同様の処理を行うものとする。
【００９３】
＜i＞
第１の市場シミュレータ１３０の注文シミュレータ１３１は、ＴＩＣＫデータの注文日時や数量等の取引情報を参照し、対象期間に対応するＴＩＣＫデータを抽出する。そして、注文シミュレータ１３１は、部分期間内のＴＩＣＫデータの履歴を読み出し、取引シミュレータ１３３から板情報のフィードバックを受け、カオス理論等に基づいて、注文情報を生成する。そして、取引シミュレータ１３３は、注文情報に基づいて板情報を生成し、生成した板情報をＯＭＳ１２０に送信する。
【００９４】
＜ii＞
ＯＭＳ１２０は、板情報を受信すると、発注アルゴリズムに基づいて、板情報に基づいて注文するか否かを判定する。ＯＭＳ１２０は、注文すると判定した場合、発注処理を行う。すなわち、ＯＭＳ１２０は、板情報に基づいて、注文情報を生成し、生成した注文情報を第１の市場シミュレータ１３０に送信する。なお、ＯＭＳ１２０は、自動で注文情報を行ってもよく、また他の例としては、ユーザ操作に応じて、ユーザが希望する注文情報を生成してもよい。
【００９５】
＜iii＞
第１の市場シミュレータ１３０の取引シミュレータ１３３は、ＯＭＳ１２０又は注文シミュレータ１３１から注文情報が入力されると、入力された注文情報に基づいて、約定するか否かを判定する。取引シミュレータ１３３は、約定すると判定した場合には、約定結果に基づいて板情報を更新し、更新後の板情報をＯＭＳ１２０に送信する。
【００９６】
なお、各シミュレーション装置（ＯＭＳ１２０及び市場シミュレータ１３０，１４０）がシミュレーション完了と判断する条件は、シミュレーション装置毎に予め設定されているものとする。
【００９７】
また、本実施形態においては、取引シミュレータ１３３は、注文シミュレータ１３１やＯＭＳ１２０による注文入力の度に、板情報を生成するが、板情報生成のタイミングは実施形態に限定されるものではない。他の例としては、通信負荷軽減の観点から、取引シミュレータ１３３は、注文入力の度に板情報を生成するのに替えて、所定間隔おきに板情報を生成し、これを送信することとしてもよい。
【００９８】
例えば、ＯＭＳ１２０が「２０１３年７月１日１０：００：００：０１」の時点で送信された板情報に基づいて注文を行うと判定した場合、ＯＭＳ１２０は、即座に注文情報を第１の市場シミュレータ１３０に送信する。そして、「２０１３年７月１日１０：００：００：０２」のタイミングで、第１の市場シミュレータ１３０が注文情報を受信したとする。この場合、第１の市場シミュレータ１３０は、注文情報に基づいて、即座に板情報を更新し、更新後の板情報をＯＭＳ１２０に送信する。なお、取引シミュレータ１３３は、注文シミュレータ１３１から注文情報が入力された場合も同様の処理を行う。
【００９９】
なお、本実施形態においては、ＯＭＳ１２０から送信される注文情報には、時刻の情報は含まれていない。そこで、第１の市場シミュレータ１３０は、注文が入力された時点で注文時刻を算出する。第１の市場シミュレータ１３０は、例えば、時間計算ロジックに基づいて、ΔＴを分割し、入力シーケンスに矛盾が生じないように、注文時刻を算出する。
他の例としては、ＯＭＳ１２０等は、時間指定注文においては、時刻を含む注文情報を生成し、これを第１の市場シミュレータ１３０に送信することとしてもよい。
【０１００】
次に、Ｓ２０４において、第１の市場シミュレータ１３０は、部分期間におけるシミュレーションが完了したか否かを確認する。第１の市場シミュレータ１３０は、シミュレーションが完了した場合には（Ｓ２０４でＹｅｓ）、処理をＳ２０５へ進める。Ｓ２０５において、第１の市場シミュレータ１３０は、部分期間におけるシミュレーションが完了したことを示すａｃｋ信号を仮想時刻管理装置１１０に送信する。以上で、部分期間のシミュレーション処理が完了する。ここで、Ｓ２０５の処理は、完了通知を送信する送信処理の一例である。
【０１０１】
なお、第１の市場シミュレータ１３０は、図４に示す部分期間のシミュレーション処理を繰り返すことによりシミュレーションの対象期間の開始日時から終了日時までのシミュレーション処理を完了する。
【０１０２】
次に、図５を参照しつつ、シミュレーションシステム１０によるシミュレーション処理の全体の流れを説明する。ここでは、以下の初期条件に対応するシミュレーション処理について説明する。
＜初期条件＞
対象市場：東証及び名証
対象期間：２０１３年７月１日  １０：００：００−１１：００：００
部分期間（ΔＴ）：１（ｓ）
速度倍率（Ｎ）：１００（倍）
【０１０３】
Ｓ３００において、制御装置１００は、ユーザから、対象市場、対象期間、部分期間（ΔＴ）及び速度倍率（Ｎ）の設定指示の入力を受け付ける（受付処理）。次に、制御装置１００は、シミュレーションの開始指示と共に、初期条件を仮想時刻管理装置１１０、ＯＭＳ１２０及び市場シミュレータ１３０，１４０に送信する（Ｓ３０１〜Ｓ３０４）。
【０１０４】
なお、制御装置１００は、仮想時刻管理装置１１０には、初期条件として、実行装置、対象期間、部分期間（ΔＴ）及び速度倍率（Ｎ）を送信する。なお、本例においては、東証及び名証の対象市場に対応し、仮想時刻管理装置１１０が受信する初期条件には、ＯＭＳ１２０及び市場シミュレータ１３０，１４０が実行装置として示される。また、制御装置１００は、ＯＭＳ１２０及び市場シミュレータ１３０，１４０には、初期条件として、対象期間及び部分期間（ΔＴ）を送信する。
【０１０５】
その後、ＯＭＳ１２０及び市場シミュレータ１３０，１４０は、仮想時刻管理装置１１０から部分期間の開始時刻（仮想時間軸における開始時刻）を受信するまでシミュレーションを開始することなく、待機する。
【０１０６】
続いて、仮想時刻管理装置１１０は、初期条件に基づいて、開始時刻の初期値Ｔ（０）を特定し、これを実行装置として選択されたＯＭＳ１２０及び市場シミュレータ１３０，１４０に送信する（Ｓ３１０〜Ｓ３１２）。
【０１０７】
第１の市場シミュレータ１３０は、初期値Ｔ（０）を受信すると、開始時刻Ｔ（ｋ）を始点とし、Ｔ（ｋ）＋ΔＴを終点とする部分期間を特定する。そして、第１の市場シミュレータ１３０は、部分期間の開始時刻Ｔ（ｋ）と、終了時刻「Ｔ（ｋ）＋ΔＴ」をＲＡＭ１０３等に格納する。第１の市場シミュレータ１３０は、続いて、Ｔ（０）〜「Ｔ（０）＋ΔＴ」までの部分期間におけるシミュレーションを実行する。
【０１０８】
より具体的には、第１の市場シミュレータ１３０は、注文情報に基づいて板情報を生成し（Ｓ３１３）、生成した板情報をＯＭＳ１２０に送信する（Ｓ３１４）。なお、第１の市場シミュレータ１３０は、注文情報が入力される度に、板情報を生成又は更新し、生成又は更新した板情報をＯＭＳ１２０に送信する。そして、第１の市場シミュレータ１３０は、シミュレーションが完了すると、仮想時刻管理装置１１０にａｃｋ信号を送信する（Ｓ３１５）。
【０１０９】
同様に、第２の市場シミュレータ１４０は、初期値Ｔ（０）を受信すると、部分期間を特定し、Ｔ（０）〜「Ｔ（０）＋ΔＴ」までの部分期間におけるシミュレーションを実行する。より具体的には、第２の市場シミュレータ１４０は、注文情報に基づいて板情報を生成し（Ｓ３１６）、生成した板情報をＯＭＳ１２０に送信する（Ｓ３１７）。なお、第２の市場シミュレータ１４０は、注文情報が入力される度に、板情報を生成又は更新し、生成又は更新した板情報をＯＭＳ１２０に送信する。そして、第２の市場シミュレータ１４０は、シミュレーションが完了すると、仮想時刻管理装置１１０にａｃｋ信号を送信する（Ｓ３１８）。
【０１１０】
ＯＭＳ１２０は、初期値Ｔ（０）を受信すると、部分期間を特定し、Ｔ（０）〜「Ｔ（０）＋ΔＴ」までの部分期間におけるシミュレーションを実行する。より具体的には、ＯＭＳ１２０は、適宜注文情報を生成し、対応する市場シミュレータ１３０，１４０に送信する（Ｓ３１９）。そして、ＯＭＳ１２０は、送信した注文情報に対応して更新された板情報を受信すると、シミュレーションを完了し、仮想時刻管理装置１１０にａｃｋ信号を送信する（Ｓ３２０）。
【０１１１】
一方、仮想時刻管理装置１１０においては、開始時刻の初期値Ｔ（０）の送信後、カウント部１１２は、仮想時間軸における部分期間（ΔＴ）のカウントを開始する。そして、仮想時刻管理装置１１０は、仮想時間軸における部分期間（ΔＴ）（実時間におけるΔＴ／Ｎ）が経過したか否かを確認する（Ｓ３２１）。ここで、速度倍率＝１００であるため、（式２）より、ΔＴ／Ｎは、０．０１ｓとなる。
ΔＴ／Ｎ＝１ｓ／１００＝０．０１ｓ      …（式２）
【０１１２】
カウントが終了すると、開始管理部１１１は、全ての実行装置からａｃｋ信号を受信しているので、次の開始時刻Ｔ（１）をＯＭＳ１２０等に送信する（Ｓ３３０〜Ｓ３３２）。ここで、開始時刻Ｔ（１）は、（式３）より、「１０：００：０１」となる。
Ｔ（１）
＝Ｔ（０）＋ΔＴ＝１０：００：００＋１ｓ＝１０：００：０１    …（式３）
【０１１３】
そして、ＯＭＳ１２０及び市場シミュレータ１３０，１４０は、Ｔ（１）とΔＴに基づいて、次にシミュレーションを行う部分期間を特定する。以下、Ｔ（０）を開始時刻とする部分期間におけるシミュレーション（Ｓ３１０〜Ｓ３２０）と同様の処理により、Ｔ（１）を開始時刻とする部分期間における市場シミュレーションが実行される。
【０１１４】
仮想時刻管理装置１１０は、同様に、順次部分期間の開始時刻をΔＴだけ進めることにより、対象期間の終了日時「１１：００：００」まで部分期間のシミュレーション処理を繰り返す。本例においては、終了日時「１１：００：００」に対応する開始時刻Ｔ（３６００）まで、３６００回、部分期間のシミュレーション処理が繰り返される。
【０１１５】
以上のように、本実施形態にかかるシミュレーションシステム１０においては、仮想時刻管理装置１１０は、実行単位時間により仮想時刻におけるシミュレーションの進行を管理する。したがって、シミュレーションシステム１０は、複数のシミュレーション装置間の同期を取ることができる。
【０１１６】
図６は、部分期間の経過と、ａｃｋ信号送信のタイミングの関係を説明するための図である。図中縦軸は、実時間軸を示している。仮想時刻管理装置１１０がａｃｋ信号を受信するタイミングとしては、図６（ａ）及び図６（ｂ）に示す２通りが考えられる。
【０１１７】
図６（ａ）は、部分期間（ΔＴ／Ｎ）が経過する前にすべての実行装置（ＯＭＳ１２０及び市場シミュレータ１３０，１４０）からａｃｋ信号を受信した例を示す図である。この場合には、仮想時刻管理装置１１０は、すべての実行装置からａｃｋ信号を受信した後、カウント部１１２が部分期間のカウントを終了するまで待機した後、新たな部分期間の開始時刻を送信する。これにより、仮想時刻管理装置１１０は、ユーザにより指定された速度倍率でシミュレーションを進行することができる。
【０１１８】
一方、図６（ｂ）は、部分期間（ΔＴ／Ｎ）内にすべての実行装置からａｃｋ信号を受信できない例を示す図である。この場合には、仮想時刻管理装置１１０は、すべての実行装置からａｃｋ信号を受信するまで待機し、すべての実行装置からａｃｋ信号を受信したことを条件として、次の部分期間の開始時刻を送信する。これにより、仮想時刻管理装置１１０は、一のシミュレーションが完了しないことに起因し、不適切なシミュレーション結果が得られるのを防ぐことができる。
【０１１９】
さらに、図６（ｃ）は、仮想時刻管理装置１１０が開始時刻を送信してから、ａｃｋ信号を送信するまでに要する実処理時間に比べて短い最短期間がΔＴ／Ｎとして設定された例を示す図である。この場合には、仮想時刻管理装置１１０がすべての実行装置からａｃｋ信号を受信したタイミングにおいては、常に最短期間が経過していることとなる。すなわち、仮想時刻管理装置１１０は、ΔＴ／Ｎに最短期間を設定することにより、シミュレーションシステム１０の能力における最大速度においてシミュレーションを実行することができる。
【０１２０】
例えば、仮想時刻管理装置１１０が開始時刻を送信してからａｃｋ信号を受信するまでの平均時間が０．０１ｓであるとする。また、速度倍率（Ｎ）が１０００に設定されているとする。この場合、ΔＴ／Ｎは、０．００１ｓとなるため、実行装置は、ΔＴ／Ｎの期間内に部分期間のシミュレーションを完了することができない。このため、仮想時刻管理装置１１０は、すべての実行装置からａｃｋ信号を受信後直ちに、次の部分期間の開始時刻を送信することとなる。
【０１２１】
なお、ΔＴ／Ｎの最短期間は、仮想時刻管理装置１１０のＲＯＭ１０２等に予め設定されているものとする。なお、最短期間は、仮想時刻管理装置１１０が開始時刻を送信してから、すべての実行装置からａｃｋ信号を受信するまでに要する時間の実測値に基づいて、決定されるのが好ましい。
【０１２２】
次に、シミュレーションシステム１０の第１の変更例について説明する。第１の変更例としては、仮想時刻管理装置１１０が部分期間の開始タイミングにおいて送信する情報は、開始時刻に限定されるものではない。例えば、仮想時刻管理装置１１０は、部分期間のカウントが終了する度に、開始時刻にかえて、対象期間の開始時刻からの経過時刻（０ｓ，１ｓ…）を送信してもよい。この場合には、経過時刻を受信したシミュレーションの実行装置は、シミュレーションの対象期間の開始時刻に経過時刻を加算することにより、部分期間の開始時刻を算出する。実行装置はまた、開始時刻にΔＴを加算することにより、部分期間の終了時刻を算出する。
【０１２３】
また、他の例としては、仮想時刻管理装置１１０は、開始時刻に替えて、単に部分期間を１つ進める（ΔＴを１つ進める）ことを示す進行信号を送信してもよい。この場合には、シミュレーションの実行装置は、進行信号を受信した回数をカウントする。そして、実行装置は、（式４）により、部分期間の開始時刻を算出する。
部分期間の開始時刻
＝対象期間の開始時刻＋ΔＴ×（進行信号の受信回数−１）      …（式４）
【０１２４】
第２の変更例としては、仮想時刻管理装置１１０は、図３に示す仮想時間管理処理において、部分期間（ΔＴ）が経過したか否かを確認する処理を省略してもよい。これにより、仮想時刻管理装置１１０は、仮想時間における部分期間（ΔＴ）のカウントが終了するのを待つことなく、次の部分期間を開始することができる。
【０１２５】
さらに、この場合には、仮想時刻管理装置１１０は、例えば、ΔＴ／Ｎに最短期間を設定することにより、最大速度でのシミュレーションを実現することができる。さらには、ΔＴ／Ｎの時間の経過をカウントすることなく、全ての実行装置からａｃｋ信号を受信し
たタイミングで次の部分期間のシミュレーションを進めるような構成としてもよい。この場合も、全ての実行装置において部分期間（ΔＴ）単位のシミュレーションが完了する毎
に、次の部分期間のシミュレーションが実行されることになるため、同期をとることができる。
【０１２６】
第３の変更例としては、仮想時刻管理装置１１０は、ユーザにより選択されたシミュレーション装置だけでなく、シミュレーションシステム１０が有するすべてのシミュレーション装置の仮想時刻の進行を管理してもよい。また、他の例としては、仮想時刻管理装置１１０は、市場シミュレータ１３０，１４０のみ同期させることとしてもよい。この場合、ＯＭＳ１２０は、市場シミュレータ１３０，１４０とは非同期で、板情報を受信する。また、他の例としては、市場シミュレータ１３０，１４０の状態（シミュレーションが完了したか否か）をＯＭＳ１２０が所定の間隔で確認し、シミュレーションが完了したことを検出した場合には、ＯＭＳ１２０から仮想時刻管理装置１１０にａｃｋ信号を送信する構成であってもよい。
【０１２７】
第４の変更例としては、本実施形態にかかるシミュレーションシステム１０が備える装置は、実施形態に限定されるものではない。例えば、シミュレーションシステム１０は、東証及び名証の２つの市場に対応する市場シミュレータ１３０，１４０の他に、又はこれらに替えて、これ以外の市場（福岡証券取引所等）に対応する市場シミュレータを有してもよい。
【０１２８】
また、他の例としては、制御装置１００は、ＯＭＳ１２０と一体に設けられていてもよい。また、他の例としては、仮想時刻管理装置１１０は、ＯＭＳ１２０又は市場シミュレータ１３０，１４０と一体に設けられていてもよい。この場合には、ＯＭＳ１２０が実行するアプリケーションプログラムと、制御装置１００が実行する起動制御プログラムとは、１つの端末上で実行される。また、他の例としては、制御装置１００と仮想時刻管理装置１１０は、一体に設けられていてもよい。なお、シミュレーションシステムは、クラウドシステムとして構成することも可能である。すなわち、シミュレーションシステムを構成する各装置は、データセンターに用意された多数のサーバ群によってその機能を実現する構成であってもよい。
【０１２９】
第５の変更例としては、シミュレーションシステムは、処理を同期させる必要のある複数の装置を備えるシステムであればよく、システムが行う処理内容は、実施形態に限定されるものではない。他の例としては、シミュレーションシステムは、証券会社が扱う各種債券、派生商品（デリバティブ）、為替取引等、他の金融取引を行うシステムであってもよい。また、他の例としては、シミュレーションシステムは、商品の在庫管理等金融取引以外の処理を行うシステムであってもよい。
【０１３０】
第６の変更例としては、本実施形態にかかるシミュレーションシステム１０は、シミュレーション装置が部分期間に対応するデータを参照してシミュレーションを行うものであった。これに対し、第６の変更例としては、シミュレーション装置は、対象期間に実行すべきシミュレーションに含まれるすべての処理ステップのうち、部分期間に対応する処理ステップを部分期間に実行するものであってもよい。ここで、部分期間に対応する処理ステップは、各シミュレーション装置のＲＯＭ１０２等に予め格納されているものとする。
【０１３１】
なお、第７の変更例としては、制御装置１００は、速度倍率（Ｎ）、部分期間(ΔＴ)及び部分期間に相当する実時間（ΔＴ／Ｎ）を特定できればよく、このためにユーザから受け付ける入力内容は、実施形態に限定されるものではない。例えば、制御装置１００は、実時間（ΔＴ／Ｎ）及び速度倍率（Ｎ）のユーザ入力を受け付け、これらに基づいて、部分期間（ΔＴ）を特定してもよい。また、他の例としては、制御装置１００は、部分期間（ΔＴ）及び実時間（ΔＴ／Ｎ）のユーザ入力を受け付け、これらに基づいて、速度倍率（Ｎ）を特定してもよい。
【０１３２】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【０１３３】
以上、上述した各実施形態によれば、正確且つ再現性のあるシミュレーションを行うことができる。
【０１３４】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【０１３５】
１０  シミュレーションシステム
１００  制御装置
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  ＨＤＤ
１１０  仮想時刻管理装置
１２０  ＯＭＳ
１３０  第１の市場シミュレータ
１４０  第２の市場シミュレータ
【図１】
2015075942.tif 000003
【図２】
2015075942.tif 000004
【図３】
2015075942.tif 000005
【図４】
2015075942.tif 000006
【図５】
2015075942.tif 000007
【図６】
2015075942.tif 000008