この記事では、カーブフィットを除去したリスク評価について解説します。
前回の記事で、資金管理の考え方/評価方法について、解説しました。
その中の計算過程で、一つ問題がある事を指摘しました。
それが、バックテストの中にカーブフィットの影響が含まれている点です。
いくら正確にリスク評価を行っても、バックテストにカーブフィットの影響が含まれていると、リスク評価結果は信用できません。
どんなに、気を付けてシステムを構築しても、カーブフィットは含まれてしまいます。
リスク評価を行う前に、カーブフィットの影響を取り除くようにしましょう。
Contents
カーブフィットを除去したリスク評価
カーブフィットを取り除く評価方法を3つ紹介します。
(1)BRAC(Build Rebuild and Compare)<参考:トレードシステムの法則 : 検証での喜びが実際の運用で悲劇にならないための方法>
(2)ウォークフォワード分析 <参考:システムトレード 検証と実践>
(3)パラメータの組み替え <参考:伝説のトレーダー集団 タートル流投資の魔術>
BRAC(Build Rebuild and Compare)
概要:全検証期間で最適化を行った結果と、1年だけ除いた期間で最適化を行ったパラメータで除いた1年を評価した結果を比較する。
比較した1年の結果が同等であれば、カーブフィットの影響は小さいと判断する方法
計算例:下図の通り2005~2019年を検証期間とする。
①構築 :2005~2019年で最適化を行う。
②再構築:2005~2018年で最適化を行う。(1年間を取り除く)
③再構築:2019年を②のパラメータで評価する。
④比較 :①と③の2019年の結果を比較する。
⑤判定 :①と③の結果が同等であれば、カーブフィットの影響がほとんどないと評価できる。(書籍に判定基準の記載なし)
長所:計算が簡単
短所:評価結果が、カーブフィットの影響が『ある』か『ない』かの2つ。定量的な評価が難しい
取り除く1年を少しずつズラせば、次に紹介するウォークフォワードのような評価ができるかも知れない。
ウォークフォワード分析
概要:適当に決めた期間で最適化し、その最適化パラメータで次の年を評価する。
1年ずつズラす事で長期間のアウトオブサンプルテストができる。
計算例:下図の通り2005~2019年を検証期間とする。
①2005~2009年で最適化を行う。その最適化パラメータで2010年を計算する。
②2006~2010年で最適化を行う。その最適化パラメータで2011年を計算する。
・・・・
⑩2014~2018年で最適化を行う。その最適化パラメータで2019年を計算する。
⑪2010~2019年(黄色箇所)の最適化していないテスト結果(カーブフィットしていないテスト結果)が作れる。
長所:長期間のカーブフィットを除去したテスト結果を作ることが出来る。
短所:
・全期間で検証する事が許されておらず、短期間で検証することになる。その為、検証のデータが少ない。
・様々なウォークフォワードテストのパターンがあり、難易度を自由に決められる。
・上記の緑色の期間/黄色の期間の長さを自由に変える事ができる。
・下図のように、少しづつ検証期間を長くすることもできる。
(十分なデータを使う事ができるので、個人的にはこちらの方がいいと思う)
・ポイントは、緑の期間が評価に値するだけの十分なデータ量を有する事だと思う
例えば、検証回数5000回以上必要と考えるのであれば、5000回となる期間(例えば下記④)から開始する。
検証回数については、右の記事を参照 (FXの過去検証に必要な回数 )
パラメータの組換え
概要:カーブフィット対策の一つであるパラメータ低感度の検証を利用する。(記事:カーブフィットと対策(50冊の書籍から分析))
パラメータを20~25%変化させて、その最適化カーブ下にあることが将来起こり得ると考える
計算例:下図の通り2005~2019年を検証期間とする。パラメータは2つ(A、B)とする。
① 全期間の検証でパラメータを決定する。(A=20、B=50)
② パラメータをランダムに±20%振ったケースを10個用意する。
③ 10ケースのバックテストを実施する。
④ 最大ドローダウン(DD)を基準に、順位付けする。
⑤ 例えば、9番目以下のドローダウンが発生する確率は20%と推定する事ができる。
長所:最大ドローダウンの発生確率の推定も同時に行う事ができる。(ケース数を増やせば、精度が高くなる)
短所:
・ランダムに振るパーセントに正解がない。
・ケース数を増やす事で評価精度を高くする事ができるが、その分だけバックテストの回数を増やす必要がある。
3つのリスク評価のどれを選べばいい?
詳細評価が可能な、『ウォークフォワード分析』か『パラメータ組換え』の2択になるかと思います。
2つの手法を試してみて、しっくりくる方を選択するのが良いと思います。
個人的には、『パラメータ組換え』の一択でした。
『ウォークフォワード分析』は、パラメータの最適化を必要とします。
私は、パラメータの最適化を行いません(相関を意識して開発をしています)。
システム間の相関を含めた最適化工程をウォークフォワード分析に入れると検証が膨大となってしまい、不採用としました。
市販のEAを運用する場合
市販のEAでは、パラメータ調整できない場合があります。
その場合、上記の3つの方法を使う事はできません。
代案としては、他の通貨ペアで評価すると良いと思います。
5通貨ペアでバックテストを行えば、5つの結果を得る事ができます。
当該通貨ペアはカーブフィットが含まれていると考え、残りの4通貨ペアの結果が将来発生しうると考えて評価する事も可能です。
まとめ
この記事では、カーブフィットを除去したリスク評価として、3つの方法を紹介しました。
(1)BRAC(Build Rebuild and Compare)<参考:トレードシステムの法則 : 検証での喜びが実際の運用で悲劇にならないための方法>
(2)ウォークフォワード分析 <参考:システムトレード 検証と実践>
(3)パラメータの組み替え <参考:伝説のトレーダー集団 タートル流投資の魔術>
また、市販EAでパラメータ調整できない場合は、運用予定の通貨ペア以外の複数通貨ペアの結果をカーブフィット除去後のリスクとして評価する事ができます。
それぞれ特徴があり、自分に合う評価方法を採用してはどうでしょうか?
次の記事
目次