概要
突如として湧いて出る怪しげな研究であるが、市場の為替レートの挙動を疑似的にシミュレーションするアルゴリズムを考えたいというものであり、実をいうとこのブログで最もやりたい研究の一つである。こういったものを開発する目的であるが、ルールトレーダーの取引戦略の検証であったり、裁量トレーダーの取引のトレーニングに使用することができると考えられる。アプローチとしては、以下の2つが考えられる。
- 時系列モデルを利用して為替レートのシミュレーションパスを生成する方法
- ヒストリカルデータやその加工データを用いて為替レートのシミュレーションパスを生成する方法
前者はモンテカルロシミュレーション(Monte Carlo Simulation)といわれる手法であり、与えられた時系列モデルのパラメータに従って、コンピュータで疑似乱数を生成し為替レートのシナリオを作成する。もちろん、ヒストリカルデータから時系列モデルのパラメータを推定することも可能であり、そのような手続きは経済学ではキャリブレーション(Calibration)といわれている。時系列モデルのパラメータは外生的に与えることもできるが、キャリブレーションを利用した方が現実に近いシナリオを作成できるだろう。
後者はヒストリカルシミュレーション(Historical Simulation)といわれる手法であり、過去発生した市場レートの挙動をそのままコピーしてシナリオを作成する手法である。もちろん、そのままのデータを適用することはできないため、価格の動きを収益率ベースに直して適用する、パターン認識を利用して直近の挙動に近い挙動をしている期間のデータを適用するなどの工夫が必要である。
また、両者の折衷方法としてブートストラップヒストリカルシミュレーション(Bootstrap Historical Simulation)、あるいは、フィルター付きヒストリカルシミュレーション(Filtered Historical Simulation)といわれる手法も存在する。時系列モデルを使用してシナリオを生成するが、乱数として疑似乱数を使用する代わりに、時系列モデルをキャリブレーションした際の推定残差を乱数として使用することで、時系列モデルを使用しながらヒストリカルシミュレーションを行う手法である。それぞれの具体的な手法については順次紹介していく。
長所と短所
それぞれの手法について長所と短所があり、コインの裏表のようなものと考えることができる。
- モンテカルロシミュレーションはシナリオの数を無制限に増やすことができるが、ヒストリカルシミュレーションはヒストリカルデータの数で生成できるシナリオの数が制限される。ヒストリカルシミュレーションでは網羅的なシミュレーションを行うのが難しく、過去で起こった事象が未来でも起こると仮定するアプローチになる。
- モンテカルロシミュレーションでは現実味の乏しいシナリオが生成される可能性がある。特に多変量(複数の通貨の為替レートなど)のシミュレーションを同時に行う場合ではほとんどのシナリオが現実的ではないものになってしまう傾向がある。ヒストリカルシミュレーションは、過去に実現したシナリオであり生成されるものの多くは現実性のあるシナリオとみることができる。
シナリオの数を無数に増やせるということと現実味のあるシナリオはそれほど多くはないだろう、というところでトレードオフの関係があるということである。
目標
通常の経済理論の紹介の間で不定期にシナリオを生成する各種の手法を紹介していく。筆者の(Java Scriptの)プログラミングの勉強もかねて、各シミュレーターで疑似的に取引をして損益を競うようなゲームやシナリオを生成して出力するような機能を作ってみようと考えている。時間はかかるかもしれないが一応の目標である。