基礎から学ぶシステムトレード
シストレブログ人気ランキング  

シストレ徹底攻略シストレマスターへの道ワールド・トレーディング・エッジ基礎から学ぶシステムトレードシストレニュースシストレツールシストレナビTOPへ

 

2010年10月11日(月)

MT5でバックテストとフォワードテスト [MetaTrader5]



今回は、売買システムのバックテストフォワードテストについてです。

一般に売買システムを過去の相場データ上で動かしてパフォーマンスを見ることをバックテストと言いますが、ここでは、バックテストを繰り返して売買システムのパラメータなどを調整していく過程をバックテストと呼ぶことにします。

パラメータの調整を行う手っ取り早い方法は、パラメータを色々と変えてみてパフォーマンスを見ることです。こうすることで最もパフォーマンスの良いパラメータを求めることができます。いわゆるパラメータの最適化です。

しかし、ここで求めたパラメータはあくまでテストした期間のみで最適なものであって、将来有効かどうかはわかりません。

それを確認するために、決定したシステムを実際に運用していくことをフォワードテストと呼びますが、実際の運用では時間がかかってしまうので、これを過去の相場データで代用する方が簡単です。

そこで、過去の相場データすべてをバックテストに使うのではなく、一部の期間を使ってバックテストを行い、残りの期間の相場データを使ってフォワードテストを行うのです。

MT4でも、パラメータ最適化の機能があるので、ある期間のデータでバックテストを行い、システムのパラメータなどを決定した後に、別の期間でバックテストを行えば、フォワードテストを行ったことになります。

ところが、MT5では、バックテストとフォワードテストを一度に行えるような機能が追加されました。

使い方をみていきましょう。

まず、Strategy Tester のウィンドウで Input タブを開きます。ここには、input キーワード付きで宣言された外部変数が並んでいます。

画像(450x90)・拡大画像(800x160)

ここでは、移動平均の期間であるMAPeriodの値を変えてみることにします。そのために、MAPeriodの変数の左側のチェックボックスにチェックを入れ、Start値、Stop値、Step値を入力します。この例では、5から50まで1刻みで変化させることを意味します。

次に Settingタブに戻って最適化の設定を行います。

画像(450x89)・拡大画像(800x159)

単なるバックテストと違うところは、まず、Date:で期間を指定します。この期間はバックテスト、フォワードテスト全体の期間となります。ここでは、2000年から2009年の10年間としています。

そして、Optimization: でDisabled以外を選択します。選択肢としては

Slow complete algorithm
Fast genetic based algorithm
All symbols selected in MarketWatch

の3つがあります。一番下のAll symbolsというのは、MarketWatchに表示されているすべての通貨ペアでテストを行うというオプションなので、今回は関係ありません。

SlowFast が最適化の方法の選択なのですが、今回のようにパラメータが一つでその組合せも数十個程度の場合、Slowの方で問題ありません。またその右側の選択でBalnce、つまり残高を対象に最適化するのか、BalanceにProfit Factorをかけた値を対象に最適化するのか、などを指定します。ここでは、Balnceだけにしておきます。

さらに Forward: というのがフォワードテストの設定です。No以外を選ぶと、フォワードテストを実行する設定になります。

ここで、1/2、1/3、1/4というのが、フォワードテストの期間で、Date:で指定した期間のうち、最新の1/2、1/3、1/4の期間をそれぞれフォワードテストの期間とする設定です。Customを選ぶと、フォワードテストの開始日を設定することができます。

ここでは、1/2を選んだので、2000から2004年までがバックテスト、2005年から2009年までがフォワードテストの期間となります。

ここまで設定した後、右下のstartボタンを押すと、バックテストとフォワードテストが始まります。Cancelボタンが再びStartボタンに変われば、テスト終了です。

結果は、Optimization ResultsOptimization Graph のタブの画面に表示されます。それぞれの画面で右クリックすると、ポップアップメニューが出るので、そこでバックテストの結果とフォワードテストの結果を切り替えることができます。

下の二つのグラフのうち、上がバックテストで下がフォワードテストのグラフです。1-D Graph を選択したので、横軸がMAPeriod の値縦軸が残高を表しています。

画像(450x79)・拡大画像(800x142)
画像(450x79)・拡大画像(800x142)

上の結果を見ると、バックテストでは5から17までの値で残高の結果がよくなっていますが、フォワードテストではその範囲では結構バラつきがあります。

両方でよい結果になっているのが、11という値ですが、単にそれを選んでしまうと、結局、バックテスト、フォワードテストの全体の期間で最適なパラメータを選んだだけということになるので、やはりカーブフィッティング(過剰最適化)の可能性があります。

このケースでは、パラメータを固定したシステムで長期間運用するには、ちょっと信頼性に欠けるということになります。


>>“基礎から学ぶシステムトレード”全記事バックナンバーはこちらから




Posted at 14時57分


ページのトップへ ページのトップへ

Sponsor AD

2010/10

          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            

プロフィール

豊嶋久道

2003年よりFX取引を始め、システムトレードの道へ。最近ではFXオプション取引も含めたトレーディングシステムの研究を行っている。システムトレードを基礎から正しく理解するための情報を発信する予定。

PHOTO

値動きのヒストグラムからわかること

値動きのヒストグラムからわかること

カテゴリーリスト

最近の記事

検索


当サイトコメントについて

当コメントは情報提供のみを目的として作成されたものであり、投資に関してはご自身でご判断くださいますようお願い致します。また、当資料は著作物であり著作権法により保護されております。無断で全文または一部を転載することはできません。

RSS1.0

[Login]


powered by a-blog
Copyright (C) 2008 PhiConcept,Inc. All rights reserved.