fx自動売買(ea)のバックテストとは?バックテストの必要性とバックテストの取り方、バックテストが上手くいかない原因と対処法も解説

バックテストってなに?
バックテストの必要性とは?
バックテストの取り方を知りたい
バックテストという言葉は聞いたことがあるが、それが何なのか、なぜ必要なのかを知らない方もいると思います。
良いfx自動売買(ea)を見極め利益を増やすために役立つので、ぜひこちらの記事を読んで実際にバックテストを取り、fx自動売買(ea)運用に活用してみてください。
このボタンから追加で特典入手
(クリックでYoutubeページに移行)

バックテストについて
バックテストとは?
バックテストとは、過去の相場データを使ってfx自動売買(ea)の動作をテストすることです。実際に過去の相場でfx自動売買(ea)を稼働させていたら利益が出たのかどうかのシミュレーションを行うことができます。
バックテストの必要性
いきなりfx自動売買(ea)を稼働させると本当に勝てるのか、運用資金はいくらがいいのか、ドローダウンはどの程度なのかなど、さまざまな不安要素が残ります。
そのため実際にfx自動売買(ea)を稼働させる前にバックテストを行うことでこれから稼働するfx自動売買(ea)の性能や特性を理解した上で運用することができます。
バックテストは次のようなことに役立ちます。
- fx自動売買(ea)のパフォーマンスを知ることができる
利用しようとしているfx自動売買(ea)が過去の相場でどのような成績を出したのかを知ることができます。 - fx自動売買(ea)のリスク許容度を知り、リスク管理を行うことができる
過去どのような相場で損失が出たのか、どの程度の損失が出たのか、損切りの幅はどの程度なのかなどを知ることができます。どの程度の資金で運用するべきかの判断材料になります。 - fx自動売買(ea)の最適化を行うことができる
バックテストの結果を分析することでパラメータ(設定値)を調整することができます。 - fx自動売買(ea)の特徴を理解しポートフォリオを組むことができる
バックテストを行いfx自動売買(ea)の特徴を理解することで、別のfx自動売買(ea)と組み合わせて利用したりなど、ポートフォリオの作成にも役立てることができます。
バックテストの取り方
それでは、実際にバックテストをとる方法を解説します。
バックテストの前準備
まずはMT4にログインし、fx自動売買(ea)を設置、稼働します。
すでにfx自動売買(ea)の設置、稼働済みの方は次に進んでください。
fx自動売買(ea)を設置する方法は以下の記事で1から解説しているので、こちらを参考にfx自動売買(ea)の設置を完了させてください。

チャートの右上にニコニコマークが出て、fx自動売買(ea)の稼働が完了したら次に進みます。
ヒストリカルデータのダウンロード
デフォルトのMT4内に蓄積されているヒストリカルデータ(価格データ)はそれほど多くないため、バックテストを行うのに十分なデータをダウンロードする必要があります。
以下は「MetaQuotes社」のヒストリカルデータの取得方法です。
ただし「MetaQuotes社」のヒストリカルデータはデータに抜けがあるなどあまり質の良いデータではありません。
少し手間になりますが次の項で精度の高いヒストリカルデータをMT4にインポートする方法を説明しています。
バックテストの精度を上げたい方は次に飛んでください。
まず、MT4内に蓄積する価格データの量を最大にします。
上部分にある「ツール」→「オプション」を選択

「チャート」を選択し、「ヒストリー内の最大バー数」と「チャートの最大バー数」の項目に「99999999999…」と9をmax打ち込みます。

その後「OK」をクリック

その後MT4にヒストリカルデータを読み込みます。
上部分にある「ツール」→「ヒストリーセンター」を選択

fx自動売買(ea)の通貨ペアと時間足を選択
(利用するfx自動売買(ea)配布者が指定した通貨ペアと時間足を選択してください)
まずは通貨ペアをダブルクリック

その後時間足を選択します。

その後ダウンロードをクリックします。ダウンロードには数分かかることがあります。

精度の高いヒストリカルデータをダウンロードして利用する方法
ヒストリカルデータには過去の価格データが時系列で記録されていますが、このデータの精度が低いとエントリーのタイミングにズレが生じ、実際のトレード条件と異なる結果になったり、ドローダウンや利益率が異なってきます。
そのため信頼できるデータ提供元の精度の高いヒストリカルデータを使うことが望ましいです。
ここではアキシオリーからヒストリカルデータの取得を行います。
ほかにも様々なFX業者がヒストリカルデータを提供しているので、ご自身が使いやすいヒストリカルデータをダウンロードしてください。
MT4のヒストリカルデータを削除する
既にあるいらないデータを削除します。
「ファイル」→「データフォルダを開く」をクリック

「histroy」をクリック

ヒストリカルデータを入れたいサーバー名を選択

削除したい通貨ペアを削除します。(右クリック→削除)

MT4内に蓄積する価格データの量を最大にする
MT4内に蓄積する価格データの量を最大にします。
上部分にある「ツール」→「オプション」を選択

「チャート」を選択し、「ヒストリー内の最大バー数」と「チャートの最大バー数」の項目に「99999999999…」と9をmax打ち込みます。

その後「OK」をクリック

アキシオリーのヒストリカルデータを取得する
ヒストリカルデータはVPSで検索してVPS上にダウンロードするか、PCでダウンロードしてギガファイルなどにアップロードしてVPSでダウンロードするなど、やりやすい方法で行なってください。
ここではVPS上で操作を行います。
ウェブブラウザを開き、「アキシオリー ヒストリカルデータ」と検索するとアキシオリーのサイトが出てきます。


スクロールすると通貨ペアが並んでいるのでダウンロードしたい通貨ペアと年度を選んでダウンロードします。

ダウンロードマークをクリックするとエクスプローラーが立ち上がるので、ダウンロードしたい場所を選択し、名前をつけて保存します。

ダウンロードしたzipファイルは圧縮されているので、ダブルクリックして解凍しておきます。
取得したヒストリカルデータをMT4にインポートする
MT4を開き、「ツール」→「ヒストリーセンター」をクリック

通貨ペアと時間足を選択し、「インポート」をクリック

「参照」から先ほどダウンロードしたヒストリカルデータを選択します。

先ほどダウンロードして解凍したファイルをダブルクリック

2024年度のデータをインポートしたい場合は「XAUUSD_2024_all」を選択

「セパレーター」は「,」を選択します。その後OKをクリック。

複数のファイルをインポートしたい場合は再び「インポート」からヒストリカルデータをインポートしてください。

ヒストリカルデータがインポートされました。

MT4でバックテストを取るための設定 (ストラテジーテスターの設定)
それでは実際にバックテストを取っていきます。
画面上部の「表示」→「ストラテジーテスター」を選択

ストラテジーテスターが表示されます。

エキスパートアドバイザ
エキスパートアドバイザは、バックテストで使用するfx自動売買(ea)を選択してください。
バックテストを取りたいfx自動売買(ea)が表示されない場合はMT4を再起動します。

通貨ペア
通貨ペアを選択します。
ヒストリカルデータで読み込んだ通貨ペアを選択してください。

期間
期間は時間足を選択します。
ヒストリカルデータで読み込んだ時間足を選択してください。

モデル
モデルではバックテストを行う方法を選択します。
全ティック、コントロールポイント、始値のみの3種類があります。
fx自動売買(ea)の動作確認、パラメータの変更など大まかなチェックの場合は「始値のみ」でも問題ありませんが、しっかりとシミュレーションを行いたい場合や最終確認では「全ティック」を選択するのがおすすめです。
ただし、全ティックの場合は処理が重くバックテストの時間も長くなるデメリットがあります。

スプレッド
スプレッドは、実際に取引する通貨ペアのスプレッドを選択します。
もし選択肢にちょうどの数字がない場合は近い数字を選びます。
ここに表示されているスプレッド「2」は、「0.2pips」を表しています。

期間を指定
期間を指定では、バックテストを行う期間を入力します。
開始日と終了日を入力すると、その期間のバックテストを行うことができます。
ここでは直近3年のバックテストをとるため、開始日をまる、終了日をまると入力します。
利用するfx自動売買(ea)によってもバックテストを取るべき期間は異なってきます。
調べてもわからない方はコメントしてください。

最適化
最適化のチェックは外しておきます。
最適化にチェックを入れると、過去のデータをもとに、パラメータ設定をどの数値にしたら利益が出やすいのかを検証してくれます。最適化をするとバックテストに時間がかかるのと、CPUにも負荷がかかるので通常のバックテストではチェックを外します。

ビジュアルモード
期間の下に「ビジュアルモード」が表示されている方もいるかと思います。
fx自動売買(ea)がチャート上のどこで注文を行ったのかを確認することができます。
チェックは外していても問題ありません。
チェックを入れているとバックテストに時間がかかるため、普通にバックテストを取る場合は外しておきましょう。
エキスパート設定
次にエキスパート設定をクリックします。

エキスパート設定では、fx自動売買(ea)のパラメータやトレード条件をカスタマイズするための設定をすることができます。
テスト設定、パラメーターの入力、最適化の3つの項目があります。

「テスト設定」では、まず初期証拠金の金額を設定します。
ご自身がfx自動売買(ea)を稼働させる時の運用資金の額に設定します。

ポジションでは買い(Long)と売り(Short)の両方で行うかどちらか片方で行うかを選択します。特に指定されていない場合は両方を選択します。

下の最適化の部分は、最適化を行う場合のみ使用します。

「パラメーターの入力」では、パラメーターの設定をします。
値の部分にバックテストで試したいパラメーターを入力してください。
そのほかの部分は変更しなくて大丈夫です。

「最適化」では、ある条件になったらテストを止めるという制限をつけることができます。
入力しなくても問題ありません。

「OK」をクリックし、その後右下の「スタート」をクリックするとバックテストが始まります。


正常にバックテストが始まった場合は以下のように「スタート」の部分が「ストップ」になり、緑のバーが動きます。

時間がかかる場合があるので気長に待ちましょう。
バックテストの結果の確認方法
バックテストの完了
赤枠内が全て緑になっていて、緑のバーの右側の「Stop」が「Start」に変わっていたらバックテストが終了したということになります。

Graph
グラフでは資産の推移を表しています。
青線:残高(Balance) → 確定した利益・損失(決済済みの資金
緑線:有効証拠金(Equity) → 含み損益を含めた資金の増減
横軸は取引回数を示しています。

Report
レポートタブでは、以下の結果を見ることができます。

- テストバー数:テストをしたバーの数
- モデルティック数:テストに用いたティック数
- モデリング品質:バックテストの品質
- 不整合チャートエラー:チャートのデータに抜けなどがある場合
- スプレッド:テストをした時のスプレッド
- 初期証拠金:テスト開始時の金額
- 純益:損益金額
- 総利益:利益の合計
- 総損失:損失の合計
- プロフィットファクタ:総利益÷総損失
- 期待利益:損益÷トレード回数
- 絶対ドローダウン:開始資金に対して最大のドローダウン
- 最大ドローダウン:テスト期間での最大のドローダウン
- 相対ドローダウン:最大ドローダウンの比率
- 総取引数:取引を行った回数
- 売りポジション、買いポジション:売りで入った回数と買いで入った回数
- 最大勝トレード、最大負トレード:勝ちトレードの最高利益、負けトレードの最高損失
- 平均勝トレード、平均負トレード:勝ちトレードの平均利益、負けトレードの平均損失
レポートの保存
レポートタブを開き画面を右クリックし、「レポートを保存」をクリックするとレポートを保存することができます。

以下のようなレポートが保存されます。

バックテストが上手く行えない時の対処法
バックテストが上手く行えない時のよくある原因と解決策を説明します。
PCとMT4を再起動する
まずはPCとMT4を再起動してもう一度挑戦してみてください。
口座縛りのfx自動売買(ea)の場合、口座番号を間違えていないか
fx自動売買(ea)によっては特定の取引口座でしか動作しないように制限されたものがあります。fx自動売買(ea)を入手した際に口座が限定されていたり口座番号が指定されている場合はその指定された口座でログインできているかどうかを確認してください。
スプレッドが適切でない
バックテストのスプレッド設定を「現在値」にしている場合バックテストが動かない可能性があります。
fx自動売買(ea)によってはスプレッドが一定の値より広い時は取引を行わない(スプレッドフィルター)という設定があります。
早朝や休日の市場が休場している時はスプレッドが広くなるため、そのような時に「現在値」に設定を行うとバックテストが動きません。
そのためfx自動売買(ea)のスプレッドフィルターの値よりも狭いスプレッドの値を設定する必要があります。
ヒストリカルデータが正しく取り込まれていない
ヒストリカルデータが正しく取り込まれていないとバックテストは正常に行われません。
まず、ヒストリカルデータを上手くダウンロードできているかどうかのチェックを行います。
「レポート」→「モデリング品質」をチェックします。

モデリング品質が90%の場合問題なくヒストリカルデータのダウンロードができています。
90%以下の数値の場合はヒストリカルデータのダウンロードをやり直す必要があります。
上記の場合はモデリング品質が25%のため、ヒストリカルデータが正しく読み込まれていない可能性があります。
またヒストリカルデータの期間にバックテストの期間が含まれていない場合なども、バックテストは正常に行われません。
ヒストリカルデータをの期間チェックするために、MT4の「ファイル」→「オフラインチャート」を選択


バックテストをしたい通貨ペアの差出人(開始日)と終了の日付を確認します。
この期間にバックテストを行いたい期間が含まれている必要があるので、期間がずれていたり含まれていなかった場合はヒストリカルデータの範囲内でバックテストを行なってください。

通貨ペアや時間足が間違っている
fx自動売買(ea)のバックテストは、fx自動売買(ea)配布者から指定された通貨ペアと時間足を使用する必要があります。
仮に別の通貨ペアでバックテストが取れたとしても正しい結果ではありません。
fx自動売買(ea)配布者から伝えられたものを設定できているか確認してください。

モデルを「全ティック」で設定していない
バックテストのストラテジーテスターで設定したモデルですが、fx自動売買(ea)によっては「全ティック」の設定でしか動作しない場合があります。
もしコントロールポイントや始値のみで設定をしていた場合は、全ティックに変更して再度バックテストを行なってみてください。

初期証拠金の金額が少ない
バックテストのストラテジーテスターの「エキスパート設定」→「テスト設定」の初期証拠金ですが、少なすぎると正常にバックテストが行われない可能性があります。


fx自動売買(ea)配布者に伝えられた推奨証拠金より少なく設定していた場合は推奨証拠金の金額で再度設定してみてください。
HDDの容量不足
バックテスト中にディスクの容量不足の警告が出ることがありますが、その場合はディスクの容量を空ける必要があります。
fx自動売買(ea)によっては大量のデータ容量を使うものがあるので、その場合は不要なデータを削除しましょう。
MT4の「ファイル」→「データフォルダを開く」

「tester」をクリック

「history」「logs」のファイルがあります。

MT4を開いたままではデータの削除を行えないため、不要なファイルを消す前にデータフォルダを開いたままMT4を終了します。

「history」フォルダの中の「FXTファイル」を削除します。
historyフォルダの中のデータは全て削除して問題ありません。
続いて「logs」フォルダの中の「LOGファイル」を削除します。
logsフォルダの中のデータも全て削除して問題ありません。
容量不足の方はこの方法で容量を空けましょう。
まとめ
今回は初心者の方向けにバックテストとは何か、必要性や実際の方法までを解説しました。
ブログでは初心者の方からいただくことが多い疑問に答える記事を多く書いていますので、ぜひ参考にしてください。

また、YouTubeではリアルマネーでEAを検証した内容を発信しています。
運用スタイルや運用資金は人それぞれだと思いますので、自分に合った自動売買が知りたい方は動画を参考にしてください。
今回の内容で分からないことがあれば公式LINEやコメントをお願いします。
このボタンから追加で特典入手