Walk Forward Analyzer for MetaTrader

The Walk Forward Analyzer for MetaTrader というソフトが売られているのでリンクだけ紹介しておきます。私自身は使い勝手など確認していないので、興味があって人柱になりたい人はどうぞ..。



ここからは雑談。。
売買戦略(ストラテジ、ロジック..)がブラックボックスなEAの場合、いくら良好なバックテスト結果を見せられても、ほとんどが過剰な最適化の産物にしか見えません..。

↑これは、アカデミックにシステムトレードを研究したい人以外にはお勧めしない「テクニカル分析の迷信(書籍)」にあった図です。
図中のトレーニング用データにおけるパフォーマンスが、MT4のバックテストの成績で、検証用データにおけるパフォーマンスが実運用の結果に相当すると思ってください。だいたい、この図にあるように売買ルールを複雑にしてゆくと、バックテストの成績はどんどん良くなるのに、なぜか実運用での結果は冴えないという...現象がよく起こります。


ルールの複雑さと言う概念が難しくて、単にルールが少なければ良い…というものではなく、ある程度の期間は機能するパラメータを持つ有効なルールから成る複雑さが最適でなくてはなりません。しかし、それは1度のバックテスト結果から読み取るのは困難です。
ルールの有効性を評価する方法としては、ウォークフォワード分析が知られています。これは、ロバート・パルドの「アルゴリズムトレーディング入門(書籍)」に解説があります。
ウォークフォワードテスト」で検索するといろんな記事が見つかります。

↑こちらは「テクニカル分析の迷信(書籍)」からの抜粋です。
簡単に言うと、ヒストリカルデータがある全期間内を細かく分割し、トレーニング用の期間でオプティマイズを実施してパラメータを決定します。検証用の期間ではその最適化したパラメータでテストを行い、得られた成績を評価します。これを複数回くり返し、どの期間で最適化しても直後のテスト期間で良好な成績を収めたら、良好なルールで構成されていると判断します。
(…と書きつつも、WF って、有効なパラメータ値がゆっくりと変化する場合にしか使えないんじゃない?と思うのです...orz


レーニング期間で良好な最適化が得られない時は、その後のテスト期間の成績を無視するという解釈を含めても良いし、全期間をクリアするのは諦めて、自作EAが過去のどの程度の期間に最適化するとどうなるのかの特性を調べるのに使うのも有りだと思います。
ちなみに、ウォークフォワードと言う用語はシステムトレードの分野でしか使われていない気がしますが、統計学にでてくる「交差検定( Cross-validation)」の概念に相当するので、交差検定に使われる手法を調べると別の検証方法が思い浮かぶかもしれません。