シェアする

MT4のバックテストのやり方と方法。備忘録としてまとめてみた!

MT4で「バックテスト」をするやり方とその手順・流れを説明していきたいと思います。
以前何かで見た方法では上手く出来なかったんだよな~という方は、細かく書いているので、再チャレンジしてみてください。

前回までの連載で、MT4のチャートに各種インジケーターを表示させたり、チャート分析をしやすくするためのおすすめの無料インジケーターを紹介してきましたね。
そこからもう一歩上のレベルに挑戦してみましょう。

バックテストとは?

「バックテスト」とは、過去の値動きの動いているデータを使って、トレード手法や自動売買プログラム(EA)の検証をすることです。

実際の値動きを使ってトレード手法の検証をするためには、MT4はもちろん、FX業者のデモトレードを利用する方法が一般的ですが、実際の今まさに動いている相場で行うので、結果が分かるまでに時間がかかるし、試してみることができる手法も1つずつだけです。

そこで、「バックテスト」の出番です。過去の為替相場の値動きを使うので、もっと短時間でたくさんの検証ができます!

バックテストには、MT4の「ストラテジーテスター」という機能を利用します。
(以下の画面の赤枠のところ)

ここでEA(自動売買プログラム)を指定して動かして、ちゃんと利益が出るかどうかを検証することができます。

fx10_4600-1

なお、MT4のデモトレードやリアルトレードに使うサーバーから通常配信されている過去データには限りがあり、あまり昔のものまでは入っていません。

その為、「ヒストリカルデータ」と呼ばれる、かなり昔からの値動きのデータをMT4に取り込んで、バックテスト用の環境を作成し、そちらでテストを行う人も多いです。
1分足や5分足の昔のデータが不足しがちですからね。

ヒストリカルデータの取得方法や適用方法は、別の記事「MT4のヒストリカルデータを作成・取得する方法」で詳しく説明しますので、そちらをご覧ください。

MT4でヒストリカルデータを作成・取得する方法!昔のデータを引っ張る!
今回はヒストリカルデータを作成して、MT4に取り込む方法について書いていきます。 前回の記事では、MT4でバックテストを実行するやり方...

なお、FXTFのMT4の場合、4時間足は2009年11月からのデータ、日足は2006年1月からのデータとなっていて、これだけでもバックテストの操作は、十分な人もいると思います。
まずはどんな操作をしてどんな結果が出るのかを確認するためにも、実際にやってみましょう!

バックテストをする準備

ヒストリカルデータの使用本数を変更し、期間設定

メニューバーから「ツール」→「オプション」を選択します。

fx10_4600-2

「チャート」タブを開いてください。
「ヒストリー内の最大バー数」と「チャートの最大バー数」の数値を、MT4で表示可能な最大の値「2147483647」に変更します。入力する数字は「9999999999」でもOKです。
[OK]で画面を閉じたときに、自動的に「2147483647」に書き換わり、保存されます。

fx10_4600-3

次に、「エキスパートアドバイザ」タブを開きます。
「自動売買を許可する」と「DLLの使用を許可する」のチェックをONにしてください。

fx10_4600-4

以上で、設定変更は完了です。MT4メニューボタンの「自動売買」が、以下の表示になればOKです。

fx10_4600-5

ストラテジーテスターの設定を行う

メニューバー「表示」→「ストラテジーテスター」を選択してください。

fx10_4600-6

表示された「テスター」画面で、テスト条件を設定していきます。

テスト条件の詳細設定

fx10_4600-7

①「エキスパートアドバイザ」を選択した状態にします。

②今回バックテストを行うEAをプルダウンから選択してください。
 今回は、「Moving Average」にしてみます。

③バックテストを行う通貨ペアを選択します。
今回は、USDJPYにしてみます。

④バックテストの精度を選択します。基本的には「全ティック」で行います。
・全ティック: 最も精度の高いテストができます。ただしテストの所要時間も、マシンのメモリも多くかかります。
・コントロールポイント: 全ティックよりテスト結果の精度は落ちますが、テストは早く終わります。
・始値のみ: テスト結果の精度はさらに落ちますが、テストは一番早く終了します。

⑤バックテストを行う時間足を選択します。
 4時間足にしてみます。

⑥バックテスト時のスプレッドを指定します。数値を入力することもできます。
・現在値: ストラテジーテスターのスタートをクリックした時点でのスプレッドでバックテストをします。
今回は、「10」に設定してみます。1.0pipsの意味です。
ここは、お使いのFX業者の普段のスプレッドを参考にするとよいです。スプレッドは、[通貨ペアのプロパティ](⑩)で確認できます。

fx10_4600-8

「スプレッド 3」(0.3pips)と分かります。

このスプレッドに、テスト中の値動きで、一時的にスリッページが発生したりスプレッドが広がったりすることを考慮し、若干広めに設定しておくと、実際の取引に近い結果が出ます。

⑦「日付と時間を使用」のチェックをONにして、開始日と終了日を設定します。
MT4の仕様とマシンの消費メモリの関係で、テスト期間を長くしすぎると、テストが正常に終了しません。
選択する時間足にもよりますが、「全ティック」にした場合は、期間は短めにしたほうがよいようです。マシンの性能によっては、それでも、テスト終了までに数十分の長い時間がかかります。
動作確認だけのときは、もっと短めにしたほうがいいかもしれませんね。1年にしてみましょう。

⑧「ビジュアルモード」のチェックをONにすると、チャート画面上で値動きを確認しながらテストを行うことができます。

⑨[エキスパート設定]を行います。
「テスト設定」タブで、初期証拠金を設定します。通貨のプルダウンに「JPY」がありませんが、「JPY」と手入力すればOKです。「初期証拠金」も手入力できます。「ポジション」欄は、初期設定のままで大丈夫です。

fx10_4600-9

「パラメーターの入力」画面では、「Lots」項目で、取引の枚数を指定できます。
なおこの画面は、EAによって表示項目は大きく変わります。

fx10_4600-10

必要な項目の設定が終わったら、[OK]で画面を閉じてください。

バックテスト、スタート!

テスターの画面に戻り、[スタート]ボタンをクリックすると、テストが始まります。

fx10_4600-11

「ビジュアルモード」にしたので、チャート画面が開きます。指定した期間2005年1月からのめまぐるしい値動きの様子が確認できますよ。途中、「ビジュアルモード」のつまみを動かすと、値動きの速さを調整できます。

fx10_4600-12

画面下の緑色のバーが最後まで埋まり、[ストップ]の表示が[スタート]に変わると、テスト終了です!

バックテストの結果はレポートで見る事が出来る

テスト結果は、「レポート」タブで確認できます。

fx10_4600-13

次の記事では、今回より更に昔のデータを引っ張り出す方法をご紹介します。
精度の高いバックテストを行うために必要な、ヒストリカルデータをMT4に取り込む手順を詳しく説明します!

MT4でヒストリカルデータを作成・取得する方法!昔のデータを引っ張る!
今回はヒストリカルデータを作成して、MT4に取り込む方法について書いていきます。 前回の記事では、MT4でバックテストを実行するやり方...