正しいバックテストのやり方?

正しいバックテストのやり方?

MT4を使い始めたばかりの人は、バックテストのやり方を知らないと思いますので今回は、バックテスト用のデータの作成について書いていきます。

EAを使っていく上で、バックテストが正しくできないということは、MT4でEAの検証ができないということなので、絶対に勝てないと思います。

MT4の自動売買をやる人は必ずマスターしてください。

タイトルに(?)が付いているのは、私自身、長年バックテストをやってますが、誰かに教えてもらったものではなく、自分で色々調べて「なんとなく習慣でこうやっている」という部分もあり、ベストな方法と自信を持って言えないところがあるからです。

しかし、ちゃんと「Mismached Charts error」「不整合チャートエラー」の項目は「0」になっているので、結果は問題はなくちゃんとバックテストできているので OK としています。

この「Mismached Charts error」「不整合チャートエラー」ですが、「0」でないとバックテスト自体の信憑性はありません。

よく公開されているEAのバックテストデータを見る時は最低でも、「Mismached Charts error」「不整合チャートエラー」の部分がゼロになっているかは確認した方が良いと思います。

*以下画像はクリックで拡大できます。 では、本題に… まずバックテスト用のMT4をセットします。

普通、リアル稼働しているMT4でバックテストはやりませんよね。それにXMではヒストリカルデータを提供していませんので、普通にダウンロードするとメタクーツ社のデータをダウンロードしてしまいます。

しかしこのデータがダメダメで、あまりあてにならないデータなのです。元のデータがおかしいと、正確なバックテストなどまずできません。

どこのブローカーのデータを使うかなんですが、我々一般人が入手できる無料データでは、正確さで「Alpari」一択だと思います。

フランショックの時に日本法人が破綻して名を馳せたあのアルパリジャパン本家です。

余談ですが、XMと同じでゼロカットと預金保護で非常に良いブローカーだったんですけど、ちゃんと約束を果たしてゼロカットしてお客に追証を求めなかったので破綻してしまいました。

数少ない本当に良いブローカーだったのに残念でたまりません。

まず、アルパリの本家にデモ口座を開いてMT4をダウンロードしてインストールします。

>>こちらからなんとか自力で登録してください。

全部英語ですが、なんとなくムードでわかると思います。もちろん無料です。

どうしても英語がダメで何ともならない人は……….

叱られそうなので、あまり大きな声で言えませんが、実はアルパリに登録しなくてもデモ口座を作って使うことができるんです。( ;´Д`)

以下からアルパリ版MT4をダウンロードして他ののデモ口座と同じようにインストールすれば使えます。

>>アルパリMT4セットアップファイルダウンロードの直リンク


<Alpari MT4インストール方法>

特に難しくはないのですが、念のために書いておきます。

ダウンロードした「Alpari4setup」をダブルクリックしセットアップを始めます。

 

ライセンス同意書の「はい〜」にチェックを入れて「次へ」をクリックします。

 

自動でブラウザが立ち上がりMQL5のページが開きますが、不要なので閉じてください。 インストールが終了したら自動で次に進みますが、進まない場合は「完了」をクリックしてください。

 

どのサーバーに繋ぐかを聞いてきますので、「Alpari-Demo」を選択して「次へ」をクリックしてください。

 

「New Demo Account」を選択して「次へ」をクリックします。

 

必要事項を全て記入してます。 名前やメール、電話番号は全てダミーでOKですが、一応アカウント通貨は「USD」に(バックテストで変更できます)、デポジットは「10000」くらいに(デモ取引をやらない場合は関係ありません)、レバレッジは最大の「1:500」を選択します。 最後のチェックボックスにチェックを入れて「次へ」をクリックします。

 

このようになればインストール成功です。「完了」をクリックしてください。

 

10秒くらいで、でMT4の「Account」のところに先程適当にダミーで入れたユーザー名が表示され、右下の通信状態の表示の数字が動き出したらOKです。 一旦MT4を閉じます。

 

一応、デスクトップに今作ったデモ用のMT4へのショートカットができたか確認しておきましょう。

  これでアルパリのデモ口座とMT4は完了です。 お疲れ様でした。


<バックテスト用データ作成方法>

MT4をインストールしてデモ口座を使えるようにしたら、いよいよバックテストの準備です。

*アルパリにユーザー登録した人は、以後たまにアルパリから「リアル口座作って、入金してよ〜」的なメールが来ますが、無視してください。本気でアルパリにリアル口座を持とうと思ってもたぶん日本在住の日本人は審査に通りません。

あっ、忘れてましたが、「period_converter_ALL」というスクリプトが必要なんですが、使ったことのない人はインストールしておいてください。

当サイトのツール置き場にありますので、ダウンロードして、ファイルメニューからデータフォルダを開き、「MQL4」フォルダから「Scripts」フォルダを開き、その中に「period_converter_ALL」を入れておいてください。次に起動させた時にMT4のナビゲータのスクリプトの中に「period_converter_ALL」があることを確認しておきましょう。


では、MT4を立ち上げて、開いているチャートウインドウを一旦全て閉じて、テストする通貨のウインドウだけを開き、タイムフレームをM1に変更します。

なんでも良いのですが、今回はEURUSDのペアについてテストすることにします。

次に、さっきもやったファイルメニューから「データフォルダを開く」を選択してデータフォルダを開きます。ちなみに、このフォルダのパス(位置)くらいは把握しておきましょう。「ProgramFiles(X86)」の中にあります。 次にデータフォルダの中の「History」フォルダを開き、その中の「Alpari-Demo」フォルダを開きます。

その中にある、通貨ペアの名前のついたファイルを全て削除します。

ここで軽く、MT4を再起動させます。      

次に、ツールメニューから「ヒストリーセンター」を開きます。   バックテストする通貨をダブルクリックして、さらにその中のM1をダブルクリックして選択された状態でダウンロードをクリックします。

ダウンロードには1〜2分かかったと思います。

ダウンロードが終わったら、ヒストリーセンターウインドウを閉じて、MT4を一旦終了させます。

先程の「Alpari-Demo」フォルダの中のデータのうち、「EURUSD1.hst」以外のヒストリカルデータを削除して、MT4を起動させます。

*「EURUSD1.hst」は1分足データです。これだけ残して他は削除です。

MT4が立ち上がったら、唯一開いているEURUSDのM1チャートウインドウの上で右クリックします。

メニューの中から、「更新」を選択します。 更新されるとターミナルの操作履歴に「これだけのバーを更新したよ」って(たぶん)メッセージが出ます。 これでバックテスト用の元データは揃ったのですが、ここから一工夫必要です。    

そのまえに、なんとなくMT4を再起動します。


MT4が立ち上がったら、ファイルメニューから「オフラインチャート」を選択します。

開いたウインドウから、バックテスト用データを作る通貨のM1ファイル(EURUSD,M1)を選択して開きます。

今回はEURUSDです。EURUSDの M1 のオフラインチャートが開きます。

次に、開いたオフラインチャートの上で右クリックして、「更新」を選択します。

しつこくてすいません。またなんとなく再起動します。

最後に、オフラインチャートに「period_converter_ALL」をドラッグ&ドロップして、各タイムフレーム用のデータを自動で作ります。 これで、バックテストに使うEURUSDのデータは出来上がりました。

最後に、メニューの「ツール」から「オプション」を開き、チャートタブを選択します。 左図のように、一番下の「ヒストリー内の最大バー数」と「チャートの最大バー数」のウインドウにて入力で「9」を15〜6ケタ(全部)入力して「OK」をクリックします。

で、もう一度今のウインドウを開いて見ると、左図のようになっていると思います。 仕上げに一発再起動して完了です。

お疲れ様でした。これで準備完了です!!

んんん〜、書いて見て思ったんですが、酷すぎますね。(いろんな意味で)   その昔、より正確なバックテストをするためにアレコレ調べてやっていたんですが、なかなか「不整合チャートエラー」がゼロにならず、悩み続け試行錯誤の結果この回りくどい方法なら大丈夫だとわかったので、それ以降はなんとなく、ずーっとこのやり方でやっています。

たぶん、再起動はやらなくても良い箇所があるように思います。

あと、データ更新する場合は、バックテストのチャートを閉じて、ヒストリーフォルダの中の対象通貨のM1データ以外(M1データが一番サイズが大きい)を削除して、EURUSDの M1 チャートの上で右クリックして更新して、再起動>オフラインチャートの手順でデータを作り直せば直近までバックテスト用のデータが作れます。

ただし、今現在までのバックテストをやると「不整合チャートエラー」がでるので、バックテストの期間は、前週末までにしておきましょう。

また、バックテストをやっていると、MT4>tester>history の中に巨大なファイルが作られていきます。
このフォルダのサイズが大きくなってくると、私の環境ではなぜかエラーが出て、正しくバックテストができなくなります。
エラーが出た時や、バックテストをするEAを変える時などは、このファイルを捨てることにしています。また、バックテスト用のMT4のフォルダの中の不要なファイルなどはなるべく捨てるようにしています。
私が言うのもアレなんですが、EAのバックテストには、まったく信用できないものもあります。
どういうものがダメかというと、1分足の中で、注文、決済、モディファイが複数行われるEAのバックテストはまったくあてになりません。
バックテスト結果はまさに聖杯みたいに見えるものもありますが、リアルで動かすと一直線に右肩下がりになるケースが多いです。(なぜか知っている汗) これは、バックテストで使われるTickデータは、自動生成された擬似Tickデータであるため起こります。
このようなEAをバックテストするには、それ用のデータが必要です。
ここでは割愛します。
また、悪意のあるEAの中には、バックテストデータを先読みしてポジションを取るEAもあります。
バックテストはMT4最大の利点であり、非常に有益ですが、完璧ではないということだけは覚えといてください。
しかし、読み返してみると…..ひどい文章ですな。機会があったら修正します。
*2017年6月25日追記

>>自動売買リアル戦記トップページへ戻る


スポンサードリンク

>>自動売買リアル戦記トップページへ戻る

コメントの入力は終了しました。