バックテストの方法

\ あなたにピッタリの銘柄がみつかる /

みんかぶプレミアムを無料体験!

プランをみる

お知らせ

読み込みに失敗しました。

しばらくしてからもう一度お試しください。

重要なお知らせ すべて見る

MDRさんのブログ

最新一覧へ

« 前へ53件目 / 全339件次へ »
ブログ

バックテストの方法

MDRの芝一樹です。
前回はパフォーマンスチューニングのためにバックテストを何度も繰り返すことは誤りであるということをお伝えしました。このようなバックテストを行ってしまうとテストデータに対して過に剰最適化(カーブフィッティング)されてしまい、実際の相場で投資結果を出せない売買規則が出来上がってしまう危険性があります。今回はこのような危険を回避するためのバックテスト方法についてお伝えしたいと思います。
まずはじめにお断りしておかなければならないのは、パフォーマンスチューニングのみを目的としたバックテストに問題があるのであって、バックテストプロセスの中で多少のチューニングを行う分には問題はありません。例えば「終値が移動平均線より下にあるときに買えば優位性のあるトレーディングができる」という考えに基づいてテストを行う場合、ざっくりとどのくらいの乖離率だと優位性があるのかをバックテストによって確認する、ということであれば問題はないのですが、1%刻みですべてバックテストを行い、最もパフォーマンスの高い数値をトレーディングに採用する、ということは間違っています。
本当に優位性のあるトレーディングアイデアであればそんなに細かなチューニングを行わなくても十分に市場で効果を発揮してくれます。この意味においては上記の例のようなバックテスト手法は時間の無駄であると言うこともできるでしょう。とはいえ、過剰なチューニングと適度なテストというのははっきりとした線を引くことができないために、どこまでチューニングをするか、ということは難しい問題ではあります。
バックテストに対してフォワードテストという手法を見かけますが、これはとても有効な手段です。フォワードテストとは過去データではなく、売買基準を確定させた上で、実際の相場のデータを使って試験を行うことを言い、バックテスト時には使わなかったデータをもとに試験を行うことになるため、そのシステムの実際の能力を知ることができるのです。どんなに最適化されたデータもフォワードテストを行えば簡単に化けの皮をはがすことができるため、前出の適切なバックテストと過剰なチューニングの境目はどこかという問題を気にすることなく、効果的な試験を行うことができるのが最大の利点です。
ただ、フォワードテストは大きな問題もあります。それは、フォワードテストを行うと作ったシステムをすぐにトレーディングで使うことができない、ということです。フォワードテストは「バックテストには使っていないデータ」を使って試験をすることでカーブフィッティングの罠を検出する手法ですが、実際にこれを行おうとすると数か月単位の時間がかかってしまうのです。
ところがバックテストでカーブフィッティングの罠を検出する方法が一つだけあります。それは、「過去のすべてのデータをバックテストには用いない」という方法です。こうすることによって「テストには使っていないデータ」を用意でき、フォワードテストをするのとほぼ同じような効果を得ることができるのです。
具体的には、2000年から2010年までのデータをバックテストとチューニングに使い、2011年以降のデータはとっておいて最終試験でのみ使う、というような方法です。最終試験の信頼性を高めたければ2009年以降のデータをとっておく、というように疑似フォワードテスト用のデータ期間を長くすれば良いでしょう。
他には、2000年以降本日までの全期間を対象にバックテストを行うものの、ランダムで1/3程度のデータをバックテスト対象から外しておいて、最終試験ではそれらの銘柄を対象に試験を行う、という方法も有効です。
こうすることによって疑似的に(バックテストでは使っていないデータで試験をする、という意味での)フォワードテストを行うことができ、そのシステムの信頼性を飛躍的に高めることができるのです。
コメントを書く
コメントを投稿するには、ログイン(無料会員登録)が必要です。

ネット証券比較

みんかぶおすすめ