JP2009026225A - 約定シミュレーションシステム及びプログラム - Google Patents

約定シミュレーションシステム及びプログラム Download PDF

Info

Publication number
JP2009026225A
JP2009026225A JP2007191202A JP2007191202A JP2009026225A JP 2009026225 A JP2009026225 A JP 2009026225A JP 2007191202 A JP2007191202 A JP 2007191202A JP 2007191202 A JP2007191202 A JP 2007191202A JP 2009026225 A JP2009026225 A JP 2009026225A
Authority
JP
Japan
Prior art keywords
order
contract
simulation system
market
price
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2007191202A
Other languages
English (en)
Other versions
JP5099419B2 (ja
Inventor
Katsuyuki Enomura
勝幸 榎村
Takashi Nakagawa
高志 中川
Soichiro Uchida
総一郎 内田
Makoto Enomoto
誠 榎本
Yoshinobu Miyamoto
好伸 宮本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Systems and Services Ltd
Original Assignee
Hitachi Systems and Services Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Systems and Services Ltd filed Critical Hitachi Systems and Services Ltd
Priority to JP2007191202A priority Critical patent/JP5099419B2/ja
Publication of JP2009026225A publication Critical patent/JP2009026225A/ja
Application granted granted Critical
Publication of JP5099419B2 publication Critical patent/JP5099419B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

【課題】アルゴリズム取引システムのパフォーマンスの検証精度を高める。
【解決手段】約定シミュレーションシステムであって、第1TICKデータ記憶手段から、第1TICKデータを時系列に沿って抽出するステップと、抽出された第1TICKデータに基づいて、第1ワーク板を更新するステップと、更新前の第1ワーク板と更新後の第1ワーク板とを比較することによって、第1注文情報を推定するステップと、推定された第1注文情報を、第1注文情報記憶手段に格納するステップと、第2注文情報を受信するステップと、第1注文情報記憶手段から、第1注文情報を時系列に沿って抽出するステップと、第2ワーク板を更新するステップと、前記更新後の第2ワーク板に基づいて、仮想的な市場において注文を約定させるステップと、を実行する。
【選択図】図2

Description

本発明は、アルゴリズム取引システムによる株の取り引きのシミュレーションを行う約定シミュレーションシステムに関する。
近年、アルゴリズム取引が急速に普及しつつある。アルゴリズム取引プログラムが実行される計算機(アルゴリズム取引システム)は、対象銘柄の値動き、出来具合、板の形状、関連指数及びテクニカル指標などを常に監視する。そして、アルゴリズム取引システムは、監視結果に基づいて、株式売買発注のタイミング及び数量を決定して、自動的に株の売買注文を繰り返す。
そこで、アルゴリズム取引システムのパフォーマンスを検証するためのシミュレーションが必要となる。当該シミュレーションでは、アルゴリズム取引システムによる注文の約定状況を考慮する必要がある。
指値注文の約定確率を算出する技術が、特許文献1に開示されている。特許文献1に開示された技術では、銘柄毎の確率モデルに基づいて、指値注文の約定確率が事前に算出される。
特開2006−189995号公報
特許文献1に開示されている技術は、指値注文の約定確率を算出することはできるが、過去の特定の日時における約定価格を算出できない。そのため、アルゴリズム取引システムのパフォーマンスの検証精度が低いという問題があった。
本発明は、前述した問題点に鑑みてなされたものであって、アルゴリズム取引システムのパフォーマンスを高精度に検証する約定シミュレーションシステムを提供することを目的とする。
本発明の代表的な形態は、アルゴリズム取引システムによる株の取り引きのシミュレーションを行う約定シミュレーションシステムであって、過去の市場における株の値動きを示す第1TICKデータの履歴を記憶する第1TICKデータ記憶手段から、前記第1TICKデータを時系列に沿って抽出するステップと、前記抽出された第1TICKデータに基づいて、前記過去の市場における株の注文状況を示す第1ワーク板を更新するステップと、前記更新前の第1ワーク板と前記更新後の第1ワーク板とを比較することによって、前記過去の市場において新たに発生した注文の内容を示す第1注文情報を推定するステップと、前記推定された第1注文情報を、第1注文情報記憶手段に格納するステップと、前記アルゴリズム取引システムからの注文の内容を示す第2注文情報を受信するステップと、前記第1注文情報記憶手段から、前記第1注文情報を時系列に沿って抽出するステップと、前記抽出された第1注文情報及び前記受信した第2注文情報を、仮想的な市場における株の値動きを示す第2ワーク板に時系列に沿って反映することによって、前記第2ワーク板を更新するステップと、前記更新後の第2ワーク板に基づいて、前記仮想的な市場において注文を約定させるステップと、を実行する。
本発明の代表的な形態によれば、アルゴリズム取引システムのパフォーマンスの検証精度を高めることができる。
以下に本発明の実施の形態を図面に基づいて説明する。
図1は、本発明の実施の形態の約定シミュレーションシステム1のハードウェア構成のブロック図である。
約定シミュレーションシステム1は、CPU10、メモリ11、記憶装置(HDD)12、インタフェース13及び通信制御装置14を備える。
CPU10は、メモリ11に記憶されるプログラムを実行することによって、各種処理を行う。メモリ11は、CPU10によって実行されるプログラム及びCPU10によって必要とされる情報などを一時的に記憶する。例えば、メモリ11には、HDD12から読み出されたプログラム及び情報が記憶される。
HDD12は、各種プログラム及び各種情報などを記憶する。例えば、HDD12は、後述するTICK原データ21、分解後注文ファイル23、シミュレーションパラメータ28及び結果ファイル29を記憶する。
インタフェース13は、入力装置15及びディスプレイ16などに接続される。入力装置15は、ユーザによって入力された情報を、インタフェース13を介してCPU10に送信する。ディスプレイ16は、CPU10によって指示された情報を表示する。
通信制御装置14は、LAN又はインターネットなどのネットワーク17を介して、アルゴリズム取引システムに接続される。アルゴリズム取引システムは、CPU、メモリ及びインタフェースを備え、アルゴリズム取引プログラムを実行する計算機である。
図2は、本発明の実施の形態の約定シミュレーションシステム1の機能構成のブロック図である。図3は、本発明の実施の形態の約定シミュレーションシステム1の処理の概要のフローチャートである。
約定シミュレーションシステム1は、TICK原データ21を予め記憶している。TICK原データ21は、現実の市場におけるTICKデータの履歴である。TICKデータは、ある時刻における証券の値動きに関する情報である。なお、TICK原データ21及びTICKデータについては、図4で詳細を説明する。
まず、アルゴリズム取引システムは、約定シミュレーションシステム1に予めログオンしておく。その後、約定シミュレーションシステム1は、起動パラメータ24を含む起動コマンドを受けると、当該シミュレーションを開始する。なお、起動パラメータ24は、銘柄コード、対象年月日、開始時刻及び終了時刻を含む。
具体的には、約定シミュレーションシステム1は、起動パラメータ24に含まれる対象年月日における、起動パラメータ24に含まれる開始時刻から起動パラメータ24に含まれる終了時刻まで、起動パラメータ24に含まれる銘柄コードによって識別される銘柄の株をアルゴリズム取引システムに取り引きさせた場合のシミュレーションを行う。
まず、約定シミュレーションシステム1は、TICK原データ21及び起動パラメータ24に基づいて、注文分解処理22を実行する。なお、約定シミュレーションシステム1によって実行される注文分解処理22については、図9で詳細を説明する。
約定シミュレーションシステム1は、注文分解処理を実行することによって、分解後注文ファイル23を作成する。分解後注文ファイル23は、起動パラメータ24に含まれる銘柄コードによって識別される銘柄の株に対する注文の履歴を示す。
但し、分解後注文ファイル23は、現実の市場における注文の履歴を示すのではなく、約定シミュレーションシステム1が注文分解処理22を実行することによって推定した仮想的な注文の履歴を示す。例えば、一つの仮想的な注文は、現実の市場において同時期に発生した複数の注文がまとめられたものである。また、仮想的な注文が、成行注文であっても、現実の市場においては指値注文の場合もある。なお、分解後注文ファイル23については、図5で詳細を説明する。
次に、約定シミュレーションシステム1は、ワーク板登録・約定シミュレート処理25を実行する。ワーク板登録・約定シミュレート処理25は、TICK注文登録処理251、アルゴ注文登録処理255及び約定シミュレート処理259などを含む。なお、約定シミュレーションシステム1によって実行されるワーク板登録・約定シミュレート処理25については、図11で詳細を説明する。
TICK注文登録処理251では、約定シミュレーションシステム1は、作成した分解後注文ファイル23に基づいて、当該シミュレーションにおける株の値動きを示すワーク板26(シミュレーション用ワーク板26)を作成又は更新する。
ワーク板26は、起動パラメータ24に含まれる銘柄コードによって識別される銘柄の株に関する注文状況を示す論理的な板であり、メモリ11に記憶される。そのため、ワーク板26は、値段ごとに、売り注文の株数及び買い注文の株数を示す。なお、ワーク板26については、図8で詳細を説明する。
具体的には、約定シミュレーションシステム1は、分解後注文ファイル23に含まれる仮想的な注文(TICK注文)を、時系列に従って、シミュレーション用ワーク板26に登録する。このとき、約定シミュレーションシステム1は、アルゴリズム取引システムからの注文(アルゴ注文)による影響の大きさを示すマーケットインパクトを考慮して、TICK注文を、シミュレーション用ワーク板26に登録する。
例えば、約定シミュレーションシステム1は、シミュレーションパラメータ28に基づいて、マーケットインパクトを算出する。なお、シミュレーションパラメータ28については、図12で詳細を説明する。
また、約定シミュレーションシステム1は、TICK復元処理252を行う。TICK復元処理では、約定シミュレーションシステム1は、シミュレーション用ワーク板26の変化を監視する。シミュレーション用ワーク板26に変化がある度に、約定シミュレーションシステム1は、シミュレーション用ワーク板26から変化情報を抽出する。そして、約定シミュレーションシステム1は、抽出した変化情報に基づいて、シミュレーションにおけるTICKデータを作成する。
なお、シミュレーションにおけるTICKデータは、アルゴ注文を受ける前では、TICK原データ21に含まれるものと同一となる。一方、アルゴ注文を受けた後では、シミュレーションにおけるTICKデータは、TICK注文及びアルゴ注文の双方に応じた値動き情報となる。
次に、約定シミュレーションシステム1は、作成したシミュレーションにおけるTICKデータを、汎用プロトコルからFIXプロトコルに変換する。そして、約定シミュレーションシステムは、プロトコル変換されたTICKデータを相場情報として、アルゴリズム取引システムに送信する(253)。
なお、汎用プロトコルは、約定シミュレーションシステム1が対応可能なプロトコルである。また、FIXプロトコルは、リアルタイムで迅速に金融データを送受信するための金融業界標準のプロトコルである。そのため、FIXプロトコルは、注文、約定、注文取消などが行われるトレーディングで最も利用されている。
アルゴリズム取引システムは、TICKデータを約定シミュレーションシステム1から受信する。すると、アルゴリズム取引システムは、受信したTICKデータを分析する。次に、アルゴリズム取引システムは、分析結果に基づいて、当該銘柄の注文内容を決定する。そして、アルゴリズム取引システムは、決定した内容の注文を、約定シミュレーションシステム1にFIXプロトコルで送信する。
約定シミュレーションシステム1は、注文をアルゴリズム取引システムから受信する(254)。すると、約定シミュレーションシステム1は、受信したアルゴ注文を、FIXプロトコルから汎用プロトコルに変換する。更に、約定シミュレーションシステム1は、アルゴリズム取引システムから送信されたアルゴ注文を正常に受信できたか否かを判定する。
アルゴ注文を正常に受信できなかった場合、約定シミュレーションシステム1は、注文受付エラー通知を作成する。次に、約定シミュレーションシステム1は、作成した注文受付エラー通知を、汎用プロトコルからFIXプロトコルに変換する。そして、約定シミュレーションシステム1は、プロトコル変換された注文受付エラー通知を、アルゴリズム取引システムに送信する(257)。
一方、アルゴ注文を正常に受信できた場合、約定シミュレーションシステム1は、当該アルゴ注文の一意な識別子を含む注文受付通知を作成する。次に、約定シミュレーションシステム1は、作成した注文受付通知を、汎用プロトコルからFIXプロトコルに変換する。そして、約定シミュレーションシステム1は、プロトコル変換された注文受付通知を、アルゴリズム取引システムに送信する(256)。
次に、約定シミュレーションシステム1は、アルゴ注文登録処理255を実行する。
アルゴ注文登録処理255では、約定シミュレーションシステム1は、アルゴリズム取引システムから正常に受信できたアルゴ注文に基づいて、シミュレーション用ワーク板26を更新する。
まず、約定シミュレーションシステム1は、受信したアルゴ注文が論理的に正しいか否かを判定する。例えば、アルゴ注文が訂正注文又は取消注文の場合には、約定シミュレーションシステム1は、当該アルゴ注文によって訂正又は取消を要求された注文(買注文又は売注文)がシミュレーション用ワーク板26に残っているか否かを判定することによって、アルゴ注文が論理的に正しいか否かを判定する。
アルゴ注文が論理的に誤っている場合、約定シミュレーションシステム1は、当該アルゴ注文の識別子を含む執行エラー通知を作成する。次に、約定シミュレーションシステム1は、作成した執行エラー通知を、汎用プロトコルからFIXプロトコルに変換する。そして、約定シミュレーションシステム1は、プロトコル変換した執行エラー通知を、アルゴリズム取引システムに送信する(258)。
一方、アルゴ注文が論理的に正しい場合、約定シミュレーションシステム1は、受信したアルゴ注文を、時系列に従って、シミュレーション用ワーク板26に登録する。
また、約定シミュレート処理259では、約定シミュレーションシステム1は、シミュレーション用ワーク板26に登録された注文を約定させるためのシミュレーションを行う。
次に、約定シミュレーションシステム1は、シミュレーションの結果に基づいて、シミュレーションにおけるTICKデータを作成する。そして、約定シミュレーションシステム1は、作成したTICKデータを、結果ファイル29に格納する。そのため、結果ファイル29は、シミュレーションにおいて作成されたTICKデータの履歴となる。なお、結果ファイル29及びシミュレーションにおけるTICKデータについては、図6で詳細を説明する。
また、約定シミュレート処理259においてアルゴ注文が約定した場合、約定シミュレーションシステム1は、約定価格及び約定高を含む約定通知を作成する。なお、約定通知については、図7で詳細を説明する。
次に、約定シミュレーションシステム1は、作成した約定通知を、汎用プロトコルからFIXプロトコルに変換する。そして、約定シミュレーションシステム1は、プロトコル変換された約定通知を、アルゴリズム取引システムに送信する(27)。
更に、約定シミュレーションシステム1は、作成した約定通知に含まれる情報を、アルゴ注文の約定に関する情報として、結果ファイル29に格納する。
その後、約定シミュレーションシステム1によるシミュレーションが終了すると、アルゴリズム取引システムは、約定シミュレーションシステム1からログアウトする。
図4は、本発明の実施の形態の約定シミュレーションシステム1に記憶されるTICK原データ21の構成図である。
約定シミュレーションシステム1は、現実の市場での取引日ごとにTICK原データ21を記憶する。そのため、TICK原データ21では、特定の取引日におけるTICKデータ210が時系列に従って並んでいる。また、TICK原データ21は、現実の市場におけるTICKデータ210の履歴を銘柄ごとに含む。
現実の市場におけるTICKデータ210は、取引日2100、時刻2101、銘柄コード2102、レコード通番2103、現値2104、約定高2105、売気配値2106、買気配値2107、売気配数量2108及び買気配数量2109を含む。
取引日2100は、当該TICKデータ210が作成された日付けを示す。時刻2101は、当該TICKデータ210が作成された時刻を示す。つまり、取引日2100及び時刻2101は、当該TICKデータ210が現実の市場のいつの時点における値動き情報であるかを示す。
銘柄コード2102は、当該TICKデータ210に対応する銘柄の一意な識別子である。レコード通番2103は、当該TICKデータ210を識別するための通し番号である。
現値2104は、当該TICKデータ210が作成された時刻における株価である。具体的には、現値2104は、当該取引日2100及び当該時刻2101における、当該銘柄コード2102によって識別される銘柄の株価を示す。
約定高2105は、前回のTICKデータ210の作成時から今回のTICKデータ210の作成時までの間に、当該銘柄コード2102によって識別される銘柄の株が約定した株数を示す。
売気配値2106は、売注文で指定された価格(気配値)である。なお、TICKデータ210に含まれる売気配値2106は、前回のTICKデータ210の作成時から今回のTICKデータ210の作成時までの間に売気配数量が変化した(新たな売注文が入った)気配値である。
売気配数量2108は、売気配値2106での売注文の総株数を示す。
なお、売気配値2106及び売気配数量2108は、TICKデータ210に複数含まれていてもよい。この場合、一つの売気配値2106と一つの売気配数量2108とが対応する。そして、売気配数量2108は、当該売気配数量2108に対応する売気配値2106での売注文の総株数を示す。
買気配値2107は、買注文で指定された気配値である。なお、TICKデータ210に含まれる買気配値2107は、前回のTICKデータ210の作成時から今回のTICKデータ210の作成時までの間に買気配数量が変化した(新たな買注文が入った)気配値である。
買気配数量2109は、買気配値2107での買注文の総株数を示す。
なお、買気配値2107及び買気配数量2109は、TICKデータ210に複数含まれていてもよい。この場合、一つの買気配値2107と一つの買気配数量2109とが対応する。そして、買気配数量2109は、当該買気配数量2109に対応する買気配値2107での買注文の総株数を示す。
図5は、本発明の実施の形態の約定シミュレーションシステム1に記憶される分解後注文ファイル23の構成図である。
分解後注文ファイル23は、時刻231、種別232、値段233及び数量234を含む。また、分解後注文ファイル23に含まれる一つのレコードは、約定シミュレーションシステム1によって推定された一つの仮想的な注文に関する情報を示す。
時刻231は、当該レコードに対応する仮想的な注文がされた時を示す。種別232は、当該レコードに対応する仮想的な注文の種類を示す。具体的には、種別232は、当該レコードに対応する仮想的な注文が、売注文、買注文、売訂正注文、買訂正注文、売取消注文又は買取消注文のいずれであるかを示す。
値段233は、当該レコードに対応する仮想的な注文で指定された価格を示す。なお、当該仮想的な注文が指値注文ではなく成行注文の場合には、値段233は、成行注文であることを示す。
数量234は、当該レコードに対応する仮想的な注文で指定された株数を示す。
図6は、本発明の実施の形態の約定シミュレーションシステム1に記憶される結果ファイル29に含まれるTICKデータ291の構成図である。
結果ファイル29は、シミュレーションにおいて作成されたTICKデータ291の履歴を示す。そのため、結果ファイル29では、シミュレーションにおいて作成されたTICKデータ291が時系列に従って並んでいる。
シミュレーションによって作成されたTICKデータ291は、取引日2910、時刻2911、銘柄コード2912、レコード通番2913、現値2914、約定高2915、売気配値2916、買気配値2917、売気配数量2918及び買気配数量2919を含む。
取引日2910は、シミュレーション対象となる取引が行われた日付けを示す。時刻2911は、当該TICKデータ291が作成された時刻を示す。なお、時刻2911は、現実の時刻ではなく、過去に実際に行われた取引において株取引をシミュレーションした場合における時刻(シミュレーション上の時刻)を示す。つまり、取引日2910及び時刻2911は、当該TICKデータ291が、シミュレーション上のいつの時点における値動き情報であるかを示す。
銘柄コード2912は、当該TICKデータ291に対応する銘柄の一意な識別子である。レコード通番2913は、当該TICKデータ291を識別するための通し番号である。
現値2914は、当該TICKデータ291が作成された時刻における株価である。具体的には、現値2914は、当該取引日2910及び当該時刻2911における、当該銘柄コード2912によって識別される銘柄の株価を示す。
約定高2915は、前回のTICKデータ291の作成時から今回のTICKデータ291の作成時までの間に、当該銘柄コード2912によって識別される銘柄の株が約定した株数を示す。
売気配値2916は、売注文で指定された気配値である。なお、TICKデータ291に含まれる売気配値2916は、前回のTICKデータ291の作成時から今回のTICKデータ291の作成時までの間に売気配数量が変化した(新たな売注文が入った)気配値である。
売気配数量2918は、売気配値2916での売注文の総株数を示す。
なお、売気配値2916及び売気配数量2918は、TICKデータ291に複数含まれていてもよい。この場合、一つの売気配値2916と一つの売気配数量2918とが対応する。そして、売気配数量2918は、当該売気配数量2918に対応する売気配値2916での売注文の総株数を示す。
買気配値2917は、買注文で指定された気配値である。なお、TICKデータ291に含まれる買気配値2917は、前回のTICKデータ291の作成時から今回のTICKデータ291の作成時までの間に買気配数量が変化した(新たな買注文が入った)気配値である。
買気配数量2919は、買気配値2917での買注文の総株数を示す。
なお、買気配値2917及び買気配数量2919は、TICKデータ291に複数含まれていてもよい。この場合、一つの買気配値2917と一つの買気配数量2919とが対応する。そして、買気配数量2919は、当該買気配数量2919に対応する買気配値2917での買注文の総株数を示す。
図7は、本発明の実施の形態の約定シミュレーションシステム1からアルゴリズム取引システムに送信される約定通知292の構成図である。
約定通知292は、アルゴ注文の約定をアルゴリズム取引システムに通知するためのものである。約定通知292は、銘柄コード2921、値段2922、数量2923、売買区分2924、注文ID2925及び時刻2926を含む。
銘柄コード2921は、約定したアルゴ注文で指定された銘柄の一意な識別子である。値段2922は、アルゴ注文が約定した価格である。数量2923は、アルゴ注文が約定した株数である。
つまり、約定通知292は、銘柄コード2921によって識別される銘柄の株が、値段2922で数量2923だけ約定したことを通知する。
売買区分2924は、約定したアルゴ注文の種類を示す。つまり、売買区分2924は、約定したアルゴ注文が買注文又は売注文のいずれであるかを示す。注文ID2925は、約定したアルゴ注文の一意な識別子である。時刻2926は、当該アルゴ注文が約定した時刻を示す。
なお、約定通知292は、約定シミュレーションシステム1からアルゴリズム取引システムに送信されるだけでなく、アルゴ注文の約定に関する情報として、結果ファイル29に格納される。
図8は、本発明の実施の形態の約定シミュレーションシステム1に記憶されるワーク板26の構成図である。
ワーク板26は、気配値261、売気配数量262及び買気配数量263を含む。
気配値261は、売注文又は買注文で指定された価格である。売気配数量262は、当該レコードの気配値261での売注文の総株数を示す。買気配数量263は、当該レコードの気配値261での買注文の総株数を示す。
なお、ワーク板26の最上位のレコードは、成行注文に関する情報を示す。この場合、成行注文に関する情報を示すレコードの売気配数量262は、成り行きでの売注文の総株数を示す。また、成行注文に関する情報を示すレコードの買気配数量263は、成り行きでの買注文の総株数を示す。
図9は、本発明の実施の形態の約定シミュレーションシステム1によって実行される注文分解処理22のフローチャートである。
まず、約定シミュレーションシステム1は、起動パラメータ24に含まれる対象年月日における、起動パラメータ24に含まれる開始時刻から起動パラメータ24に含まれる終了時刻までの、起動パラメータ24に含まれる銘柄コードによって識別される銘柄に関するすべてのTICKデータ210を、TICK原データ21から選択する。
具体的には、約定シミュレーションシステム1は、起動パラメータ24に含まれる対象年月日とTICKデータ210の取引日2100とが一致するTICKデータ210を、TICK原データ21から選択する。次に、約定シミュレーションシステム1は、TICKデータ210の時刻2101が、起動パラメータ24に含まれる開始時刻から終了時刻までの間に該当するTICKデータ210を、選択したTICKデータ210の中から選択する。そして、約定シミュレーションシステム1は、起動パラメータ24に含まれる銘柄コードとTICKデータ210の銘柄コード2102とが一致するTICKデータ210を、選択したTICKデータ210の中から選択する。
次に、約定シミュレーションシステム1は、選択したTICKデータ210を、作成された時刻が古いものから順に一つずつ取得する。具体的には、約定シミュレーションシステム1は、TICKデータ210のレコード通番2103が小さいものから順に、選択したTICKデータ210を取得する。又は、約定シミュレーションシステム1は、TICKデータ210の時刻2101が古い物から順に、選択したTICKデータ210を取得する(301)。
次に、約定シミュレーションシステム1は、取得したTICKデータ210及び前回のステップ302で作成されたワーク板26(前回ワーク板26)に基づいて、新たなワーク板26(今回ワーク板26)を作成する(302)。
具体的には、約定シミュレーションシステム1は、取得したTICKデータ210の売気配値2106と前回ワーク板26の気配値261とが一致するレコードを、前回ワーク板26から選択する。次に、約定シミュレーションシステム1は、選択したレコードの売気配数量262に、取得したTICKデータ210の売気配数量2108を格納する。
次に、約定シミュレーションシステム1は、取得したTICKデータ210の買気配値2107と前回ワーク板26の気配値261とが一致するレコードを、前回ワーク板26から選択する。次に、約定シミュレーションシステム1は、選択したレコードの買気配数量263に、取得したTICKデータ210の買気配数量2109を格納する。
これによって、約定シミュレーションシステム1は、今回ワーク板26を作成する。
次に、約定シミュレーションシステム1は、前回ワーク板26に対応する時刻から今回ワーク板26に対応する時刻までの間に、注文が約定したか否かを判定する(303)。
具体的には、約定シミュレーションシステム1は、取得したTICKデータ210の約定高2105に「0」が格納されているか否かを判定する。
約定高2105に「0」が格納されている場合、約定シミュレーションシステム1は、前回ワーク板26に対応する時刻から今回ワーク板26に対応する時刻までの間に、注文が約定していないと判定する。この場合、約定シミュレーションシステム1は、そのままステップ305に進む。
一方、約定高2105に「0」以外の値が格納されている場合、約定シミュレーションシステム1は、前回ワーク板26に対応する時刻から今回ワーク板26に対応する時刻までの間に、注文が約定したと判定する。この場合、約定シミュレーションシステム1は、取得したTICKデータ210及び今回ワーク板26に基づいて、注文が約定する直前のワーク板26(約定直前ワーク板26)を作成する。
具体的には、約定シミュレーションシステム1は、取得したTICKデータ210の現値2104と今回ワーク板26の気配値261とが一致するレコードを、今回ワーク板26から選択する。次に、約定シミュレーションシステム1は、選択したレコードの売気配数量262又は買気配数量263のいずれか一方に、取得したTICKデータ210の約定高2105を加算する。なお、約定シミュレーションシステム1は、前回ワーク板26及び今回ワーク板26とを比較することによって、取得したTICKデータ210の約定高2105を、売気配数量262又は買気配数量263のいずれに加算するかを決定する。
次に、約定シミュレーションシステム1は、成行注文に関する情報を示すレコードを、今回ワーク板26から選択する。次に、約定シミュレーションシステム1は、選択したレコードの売気配数量262及び買気配数量263のうちのもう一方に、取得したTICKデータ210の約定高2105を加算する。
これによって、約定シミュレーションシステム1は、約定直前ワーク板26を作成する(304)。
なお、約定シミュレーションシステム1は、約定直前に入った注文を成行注文と仮定して、約定直前ワーク板26を作成する。よって、約定直前に入った注文が、実際には指値注文の場合もある。
次に、約定シミュレーションシステム1は、前回ワーク板26と今回ワーク板26又は約定直前ワーク板26とを比較する(305)。これによって、約定シミュレーションシステム1は、仮想的な注文(TICK注文)を推定し、推定したTICK注文を分解後注文ファイル23に格納する(306)。
前回ワーク板26に対応する時刻から今回ワーク板26に対応する時刻までの間に約定していない場合、約定シミュレーションシステム1は、前回ワーク板26と今回ワーク板26とを比較する。そのため、約定シミュレーションシステム1は、前回ワーク板26及び今回ワーク板26の双方を記憶している。
一方、前回ワーク板26に対応する時刻から今回ワーク板26に対応する時刻までの間に約定した場合、約定シミュレーションシステム1は、前回ワーク板26と約定直前ワーク板26とを比較する。そのため、約定シミュレーションシステム1は、前回ワーク板26及び約定直前ワーク板26の双方を記憶している。
ここでは、前回ワーク板26と今回ワーク板26とを比較する処理について説明するが、前回ワーク板26と約定直前ワーク板26とを比較する処理も同一である。
約定シミュレーションシステム1は、前回ワーク板26の気配値261と今回ワーク板26の気配値261とが一致するレコードを、前回ワーク板26及び今回ワーク板26の双方から順番に選択する。そして、約定シミュレーションシステム1は、選択したレコードごとに、以下の処理を行う。
約定シミュレーションシステム1は、前回ワーク板26から選択したレコードの売気配数量262と今回ワーク板26から選択したレコードの売気配数量262とが一致するか否かを判定する。
二つの売気配数量262が一致する場合、前回ワーク板26又は今回ワーク板26から選択したレコードの気配値261での売注文は新たに発生してない。よって、約定シミュレーションシステム1は、分解後注文ファイル23を更新しない。
一方、二つの売気配数量262が一致しない場合、前回ワーク板26又は今回ワーク板26から選択したレコードの気配値261での売注文が新たに発生している。そのため、約定シミュレーションシステム1は、売注文(TICK注文)を生成する。
具体的には、約定シミュレーションシステム1は、今回ワーク板26から選択したレコードの売気配数量262から、前回ワーク板26から選択したレコードの売気配数量262を減算することによって、売注文の株数を算出する。そして、約定シミュレーションシステム1は、選択したレコードの気配値261で、算出した株数の売注文を生成する。
そして、約定シミュレーションシステム1は、生成した売注文に関する情報を、分解後注文ファイル23に格納する。
具体的には、約定シミュレーションシステム1は、分解後注文ファイル23に新たなレコードを追加する。
次に、約定シミュレーションシステム1は、新たなレコードの時刻231に、ステップ301で取得したTICKデータ210の時刻2101を格納する。
次に、約定シミュレーションシステム1は、算出した売注文の株数が正の値であるか否かを判定する。売注文の株数が正の値である場合、約定シミュレーションシステム1は、新たなレコードの種別232に、売注文であることを示す情報を格納する。一方、算出した売注文の株数が負の値である場合、約定シミュレーションシステム1は、新たなレコードの種別232に、売訂正注文であることを示す情報又は売取消注文であることを示す情報を格納する。
次に、約定シミュレーションシステム1は、前回ワーク板26又は今回ワーク板26から選択したレコードの気配値261を、新たなレコードの値段233に格納する。次に、約定シミュレーションシステム1は、算出した売注文の株数を、新たなレコードの数量234に格納する。
これによって、約定シミュレーションシステム1は、生成した売注文に関する情報を、分解後注文ファイル23に格納する。
次に、約定シミュレーションシステム1は、前回ワーク板26から選択したレコードの買気配数量263と今回ワーク板26から選択したレコードの買気配数量263とが一致するか否かを判定する。
二つの買気配数量263が一致する場合、前回ワーク板26又は今回ワーク板26から選択したレコードの気配値261での買注文は新たに発生してない。よって、約定シミュレーションシステム1は、分解後注文ファイル23を更新しない。
一方、二つの買気配数量263が一致しない場合、前回ワーク板26又は今回ワーク板26から選択したレコードの気配値261での買注文が新たに発生している。そのため、約定シミュレーションシステム1は、買注文(TICK注文)を生成する。
具体的には、約定シミュレーションシステム1は、今回ワーク板26から選択したレコードの買気配数量263から、前回ワーク板26から選択したレコードの買気配数量263を減算することによって、買注文の株数を算出する。そして、約定シミュレーションシステム1は、選択したレコードの気配値261で、算出した株数の買注文を生成する。
そして、約定シミュレーションシステム1は、生成した買注文に関する情報を、分解後注文ファイル23に格納する。
具体的には、約定シミュレーションシステム1は、分解後注文ファイル23に新たなレコードを追加する。
次に、約定シミュレーションシステム1は、新たなレコードの時刻231に、ステップ301で取得したTICKデータ210の時刻2101を格納する。
次に、約定シミュレーションシステム1は、算出した買注文の株数が正の値であるか否かを判定する。買注文の株数が正の値である場合、約定シミュレーションシステム1は、新たなレコードの種別232に、買注文であることを示す情報を格納する。一方、算出した買注文の株数が負の値である場合、約定シミュレーションシステム1は、新たなレコードの種別232に、買訂正注文であることを示す情報又は買取消注文であることを示す情報を格納する。
次に、約定シミュレーションシステム1は、前回ワーク板26又は今回ワーク板26から選択したレコードの気配値261を、新たなレコードの値段233に格納する。次に、約定シミュレーションシステム1は、算出した買注文の株数を、新たなレコードの数量234に格納する。
これによって、約定シミュレーションシステム1は、生成した買注文に関する情報を、分解後注文ファイル23に格納する。
次に、約定シミュレーションシステム1は、選択したTICKデータ210のすべてを、ステップ301において取得したか否かを判定する。
選択したTICKデータ210の一つでも取得してない場合、約定シミュレーションシステム1は、ステップ301に戻り、処理を繰り返す。
一方、選択したTICKデータ210のすべてを取得した場合、約定シミュレーションシステム1は、当該注文分解処理22を終了する。
次に、約定シミュレーションシステム1によって実行される注文分解処理22の具体例を説明する。
図10は、本発明の実施の形態の約定シミュレーションシステム1によって実行される注文分解処理22の説明図である。
本説明図では、約定シミュレーションシステム1が、時刻2101が「10時00分00秒」のTICKデータ210及び時刻2101が「10時00分02秒」のTICKデータ210を取得した場合を説明する。
時刻2101が「10時00分00秒」のTICKデータ210は、504円での売注文の総株数が6株に、500円での売注文の総株数が3株に、499円での買注文の総株数が16株に、498円での買注文の総株数が7株に変更されたことを示す。
また、時刻2101が「10時00分02秒」のTICKデータ210は、500円で3株約定したことを示す。更に、時刻2101が「10時00分02秒」のTICKデータ210は、500円での売注文の総株数が0株に変更されたことを示す。
まず、約定シミュレーションシステム1は、時刻2101が「10時00分00秒」のTICKデータ210を取得したとする。
すると、約定シミュレーションシステム1は、当該TICKデータ210を取得する直前のワーク板26(前回ワーク板26)及び取得したTICKデータ210に基づいて、今回ワーク板26を作成する。作成された今回ワーク板26は、504円での売注文の総株数が6株であり、500円での売注文の総株数が3株であり、499円での買注文の総株数が16株であり、且つ、498円での買注文の総株数が7株であることを示す。
また、前回ワーク板26は、504円での売注文の総株数が4株であり、500円での売注文の総株数が0株であり、499円での買注文の総株数が10株であり、且つ、498円での買注文の総株数が12株であることを示す。
次に、約定シミュレーションシステム1は、前回ワーク板26と今回ワーク板26とを比較することによって、新たに発生した注文を推定する。
具体的には、約定シミュレーションシステム1は、今回ワーク板26が示す6株から、前回ワーク板26が示す4株を減算することによって、504円で2株の売注文が新たに発生したと推定する。
また、約定シミュレーションシステム1は、今回ワーク板26が示す3株から、前回ワーク板26が示す0株を減算することによって、500円で3株の売注文が新たに発生したと推定する。
また、約定シミュレーションシステム1は、今回ワーク板26が示す16株から、前回ワーク板26が示す10株を減算することによって、499円で6株の買注文が新たに発生したと推定する。
また、約定シミュレーションシステム1は、今回ワーク板26が示す7株から、前回ワーク板26が示す12株を減算することによって、498円で−5株の買訂正注文が新たに発生したと推定する。
そして、約定シミュレーションシステム1は、推定した新たな注文を、分解後注文ファイル23に格納する。
次に、約定シミュレーションシステム1は、時刻2101が「10時00分02秒」のTICKデータ210を取得したとする。
すると、約定シミュレーションシステム1は、時刻2101が「10時00分00秒」のTICKデータ210を取得した際に作成したワーク板26(前回ワーク板26)及び取得したTICKデータ210に基づいて、今回ワーク板26を作成する。作成された今回ワーク板26は、500円での売注文の総株数が0株であることを示す。
次に、約定シミュレーションシステム1は、作成した今回ワーク板26及び取得したTICKデータ210に基づいて、約定直前ワーク板26を作成する。このとき、約定シミュレーションシステム1は、500円での売注文の総株数が0株に変更されたのは、売訂正注文又は売取消注文によるものではなく、注文の約定によるものと推定する。そのため、作成された約定直前ワーク板26は、500円での売注文の総株数が3株であること、且つ、成行での買注文が3株であることを示す。
また、前回ワーク板26は、500円での売注文の総株数が3株であること、且つ、成行での買注文が0株であることを示す。
次に、約定シミュレーションシステム1は、前回ワーク板26と約定直前ワーク板26とを比較することによって、新たに発生した注文を推定する。
具体的には、約定シミュレーションシステム1は、今回ワーク板26が示す3株から、前回ワーク板26が示す0株を減算することによって、成行で3株の買注文が新たに発生したと推定する。
そして、約定シミュレーションシステム1は、推定した新たな注文を、分解後注文ファイル23に格納する。
約定シミュレーションシステム1は、注文分解処理22において、このような処理を繰り返す。
図11は、本発明の実施の形態の約定シミュレーションシステム1によって実行されるワーク板登録・約定シミュレート処理25のフローチャートである。
約定シミュレーションシステム1は、時系列に従って、アルゴ注文又はTICK注文を、当該シミュレーションにおける値動きを示すワーク板26(シミュレーション用ワーク板26)に登録する。約定シミュレーションシステム1は、アルゴ注文又はTICK注文をシミュレーション用ワーク板26に登録しようとする度に、当該ワーク板登録・約定シミュレート処理25を実行する。
まず、約定シミュレーションシステム1は、シミュレーション用ワーク板26に登録しようとする注文が、アルゴ注文又はTICK注文のいずれであるかを判定する(311)。
シミュレーション用ワーク板26にTICK注文を登録しようとする場合、約定シミュレーションシステム1は、シミュレーションパラメータ28に基づいて、TICK注文発生時におけるマーケットインパクトを算出する。
図12は、本発明の実施の形態の約定シミュレーションシステム1によって算出されるマーケットインパクトΔPの説明図である。
マーケットインパクトΔPは、アルゴ注文の約定による影響の大きさを示す値である。そのため、マーケットインパクトΔPは、アルゴ注文の約定時刻t0からの時間の経過と共に指数的に減衰するのが好ましい。例えば、マーケットインパクトΔPは、減衰係数Tに従って減衰する。
更に、マーケットインパクトΔPは、初期インパクトP0の一定比率(恒久インパクト比率P)が恒久的に残るのが好ましい。なお、初期インパクトP0は、アルゴ注文の約定時刻t0におけるマーケットインパクトであり、ワーク板登録・約定シミュレート処理25のステップ317で算出される。言い換えると、t0は、初期インパクトP0の発生時刻である。
なお、減衰係数T及び恒久インパクト比率Pは、シミュレーションパラメータ28に含まれる。
例えば、約定シミュレーションシステム1は、数式1を用いて、TICK注文発生時刻tにおけるマーケットインパクトΔP(t)を算出する。
Figure 2009026225
ここで、図11に戻る。
約定シミュレーションシステム1は、マーケットインパクトを算出すると、算出したマーケットインパクトを四捨五入して整数にする。そして、約定シミュレーションシステム1は、整数化したマーケットインパクトを、登録しようとするTICK注文で指定された価格に反映する(312)。
具体的には、約定シミュレーションシステム1は、算出したマーケットインパクトを発生させたアルゴ注文が売注文又は買注文のいずれであるかを判定する。
アルゴ注文が売注文の場合、約定シミュレーションシステム1は、登録しようとするTICK注文で指定された価格から、整数化されたマーケットインパクトを減算することによって、登録価格を算出する。
一方、アルゴ注文が買注文の場合、約定シミュレーションシステム1は、登録しようとするTICK注文で指定された価格に、整数化されたマーケットインパクトを加算することによって、登録価格を算出する。
そして、約定シミュレーションシステム1は、算出した登録価格に基づいて、TICK注文をシミュレーション用ワーク板26に登録する(314)。
具体的には、TICK注文が売注文の場合、約定シミュレーションシステム1は、算出した登録価格とシミュレーション用ワーク板26の気配値261とが一致するレコードを、シミュレーション用ワーク板26から選択する。次に、約定シミュレーションシステム1は、選択したレコードの売気配数量262に、当該TICK注文で指定された株数を加算する。
一方、TICK注文が売訂正注文又は売取消注文の場合、約定シミュレーションシステム1は、算出した登録価格とシミュレーション用ワーク板26の気配値261とが一致するレコードを、シミュレーション用ワーク板26から選択する。次に、約定シミュレーションシステム1は、選択したレコードの売気配数量262から、当該TICK注文で指定された株数を減算する。
一方、TICK注文が買注文の場合、約定シミュレーションシステム1は、算出した登録価格とシミュレーション用ワーク板26の気配値261とが一致するレコードを、シミュレーション用ワーク板26から選択する。次に、約定シミュレーションシステム1は、選択したレコードの買気配数量263に、当該TICK注文で指定された株数を加算する。
一方、TICK注文が買訂正注文又は買取消注文の場合、約定シミュレーションシステム1は、算出した登録価格とシミュレーション用ワーク板26の気配値261とが一致するレコードを、シミュレーション用ワーク板26から選択する。次に、約定シミュレーションシステム1は、選択したレコードの買気配数量263から、当該TICK注文で指定された株数を減算する。
以上のように、約定シミュレーションシステム1は、算出した登録価格に基づいて、TICK注文をシミュレーション用ワーク板26に登録する。
なお、約定シミュレーションシステム1は、これまでにアルゴ注文をシミュレーション用ワーク板26に登録していない場合、TICK注文で指定された価格を、登録価格とする。つまり、約定シミュレーションシステム1は、マーケットインパクトを考慮せずに(通常通りに)、TICK注文をシミュレーション用ワーク板26に登録する。
一方、シミュレーション用ワーク板26にアルゴ注文を登録しようとする場合、約定シミュレーションシステム1は、登録しようとするアルゴ注文が論理的に正しいか否かを判定する(313)。例えば、アルゴ注文が訂正注文又は取消注文の場合には、約定シミュレーションシステム1は、当該アルゴ注文によって訂正又は取消を要求された注文がシミュレーション用ワーク板26に残っているか否かを判定することによって、アルゴ注文が論理的に正しいか否かを判定する。
アルゴ注文が論理的に誤っている場合、約定シミュレーションシステム1は、当該アルゴ注文の識別子を含む執行エラー通知を作成する。次に、約定シミュレーションシステム1は、作成した執行エラー通知を、アルゴリズム取引システムに送信する。そして、約定シミュレーションシステム1は、当該ワーク板登録・約定シミュレート処理25を終了する。
一方、アルゴ注文が論理的に正しい場合、約定シミュレーションシステム1は、アルゴ注文を、シミュレーション用ワーク板26に登録する(314)。
具体的には、アルゴ注文が売注文の場合、約定シミュレーションシステム1は、当該アルゴ注文で指定された価格とシミュレーション用ワーク板26の気配値261とが一致するレコードを、シミュレーション用ワーク板26から選択する。次に、約定シミュレーションシステム1は、選択したレコードの売気配数量262に、当該アルゴ注文で指定された株数を加算する。
一方、アルゴ注文が売訂正注文又は売取消注文の場合、約定シミュレーションシステム1は、当該アルゴ注文で指定された価格とシミュレーション用ワーク板26の気配値261とが一致するレコードを、シミュレーション用ワーク板26から選択する。次に、約定シミュレーションシステム1は、選択したレコードの売気配数量262から、当該アルゴ注文で指定された株数を減算する。
一方、アルゴ注文が買注文の場合、約定シミュレーションシステム1は、当該アルゴ注文で指定された価格とシミュレーション用ワーク板26の気配値261とが一致するレコードを、シミュレーション用ワーク板26から選択する。次に、約定シミュレーションシステム1は、選択したレコードの買気配数量263に、当該アルゴ注文で指定された株数を加算する。
一方、アルゴ注文が買訂正注文又は買取消注文の場合、約定シミュレーションシステム1は、当該アルゴ注文で指定された価格とシミュレーション用ワーク板26の気配値261とが一致するレコードを、シミュレーション用ワーク板26から選択する。次に、約定シミュレーションシステム1は、選択したレコードの買気配数量263から、当該アルゴ注文で指定された株数を減算する。
以上のように、約定シミュレーションシステム1は、アルゴ注文をシミュレーション用ワーク板26に登録する。
次に、約定シミュレーションシステム1は、シミュレーション用ワーク板26に基づいて、注文が約定するか否かを判定する(315)。
具体的には、約定シミュレーションシステム1は、シミュレーション用ワーク板26のいずれかのレコードの売気配数量262及び買気配数量263の双方に「1」以上の値が格納されている場合、注文が約定すると判定する。更に、約定シミュレーションシステム1は、成行注文に関する情報を示すレコードの売気配数量262又は買気配数量263のいずれかに「1」以上の値が格納されている場合にも、注文が約定すると判定する。
注文が約定しない場合、約定シミュレーションシステム1は、そのままステップ318に進む。
一方、注文が約定する場合、約定シミュレーションシステム1は、シミュレーション用ワーク板26に基づいて、注文を約定させる(316)。そして、約定シミュレーションシステム1は、シミュレーション用ワーク板26の売気配数量262及び買気配数量263から、約定した株数を減算する。これによって、約定シミュレーションシステム1は、シミュレーション用ワーク板26を、約定前の状態から約定後の状態に更新する。
次に、約定シミュレーションシステム1は、約定した注文がアルゴ注文であるか否かを判定する。
約定した注文がアルゴ注文でない場合、約定シミュレーションシステム1は、そのままステップ318に進む。
一方、約定した注文がアルゴ注文である場合、約定シミュレーションシステム1は、約定価格及び約定高を含む約定通知を作成する。そして、約定シミュレーションシステム1は、作成した約定通知を、アルゴリズム取引システムに送信する。
更に、約定シミュレーションシステム1は、アルゴ注文の約定結果に基づいて、初期インパクトP0を算出する(317)。
例えば、約定シミュレーションシステム1は、シミュレーション用ワーク板26に登録されている売注文の最安値と買注文の最高値との中間値(ミッドプライス)を、当該約定直前のシミュレーション用ワーク板26及び当該約定直後のシミュレーション用ワーク板26のそれぞれで算出する。そして、約定シミュレーションシステム1は、算出した二つのミッドプライスの差(ミッドプライスの変化量)を、初期インパクトP0とする。
次に、約定シミュレーションシステム1は、更新された最新のシミュレーション用ワーク板26と当該ワーク板登録・約定シミュレート処理25が行われる直前のシミュレーション用ワーク板26とを比較することによって、シミュレーションにおけるTICKデータ291を作成する。そのため、約定シミュレーションシステム1は、更新された最新のシミュレーション用ワーク板26及び当該ワーク板登録・約定シミュレート処理25が行われる直前のシミュレーション用ワーク板26の双方を記憶している。
具体的には、約定シミュレーションシステム1は、シミュレーション上における現在の日付けを、TICKデータ291の取引日2910に格納する。次に、約定シミュレーションシステム1は、シミュレーション上における現在の時刻を、TICKデータ291の時刻2911に格納する。
次に、約定シミュレーションシステム1は、シミュレーション対象の銘柄の識別子を、TICKデータ291の銘柄コード2912に格納する。次に、約定シミュレーションシステム1は、直前に作成したTICKデータ291のレコード通番2913に「1」を加算することによって算出した値を、TICKデータ291のレコード通番2913に格納する。
次に、約定シミュレーションシステム1は、注文を約定させた価格を、TICKデータ291の現値2914に格納する。次に、約定シミュレーションシステム1は、約定した株数を、TICKデータの約定高2915に格納する。
次に、約定シミュレーションシステム1は、当該当該ワーク板登録・約定シミュレート処理25によって、シミュレーション用ワーク板26の売気配数量262が変化したレコードを、シミュレーション用ワーク板26から選択する。次に、約定シミュレーションシステム1は、選択したレコードの気配値261を、TICKデータ291の売気配値2916に格納する。次に、約定シミュレーションシステム1は、選択したレコードの売気配数量262を、TICKデータ291の売気配数量2918に格納する。
次に、約定シミュレーションシステム1は、当該当該ワーク板登録・約定シミュレート処理25によって、シミュレーション用ワーク板26の買気配数量263が変化したレコードを、シミュレーション用ワーク板26から選択する。次に、約定シミュレーションシステム1は、選択したレコードの気配値261を、TICKデータ291の買気配値2917に格納する。次に、約定シミュレーションシステム1は、選択したレコードの買気配数量263を、TICKデータ291の買気配数量2919に格納する。
以上のように、約定シミュレーションシステム1は、シミュレーションにおけるTICKデータ291を作成する(318)。次に、約定シミュレーションシステム1は、作成したTICKデータ291を、相場情報として、アルゴリズム取引システムに送信する。
更に、約定シミュレーションシステム1は、作成したTICKデータ291を、結果ファイル29に格納する。
そして、約定シミュレーションシステム1は、当該ワーク板登録・約定シミュレート処理25を終了する。
次に、約定シミュレーションシステム1によって実行されるワーク板登録・約定シミュレート処理25の具体例を説明する。
図13は、本発明の実施の形態の約定シミュレーションシステム1によって実行されるワーク板登録・約定シミュレート処理25の説明図である。
まず、アルゴ注文が入る前における約定シミュレーションシステム1の処理について説明する。
約定シミュレーションシステム1は、TICK注文を受けると、通常通り、TICK注文をシミュレーション用ワーク板26に登録する。
例えば、TICK注文が501円で3株の買注文だとする。この場合、約定シミュレーションシステム1は、シミュレーション用ワーク板26の気配値261が501円を示すレコードを、シミュレーション用ワーク板26から選択する。次に、約定シミュレーションシステム1は、選択したレコードの買気配数量263に、TICK注文で指定された株数の「3」を加算する。
更に、約定シミュレーションシステム1は、シミュレーション用ワーク板26に基づいて、注文を約定させる。
以上のように、約定シミュレーションシステム1は、TICK注文をシミュレーション用ワーク板26に登録する。
次に、アルゴ注文が入った場合の約定シミュレーションシステム1の処理について説明する。
約定シミュレーションシステム1は、アルゴ注文を受けると、アルゴ注文をシミュレーション用ワーク板26に登録する。
例えば、アルゴ注文が10株の成行の買注文だとする。すると、約定シミュレーションシステム1は、成行注文に対応するレコードを、シミュレーション用ワーク板26から選択する。次に、約定シミュレーションシステム1は、選択したレコードの買気配数量263に、アルゴ注文で指定された株数の「10」を加算する。
更に、約定シミュレーションシステム1は、シミュレーション用ワーク板26に基づいて、注文を約定させる。ここでは、約定シミュレーションシステム1は、アルゴ注文を約定させる。
すると、約定後におけるシミュレーション用ワーク板26では、売注文の最安値が503円となる。つまり、アルゴ注文の約定により、売注文の最安値が501円から503円に上昇する。
そこで、約定シミュレーションシステム1は、約定後のシミュレーション用ワーク板26における売注文の最安値の503円と買注文の最高値の499円とのミッドプライスの501円を算出する。次に、約定シミュレーションシステムは、約定直前のシミュレーション用ワーク板26における売注文の最安値の501円と買注文の最高値の499円とのミッドプライスの500円を算出する。
次に、約定シミュレーションシステム1は、算出した二つのミッドプライスの差(ミッドプライスの変化量)の「1」を、初期インパクトとする。
次に、当該アルゴ注文の約定直後に、約定シミュレーションシステム1が、TICK注文を受けたとする。当該TICK注文が、501円で3株の買注文だとする。
すると、約定シミュレーションシステム1は、TICK注文発生時におけるマーケットインパクトを算出する。ここでは、TICK注文がアルゴ注文の約定直後に発生したので、約定シミュレーションシステム1は、初期インパクトの「1」を、マーケットインパクトとする。
次に、約定シミュレーションシステム1は、当該TICK注文で指定された価格の501円に、算出したマーケットインパクトの「1」を加算することによって、登録価格の502円を算出する。
次に、約定シミュレーションシステム1は、算出した登録価格の502円とシミュレーション用ワーク板26の気配値261とが一致するレコードを、シミュレーション用ワーク板26から選択する。次に、約定シミュレーションシステム1は、選択したレコードの買気配数量263に、当該TICK注文で指定された株数の「3」を加算する。
以上のように、約定シミュレーションシステム1は、アルゴ注文による影響を考慮して、TICK注文をシミュレーション用ワーク板26に登録する。
本発明の実施の形態の約定シミュレーションシステム1は、過去の特定の日時における約定価格を算出しながら、アルゴリズム取引システムによる取引のシミュレーションを行う。更に、約定シミュレーションシステム1は、アルゴリズム取引システムからの注文による株価への影響をも考慮しながら、アルゴリズム取引システムによる取引のシミュレーションを行う。このため、約定シミュレーションシステムは、アルゴリズム取引システムのパフォーマンスを高精度に検証することができる。
本発明は、アルゴリズム取引システムのパフォーマンスを検証するための計算機に利用できる。
本発明の実施の形態の約定シミュレーションシステムのハードウェア構成のブロック図である。 本発明の実施の形態の約定シミュレーションシステムの機能構成のブロック図である。 本発明の実施の形態の約定シミュレーションシステムの処理の概要のフローチャートである。 本発明の実施の形態の約定シミュレーションシステムに記憶されるTICK原データの構成図である。 本発明の実施の形態の約定シミュレーションシステムに記憶される分解後注文ファイルの構成図である。 本発明の実施の形態の約定シミュレーションシステム1に記憶される結果ファイルに含まれるTICKデータの構成図である。 本発明の実施の形態の約定シミュレーションシステムからアルゴリズム取引システムに送信される約定通知の構成図である。 本発明の実施の形態の約定シミュレーションシステムに記憶されるワーク板の構成図である。 本発明の実施の形態の約定シミュレーションシステムによって実行される注文分解処理のフローチャートである。 本発明の実施の形態の約定シミュレーションシステムによって実行される注文分解処理の説明図である。 本発明の実施の形態の約定シミュレーションシステムによって実行されるワーク板登録・約定シミュレート処理のフローチャートである。 本発明の実施の形態の約定シミュレーションシステムによって算出されるマーケットインパクトの説明図である。 本発明の実施の形態の約定シミュレーションシステムによって実行されるワーク板登録・約定シミュレート処理の説明図である。
符号の説明
1 約定シミュレーションシステム
10 CPU
11 メモリ
12 HDD
13 インタフェース
14 通信制御装置
15 入力装置
16 ディスプレイ
17 ネットワーク
21 TICK原データ
22 注文分解処理
23 分解後注文ファイル
24 起動パラメータ
25 ワーク板登録・約定シミュレート処理
26 ワーク板
28 シミュレーションパラメータ
29 結果ファイル
210 TICKデータ
291 TICKデータ
292 約定通知

Claims (18)

  1. アルゴリズム取引システムによる株の取り引きのシミュレーションを行う約定シミュレーションシステムであって、
    過去の市場における株の値動きを示す第1TICKデータの履歴を記憶する第1TICKデータ記憶手段から、前記第1TICKデータを時系列に沿って抽出するステップと、
    前記抽出された第1TICKデータに基づいて、前記過去の市場における株の注文状況を示す第1ワーク板を更新するステップと、
    前記更新前の第1ワーク板と前記更新後の第1ワーク板とを比較することによって、前記過去の市場において新たに発生した注文の内容を示す第1注文情報を推定するステップと、
    前記推定された第1注文情報を、第1注文情報記憶手段に格納するステップと、
    前記アルゴリズム取引システムからの注文の内容を示す第2注文情報を受信するステップと、
    前記第1注文情報記憶手段から、前記第1注文情報を時系列に沿って抽出するステップと、
    前記抽出された第1注文情報及び前記受信した第2注文情報を、仮想的な市場における株の値動きを示す第2ワーク板に時系列に沿って反映することによって、前記第2ワーク板を更新するステップと、
    前記更新後の第2ワーク板に基づいて、前記仮想的な市場において注文を約定させるステップと、を実行することを特徴とする約定シミュレーションシステム。
  2. 更に、前記更新前の第2ワーク板と前記更新後の第2ワーク板とを比較することによって、前記仮想的な市場における株の値動きを示す第2TICKデータを作成するステップと、
    前記作成された第2TICKデータを相場情報として、前記アルゴリズム取引システムに送信するステップと、を実行することを特徴とする請求項1に記載の約定シミュレーションシステム。
  3. 更に、前記更新前の第2ワーク板と前記更新後の第2ワーク板とを比較することによって、前記仮想的な市場における株の値動きを示す第2TICKデータを作成するステップと、
    前記作成された第2TICKデータを、シミュレーション結果記憶手段に格納するステップと、を実行することを特徴とする請求項1に記載の約定シミュレーションシステム。
  4. 更に、前記抽出された第1TICKデータが前記過去の市場における約定に関する情報を含む場合、前記抽出された第1TICKデータに含まれる前記約定に関する情報及び前記更新後の第1ワーク板に基づいて、当該約定の直前の第1ワーク板を作成するステップと、
    前記更新前の第1ワーク板と前記作成された約定の直前の第1ワーク板とを比較することによって、前記第1注文情報を推定するステップと、を実行することを特徴とする請求項1に記載の約定シミュレーションシステム。
  5. 更に、前記アルゴリズム取引システムからの注文を前記仮想的な市場において約定させると、当該約定が前記仮想的な市場に与える影響の大きさを示すマーケットインパクトを算出するステップを実行し、
    前記第2ワーク板を更新するステップでは、前記算出されたマーケットインパクトを考慮して、前記第2ワーク板を更新することを特徴とする請求項1に記載の約定シミュレーションシステム。
  6. 更に、前記アルゴリズム取引システムからの注文を前記仮想的な市場において約定させると、当該約定が前記仮想的な市場に与える影響の大きさを示すマーケットインパクトを算出するステップを実行し、
    前記第2ワーク板を更新するステップでは、
    前記抽出された第1注文情報に含まれる株の注文価格に、前記算出されたマーケットインパクトを加算し、
    当該抽出された第1注文情報に含まれる株の注文価格を、当該加算結果に変更し、
    前記注文価格が変更された第1注文情報に基づいて、前記第2ワーク板を更新することを特徴とする請求項1に記載の約定シミュレーションシステム。
  7. 前記マーケットインパクトは、前記アルゴリズム取引システムからの注文が約定した時からの時間の経過と共に減衰することを特徴とする請求項5又は6に記載の約定シミュレーションシステム。
  8. 更に、前記第2注文情報を正常に受信した場合、前記第2注文情報の受付通知を前記アルゴリズム取引システムに送信するステップを実行することを特徴とする請求項1に記載の約定シミュレーションシステム。
  9. 更に、前記アルゴリズム取引システムからの注文を約定させた場合、当該約定の内容を含む約定通知を前記アルゴリズム取引システムに送信するステップを実行することを特徴とする請求項1に記載の約定シミュレーションシステム。
  10. アルゴリズム取引システムに接続される計算機に、
    過去の市場における株の値動きを示す第1TICKデータの履歴を記憶する第1TICKデータ記憶手段から、前記第1TICKデータを時系列に沿って抽出するステップと、
    前記抽出された第1TICKデータに基づいて、前記過去の市場における株の注文状況を示す第1ワーク板を更新するステップと、
    前記更新前の第1ワーク板と前記更新後の第1ワーク板とを比較することによって、前記過去の市場において新たに発生した注文の内容を示す第1注文情報を推定するステップと、
    前記推定された第1注文情報を、第1注文情報記憶手段に格納するステップと、
    前記アルゴリズム取引システムからの注文の内容を示す第2注文情報を受信するステップと、
    前記第1注文情報記憶手段から、前記第1注文情報を時系列に沿って抽出するステップと、
    前記抽出された第1注文情報及び前記受信した第2注文情報を、仮想的な市場における株の値動きを示す第2ワーク板に時系列に沿って反映することによって、前記第2ワーク板を更新するステップと、
    前記更新後の第2ワーク板に基づいて、前記仮想的な市場において注文を約定させるステップと、を実行させることを特徴とするプログラム。
  11. 更に、前記更新前の第2ワーク板と前記更新後の第2ワーク板とを比較することによって、前記仮想的な市場における株の値動きを示す第2TICKデータを作成するステップと、
    前記作成された第2TICKデータを相場情報として、前記アルゴリズム取引システムに送信するステップと、を前記計算機に実行させることを特徴とする請求項10に記載のプログラム。
  12. 更に、前記更新前の第2ワーク板と前記更新後の第2ワーク板とを比較することによって、前記仮想的な市場における株の値動きを示す第2TICKデータを作成するステップと、
    前記作成された第2TICKデータを、シミュレーション結果記憶手段に格納するステップと、を前記計算機に実行させることを特徴とする請求項10に記載のプログラム。
  13. 更に、前記抽出された第1TICKデータが前記過去の市場における約定に関する情報を含む場合、前記抽出された第1TICKデータに含まれる前記約定に関する情報及び前記更新後の第1ワーク板に基づいて、当該約定の直前の第1ワーク板を作成するステップと、
    前記更新前の第1ワーク板と前記作成された約定の直前の第1ワーク板とを比較することによって、前記第1注文情報を推定するステップと、を前記計算機に実行させることを特徴とする請求項10に記載のプログラム。
  14. 更に、前記アルゴリズム取引システムからの注文を前記仮想的な市場において約定させると、当該約定が前記仮想的な市場に与える影響の大きさを示すマーケットインパクトを算出するステップを、前記計算機に実行させ、
    前記第2ワーク板を更新するステップでは、前記算出されたマーケットインパクトを考慮して、前記第2ワーク板を更新することを特徴とする請求項10に記載のプログラム。
  15. 更に、前記アルゴリズム取引システムからの注文を前記仮想的な市場において約定させると、当該約定が前記仮想的な市場に与える影響の大きさを示すマーケットインパクトを算出するステップを、前記計算機に実行させ、
    前記第2ワーク板を更新するステップでは、
    前記抽出された第1注文情報に含まれる株の注文価格に、前記算出されたマーケットインパクトを加算し、
    当該抽出された第1注文情報に含まれる株の注文価格を、当該加算結果に変更し、
    前記注文価格が変更された第1注文情報に基づいて、前記第2ワーク板を更新することを特徴とする請求項10に記載のプログラム。
  16. 前記マーケットインパクトは、前記アルゴリズム取引システムからの注文が約定した時からの時間の経過と共に減衰することを特徴とする請求項14又は15に記載のプログラム。
  17. 更に、前記第2注文情報を正常に受信した場合、前記第2注文情報の受付通知を前記アルゴリズム取引システムに送信するステップを前記計算機に実行させることを特徴とする請求項10に記載のプログラム。
  18. 更に、前記アルゴリズム取引システムからの注文を約定させた場合、当該約定の内容を含む約定通知を前記アルゴリズム取引システムに送信するステップを前記計算機に実行させることを特徴とする請求項10に記載のプログラム。
JP2007191202A 2007-07-23 2007-07-23 約定シミュレーションシステム及びプログラム Expired - Fee Related JP5099419B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007191202A JP5099419B2 (ja) 2007-07-23 2007-07-23 約定シミュレーションシステム及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007191202A JP5099419B2 (ja) 2007-07-23 2007-07-23 約定シミュレーションシステム及びプログラム

Publications (2)

Publication Number Publication Date
JP2009026225A true JP2009026225A (ja) 2009-02-05
JP5099419B2 JP5099419B2 (ja) 2012-12-19

Family

ID=40397956

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007191202A Expired - Fee Related JP5099419B2 (ja) 2007-07-23 2007-07-23 約定シミュレーションシステム及びプログラム

Country Status (1)

Country Link
JP (1) JP5099419B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010205203A (ja) * 2009-03-06 2010-09-16 Nomura Research Institute Ltd 株式の仮想取引システム
JP2012033144A (ja) * 2010-06-30 2012-02-16 Broadbandjapan Inc 株売買シミュレーションシステム及び株売買シミュレーションプログラム
WO2012101838A1 (ja) * 2011-01-25 2012-08-02 株式会社 東芝 証券売買模擬システム
JP2015022690A (ja) * 2013-07-23 2015-02-02 株式会社日立ソリューションズ マーケットインパクト減衰係数算出装置、マーケットインパクト減衰係数算出方法、約定シミュレーションシステム、及び約定シミュレーション方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006189995A (ja) * 2005-01-04 2006-07-20 Nomura Research Institute Ltd 指値注文の執行確率算出システム及び執行確率算出プログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006189995A (ja) * 2005-01-04 2006-07-20 Nomura Research Institute Ltd 指値注文の執行確率算出システム及び執行確率算出プログラム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010205203A (ja) * 2009-03-06 2010-09-16 Nomura Research Institute Ltd 株式の仮想取引システム
JP2012033144A (ja) * 2010-06-30 2012-02-16 Broadbandjapan Inc 株売買シミュレーションシステム及び株売買シミュレーションプログラム
WO2012101838A1 (ja) * 2011-01-25 2012-08-02 株式会社 東芝 証券売買模擬システム
JP2015022690A (ja) * 2013-07-23 2015-02-02 株式会社日立ソリューションズ マーケットインパクト減衰係数算出装置、マーケットインパクト減衰係数算出方法、約定シミュレーションシステム、及び約定シミュレーション方法
CN104346750A (zh) * 2013-07-23 2015-02-11 株式会社日立解决方案 市场影响衰减系数计算装置及方法、约定模拟系统及方法

Also Published As

Publication number Publication date
JP5099419B2 (ja) 2012-12-19

Similar Documents

Publication Publication Date Title
US8112340B2 (en) Collateralized debt obligation evaluation system and method
WO2016042398A1 (en) System and method for modeling and verifying financial trading platforms
JP5537454B2 (ja) 証券売買模擬システム
JP2008129984A (ja) 取引支援システム、取引支援プログラム及びその記録媒体。
JP2007233944A (ja) 商品販売予測システム
JP2000353196A (ja) 有価証券トレード支援システム
JP5099419B2 (ja) 約定シミュレーションシステム及びプログラム
WO2017110171A1 (ja) 取引管理システム、取引管理方法及び取引管理プログラム
US20120041862A1 (en) Computerized marketplace for ratio based derivatives
US20130317889A1 (en) Methods for assessing transition value and devices thereof
JP6632180B1 (ja) 株式投資のための情報処理装置及び情報処理プログラムを記録した記録媒体
KR20170084973A (ko) 시세 데이터를 이용한 증권 시장의 거래 주문 검증 방법, 장치 및 시스템
JP3955802B2 (ja) 約定情報提供装置、約定情報提供方法および約定情報提供プログラム
JP5675402B2 (ja) 株売買シミュレーションシステム及び株売買シミュレーションプログラム
JP2006189995A (ja) 指値注文の執行確率算出システム及び執行確率算出プログラム
JP6230315B2 (ja) マーケットインパクト減衰係数算出装置、マーケットインパクト減衰係数算出方法、約定シミュレーションシステム、及び約定シミュレーション方法
KR101478534B1 (ko) 코치 트레이더 추종을 위한 클라이언트 주문 시스템 및 그 제공방법
JP2010134753A (ja) マーケットインパクト推計システム
WO2024024304A1 (ja) 売買取引支援装置及び方法
TWM586412U (zh) 金融資料分析系統
JP2006127020A (ja) 進捗管理方法、進捗管理装置および進捗管理プログラム
JP2002073985A (ja) 取引支援方法及び取引支援プログラムが記録された記憶媒体
CN115018400B (zh) 一种风控数据处理方法、装置、电子设备及介质
KR102473175B1 (ko) 점프 모델을 활용한 비지니스 모델의 가치 평가 방법 및 이의 장치
JP6413475B2 (ja) 情報処理装置及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100625

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120224

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120821

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20120912

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120912

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151005

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5099419

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees