バックテストの後にはフォワードテストが大事?・・・それってオイシイの?

会社で恒例の確定拠出年金の運用再検討があった。

信託報酬1.00%の商品って・・・、30年投資して元本の30%もコストで持ってかれるのか。

なぜ、自分で投資システム作ろうとしてるのに、証券会社に報酬払って資産運用させなきゃいけないのか・・・。

そもそも、何を選んだら良いのかベンチマークも無いから個人投資家が全く判断できるはずがない。

例えると、テストを受けたがテストの点数を知らされるばかりで平均点を一切教えられないのと同じ。自分がバカなのか利口なのか、ぜんぜん分からないという事。

確定拠出年金で賢い商品選択は「信託報酬が最安インデックスを分散購入」ぐらいかと・・・。

 

システムトレーダーの最も大きな課題の一つが、「カーブフィッティング(オーバーフィッティング)」です。

「バックテストで良い成績を出していたが、実運用では全くワークしなかった」

という経験のある方は結構多いと聞きます。

ちなみに、「イザナミ」用の販売されている手法の総合ランキング上位4つのバックテスト結果(赤)と実運用結果(青)はどうなってるの??


 

 
はい想像通り。
 

 

みんな仲良く寝ています。


 

 

みんなスヤスヤ、いい気持ち☆

 

 

リアルは怖い・・・・。

フォワードテストの前にカーブフィッティングかどうか考察してみる

取引回数から判断する

こちらは一般的な考えです。

バックテスト段階での取引回数が多ければ多いほど、そのロジックの信用性は高くなります。

これは、サイコロを振った場合に置き換えると分かりやすいです。

普通のサイコロを使った場合、たとえば1の出る確率は6分の1です。

ですが、1回振っただけでは1が出るとは限りません。

1回よりは10回、10回よりは100回と、できるだけ多く振ったほうが1の出る確率が6分の1に近づいていきます。

 

 

システムトレードにおいても、これと同じことがいえます。

つまり、「できるだけ試行回数が多いロジックの方が、より一層過剰最適化のリスクを減らしている」

ということになります。

 

 

このストラテジーは、短期トレードのため取引回数が年に500回程度になっています。

実際にはシグナルはもっと大量に出ているので十分な数かと思います。

統計的アプローチから判断する

このやり方は我流です。

前回「呂布」と名前を付けたフザけた経緯で出来た手法を統計的に分析してみます。

近年のグラフが多少寝ているのが気になるのです。

呂布、お前は何者だ・・・?


 

 

まず、単利の毎年の利益と(オレンジ)、日経平均の上昇率(黄色)を正規化してグラフにプロットしてみます。

「相関係数(ExcelでCORREL関数)」を調べると、次のような値になります。
 

 
利益と日経平均上昇率の相関:0.731423
取引数と日経平均上昇率の相関:0.789412
 

 
相関係数は -1 ~ 0 ~1 の値をとり、-1 に近づくほど強い負の相関であり、0 に近いと相関がなく、1 に近づくほうど強い正の相関となります。

【参考】

0.7~1   かなり強い相関がある
0.4~0.7  やや相関あり
0.2~0.4  弱い相関あり
0~0.2   ほとんど相関なし

このストラテジーは、日経平均の上がり下がりに強い相関をもっていることが分かります。

要するに、日経平均が下がっている時には取引数が減り、上がっている時には取引数が増えます。

【参考】

cosisin氏のスイング逆張り手法   -0.0576
イザナミのサンプル手法       -0.113

 

 

単純に取引数が増えれば利益が上がります。

2008年のリーマン・ショック時には利益が下がっています。

しかし、取引数を減らしたのが原因で、これは日経平均株価が下がっているためです。

 

 

・・・なんだ。呂布、お前分かりやすくてイイやつだな!!
 

 

今年、来年と消費税増税、オリンピック景気終わりで日経平均株価は下がる可能性があります。

ですが、利益がそぐわないからと慌てる事はなくなりそうです。

複利でバックテストをする

バックテストの初期段階では、全体の傾向を確認するために単利でするのが基本となります。

しかし、最終段階では真のドローダウンを見るに、複利でバックテストを行いましょう。

と斎藤正章氏の書籍に書いてあります。

300万円でスタートした場合の複利計算の利益曲線は次のとおりです。

勝率、プロフィットファクター、平均保持日数は単利計算と大差はありません。

前述通り、利益が少ない年は資金が十分あるにも関わらず取引数が少なくなっており、ガタガタしたグラフになってます。

ちなみに、最大ドローダウンは2017年の-11.64%です。

更に、斎藤氏によれば実現損益(決済して確定した損益)だけでなく、含み損益を考慮した「時価」の推移も見る必要があるとの事です。

全くノーチェックでした。数値を確認すると次のようになっています。

最大ドローダウン(簿価) -¥138,624
最大ドローダウン(時価) -¥2,137,728

実際に、単利の結果を見直しても2倍ぐらい時価のドローダウンが大きいです。つまり-20%程度は覚悟が必要ということです。

最大ドローダウン(簿価) -¥134,300
最大ドローダウン(時価) -¥267,400

そういえば、外資ヘッジ・ファンドの社内ルールにも最大ドローダウンの規定がありました。protraに追加実装して検証しよう。

トレードシステムが実際の運用に耐えうるか検証する手法

さて、本題です。

フォワードテスト手法は大きく2種類に分かれます。

ウォークフォワードテスト

ウォークフォワードは、策定したトレーディング戦略の堅牢性を検証し、カーブフィッティングによる損失を未然に防ぐための手法です。

過去のデータを分割し、一部を擬似的に未来のデータとして使用し検証します。

具体的には、

  • ①長期間のデータがある場合は5年程度を一区切り程度に分割する
  • ②一区切りの過去データを5期間に分割する
  • ③分割したデータの内、過去の4期間を使用してトレードシステムの最適化を行なう
  • ④最適化の際に使用していない1期間を当てはめてその期間の損益結果を集計する
  • ⑤データを①で区切っているがある場合はそれぞれのデータで②~④を繰り返し行い検証を行なう

ある一定期間のヒストリカルデータで最適化されたパラメータを用いて、その隣接する別期間のヒストリカルデータでパフォーマンス評価を行い、その前後2つのパフォーマンスを比較することにより、トレーディング戦略の堅牢性を評価します。
 

 

うーん、ディープラーニングなどの場合には効果があるかもしれません。

でも、そもそも手法に最適化処理を施してないからなぁ・・・。

リアルフォワードテスト

未来の日付に対して有効かどうかを検証するために、一定期間を定めて実際にトレードシステムを使用して売買サインの確認を行い、その結果を検証する方法です。

実際の売買を行なわないか又は少量のロットで実際の取引を行なうことで動作テストを兼ねる場合もあります。

簡単に言えば、少額でリアル実践ということです。

どっちが良いの・・・?

私のサイトでちょくちょく引用している専業でシストレで1000万円失った名雲氏のブログに次のように書いてあります。

システムトレードを紹介しているサイトを見ると、よく「カーブフィッティングになっていないか確認するためにフォワードテストをしましょう」という説明を見かける。
しかし、フォワードテストなんて当てにならないと思う。
なぜなら形を変えたバックテストでしかないから。

【引用】自分のシステムトレード失敗談

これは一理あると思ってます。

手数料の計算がない、必ず売買できるとは限らない、廃止された銘柄などの変なトレードが含まれて、古ければ古い時期ほど信頼性は低いです。

なので、少額からリアルトレードをして肩慣らしする方が早道な気がします。
 

 

とは言え、それで失敗した方ですが・・・

 

 

が、考えても仕方がない・・・

いくぞ、実運用へ!

タイトルとURLをコピーしました