バックテストのやり方(準備編)|FXの勝てるEAで不労所得
FXのEAでの運用は過去とは言えバックテストをすることが大切です。
過去検証により稼働するEAがどれほどの期待値またはリスクがあるかを見るために絶対に必要ですので必ずバックテストはしましょう!
無料で手に入れられるEAでも自分でバックテスト出来ないEAもあります。
「バックテスト出来ません」と言うようなプログラムを入れたEAだとバックテスト出来ません。
配布元や販売元がバックテストをされたら困る結果になるからでしょうね。
バックテスト出来ないEAは基本使わない方が良いので最低限のバックテストの仕方はマスターしておきましょうね(^O^)/
永遠と勝ち続けられるEAなんてそうは無いです。
未来の相場で勝てなくなれば直近の数年でバックテストをして設定値を修正していけば相場に対応していけますので是非覚えてください。
スマホでは画像がどうしても見にくくなってしまいます。
PCで見ることをおすすめします。
バックテストをする方法
バックテストの前にまずMT4上での事前準備が必要です。
その後ヒストリカルデータを入手します。
ヒストリカルデータをインポートし、スクリプトを使って各時間足を自動生成しないといけません。
ここまで出来てやっと準備完了です。
この流れを説明していきますね!
バックテスト専用のMT4をダウンロードします。
ダウンロードの仕方はこちらを参照してください。
バックテストをする為のMT4の設定
バックテストをする前にMT4の設定を変更します。
デフォルトの設定のままでは、バックテストできる期間は約1年と5カ月くらいしかテストが出来ません。
過去10年など長期間のテストを行うことが出来ません。
バックテストは長期間でテストをして稼働するEAが未来でも再現性があるのかを判断する為に絶対に必要です。
短期間でしたらいくらでも成績の良いデータを作れますが過去10年以上となると右肩下がりの破産するEAだったりします。
ですので是非この設定をしてバックテストを使いこなせる様に頑張って下さいね!
それではMT4の事前設定を説明していきます。
上部タブの「ツール」→「オプション」→タブの「チャート」を選択します。
「ヒストリー内の最大バー数」と「チャート内の最大バー数」に入れれるだけ「9」を入力し、その後「OK」をクリックします。
確認のためにもう一度「ツール」→「オプション」から「チャート」タブを選択して、設定が下画像のように変更されているか確認してください。
画像のように、「ヒストリー内の最大バー数」と「チャート内の最大バー数」のどちらも「2147483647」になっていればOKをクリックして閉じてください。
バックテストで使用するヒストリカルデータは1分足を使って各時間足を生成するので、設定していないと現在から過去約1年半位のバックテストしか出来ません。必ずこの設定を終わってから次に進んでください。
それでは、次の設定です。
先ほどと同じように「ツール」→「オプション」と開き、「エキスパートアドバイザ」のタブを選択します。
下画像の赤枠の項目にチェックしてOKをクリックして閉じます。
これらは許可していなくてもバックテストできるEAの方が多いですが、EAによってはDLLやWebRequestを使用するものもあるので、初期設定のタイミングで事前にチェックを入れて事をおすすめします。
次に、MT4の上部ツールバーの「表示」→「ストラテジーテスター」をクリックします。
そうすると、MT4の下段にテスターウィンドウが開きます。
バックテストはこのテスターウィンドウ内で行います。
※僕はバックテスト専用にしていますのでいらないものはすべて閉じてシンプルにしています。
MT4でEAのバックテストをするための初期設定は以上で完了です。お疲れ様です!!
ヒストリカルデータを入手する方法
長期間のヒストリカルデータを入手することで長期間のバックテストをすることが可能となります。
無料で入手する方法は検索すれば出てきますが、一般的な入手方法で説明しますね。
海外のFXブローカーの「FXDD」のヒストリカルデータのダウンロードページから入手します。
上画像に飛びますので、下へスクロールして赤枠で囲んだところにある希望する通貨をクリックするとヒストリカルデータのダウンロードが始まります。
例えば、GBP/JPYをクリックすると、ウィンドウが開いてGBP/JPY.zipのダウンロードが始まります。
このzipファイルの中に「.hst」ファイルが入っており、それがGBP/JPYの1分足ヒストリカルデータファイルになります。
ダウンロードできる期間は通貨ペアによって異なり、長い通貨ペアだと2005年辺りからのデータがあります。
次にダウンロードした「.hst」ファイルをMT4にインポートします。
ヒストリカルデータをMT4にインポートする方法
今回は例としてGBP/JPYをインポートしていきます。
MT4の上部タブの「ファイル」→「データフォルダを開く」をクリックします。
データフォルダが開きます。
フォルダ内の「history」フォルダ→「XMTrading-Real 11」フォルダを開きます。
※「XMTrading-Real 11」フォルダは、使用するブローカーによって異なり、アクセスしているブローカーのサーバーの名前になっています。
※あなたの使用しているブローカーのサーバー名を選択してください。
フォルダ内には既に「GBPJPY○○.hst」というファイルがいくつかあります。この「○○」には時間足を表す数字が入ります。1分足なら1、1時間足なら60、日足なら1440、といった具合です。今回はGBP/JPYをインポートするので「GBPJPY○○.hst」を全て削除します。
※上画像はすでにインポートしてありますので最初の画面とは異なりますが、インポートしたい通貨の「.hst」ファイルを削除して下さい。
ここでMT4を閉じて再起動してください。
MT4が立ち上がりましたら上部タブの「ツール」→「ヒストリーセンター」をクリックします。
そうするとヒストリーセンターウィンドウが開くので、そこからインポートする通貨の今回は「GBPJPY」を探してダブルクリックします。次に開いたツリーから「1分足(M1)」を選択してダブルクリックします。
この時にチェックするところは赤枠で囲んだ「デー・ベース:2062レコード」の数字です。この数字は現在MT4内に何本のUSD/JPYの1分足データがインポートされているかを表示しています。
今回の場合だと「今は2062本ですよ!」ということです。
後ほど、インポートが間違いなく出来たかの確認する際に現在より増えたかどうかを確認しますので、現状の本数をメモしておいてくださいね。
続いて「インポート」をクリックします。
インポートウィンドウが開くので「参照」をクリックします。
「ヒストリカルデータを入手する方法」で入手したデータの保存先を参照して「開く」をクリックしてください。
※参照したいファイルが表示されない場合は「All Files」をフリップダウンから選択すれば表示されると思います。
「開く」をクリックするとデータがインポートされます。
長期間のデータがインポートされた事を確認して「OK」をクリックします。
そうすると、先ほど確認した「デー・ベース:2062レコード」の数が圧倒的に多くなっていれば成功です。
お疲れさまでした!!「閉じる」をクリックしてヒストリーセンターウィンドウを閉じてください。
めんどくさいですが他の通貨も同じようにインポートすれば長期のバックテストが可能になります。
ですので最初に「.hst」ファイルをすべて削除しておいてバックテストしたい通貨をすべてインポートする事をおすすめします。
数ヶ月経てばFXDDのヒストリカルデータも更新されていますので、3ヶ月に1回くらいはインポートしなおす事をおすすめします。
各時間足をスクリプトを使って自動生成する方法
1分足データを基に各時間足を自動生成するスクリプトをダウンロードします。
もう何度もやって覚えていると思いますので文字のみで失礼します..笑笑
MT4の上部タブの「ファイル」→「データフォルダを開く」→「MQL4」→「Scripts」のフォルダに、ダウンロードした「period_converter_ALL.mq4」コピペで入れます。
「period_converter_ALL.mq4」がフォルダに入っていることが確認できましたら右上の×印でフォルダを閉じてください。
ここでMT4を閉じて再起動してください。
MT4が立ち上がりましたら上部タブの「ファイル」→「オフラインチャート」をクリックします。
オフラインチャートリストが開き、先ほどインポートしたGBP/JPYの1分足が「GBPJPY,M1」と表示されているので、「GBPJPY,M1」を選択して「開く」をクリックします。
MT4のウィンドウ内にインポートしたGBP/JPY 1分足のオフラインチャートが開きます。
上部タブの「表示」→「ナビゲーター」を開いて、そのオフラインチャートに左のツリーから「スクリプト」の中の「period_converter_ALL」をドラッグ&ドロップします。
すると生成が開始されます。
5分足から順番に月足まで生成されていくので、この表示が消えるまでしばらく待ちます。
チャート左上の生成中の表示が消えたら生成完了です。
先ほどのオフラインチャートリストを表示すると、先ほどは「GBPJPY,M1」しか表示されていませんでしたが、「USDJPY,Monthly」までの時間足が生成されていることが確認できます。
表示されていない場合はMT4を再起動してください。
バックテスト専用のMT4口座からログアウトする方法
バックテスト前の最後の準備として、MT4 を再起動してログアウトする事をおすすめします。
各時間軸のデータをMT4 に反映させた後、一旦MT4 を閉じて再度起動します。
MT4が再起動後したら、「ファイル」→「取引口座にログイン」をクリックします。
ログインIDは変えずパスワードのみを消去して「ログイン」ボタンを押します。
するとコモンエラーとなりログインに失敗します。
ログインを失敗させる理由
ログインを失敗させる理由はFX会社への通信を切るためです。
MT4がオンラインのままでバックテストを行うと、オフラインデータにオンラインデータが上書きされてしまう場合があります。
オンラインデータが上書きされると、「FXDDのデータ(または他のヒストリカルデータ)」と「使用しているFX会社の為替データ」が混在してしまいます。
例えば「1分足と1時間足で為替レートが異なる」という事が起こりますので「不整合チャートエラー」が発生します。
このような理由の為、バックテスト専用の口座はログアウトしてバックテストをする事をおすすめします。
また、バックテスト専用だと取引をしないので口座が凍結する恐れがあるので、使用するFX会社の口座凍結条件等を確認しておいてください。
口座維持手数料を支払う為に入金しておいても良いですし、1〜2ヶ月おきにトレードをするか、入出金のみ行っていれば口座凍結は無いかと思います。
お疲れ様でした(^O^)/
これで、MT4でEAをバックテストするための準備が整いましたね!!
次はバックテストのやり方実践編ですね。