2010年10月18日

バックテストと最適化

商用EAの販売ページには、必ずバックテストの結果が掲載されています。
未来のことは誰にもわからない、そうなると「過去の相場ではどんな成績なのか」が購入の重要な判断材料になってくるわけです。

当然私たち開発チームもバックテスト結果には徹底的にこだわっていますので、その結果は重要なファクターのひとつとして、常に意識しながらEA開発を進めています。

しかし、未来とは逆に過去の相場は誰でも知ることができて、その正確なデータは誰でも簡単に手に入れることができます。
と、いうことはシステムを過去データに強引にフィットさせた、「過去の相場で勝てるEA」を作ることも十分に可能であるということも知っておく必要があります。いわゆる「カーブフィッティング」といわれるものです。

「カーブフィッティング」・・EAをお使いの方であれば、誰でも知っている言葉ですよね^^;

過去にすら勝てないEAが未来に勝てる確率はほとんどないと思いますが、逆に過去に勝てたからといって未来も勝てるとは限りません。
過去データを元に過剰に最適化されたEAは、フォワードで惨敗するケースが多々あります。

すばらしいBT結果のEAを買って、ライブ運用したとたんにドローダウンしてしまった経験をお持ちの方も多いのではないでしょうか?

MetaTraderには、Optimize(最適化)という機能があり、これを使えば、最も成績のよいパラメータの組み合わせを自動で探してくれます。
これは大変便利な機能である反面、比較的簡単にカーブフィッティングできてしまうという怖さも持ち合わせています。また、初級者ほどその数値に振り回されてしまう傾向にあるようです。

私たちはこの時間分散EAの開発において数多くのバックテストを行っているわけですが、実はここまでOptimizeの作業は一度も行っておりません。

もちろん、Optimizeを否定しているわけではありません。
開発当初からプランどおりに作業が進んでいるため、Optimizeを行う必要がないのです。
例えば、テクニカルフィルタの期間や時間軸なども、実装前に想定した値のままで満足のいく結果が出せています。

これは、このEAの強みであると自負しています。
パラメータを最適化しなくても結果が出せるということは、「このロジックにはエッジ(優位性)がある」と言っていいと思われるからです。

今後、このEAもOptimizeを行っていけばさらによいBT結果が期待できるかもしれませんが、現段階で行う予定はありません。
開発の最終段階でロジックの再確認のためにOptimizeすることはあっても、その行為によってはじき出されたパラメータを推奨するのはカーブフィッティングの結果にすぎないと考えるからです。

開発中の時間分散投資EAは、完成まであと残すところ調整レベルのわずかなコード修正のみという状態です。
すでに数種類のセッティングでフォワードテストも開始しておりますので、そのStatementも同時に公開させていただきます。

by<PG-K>
posted by projectv-japan at 00:00| Comment(0) | TrackBack(0) | EA開発
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/41882453

この記事へのトラックバック