バックテストのやり方(実践編)|FXの勝てるEAで不労所得
バックテストのやり方(準備編)で準備が出来ましたらいよいよバックテストですね!
(実践編)ではストラテジーテスターの使い方を説明していきます。
是非マスターしてバックテストを使い倒して勝てるEAの設定値を自身で導き出してくださいね!!
スマホでは画像がどうしても見にくくなってしまいます。
PCで見ることをおすすめします。
ストラテジーテスターの使い方
バックテスト専用のMT4を立ちあげたら赤枠の「ストラテジーテスター」のボタンを押すとストラテジーテスターの画面が表示されます。
※上部タブ(ツールバー)の「ツール」→「ストラテジーテスター」をクリックしても表示されます。
※セッティングタブで開かれている事を確認してください。
ストラテジーテスターのセッティング
EAのバックテストをする為のセッティングをしていきます。
バックテストは、このテスターウィンドウ内で全ての操作を行います。
いろいろと設定できる項目はありますが、基本的によく使用する項目の説明です。
- エキスパートアドバイザーになっている事を確認してください。
- EAの選択をします。
- バックテストをしたい通貨ペアの選択をします。
- バックテストの精度を選択します。
- バックテストする時間足を選択します。
- バックテストするスプレッドを入力します。
- バックテストを行う期間を指定します。
- EAの動作を視覚的に確認するか選択します。
- EAのパラメータを設定をします。
- バックテスト後にEAのチャート上の取引履歴を確認します。
- 最適化する場合にチェックを入れます。
- バックテストをスタートさせます。
「通貨ペアのプロパティ」はスプレッドやストップレベル、スワップポイント等確認できますので必要に応じて利用してください。
「エキスパート編集」はMetaEditarを起動させてEAのプログラムの修正等を行います。ご自身で作成したEAでなければ使用する事はありません。
EAのバックテストをする基本的な流れ
流れとしては、
上画像の状態でAでバックテストするEAを選択します。
Bでバックテストをしたい対象の通貨ペアを選択します。
Cで
- 「全ティック(利用可能な最小時間枠を使いすべてのティックを生成する、最も正確な方法」
- 「コントロールポイント(ひとつ下の時間枠を使ったおおまかな方法。結果はあまり信頼性はない」
- 「始値のみ(最も早い方法。バーの初めにしか動かないEA向け」
の3種類から選択します。
モデルは基本的に全ティックを選択して正確にバックテストを行います。EAが始値で動くタイプのものであれば、「始値のみ」でも全ティックでテストした場合とほぼ同じ結果が得られ、テストも早く終了します。バックテストするEAのロジックが不明な場合は「全ティック」でテストします。コントロールポイントは正確性に欠けるため使用しません。
Fバックテストする期間を指定します。
※ヒストリカルデータ内の期間で指定する事をおすすめします。
Dバックテストする時間足をします。
Eスプレッドを指定します。
※スプレッドは「通貨ペアのプロパティ」を参照してください。少し広めに設定する事をおすすめします。
スプレッドはPoint単位になっていますので、例えばスプレッドを「1.5pips」でテストしたい場合は「15」と直接入力します。「0.5pips」の場合は「53」と入力します。基本的に僕がバックテストする場合は、より悪条件を想定してバックテストする様にしています。例えば、ブローカー発表の対象通貨ペアの平均スプレッドが「1.5pips」であれば、そのままの「15」でテストするのではなく、「20〜25(2.0〜2.5pips)」位でバックテストしています。
※1pips違うだけでバックテスト結果は結構変わりますので色々試してくださいね。
H「エキスパート設定」は、EAによって設定するパラメータは様々なので、そのEAを開発者の取扱説明等を参考に設定します。また、数値を変更することでパフォーマンスが変わるので色々試してみてください。
EAの開発者によりパラメーターを全く変更できないようになっていたり、バックテストが出来ないようにプログラムしているEAもありますので、バックテスト出来ない場合は諦めるしかありません。
Gの「ビジュアルモード」は実際にチャートが開きEAがどのように取引しているのか視覚的に確認できます。
※期間の設定を短くしてどんなポジションの取り方をしているのかを確認できます。
J「最適化」はいちいち数値を変更してバックテストを繰り返さなくても数値を指定することで最適化して最適化結果を確認することが出来ます。
設定が終わりましたら「スタート」をクリックしてバックテストを開始します。
以上がバックテストをする為の主な流れです。
まずは触って覚えてください。
文字で書くとややこしいですが慣れると簡単ですので、挑戦してうださいね!!
エキスパート設定について
エキスパート設定
「エキスパート設定」のボタンを押すとEAを設定する画面が表示されます。
画面には「テスト設定」「パラメーターの入力」「最適化」のタブがあります。
まずは初期証拠金の設定とテスト対象通貨とポジションを設定します。
上画像ではテスト対象通貨をJPYと直接入力しています。
その為初期証拠金の150000は15万円と言う事になります。
通常MT4でバックテストできる基本の通貨は「USD、EUR、GBP、CHF」ですが、「エキスパート設定」→「テスト設定」タブに直接「JPY」と入力すると日本円でバックテストすることが可能です。そうすることで日本円のトレード結果が算出されます。
「ポジション」の設定は
- Long&Short
- Long only
- Short only
を選択する事が出来ます。
※LongとShortを個別にテストする時などに使用します。用途に合わせて選択してください。
「最適化」の設定は変更しなくても大丈夫です。
パラメーターの入力
「パラメーターの入力」タブをクリックして開くと下画像のような表示になります。
※EAにより内容は異なりますが、基本的に「値」の列の数値等を変更します。
変更を完了しましたら「OK」をクリックして閉じてください。
EAによっては通貨ペアや時間足によって最適化されたパラメータ値を登録した「セットファイル(○○○.set)」というファイルが用意されている場合があります。
その場合は「パラメータの入力」タブの「読み込み」から指定された「セットファイル」を読み込みます。
「読み込み」内のフォルダに希望の「セットファイル」が無い場合はダウンロードした時のフォルダからMT4の「データフォルダ」→「MQL4」→「Presets」にsetファイルをコピーペーストすれば表示されるようになります。
※もしコピーペーストをしても「読み込み」内のフォルダに「セットファイル」が表示されない場合はMT4を再起動してみてください。
詳しくはこちらを参照してください。
↓↓↓↓↓
「最適化」タブは基本的に使わないので無視して大丈夫です。
バックテストに慣れたら最適化タブの項目も色々触って試してみたら良いです。
バックテスト開始
それではいよいよバックテストスタートです!!
各項目を確認して「スタート」をクリックするとバックテストが開始されます。
今回は例として「LRS ver.9 EURUSD M15」を「全ティック」 「スプレッド」(20(2pips)) 「15分足」 「0.1ロット」 「証拠金100万円」でバックテストしてみます。
期間は2015年1月1日から2019年10月25日(約4年と10カ月)です。
「スタート」をクリックすると「使用中 M1....」と表示されデータ収集中を意味します。
一度右端までバーが達した後再度右からバーが動き出します。
バーが右端まで到達するとバックテストの終了したというアラームが鳴ります。
バックテストが開始されるとプログレスバーで進行状態がわかるようになっています。EAのバックテストにかかる時間は、PCの性能やEAによってかなり違っています。数分で終わるEAから数十時間かかるEAまで様々です。僕は現在Windows7でバックテストしていますのでかなり時間がかかります。他の作業が出来なくなります。メモリー不足ですね..笑
MT4を立ち上げて始めてバックテストする時は「セッティング」「操作履歴」のタブだけでしたが、バックテストが完了されると「結果」「グラフ」「レポート」のタブが追加されています。
バックテストが完了しましたら「結果」「グラフ」「レポート」のタブを切り替えてバックテスト結果を確認します。
バックテスト結果を確認
バックテスト「結果」タブ
「結果」タブでは取り引きした詳細なデータを確認する事が出来ます。
※日付の列を上から下まで確認して、指定した期間のバックテストが実行されているか確認してください。
バックテスト「グラフ」タブ
「グラフ」タブでは収益がどのように推移していくかを確認できます。
バックテスト「レポート」タブ
「レポート」タブでは取引結果の詳細なデータを確認する事が出来ます。
※ここが一番重要です。このデータを確認してEAのセッティングしたり期待値を確認します。
バックテストが完了しましたら「レポート」タブで「モデリング品質」と「不整合チャートエラー」の数値を確認します。
また「テストバー数」や「モデルティック数」を確認して下さい。
※この数値があまりにも少ない場合はヒストリカルデータが破損していたり上書きされていたりして正確なバックテストが出来ていないと判断できます。
モデリング品質はほとんどが「90%」です。不整合チャートエラーは「0」になっていれば、正常にバックテストされていることが確認できます。
※僕は不整合チャートエラーの数字が小さければあまり気にしていません。
モデリング品質について、5分足以上のバックテスト結果は、正常にテストが完了すれば「90%」になりますが、1分足のバックテストの場合「25%」が上限になります。また「n/a」という表示になっていたりします。
不整合チャートエラーについて、赤文字で0以外の数字が出た場合は、何らかの要因でヒストリカルデータをうまくインポートできていないか、あるいはMT4でオンラインチャートを表示したりそのまま作業を進めていて、ヒストリカルデータが現在のチャートに自動的に書き換えられてしまった可能性があります。この場合は、データフォルダからhstファイルを削除して、データのインポートからやり直す必要があります。
※チャートを開く時はオフラインチャートを開く事をおすすめします。
「レポートの保存」の方法
下画像上で右クリックすると「レポートのコピー」と「レポートの保存」と言うウインドウが開きます。
「レポートの保存」をクリックすると保存先と保存名を入力して保存してください。
するとレポートがブラウザで表示されます。
チャートを開いて取引履歴を確認
「セッティング」タブを開いて、「チャートを開く」をクリックします。
そうするとチャートが表示されます。
EAがどのようなトレードをしているのか是非確認してください。
バックテストの「最適化」をする方法
「セッティング」タブを開いて、「エキスパート設定」を開きます。
今回は「LRS ver.9 EURUSD M15」の「Buy_takeprofit」と「Buy_stoploss」の最適化を実践したいと思います。
上画像の赤枠のところを編集します。
「スタート」の列に10pips、「ステップ」の列に1pips、「ストップの列に100pipsと入力してみました。
※10pipsから1pipsごとに100pipsまでバックテストしてどのような結果になるのかをテストします。
入力が終わりましたら最適化したい項目にチェックが入っている事を確認して「OK」をクリックしてウインドウを閉じます。
続いて「セッティング」タブの画面で「最適化」にチェックを入れて「スタート」をクリックします。
そうするとバックテストのときと同様にバーが動き出して最適化が始まります。
※最適化する項目が多い場合や「全ティック」で最適化する場合PCのスペック等にもよりますが物凄く時間がかかります。僕は「始値のみ」で最適化結果をざっくりと見て良さそうなものを都
度全ティックでバックテストをするようにしています。
※最適化に時間を要する為、今回は「始値のみ」で最適化しています。
上画像の様に最適化が始まりました。
すると下のタブの所に「最適化結果」と「最適化グラフ」というタブが追加されます。
「最適化」が終わりましたらアラートがなりますので、「最適化結果」と「最適化グラフ」をチェックしてみましょう。
「最適化結果」の確認
「最適化結果」のタブをクリックすると最適化結果が表示されます。
「最適化グラフ」を確認
「最適化グラフ」のタブをクリックするとグラフが表示されます。
※あまり見ても意味がありませんが参考程度に確認してください。
最適化結果からパラメーターに反映させる方法
「最適化結果」の中から良さそうな値の物(青枠)を選びダブルクリックします。
そうすると「セッティング」画面に戻ります。
「エキスパート設定」をクリックして数値が変更せれているか確認して「OK」をクリックして閉じます。
後はバックテストして結果の違いを確認します。
レポートを見ると買いポジション勝率が36.17%だったり純益が減っていたりといろいろ分かります。
この作業を繰り返して最適な結果を導き出したり数年過去のバックテストで修正して未来の相場で再現性を上げたりします。
まとめとして
バックテストをマスターする事で勝ち続けることが出来ないEAを勝ち続けられる様にその時その時の相場に合わせて最適化することで勝てるEAにすることが可能になる可能性があります。
是非バックテストを使い倒してEAトレードを楽しんでくださいね!!