(57)【特許請求の範囲】
【請求項１】
証券売買の時刻を含む過日市況情報を用いた証券売買模擬システムであって、
ユーザにより予め作成されたアルゴリズム処理プログラムに基づくアルゴリズム処理であって、前記過日市況情報が配信されると市況受信処理を呼び出す処理と、前記市況受信処理により受信された過日市況情報を発注判定する処理と、この発注判定により得られた発注内容を前記市況受信処理に送出する処理と、この発注内容の送出後に発注執行処理を呼び出す処理とを含む前記アルゴリズム処理を実行するアルゴリズム処理装置に通信可能な市況模擬装置と、
前記市況模擬装置及び前記アルゴリズム処理装置に通信可能な市場模擬装置と、
前記アルゴリズム処理により呼び出されると、前記市況模擬装置から配信された過日市況情報を受信する処理と、前記送出された発注内容に当該過日市況情報内の時刻を付加した発注情報を第１メモリに書込む処理とを含む市況受信処理を前記アルゴリズム処理装置に実行させるための市況受信プログラムと、
前記アルゴリズム処理により呼び出されると、前記第１メモリ内の発注情報を前記市場模擬装置に送信する発注執行処理を前記アルゴリズム処理装置に実行させるための発注執行プログラムと
を備え、
前記市況模擬装置は、
現実の時刻よりも速く進む模擬時刻を前記市場模擬装置に配信する手段と、
前記模擬時刻と同じ時刻を含む前記過日市況情報を第２メモリに書込む過日市況情報書込手段と、
この過日市況情報を前記アルゴリズム処理装置に配信する手段と、
を備え、
前記市場模擬装置は、
前記模擬時刻と同じ時刻を含む前記過日市況情報から市況板情報を作成し、前記市況板情報を第３メモリに書込む市況板情報書込手段と、
この市況板情報及び前記発注情報を約定判定し、得られた約定情報を送信する手段と、
を備え、
前記市況受信処理は、前記発注判定によって発注内容が得られず、前記アルゴリズム処理から発注内容が送出されなかった場合には、前記発注判定が完了した旨を示す発注判定完了通知を前記市場模擬装置に送信する処理、を更に含んでおり、
前記市場模擬装置は、
前記約定判定した結果が約定の成立を示す場合、当該成立した約定を示す約定情報を前記第３メモリに書込む手段と、
前記送信された発注判定完了通知を受けると、前記第３メモリ内の約定情報を前記市況模擬装置に送信する手段、
を更に備えており、
前記過日市況情報書込手段は、
前記模擬時刻と同じ時刻を当該過日市況情報に付加する手段と、
この今回付加した時刻と前回付加した時刻との差が一定微小時間以下か否かを判定する手段と、
前記判定した結果、前記差が一定微小時間以下の場合、前記今回付加した時刻を含む過日市況情報を前記第２メモリに書込む手段と、
前記判定した結果、前記差が一定微小時間を超える場合、前記約定情報を受けるまで待機する手段と、
前記待機中に前記約定情報を受けると、この約定情報に示される約定された数量を差し引くように、当該過日市況情報に含まれる気配数量を更新する手段と、
前記更新の後、当該過日市況情報を前記第２メモリに書込む手段と、
を備えた証券売買模擬システム。
【請求項２】
請求項１に記載の証券売買模擬システムにおいて、
前記市場模擬装置から通信可能なリスク管理装置を更に備え、
前記リスク管理装置は、
前記送信された約定情報に基づいて損益情報を算出する手段と、
前記損益情報を表示する手段と、
を備えた証券売買模擬システム。
【請求項３】
請求項２に記載の証券売買模擬システムにおいて、
前記損益情報はポジション損益情報である証券売買模擬システム。
【請求項４】
請求項１に記載の証券売買模擬システムにおいて、
前記過日市況情報を予め記憶し、前記市況模擬装置及び前記市場模擬装置から読込み可能な記憶手段を更に備え、
前記過日市況情報書込手段は、
前記配信する模擬時刻毎に、当該模擬時刻と同じ時刻を含む前記過日市況情報を前記記憶手段から読込む手段を備え、
前記市況板情報書込手段は、
前記配信された模擬時刻毎に、当該模擬時刻と同じ時刻を含む前記過日市況情報を前記記憶手段から読込む手段と、
前記配信された模擬時刻毎に、当該読み込んだ過日市況情報内の時刻を含むように前記市況板情報を作成する手段と、
を備えた証券売買模擬システム。
【請求項５】
請求項４に記載の証券売買模擬システムにおいて、
前記市場模擬装置は、
前記アルゴリズム処理装置から前記発注情報を受信する手段と、
前記受信した発注情報に含まれる時刻に基づき、当該時刻以後の直近の時刻を含む市況板情報を前記第３メモリから読出す手段と、
前記受信した発注情報及び前記読出した市況板情報を約定判定した結果が約定の不成立を示す場合、当該発注情報を未約定の発注情報として前記第３メモリに書込む手段と、
前記受信した発注情報に含まれる時刻に基づき、当該時刻よりも前の時刻を含む未約定の発注情報を前記第３メモリから読出す手段と、
前記読出した未約定の発注情報及び前記読出した市況板情報を約定判定した結果が約定の成立を示す場合、当該未約定の発注情報を前記第３メモリから削除すると共に、当該成立した約定を示す約定情報を前記第３メモリに書込む手段と、
を更に備えた証券売買模擬システム。
【請求項６】
請求項１に記載の証券売買模擬システムにおいて、
前記市場模擬装置は、
前記アルゴリズム処理装置から前記発注情報を受信する手段と、
前記受信した発注情報を前記第３メモリに書込む手段と、
を更に備えた証券売買模擬システム。
【請求項７】
請求項１に記載の証券売買模擬システムにおいて、
前記市況模擬装置は、
前記模擬時刻を前記アルゴリズム処理装置に配信する手段を更に備え、
前記アルゴリズム処理は、
前記配信された模擬時刻と予め設定された発注時刻とを比較し、両者が一致したとき、予め設定された発注内容を前記市況受信処理に送出する処理を更に含んでいる証券売買模擬システム。
【請求項８】
請求項１に記載の証券売買模擬システムにおいて、
前記市場模擬装置は、
前記アルゴリズム処理装置から前記発注情報を受信する手段と、
前記受信した発注情報に含まれる時刻に基づき、当該時刻以後の直近の時刻を含む市況板情報を前記第３メモリから読出す手段と、
前記受信した発注情報及び前記読出した市況板情報を約定判定した結果が約定の不成立を示す場合、当該発注情報を未約定の発注情報として前記第３メモリに書込む手段と、
前記受信した発注情報に含まれる時刻に基づき、当該時刻よりも前の時刻を含む未約定の発注情報を前記第３メモリから読出す手段と、
前記読出した未約定の発注情報及び前記読出した市況板情報を約定判定した結果が約定の成立を示す場合、当該未約定の発注情報を前記第３メモリから削除する手段と、
を更に備えた証券売買模擬システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、証券売買模擬システムに関する。
【背景技術】
【０００２】
従来の市場シミュレータは、証券を手動で発注するオーダマネジメントシステム（以下、ＯＭＳという）用に作成されている。この種の市場シミュレータにおいては、買価格及び買数量を含む買注文と、売価格及び売数量を含む売注文とをＯＭＳ画面から入力し、各注文を市況板情報に登録し、市況板情報における同じ買価格と売価格での買数量と売数量の合致分を買約定・売約定としてＯＭＳ側へ通知する。なお、約定は、株式の売買が成立することである。市況板情報は、売価格・売数量／買価格・買数量を価格の降順に一覧として示す情報である。また、買約定・売約定は、前述した合致分に限らず、売最安値と買成行の数量合致分や、買最高値と売成行の数量合致分でも成立する。成行は、株式を売買する際に、希望する価格を指定しない方法である。
【０００３】
また、市場シミュレータは、市況情報をティック（tick）毎に入力し、市況情報から市況板情報を作成し、ＯＭＳ画面から入力した買注文又は売注文を前述同様に約定させて買約定・売約定としてＯＭＳ側へ通知する。
【０００４】
このような市場シミュレータは、取引所に発注して約定するまでのＯＭＳのトランザクション処理などの執行確認試験を適切に実行可能となっている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−２６２２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来の市場シミュレータは、ＯＭＳのトランザクション処理には適しているものの、本発明者の検討によれば、以下のような不都合がある。
【０００７】
例えば、市場シミュレーションにおいて、過日の相場での市況ティックイベントから発注判定によって、発注価格、発注数量を決定するアルゴリズム取引(trading)シミュレーションを実行すると共に、発注判定時のイベント時刻の市況板情報に基づく約定シミュレーションを実行したい場合がある。しかし、従来の市場シミュレータは、過去の相場の市況板情報を用いた市場シミュレーションを実行できないという不都合がある。
【０００８】
また仮に、市場シミュレータが過去の相場の市況板情報を用いた市場シミュレーションを実行した場合について考えてみる。この場合、市場シミュレーションでは、予めユーザにより作成されたアルゴリズム処理が用いられ、アルゴリズム取引の当該アルゴリズム処理における過去の市況情報の読み込みと、市場シミュレータにおける同日の市況情報の読み込みとが非同期に実行される。このため、アルゴリズム処理による発注判定と、市場シミュレータによる市況板情報の作成とは非同期に実行される。従って、正確な市場シミュレーションを実行できない不都合が生じる。特に、過去の市況情報を高速で読み込ませた場合には、アルゴリズム処理による発注判定から市場シミュレータによる約定判定までのレスポンス時間差分だけ、市況情報に基づく市況板情報の作成が進行してしまう。この結果、意味のある市場シミュレーションを実行できない状況となる。
【０００９】
本発明が解決しようとする課題は、過日市況を高速に読み込ませても、正確な市場シミュレーションを実行し得る証券売買模擬システムを提供することである。
【課題を解決するための手段】
【００１０】
実施形態の証券売買模擬システムは、証券売買の時刻を含む過日市況情報を用いており、市況模擬装置と、市場模擬装置と、市況受信プログラムと、発注執行プログラムとを備えている。
【００１１】
アルゴリズム処理装置は、ユーザにより予め作成されたアルゴリズム処理プログラムに基づくアルゴリズム処理を実行する。アルゴリズム処理は、前記過日市況情報が配信されると市況受信処理を呼び出す処理と、前記市況受信処理により受信された過日市況情報を発注判定する処理と、この発注判定により得られた発注内容を前記市況受信処理に送出する処理と、この発注内容の送出後に発注執行処理を呼び出す処理とを含んでいる。
【００１２】
前記市況模擬装置はアルゴリズム処理装置に通信可能となっている。
【００１３】
前記市場模擬装置は、前記市況模擬装置及び前記アルゴリズム処理装置に通信可能となっている。
【００１４】
前記市況受信プログラムは、市況受信処理を前記アルゴリズム処理装置に実行させる。前記市況受信処理は、前記アルゴリズム処理により呼び出されると、前記市況模擬装置から配信された過日市況情報を受信する処理と、前記送出された発注内容に当該過日市況情報内の時刻を付加した発注情報を前記第１メモリに書込む処理とを含んでいる。
【００１５】
前記発注執行プログラムは、前記発注執行処理を前記アルゴリズム処理装置に実行させる。前記発注執行処理は、前記アルゴリズム処理により呼び出されると、前記第１メモリ内の発注情報を前記市場模擬装置に送信する処理である。
【００１６】
前記市況模擬装置は、現実の時刻よりも速く進む模擬時刻を前記市場模擬装置に配信する。前記市況模擬装置の過日市況情報書込手段は、前記模擬時刻と同じ時刻を含む前記過日市況情報を第２メモリに書込む。前記市況模擬装置は、この過日市況情報をアルゴリズム処理装置に配信する。
【００１７】
前記市場模擬装置は、前記模擬時刻と同じ時刻を含む前記過日市況情報から市況板情報を作成し、前記市況板情報を第３メモリに書込む。前記市場模擬装置は、この市況板情報及び前記発注情報を約定判定し、得られた約定情報を送信する。
【図面の簡単な説明】
【００１８】
【図１】一実施形態に係る証券売買シミュレーションシステム及びその周辺構成を示す模式図である。
【図２】同実施形態における市況板情報のデータ構造を示す模式図である。
【図３】同実施形態における約定判定条件及び約定数量を説明するための模式図である。
【図４】同実施形態における損益情報の計算を説明するための模式図である。
【図５】同実施形態における動作を説明するための模式図である。
【図６】同実施形態における過日市況情報の一例を示す模式図である。
【図７】同実施形態における発注情報の一例を示す模式図である。
【図８】同実施形態における注文受付情報の一例を示す模式図である。
【図９】同実施形態における動作を説明するための模式図である。
【図１０】同実施形態における過日市況情報の一例を示す模式図である。
【図１１】同実施形態における約定情報の一例を示す模式図である。
【図１２】同実施形態における市況情報の一例を示す模式図である。
【発明を実施するための形態】
【００１９】
以下、一実施形態について図面を用いて説明する。なお、以下の各装置は、ハードウェア構成、又はハードウェア資源とソフトウェアとの組合せ構成のいずれでも実施可能となっている。組合せ構成のソフトウェアとしては、予めネットワーク又は記憶媒体から対応する装置のコンピュータにインストールされ、対応する装置の機能を実現させるためのプログラムが用いられる。
【００２０】
図１は一実施形態に係る証券売買シミュレーションシステム及びその周辺構成を示す模式図である。この証券売買シミュレーションシステム（証券売買模擬システム）は、ユーザにより予め作成されたアルゴリズム処理を実行するアルゴリズム処理装置に対し、当該アルゴリズム処理を検証するためのものである。これに伴い、証券売買シミュレーションシステムは、過日市況記憶装置１０、市況シミュレータ（市況模擬装置）２０、アルゴリズム処理より呼び出される市況受信部３１の市況受信プログラムと発注執行部３３の発注執行プログラム、市場シミュレータ（市場模擬装置）４０及びリスク管理装置５０を備えている。市況受信プログラム及び発注執行プログラムはアルゴリズム処理装置３０に実行される。市況シミュレータ２０、アルゴリズム処理装置３０及び市場シミュレータ４０は互いに通信可能となっている。
【００２１】
ここで、過日市況記憶装置１０は、証券売買の時刻を含む過日市況情報を予め記憶し、市況シミュレータ２０及び市場シミュレータ４０から読込み可能な記憶装置である。ここで、過日市況情報は、ティック（tick）とも呼ばれ、取引所等より配信される相場報道情報（市況）の１受信単位である。過日市況情報は、例えば、証券売買の日付を示す日付、証券売買の時刻を示すタイムスタンプ、証券の銘柄を識別する銘柄コード、証券の現在の価格を示す現在値、証券の取引高を示す出来高、証券が買われる予定価格を示す買気配値、証券が買われる予定数量を示す買気配数量、証券が売られる予定価格を示す売気配値、証券が売られる予定数量を示す売気配数量、価格を指定しない成行注文の売気配数量を示す売成行数量、及び価格を指定しない成行注文の買気配数量を示す買成行数量を含んでいる。なお、「タイムスタンプ」は、「時刻データ」と呼んでもよく、又は単に「時刻」と呼んでもよい。これは他の情報のタイムスタンプ及び発注タイムスタンプについても同様である。
【００２２】
市況シミュレータ２０は、高倍速時刻算出部２１、市況読込部２２、第２メモリ２３及び市況配信部２４を備えている。
【００２３】
高倍速時刻算出部２１は、現実の時刻よりも速く進む高倍速時刻（模擬時刻）を算出する機能と、算出した高倍速時刻を市場シミュレータ４０に配信する機能をもっている。但し、高倍速時刻算出部２１は、当該高倍速時刻をアルゴリズム処理装置３０にも配信してもよい。
【００２４】
ここで、高倍速時刻は、証券売買シミュレーションシステム内で使用する時刻であり、高倍速時刻をＴｈとし、市場開始時刻を９：００とし、現在時刻をＴｃとし、シミュレーション開始時刻をＴｓとし、高倍速数をａとしたとき、次式に示すように算出される。
【００２５】
Ｔｈ＝９：００＋（Ｔｃ−Ｔｓ）×ａ
例えば、現在時刻Ｔｃ＝１０：００：５０．０００、シミュレーション開始時刻Ｔｓ＝１０：００：００．０００、高倍速数ａ＝３６０のとき、高倍速時刻Ｔｈは次式に示すように算出される。
【００２６】
Ｔｈ＝９：００：００．０００＋（Ｔｃ−Ｔｓ）×ａ
＝９：００：００．０００＋（１０：００：５０．０００−１０：００：００．０００）×３６０
＝９：００：００．０００＋５：００：００．０００
＝１４：００：００．０００
市況シミュレータ２０、アルゴリズム処理装置３０及び市場シミュレータ４０は、このような高倍速時刻Ｔｈをシステム時刻として動作する。なお、高倍速時刻Ｔｈは、例えば、１００ミリ秒程度ごとのタイマ処理により算出してもよい。
【００２７】
また、高倍速数は、例えば９時から１５時までの６時間（＝３６０分）を１分にしたい場合、３６０に設定すればよい。高倍速数は、これに限らず、実際の市況配信スピードの数１００倍に対応した２００〜９００の範囲内における任意の値を適宜、使用すればよい。
【００２８】
市況読込部２２は、高倍速時刻算出部２１により算出された高倍速時刻と同じ時刻のタイムスタンプを含む過日市況情報を第２メモリ２３に書込む過日市況情報書込機能をもっている。過日市況情報書込機能は、高倍速時刻算出部２１から配信する高倍速時刻毎に、当該高倍速時刻と同じ時刻のタイムスタンプを含む過日市況情報を過日市況記憶装置１０から読込む機能をもっている。また、過日市況情報書込機能は、高倍速時刻と同じ時刻を当該過日市況情報に付加する機能と、当該付加の後、市場シミュレータ４０から送信された約定情報を受けると、この約定情報に示される約定された数量を差し引くように、当該過日市況情報に含まれる気配数量を更新する機能と、当該更新の後、当該過日市況情報を第２メモリ２３に書込む機能と、を含んでいてもよい。
【００２９】
あるいは、過日市況情報書込機能は、高倍速時刻と同じ時刻を当該過日市況情報に付加する機能と、この今回付加した時刻と前回付加した時刻との差が一定微小時間（１０ミリ秒程度）以下か否かを判定する機能と、判定した結果、差が一定微小時間以下の場合、今回付加した時刻を含む過日市況情報を第２メモリ２３に書込む機能と、判定した結果、一定微小時間を超える場合、約定情報を受けるまで待機する機能と、待機中に約定情報を受けると、この約定情報に示される約定された数量を差し引くように、当該過日市況情報に含まれる気配数量を更新する機能と、当該更新の後、当該過日市況情報を第２メモリ２３に書込む機能と、を含んでいてもよい。なお、一定微小時間としては、例えば１０ミリ秒が使用可能であるが、これに限らず、例えば７〜２０ミリ秒の範囲内の値が適宜、使用可能となっている。
【００３０】
第２メモリ２３は、市況読込部２２及び市況配信部２４から読出／書込可能なメモリであって、過日市況情報が一時的に記憶される。
【００３１】
市況配信部２４は、第２メモリ２３内の過日市況情報をアルゴリズム処理装置３０に配信する機能をもっている。
【００３２】
アルゴリズム処理装置３０は、ユーザにより予め作成されたアルゴリズム処理プログラムの実行により、アルゴリズム処理を実行すると共に、ユーザに予め提供される市況受信プログラム及び発注執行プログラムの実行により、市況受信処理及び発注執行処理を実行する。ここで、アルゴリズム処理装置３０は、市況受信部３１、第１メモリ３２、発注執行部３３及び発注判定部３４を備えている。
【００３３】
市況受信部３１は、第１メモリ３２に記憶した市況受信プログラムをＣＰＵ（図示せず）が実行することにより、実現される機能部である。市況受信プログラムは、アルゴリズム処理により呼び出されると、市況シミュレータ２０から配信された過日市況情報を受信する処理と、アルゴリズム処理により送出された発注内容に当該過日市況情報内の時刻を付加した発注情報を第１メモリ３２に書込む処理とを含む市況受信処理をアルゴリズム処理装置３０に実行させるためのプログラムである。なお、市況受信処理は、アルゴリズム処理の発注判定によって発注内容が得られず、アルゴリズム処理から発注内容が送出されなかった場合には、発注判定が完了した旨を示す発注判定完了通知を市場シミュレータ４０に送信する処理、を更に含んでもよい。証券売買模擬システムがユーザに提供するプログラムは市況受信プログラム及び発注執行プログラムである。提供の方法は、オブジェクトクラスライブラリとして提供し、ユーザの作成するアルゴリズム処理プログラムに基づくアルゴリズム処理から呼び出す方式とする。
【００３４】
第１メモリ３２は、発注判定部３１及び発注執行部３３から読出／書込可能なメモリであって、例えば、発注情報、注文受付情報及び約定情報が記憶される。
【００３５】
発注執行部３３は、第１メモリ３２に記憶した発注執行プログラムをＣＰＵ（図示せず）が実行することにより、実現される機能部である。発注執行プログラムは、アルゴリズム処理により呼び出されると、第１メモリ３２内の発注情報を市場シミュレータ４０に送信する処理をアルゴリズム処理装置３０に実現させるためのプログラムである。なお、発注執行プログラムは、市場シミュレータ４０から個別に受けた注文受付情報、約定情報及び市況情報を第１メモリ３２に書込む処理をアルゴリズム処理装置３０に更に実現させてもよい。
【００３６】
発注判定部３４は、第１メモリ３２に記憶したアルゴリズム処理プログラムをＣＰＵ（図示せず）が実行することにより、実現される機能部である。アルゴリズム処理プログラムは、市況シミュレータ２０から過日市況情報が配信されると市況受信処理を呼び出す処理（受信コールバック処理）と、市況受信処理により受信された過日市況情報を発注判定する処理と、この発注判定により得られた発注内容を市況受信処理に送出する処理と、この発注内容の送出後に発注執行処理を呼び出す処理とを含むアルゴリズム処理をアルゴリズム処理装置３０に実行させるためのプログラムである。また、アルゴリズム処理は、市況シミュレータ２０から配信された配信された高倍速時刻と予め設定された発注時刻とを比較し、両者が一致したとき、予め設定された発注内容に当該高倍速時刻を付加した発注情報を第１メモリ３２に書込む処理（タイマー起動処理）を更に含んでいてもよい。また、アルゴリズム処理は、約定情報の受信等により発注判定した場合には、同様に、発注内容に高倍速時刻を付加して発注情報を作成する処理を含んでもよい。なお、発注情報は、例えば、発注時刻を示す発注タイムスタンプ、証券の銘柄を識別する銘柄コード、証券の売りか買いかを示す売買、売気配値で売るか買気配値で買うか現在値で買うかを示す価格条件、証券売買の数量を示す数量、引けで売買する等の条件を示す執行条件等を含んでいる。
【００３７】
市場シミュレータ４０は、市況読込部４１、第３メモリ４２、受信部４３及び約定判定部４４を備えている。
【００３８】
市況読込部４１は、市況シミュレータ２０から配信された高倍速時刻と同じ時刻を含む過日市況情報から市況板情報を作成し、市況板情報を第３メモリ４２に書込む市況板情報書込機能をもっている。市況板情報書込機能は、市況シミュレータ２０から配信された高倍速時刻毎に、当該高倍速時刻と同じ時刻を含む過日市況情報を過日市況記憶装置１０から読込む機能と、市況シミュレータ２０から配信された高倍速時刻毎に、当該読み込んだ過日市況情報内の時刻を含むように市況板情報を作成する機能とをもっている。なお、過日市況情報が売気配値及び売気配数量を差分で表す場合、銘柄毎に時系列に１受信毎の積算で一日の市況板情報が作成される。補足すると、過日市況情報は、実際に取引所より受信した市況情報を蓄積したもので、情報変更毎の変更情報部のみのスナップ情報であり、データ構造が市況板情報４２ａと同じである。市況板情報４２ａを作成するには過日市況情報を時系列に読み込んで変更部を上書更新すればよい。
【００３９】
第３メモリ４２は、市況読込部４１、受信部４３及び約定判定部４４から読出／書込可能なメモリであって、例えば、市況板情報４２ａ、未約定の発注情報４２ｂ及び約定情報４２ｃが記憶される。
【００４０】
市況板情報４２ａは、例えば図２に示すように、日付、タイムスタンプ（時刻データ）、銘柄コード、複数の売気配価格、複数の売気配数量、複数の買気配価格、複数の気配数量、売成行数量、買成行数量、現在価格及び出来高を示す項目名とその設定値とを含んでいる。
【００４１】
受信部４３は、アルゴリズム処理装置３０から発注情報を受信する機能と、受信した発注情報を第３メモリ４２に書込む機能とをもっている。なお、受信部４３は、受信した発注情報を第３メモリ４２に書込まずに約定判定部４４に送出してもよい。また、受信部４３は、アルゴリズム処理装置３０から送信された発注判定完了通知を受けると、第３メモリ内の約定情報４２ｃを市況シミュレータ２０に送信する機能を更にもっていてもよい。
【００４２】
約定判定部４４は、第３メモリ４２に書き込まれた市況板情報４２ａ及びアルゴリズム処理装置３０から受信した発注情報を約定判定し、得られた約定情報を送信する機能をもっている。
【００４３】
ここで、約定情報は、例えば、発注時刻を示すタイムスタンプと、銘柄コードと、約定した価格を示す約定価格と、買数量（又は売数量）とを含んでいる。
【００４４】
なお、約定判定部４４は、アルゴリズム処理装置から受信した発注情報に含まれる時刻に基づき、当該時刻以後の直近の時刻を含む市況板情報４２ａを第３メモリ４２から読出す機能と、当該受信した発注情報及び当該読出した市況板情報４２ａを約定判定した結果が約定の不成立を示す場合、当該発注情報を未約定の発注情報４２ｂとして第３メモリ４２に書込む機能と、当該読出した未約定の発注情報４２ｂ及び読出した市況板情報４２ａを約定判定した結果が約定の成立を示す場合、当該未約定の発注情報４２ｂを第３メモリ４２から削除すると共に、当該成立した約定を示す約定情報４２ｃを第３メモリ４２に書込む機能と、を更にもっていてもよい。
【００４５】
また、約定判定部４４は、アルゴリズム処理装置３０から送信された発注判定完了通知を受けると、第３メモリ４２内の約定情報４２ｃを市況シミュレータ２０に送信する機能を更にもっていてもよい。
【００４６】
補足すると、約定判定部４４は、受信部４３が受信した発注情報について以下の検索（ｉ）及び（ｉｉ）を実行する機能をもっている。
【００４７】
（ｉ）市況板情報の反対売買検索
約定判定部４４は、市況板情報タイムスタンプ≦発注情報タイムスタンプの条件を満たす最初の市況板情報４２ａを第３メモリ４２から検索する。すなわち、約定判定部４４は、発注後の直近の市況板情報４２ａを第３メモリ４２から検索する。
【００４８】
（ｉｉ）発注情報の反対売買検索
約定判定部４４は、過去の反対売買の未約定の発注情報のタイムスタンプ＜今回発注タイムスタンプの条件を満たす未約定の発注情報４２ｂを第３メモリ４２から検索する。すなわち、約定判定部４４は、今回の発注よりも過去に発注された反対売買の全ての未約定の発注情報４２ｂを第３メモリ４２から検索する。
【００４９】
なお、約定判定部４４は、この（ｉｉ）の実行の後に約定判定するため、発注時に反対売買の気配数量があり、即時に売買がなければ、未約定の発注情報４２ｂとして登録する。その後、反対売買の発注情報の受信、又は反対売買の気配値を含む市況板情報の作成によって約定が成立した時点（高倍速時刻）で約定情報を送信することができる。
【００５０】
また、約定判定部４４は、市況読込部４１が作成した市況板情報について以下の検索（ｉｉｉ）を実行する機能をもっている。
【００５１】
（ｉｉｉ）発注情報の反対売買検索
約定判定部４４は、市況板情報のタイムスタンプ＞発注情報のタイムスタンプの条件を満たす発注情報を第３メモリ４２から検索する。すなわち、約定判定部４４は、作成した市況板情報よりも過去に発注された全ての未約定の発注情報を第３メモリ４２から検索する。
【００５２】
また、約定判定部４４は、図３に示すように、４通りの約定判定条件及び約定数量を用いている。すなわち、買い側では、希望価格を指定した指値注文の場合、指値以下の複数の売気配価格の気配数量分を約定する。また、買い側では、価格を指定しない成行注文の場合、最良気配価格の気配数量を約定する。一方、売り側では、希望価格を指定した指値注文の場合、指値以上の複数の買気配価格の気配数量分を約定する。また、売り側では、価格を指定しない成行注文の場合、最良気配価格の気配数量を約定する。
【００５３】
リスク管理装置５０は、受信部５１、第４メモリ５２、損益算出部５３、損益ロギング部５４及びモニタリング部５５を備えている。
【００５４】
受信部５１は、市場シミュレータ４０から約定情報及び市況情報を受信する機能と、受信した約定情報及び市況情報を第４メモリ５２に書込む機能とをもっている。なお、受信部５１は、受信した約定情報及び市況情報を第４メモリ５２に書込まずに損益算出部５３に送出してもよい。
【００５５】
第４メモリ５２は、受信部５１、損益算出部５３、損益ロギング部５４及びモニタリング部５５から読出／書込可能な記憶部であって、約定情報、市況情報及び損益情報が記憶される。
【００５６】
損益算出部５３は、市場シミュレータ４０から送信された約定情報に基づいて損益情報を算出する機能と、算出した損益情報を第４メモリ５２に書込む機能をもっている。ここで、損益情報はポジション損益情報（ポジション金額）としてもよい。なお、損益情報は、図４に示すように、買数量、売数量、Ｎｅｔ数量（position）、買金額、売金額、ポジション金額、損益及びＶＡＲの項目があり、それぞれ以下のように計算される。なお、損益情報は、銘柄コード毎に算出してもよい。
【００５７】
買数量＝買数量の積算
売数量＝売数量の積算
Ｎｅｔ数量＝買数量−売数量
買金額＝Σ買数量×約定価格
売金額＝Σ売数量×約定価格
ポジション金額＝Net数量×現在値
損益＝ポジション金額−買金額＋売金額
ＶＡＲ＝損益の標準偏差
損益ロギング部５４は、第４メモリ５２内の損益情報のうち、日付毎の最終の損益情報と当該日付とを含む日毎損益情報を作成し、この日毎損益情報を第４メモリ５２に書込む機能をもっている。
【００５８】
モニタリング部５５は、第４メモリ５２内の損益情報及び日毎損益情報を表示する機能をもっている。
【００５９】
次に、以上のように構成された証券売買シミュレーションシステムの動作を図５乃至図１２の模式図を用いて説明する。なお、アルゴリズム処理装置３０においては、市況受信プログラム、発注判定プログラム及び発注執行プログラムが図示しないＣＰＵにより実行中であり、各機能部３１，３３，３４が実現されているものとする。また、各情報ｄ１〜ｄ５は、動作説明に無関係なデータの記載が省略されている。
【００６０】
始めに、市況シミュレータ２０においては、高倍速時刻算出部２１が、現実の時刻よりも速く進む高倍速時刻を算出し、この高倍速時刻を市場シミュレータ４０及びアルゴリズム処理装置３０に配信する（ＳＴ１）。
【００６１】
いま、高倍速時刻が９：００：０１．２３４であるとする。
【００６２】
市況シミュレータ２０においては、図５及び図６に示すように、市況読込部２２が、この高倍速時刻と同じ時刻のタイムスタンプを含む過日市況情報ｄ１を過日市況記憶装置１０から読込んで第２メモリ２３に書込む。市況配信部２４は、第２メモリ２３内の過日市況情報ｄ１をアルゴリズム処理装置３０に配信する（ＳＴ２）。
【００６３】
市場シミュレータ４０においては、市況読込部４１が、ステップＳＴ１で配信された高倍速時刻毎に、当該高倍速時刻と同じ時刻を含む過日市況情報ｄ１を過日市況記憶装置１０から読込む（ＳＴ３）。また、市況読込部４１は、当該高倍速時刻毎に、当該読み込んだ過日市況情報内の時刻を含むように市況板情報４２ａを作成する。
【００６４】
一方、アルゴリズム処理装置３０においては、発注判定部３４のアルゴリズム処理が、ステップＳＴ２で過日市況情報ｄ１が配信されると、市況受信部３１の市況受信処理を呼び出す。市況受信部３１の市況受信処理は、アルゴリズム処理により呼び出されると、市況シミュレータ２０から配信された過日市況情報を受信する。また、発注判定部３４のアルゴリズム処理は、市況受信処理により受信された過日市況情報を発注判定し、得られた発注内容を市況受信処理に送出する。市況受信部３１の市況受信処理は、アルゴリズム処理により送出された発注内容に当該過日市況情報内の時刻を付加した発注情報を第１メモリ３２に書込む（ＳＴ４）。ここで、発注判定のアルゴリズムとしては、例えば、売気配値＝１００を含む市況情報を受信した場合に、売気配値−１円の買気配値（＝９９）を含む発注情報を作成する旨のアルゴリズムを用いている。なお、市況受信部３１の市況受信処理は、アルゴリズム処理の発注判定によって発注内容が得られず、アルゴリズム処理から発注内容が送出されなかった場合には、発注判定が完了した旨を示す発注判定完了通知を市場シミュレータ４０に送信する。しかしながら、本実施形態では、発注情報が得られた場合について主に述べる。
【００６５】
アルゴリズム処理装置３０においては、発注判定部３４のアルゴリズム処理が、発注内容の送出後に発注執行処理を呼び出す。発注執行部４３の発注執行処理は、アルゴリズム処理により呼び出されると、図７に示すように、第１メモリ３２内の発注情報ｄ２を市場シミュレータ４０に送信する（ＳＴ５）。
【００６６】
市場シミュレータ４０においては、受信部４３が、発注情報ｄ２を受信して約定判定部４４に送出する。なお、受信部４３は、発注判定完了通知を受けた場合には、第３メモリ内の約定情報を市況シミュレータ２０に送信する。しかしながら、本実施形態では、発注情報を受信した場合について主に述べる。
【００６７】
約定判定部４４は、第３メモリ４２内の市況板情報４２ａ及び受信した発注情報を約定判定する。この９：００の時点では、発注情報ｄ２内の売買“２：買”と価格“９９”に対応する売気配値“９９”がないために、発注情報ｄ２及び市況板情報４２ａを約定判定した結果が約定の不成立を示すので（ＳＴ６）、当該発注情報ｄ２を未約定の発注情報として第３メモリ４２に書込む。しかる後、約定判定部４４は、図８に示すように、発注情報ｄ２の内容を含む注文受付情報ｄ３をアルゴリズム処理装置３０に送信する（ＳＴ７）。
【００６８】
次に、図９に示すように、高倍速時刻が９：０５：０２．００１になったとする。
【００６９】
市場シミュレータ４０においては、前述同様に、市況読込部４１が、図１０に示すように、配信された高倍速時刻と同じ時刻を含む過日市況情報ｄ１を過日市況記憶装置１０から読込む。なお、この過日市況情報ｄ１は、売気配値“９９”をも含んでいたとする。市況読込部４１、当該過日市況情報内の時刻を含むように市況板情報４２ａを作成する。
【００７０】
また、約定判定部４４は、作成した市況板情報４２ａよりも過去に発注された全ての未約定の発注情報を第３メモリ４２から検索する。しかる後、約定判定部４４は、作成した市況板情報４２ａ及び検索した発注情報を約定判定し、未約定の発注情報ｄ２内の売買“２：買”と価格“９９”に対応する売気配値“９９”があるために、約定の成立を示す結果を得る（ＳＴ８）。これにより、約定判定部４４は、当該未約定の発注情報を第３メモリ４２から削除すると共に、当該成立した約定を示す約定情報４２ｃを第３メモリ４２に書込んだ後、図１１に示すように、約定情報ｄ４を市況シミュレータ２０、アルゴリズム処理装置３０及びリスク管理装置５０に送信する。また、約定判定部４４は、図１２に示すように、市況情報ｄ５をリスク管理装置５０に送信する。
【００７１】
リスク管理装置５０においては、受信部５１が、受信した約定情報及び市況情報を損益計算部５３に送出する。損益計算部５３は、約定情報に基づいて、銘柄コード毎に数量、各金額を集計し損益情報をリアルタイムで算出する。しかる後、損益計算部５３は、算出した損益情報を第４メモリ５２に書込む。また、損益ロギング部５４は、第４メモリ５２内の損益情報のうち、日付毎の最終の損益情報と当該日付とを含む日毎損益情報を作成し、この日毎損益情報を第４メモリ５２に書込む。
【００７２】
モニタリング部５５は、第４メモリ５２内の損益情報及び日毎損益情報を表示する。
【００７３】
続いて、市況シミュレータ２０では、市況読込部２２が、高倍速時刻と同じ時刻を当該過日市況情報に付加する。また、市況読込部２２は、当該付加の後、市場シミュレータ４０から送信された約定情報ｄ４を受けると、この約定情報ｄ４に示される約定された数量を差し引くように、当該過日市況情報に含まれる気配数量を更新する。しかる後、市況読込部２２は、当該更新の後、当該過日市況情報を第２メモリ２３に書込む。
【００７４】
以下、前述同様に、処理が実行される。
【００７５】
なお、市況読込部２２は、次のように動作してもよい。すなわち、市況読込部２２は、高倍速時刻と同じ時刻を当該過日市況情報に付加した後、この今回付加した時刻と前回付加した時刻との差が一定微小時間（例、１０ミリ秒）以下か否かを判定する。また、市況読込部２２は、判定した結果、差が一定微小時間以下の場合、今回付加した時刻を含む過日市況情報を第２メモリ２３に書込む。一方、判定した結果、一定微小時間を超える場合、市況読込部２２は、約定情報を受けるまで待機する。市況読込部２２は、待機中に約定情報を受けると、この約定情報に示される約定された数量を差し引くように、当該過日市況情報に含まれる気配数量を更新する。しかる後、当該更新の後、当該過日市況情報を第２メモリ２３に書込む。
【００７６】
いずれにしても、過日市況情報の書込みの後、前述同様に、処理が実行される。
【００７７】
上述したように本実施形態によれば、市況シミュレータ２０が算出した高倍速時刻に基づいて、過日市況情報の読込み、発注情報の作成、市況板情報の作成及び約定判定を実行する構成により、これら過日市況情報内のタイムススタンプ、発注情報内の発注タイムスタンプ、市況板情報内のタイムスタンプを同期させることができるので、過日市況を高速に読み込ませても、正確な市場シミュレーションを実行することができる。
【００７８】
また、発注情報内の発注タイムスタンプと市況板情報内のタイムスタンプとを同期させる構成により、約定情報に含まれる約定価格、約定数量を正確にシミュレーションすることができる。さらに、損益結果も過日相場で執行したものとしてシミュレーションできるため、アルゴリズム処理装置３０の正確な損益シミュレーションを実行することができる。この正確な損益シミュレーションの結果に基づき、ユーザは発注判定部３４のアルゴリズム処理プログラムを改良することにより、アルゴリズム処理装置３０をチューニングすることができるようになる。
【００７９】
さらに、市況シミュレータ２０では、市場シミュレータ４０から送信された約定情報ｄ４に示される約定された数量を差し引くように、過日市況情報に含まれる気配数量を更新するので、約定情報を過日市況情報に反映できるため、より正確な損益シミュレーションを実行することができる。
【００８０】
なお、上記の各実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク（フロッピー（登録商標）ディスク、ハードディスクなど）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤなど）、光磁気ディスク（ＭＯ）、半導体メモリなどの記憶媒体に格納して頒布することもできる。
【００８１】
また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
【００８２】
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているＯＳ（オペレーティングシステム）や、データベース管理ソフト、ネットワークソフト等のＭＷ（ミドルウェア）等が上記実施形態を実現するための各処理の一部を実行しても良い。
【００８３】
さらに、各実施形態における記憶媒体は、コンピュータと独立した媒体に限らず、ＬＡＮやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
【００８４】
また、記憶媒体は１つに限らず、複数の媒体から上記の各実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
【００８５】
なお、各実施形態におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、上記の各実施形態における各処理を実行するものであって、パソコン等の１つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
【００８６】
また、各実施形態におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
【００８７】
なお、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００８８】
１０…過日市況記憶装置、２０…市況シミュレータ、２１…高倍速時刻算出部、２２…市況読込部、２３…第２メモリ、２４…市況配信部、３０…アルゴリズム処理装置、３１…市況受信部、３２…第１メモリ、３３…発注執行部、３４…発注判定部、４０…市場シミュレータ、４１…市況読込部、４２…第３メモリ、４３…受信部、４４…約定判定部、５０…リスク管理装置、５１…受信部、５２…第４メモリ、５３…損益算出部、５４…損益ロギング部、５５…モニタリング部、ｄ１…過日市況情報、ｄ２…発注情報、ｄ３…注文受付情報、ｄ４…約定情報、ｄ５…市況情報。
【図１】
0005537454.tif 000002
【図２】
0005537454.tif 000003
【図３】
0005537454.tif 000004
【図４】
0005537454.tif 000005
【図５】
0005537454.tif 000006
【図６】
0005537454.tif 000007
【図７】
0005537454.tif 000008
【図８】
0005537454.tif 000009
【図９】
0005537454.tif 000010
【図１０】
0005537454.tif 000011
【図１１】
0005537454.tif 000012
【図１２】
0005537454.tif 000013