FX、225先物、株などで、システムトレード用のシステムを構築する際には、必ずバックテストを行います。
その際にはフォワードテストも同時に行うと思いますが、このフォワードテスト、やり方によっては全く意味が無いものになります。
今回はこのあたりについて書いてみたいと思います。
・バックテストとは
バックテストとは、ある決められたルールでトレードした場合に、どの程度利益が得られ、また損失を蒙るのかを、過去のデータ(数年分から数十年分)を用いて検証を行う作業です。
これはシステムトレードだけで無く、裁量トレードでも、その手法を継続的に行えば儲けられるのか否かの確認を行うためにも非常に重要です。
バックテストを行う事で、そのルールに対するパフォーマンスの数値(勝率、最大ドローダウン、プロフィットファクター、ペイオフレシオ、シャープレシオ)などが明らかになり、トレードする際に覚悟を決める材料になります。
もちろん、バックテストで良い結果を得られた取引ルールを採用し、実際のトレードを行う事となります。
・フォワードテストとは
バックテストを行って良い結果が出た場合に問題になるのが、そのルールについて「この先も継続して利益を得ることが出来るのか?」という事です。
そして一番の問題点は、テクニカル分析を用いたなら、パラメータについて過剰最適化を行っていないかどうかです。
過剰最適化を行ったシステムは、ほとんど間違いなくトレードを開始してすぐにドローダウンします。
また単純なルールでも、そのルールの優位性(銘柄のクセ)はバックテストの期間しか有効性が無いならば意味がありません。
そんな際に行うのがフォワードテストです。
しかし注意すべきは、意味のないフォワードテストはやってはいけません。
フォワードテストには2種類あり、
1.過去データの前半でバックテストを行い、後半を使ってフォワードテストを行う
2.直前の過去データでバックテストを行い、実トレードは行わずに一定期間システムの損益をウォッチングする
方法です。
2番目のフォワードテストは正しい方法です。
しかし1番目のフォワードテストは意味がありませんのでやめるべきです。それはなぜなのでしょうか?
1番目のフォワードテストの概念図は下記の通りです。
過去のデータを分割し、バックテスト(青線部)で良いものを見つけ、残りの過去データでフォワードテスト(赤線部)を行って確認します。
もしフォワードテストを行ってダメな場合は、青線部を最適化し直し、赤線部(フォワードテスト)が良くなるように、ひたすらパラメータをいじる行為を繰り返すことになります。
その場合、結局はフォワードテスト部も良くなるように最適化しているだけなので、過去データをまとめて、良い結果が出るように最適化してルールを作成しているのと同じことになります。
この様な方法で作成したトレードルールでは、実トレードを行ったとたんにドローダウンすることになるでしょう。
どちらにしても、過剰最適化されたシステムでは、未来の相場に対応できません。
バックテストとフォワードテストを行う場合、正しい方法で行うように致しましょう。