はじめに
ここでは、MT4でEAを使ったバックテストの仕方について解説しています。EA初心者の方で『バックテストって何?』や『バックテストの仕方が分からない』といった方は是非参考にしてみてください。
バックテストを行う事は重要ですので、ここで基本的なバックテスト方法を学んでいきましょう。
バックテストとは?
バックテストとは、過去の市場データを使用して、トレードのアルゴリズム(手法)を評価する方法です。EAの効果を検証するために使用され、テストデータを基にトレードの結果を予測します。バックテストにより、EAの性能を客観的に評価でき、実際の取引で期待できる収益性を予測することができます。
トレード検証作業は、手動だとかなりの手間です。が、何故自動で行えるのかというと、EAがどういった手法でトレードするのかをプロフラミングされているためその通りに過去チャートを見て自動トレードしてくれるからです。よって、EAが無いとバックテストはできません。
バックテストの結果ではどれだけプラスだったかマイナスだったかや勝率など細部まで結果が確認できるため、バックテスト結果はそのEAの優劣の指標になります。
しかもバックテストのやり方自体はとても簡単で、事前に軽く設定さえしてしまえば後はボタン1つで、EAで作った通りに何度でもトレード検証してくれます。
私がEAを使う理由として、このバックテストができるというのは1,2位を争うメリットです。
それではバックテストの準備を進めていきましょう。
バックテストを行うための前準備
バックテストを行うために必要なものは、MT4、EA、過去チャートデータです。
MT4の設定
まず、EAに自動売買をやってもらうようにするため、MT4の設定が必要です。
MT4の画面でメニューバーの「ツール」→「オプション」をクリックします。オプション画面の「エキスパートアドバイザ」タブを開き、「自動売買を許可する」 「DLLの使用を許可する」にチェックを入れて「OK」をクリックします。
過去チャートデータの取り込み
過去チャートデータ(ヒストリカルデータ)を取り込んでいない場合、MT4をインストールしてから約半年分ぐらいのチャートデータしかありません。(MT4のチャートデータは自分のPCにどんどん保持していく形なのでインストール直後はあまりチャートデータがありません)
ですので、過去数年のバックテストを実施したい場合は以下の記事を参考に、過去チャートデータを取り込む必要があります。1度取り込んでしまえば、再度過去データを取り込む必要はありません。
※過去チャートのデータをまだ取得していない方はこちら
ここまでを1度設定してしまえば、以降は特に触らなくてOKです。
バックテスト方法
それでは、準備ができましたのでバックテストを実行することろまで一通りやっていきましょう。
ストラテジーテスターの表示
まずは、バックテスト画面となるストラテジーテスターを表示します。
MT4の画面でメニューバーの「表示」→「ストラテジーテスター」をクリックします。MT4の画面下にテスター画面が出てきます。
テスター画面の項目が少ない場合
このような感じで、モデルや期間を指定等の設定が出ていない場合があります。これはテスター画面の表示領域が小さいためです。この場合は、以下のようにテスターとチャートの境目をクリックして上に引っ張りテスター画面の表示領域を広げてあげると全ての項目が表示されるので試してみてください。
テスト内容を指定する
テスター画面で、テスト内容を指定します。指定が必要な項目の説明です。
①EAを指定します
まず、一番左側がエキスパートアドバイザになっていることを確認してください。
確認後、テストしたいEAを指定してください。初期状態だと、サンプルで2つあると思います。
- MACD Sample (MT4に最初から入っているサンプル)
- Moving Average (MT4に最初から入っているサンプル)
- ・・・
【自分のEAを準備していない場合】
とりあえず「Moving Average.ex4」を選びましょう。
【自分が使いたいEAがある場合】
自分で使いたいEAが選択できるようになっているはずなので、それを選びましょう。
②通貨ペアを指定します
テストしたい通貨(まずはベーシックなUSD JPY等)を指定してください。
※過去チャートで取り込んだ通貨を指定しましょう
③期間を指定します
テストしたい足(まずは1時間足等)を指定してください。
④モデルを指定します
テスト方法を指定してください。よくわからない方は全ティックでOKです。
- 全ティック ⇒ 最も正確な全ティックがベターですが、複雑なEAだともの凄く遅い
- コントロールポイント ⇒ 一定期間に1度レートを取得し検証する簡易テスト
※全ティックよりも精度が落ちるので、これを選択するぐらいなら全ティックを使いたいところ - 始値のみ ⇒ 足(バー)が出来た時の値のみでテストするのでテスト時間も高速化できる
※足が出来た時に1回だけ動くEAの場合、このテスト方法で問題ないです
(全ティックの結果とも、ほぼほぼ同結果となるので試してみてください)
※1本の足の中で流動的に動くEAの場合、これを選択したらNGレベルです
(全ティックの結果と比べると、全然違った結果になります)
⑤スプレッドを指定します
自分がEAを行うFX業者のスプレッドに近いものにしてください。0.1銭の場合は1を選択します。また、0.4銭選びたいけど無いじゃないか!という場合も、4と手入力が可能です。
※外為ファイネストなら6、OANDAなら3と設定する感じで良いでしょう
⑥期間を指定にチェックをいれてください
どこからどこまでテストしたのを明確にするためにも、基本チェックを入れておきます。
⑦テスト開始日を指定します
自分がテストしたい開始期間を選択してください(何年も前にするとテスト時間が伸びます)
※テストする過去データがない場合、過去データがある所からしかテストできません
⑧テスト終了日を指定します
自分がどこまでテストしたいかの期間を選択してください。
⑨ビジュアルモードを行うかどうか指定します
チェックの有無は状況によって変わります。テストの結果に影響はありませんが、
チェックを入れるとテスト中にチャートが実際の過去の値動きの通りに動いてくれます。初めてバックテストをする方は、是非チェックを入れてバックテストみましょう。『おおー!!これは凄い』となる事間違い無しです。
テストの速度は、チェックの右側のつまみを動かすことで調整できます。
そして、⑩のボタンを押すことで一時中断、再度押すことで再開できます。
※私は大きくEAの動きをかえた場合や、EAをよりよくしたい場合、もう何もする事が無い時はビジュアルモードにチェックを入れて改善点を見つけたりしています
あと、あまり使うことはないかもしれませんが「スキップ」ボタンを押すと、スキップボタンの右側の日付まで飛びます。
バックテスト実行する
①~⑨までが指定できたら「スタート」ボタンを押してください。
ビジュアルモードにチェックを入れていない場合
スタートボタン左側のバーがどんどん溜まっていき、最大まで行くと音が鳴ってテスト完了となります。
ビジュアルモードにチェックを入れている場合
チャートが勝手に動きだすと思います。動きだした場合はまず、⑩の一時中断・再開ボタンを押して一時中断し、初期状態だとチャートが見づらいと思いますので、EAにあったチャートにメンテナンスしましょう。
チャートが動き出さない場合も、まずはEAにあったチャートにメンテナンスしましょう。
メンテナンスが終わったら、チャート上で右クリックし「定型チャート」→「定型として保存」をクリックし、定型として保存しておきましょう。次回のバックテストでは保存した定型を反映させるだけで済むようになるので、チャートをメンテナンスする手間が省けます。
定型チャートの保存ができたら、⑩の一時中断・再開ボタンを押してチャートを動かしてEAの動作を確認しましょう。
以下がバックテスト動画です。(※画質が悪い場合、設定で720pを選択すると良くなります)
最後に
お疲れ様でした。以上で、バックテストの方法については完了となります。
バックテストは、EAを改良していくうえでも非常に大切ですし、EAの改良が詰まってきたらビジュアルモードでぼーっと眺めているだけでも改善点が見つかったりするので、どんどん活用していきましょう。
バックテスト結果の確認方法については、こちら
コメント
はじめまして!
こちらのブログを読み込ませていただきバックテストをするようになりました!
ヒストリカルデータの取り込みを終えて、各時間足のデータも作成し、バックテストを開始したのですが、緑色のバーが途中で消えて、結果を表示してくれないのですが、何が原因かわかりますでしょうか?
はじめましてカプさん。
ブログを読んで頂き有難うございます。
バックテスト時に緑色のバーが途中で消えて結果を表示してくれないという件ですが、原因はわかりません。ただ問題の解決としては、
①期間を1日とか短い期間でバックテストしてみて動くかどうか
②ビジュアルモード(有り・無し)それぞれで動くかどうか
③モデル(全ティック・始値のみ)を変えて動くかどうか
④バックテスト時の操作履歴にどんなメッセージが表示されているか
ここら辺を確認して頂くと原因がわかるかもしれません。
問題がまだ解決していないようでしたら1度ご確認頂き、再度ご質問頂けたらと思います。
お返事と解決策のご提示ありがとうございます!
順番に試してみましたが、解決には至りませんでした…
①期間を1日・1週間・1か月に変えたが反応なし
②ビジュアルモードを変えるも反応なし
③モデルを変えるも反応なし
④操作履歴には、EAの読み込みに成功したこととスプレッドを設定したことだけが表示されてます!
一点気になったのが、ビジュアルモードありにしたときに、チャートが「アップデート待機中」と表示されたまま変わらないです。
ヒストリカルデータの取り込みに失敗しているのでしょうか…?
アップデート待機中が表示されるのであればヒストリカルデータが正常でない可能性が高いと思います!
ヒストリカルデータの取り込みをやり直してみるか、FXDDではない方法でヒストリカルデータを準備してみてもいいかもしれないですね。
承知いたしました!
ご丁寧なご回答ありがとうございました
別のヒストリカルデータを取り込んで試してみたいと思います!!!
初めまして。
つねきちと申します。
とても分かりやすいサイトですね。
ありがとうございます。
さて、一つ質問があるのですが。
バックテストのところなんですが、「ストラテジーテスター」にすると、
1.EA名 2.通貨ペア 3.期間 4.スタートボタン しか出てきません。
その他の設定が出来ない状況です。
XMとHFMで試したのですが、両社とも同じ状態です。
MT4の設定が変わったのでしょうか?
おわかりになるようでしたら教えていただけないでしょうか。
よろしくお願い致します。
はじめまして、有難うございます。
私も前に似たような事で困った事があったので、先ほどこの記事を更新しました。
記事中盤辺りに『●テスター画面の項目が少ない場合』という項目を追記しましたのでよかったら参照してみて下さい。これ以外の理由でその他の設定が無いのは聞いた事が無いのでまたちょっと調べてみます。
早々とお返事ありがとうございました。
そうだったんですね。
昨日試したときは、出来なかったんですが、今落ち着いてやってみたら無事見えました。
お手数をおかけして、申し訳ございません。
早速、やってみます。
ありがとうございました。