正しいバックテストのやり方とポイント

正しいバックテストのやり方とポイント

自動売買をやるにあたって、正確にバックテストができるということは必須です。

EAを検証していくにあたって、利益が出るのか出ないのか?、最大ドローダウンはロットに対してどれくらいなのか?、勝率他、採用するかしないかを判断するにあたっての重要な判断材料です。

デモ口座で稼働させてみるのも有効ですが非常に時間がかかります。

また、パラメーターの最適化を行うにあたっても、正しくバックテストが行えるということが前提条件になります。

真剣に自動売買に取り組もうという人は必ずマスターしてください。

正確なバックテストのためには、なるべく正確なヒストリカルデータを使うことと、そのデーターを正しく処理してバックテストに使えるデーターとしてMT4に読み込ませなければなりません。

まず、私たちが無料で入手できるヒストリカルデータで最も精度の高いものはアルパリUKが提供しているデーターです。

そのデータを利用するにはアルパリのMT4のデモアカウントが必要になります。

まず、以下のリンクから、アルパリのMT4のインストーラーをダウンロードして通常のMT4と同じようにインストールしてください。

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

また、バックテストが事態に信憑性があるかは「不整合チャートエラー」英語表記の場合は「Mismached Charts error」の項目が「0」になっている必要があります。

これは、適当にやっていてはゼロにならないので、後ほどやり方を説明します。

いろんなところで公開されているMT4のバックテストデータを見る時は、どこのブローカーのデータなのかと、「不整合チャートエラー」「Mismached Charts error」の項目は必ず確認するようにしましょう。

不整合チャートエラーがゼロでないバックテストは、あまり真に受けない方がいいと思います。


◯ アルパリMT4デモのインストール

インストールは通常のMT4のインストールと同じように行います。

ライセンス同意書の「OK」から進めていきますが、途中でMQL5のページがブラウザで開いたりしますが閉じてください。

接続するサーバーは「Alpari-Demo」を選択して「New Demo Account」を作ります。

名前やメールなどを聞いてきますが、適当に入力してもOKです。

デポジットは適当に10000ドルくらいで、レバレッジは500倍「1:500」を洗濯してください。

デモアカウントの準備ができたら、次はヒストリカルデータの準備です。


◯ period_converter_ALLのインストール

アルパリのデータセンターからダウンロードしたM1のデーターから、各時間足のデータを作るために「period_converter_ALL」というスクリプトが必要になります。

「period_converter_ALL」は、当サイトの「Tools」メニューの中にありますので、ダウンロードしてインストールしておいてください。

「period_converter_ALL」は、ファイルメニューからデータフォルダを開き、「MQL4」フォルダから「Scripts」フォルダを開き、その中に「period_converter_ALL」を入れてください。

次に起動させた時にMT4のナビゲータのスクリプトの中に「period_converter_ALL」があれば成功です。


◯ バックテストデータの準備

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

今回はEURUSDのペアについてテストすることにします。

ファイルメニューから「データフォルダを開く」を選択して「History」フォルダを開き、その中の「Alpari-Demo」フォルダを開きます。

このフォルダーの中にバックテスト用のデーターが格納されます。

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

ここでMT4を再起動させます。(パソコン本体ではなくMT4です)

次に、MT4のツールメニューから「ヒストリーセンター」を開きます。

バックテストする通貨をダブルクリックして、さらにその中のM1をダブルクリックして選択された状態でダウンロードをクリックします。

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

「Alpari-Demo」フォルダの中のデータのうち、「EURUSD1.hst」以外のヒストリカルデータを全て削除ます。

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

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

メニューの中から、「更新」を選択します。

更新されるとターミナルの操作履歴に更新したバーの数が表示されます。

これで、直近までのバックテストの元データが揃いました。

ここでMT4を再起動します。

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

以下のようなウインドウが開きます。

表示されているのが、先ほどまでに作成した元となるデータです。

EURUSD,M1 を選択して「開く」をクリックします。

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

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


◯ MT4のヒストリー内バーの設定の変更

メニューの「ツール」から「オプション」を開き、チャートタブを選択します。

開いたパネルの一番下の「ヒストリー内の最大バー数」「チャートの最大バー数」のウインドウに手入力で「9」を15〜6ケタ(全部)入力して「OK」をクリックします。

もう一度、今のウインドウを開くと以下のようになっていると思います。

最後にMT4を再起動すれば終了です。

お疲れ様でした。

これでバックテストの準備が整いました。


◯ 注意点

今日現在までのバックテストをやると「不整合チャートエラー」が出る場合があるので、バックテストの期間は直近で前週末か、数日前までくらいにしておきましょう。

また、バックテストをやっていると、MT4>tester>history の中に巨大なファイルが作られていきます。
特にパラメーターの最適化をしていると無視できなくなってくる場合があります。
このフォルダのサイズが大きくなってくると、エラーが出て、正しくバックテストができなくなる場合があります。
エラーが出た時や、バックテストをするEAを変える時などは、このファイルを捨てたほうが良い場合があります。
最後に頭の片隅に置いておいて欲しいのですが、EAのバックテストには、信用できないものもあります。
どういうものがダメかというと、1分足の中で、注文、決済、モディファイが複数行われるEAのバックテストはまったくあてになりません。
MT4のバックテストで使われるTickデータは実際のTickではなく、M1から作られた擬似ティックデーターを使っています。
それが原因で、1分足の中で複数のオーダーがある場合は、実際の動きと違った動きになるケースが多くなります。
典型的なのは、トレーリングストップのステップが異常に小さいものなどです。
また、悪意を持ってバックテストデータを不当に良く見せようとしているものもよく見かけます。凄いのはデーターを先読みしてポジるEAなんかもありますが、まさに聖杯に見えます。
あと、複利運用でのバックテストはパフォーマンスが良くなって見えますが注意した方が良いと思います。バックテストをやる場合は基本的に固定ロットでやるべきで、複利でやる理由はありません。