MT4には EAの動作確認を行なうための「ストラテジーテスター」というシミュレーション機能がついています。
ここではストラテジーテスターを使って作成したEAの動作確認を行ないます。この作業のことを「バックテスト」と言います。
ストラテジーテスターの使い方
1.準備
過去のチャートをダウンロードする
ストラテジーテスターを使う時は、過去のチャートデータ (ヒストリカルデータ) が必要になります。直近のチャートはダウンロードされますが、1分足や 5分足などのチャートはあまり古い日時までは読み込まれません。その場合は、以下のページを参考にダウンロードしてください。
一度読み込んだ過去データは記憶されるので次からはダウンロードする必要はありません。
テストEAを準備する
今回は、例として EA「BuyOnlyTraripEA.ex4」(買いのみトラリピEA) を使って動かします。
「BuyOnlyTraripEA.ex4」(買いのみトラリピEA) の取引プログラムの内容は、パラメーター入力で設定した範囲・内容でイフダン注文を永遠に繰り返すというものです。
次の「買いのみトラリピEA」をダウンロードしてzipファイルを解凍してください。又は、こちらのコードをコピペ、保存して ex4ファイルを作成しても OKです。
zipファイルを解凍すると「BuyOnlyTraripEA.ex4」があるので、これを MT4のメニュー「ファイル」→「データフォルダを開く」でフォルダが展開されるので、その中の「MQL4」フォルダ→「Experts」フォルダを開いてその中に入れてください。
MT4を再起動するとナビゲータ上に「BuyOnlyTraripEA.ex4」が表示されるようになります。
今回の例では、EA「BuyOnlyTraripEA.ex4」(買いのみトラリピEA) を使って、USDJPYの1分足チャートでバックテストを行ないます。
2.「ストラテジーテスター」の起動
MT4のメニュー「表示」→「ストラテジーテスター」を選択して、下図を参考に同じ内容で入力してください。
①を選択
「エキスパートアドバイザー」と「インジディータ」の 2つから選択が出来ます。
今回は「エキスパートアドバイザー」を選択してください。
②EAの実行ファイルを選択
バックテストで使用する EAを選択します。EAを対象 MT4の Expertsフォルダに入れても表示されない場合は、対象 MT4を再起動させてみてください。
今回は、例として「BuyOnlyTraripEA.ex4」を選択します。
③通貨ペアを選択
バックテストを行う通貨ペアを選択します。ここで選ぶ通貨ペアは、テストする対象期間にヒストリカルデータがある通貨を選ぶようにしてください。
今回は、例として「USDJPY」を選択してください。
④モデルを選択
「モデル」は過去のチャートでの価格の動きをどこまで細かくしてテストをするかになります。
全ティックは高精度ですが、バックテストに時間がかかります。
今回は「始値のみ」を選択してください。
(高精度) 全ティック > コントロールポイント > 始値のみ (低精度)
(時間大) 全ティック > コントロールポイント > 始値のみ (時間小)
モデル名 | 説明 |
---|---|
全ティック | チャート 1分足の四本値(始値、高値、安値、終値)から価格変動を疑似的に動かします。 「⑦期間」は考慮しません。高精度ですが時間がかかります。 |
コントロールポイント | 「⑦期間」で適用した期間より、ひとつ下の期間の四本値を使って価格変動を疑似的に動かします。ひとつ下の期間とは、「日足」を使っていれば「4時間足」を、「1時間足」を使っていれば「30分足」を使うことになります。 |
始値のみ | 「⑦期間」で適用したチャート時間足の四本値のみを使ってテストをします。疑似的な価格変動は考慮しません。短時間で終わりますが低精度です。 |
⑤期間を指定にチェック
期間を指定には、バックテストを行う期間を入力します。開始日と終了日を入力すれば、その期間を対象にしてバックテストを行ないます。期間は対象時間軸(1分足、5分足、10分足等)でヒストリカルデータがあるものを選択してください。
今回は例として、期間を指定にチェックして、開始日:2021.12.01、終了日:2021.12.31 としてください。
⑥ビジュアルモードのチェックを外す
ビジュアルモードは、EAが実行した注文、決済状況をチャート上で確認しながらバックテストをすることが出来ます。ただし、時間がかかるため、基本的にはチェックを外しておいた方が良いです。
今回は例として、ビジュアルモードのチェックを外してください。
⑦期間を選択
バックテストを行うチャートの時間軸を選択します。ここでの注意点として EAによっては時間軸が決められているものがあります。その場合は EAと同じ時間軸に設定して「④モデル」を「コントロールポイント」か「始値のみ」を選択することになります。
今回は例として「M1」を選択してください。
⑧スプレッドを選択又は入力
疑似的に取引する通貨ペアのスプレッドを選択します。単位は Pointです。
対象通貨ペアのスプレッドが分からない場合はこちらを参考に確認してください。
今回は例として、「30」としてください。
多くの FX会社では原則固定スプレッドが採用されていますが、日本時間では朝方にスプレッドが大きく広がります。FX会社によって広がり方の大きさ、広がる時間の長さが異なるので注意しましょう。テストをする時は、過大評価をしないためにも広めのスプレッドに設定する方が良いでしょう。
⑨最適化のチェックを外す
最適化では、EAのパラメータをどの数値に設定すれば利益が出やすいのかを検証してくれます。通常のバックテストを行う際はチェックをいれる必要はありません。
今回は例として、チェックは外してください。
3.「エキスパート設定」の入力
⑩エキスパート設定 から「テスト設定」タブと「パラメーターの入力」タブを次と同じ内容で入力してください。
「パラメーターの入力」の変数の説明についてはこちらを参考にしてください。
【参考】
USDJPYの2021年の推移は、
2021/12/01~2021/12/31:始値113.140円、高値115.206円、安値102.555円、終値115.049円
2021/01/01~2021/12/31:始値103.121円、高値115.520円、安値102.591円、終値115.049円
4.バックテストをスタート
「⑪スタート」を押して実行してください。数秒程度でバックテストが終了します。
5.バックテスト結果の確認
バックテストの結果はストラテジーテスターの下にあるタブの「結果」「グラフ」「レポート」から確認します。
「結果」タブ
「結果」タブでは取引の結果が取引日時順に表示されます。取引の詳細が確認出来ます。結果は FX会社によってスワップを含むかどうか、含む場合はバックテスト時のスワップ額の違いで誤差が出てくることがあります。
「グラフ」タブ
「グラフ」タブは資産(初期証拠金)の推移がグラフで確認出来ます。理想は波の大きくない緩やかな右肩上がりの曲線です。
「レポート」タブ
「レポート」タブはバックテストのまとめが表示されます。この「レポート」タブでテスト結果の概要が確認出来ます。
「レポート」タブ上で右クリックして「レポートの保存」を選択するとパラメータ設定や「結果」タブ、「グラフ」タブ、「レポート」タブの内容が一つにまとめられたレポートが作成されます。
レポートの主な項目は、以下の通りです。
項目 | 説明 |
---|---|
テストバー数 | テストをしたバーの数です。 |
モデルティック数 | テストに用いたティック数です。 |
モデリング品質 | バックテストの品質です。%が高い方がバックテストの信頼性が高くなります。 全ティックの場合、1分足は最大 25%、それ以外は最大 90%になります。 始値のみの場合、n/a(無し)か、最大値以上の%が表示されることがあります。 |
不整合チャートエラー | チャートのデータに抜けなどがある場合、数値が 0以外になります。0であればOK。0以外であればヒストリカルデータを再取得した方が良いです。 |
スプレッド | テストをする時にストラテジーテスターで設定したスプレッドです。 |
初期証拠金 | テスト開始時の金額です。「エキスパート設定」の「テスト設定」タブのところで入力した金額です。 |
純益 | 損益金額です。マイナスの場合、有用性が低い EAと言えます。 |
総利益 | 利益の合計です。 |
総損失 | 損失の合計です。 |
プロフィットファクタ | 総利益 ÷ 総損失 PF(プロフィットファクタ)とも表示されます。大きい方が良いです。単一ポジションの取引であれば目安として 1.5~2程度であれば OK。あまり高すぎるPFはたまたまテストEAと相性が良かった期間かもしれないので、期間の範囲を変えるなどしてチェックした方が良いです。 |
期待利益 | 損益 ÷ トレード回数 1トレードあたりの損益です。最低でもプラスになっている必要があります。 |
絶対ドローダウン | 初期証拠金からの最大のドローダウン金額です。 |
最大ドローダウン | テスト期間中の最大ドローダウン金額です。 |
相対ドローダウン | 最大ドローダウンの比率です。 (初期証拠金 + 計算時点の損益額) を分母として比率を計算します。 |
総取引数 | 取引を行った回数です。 |
売りポジション(勝率%) | 売りで入った回数です。 |
買いポジション(勝率%) | 買いで入った回数です。 |
最大勝トレード | 勝ちトレードの最高利益額です。 |
最大負トレード | 負けトレードの最高損失額です。 |
平均勝トレード | 勝ちトレードの平均利益額です。 |
平均負トレード | 負けトレードの平均損失額です。 |
最大連勝(金額) | 最大の連勝回数とカッコ内にその連勝した時の合計利益額です。 |
最大連敗(金額) | 最大の連敗回数とカッコ内にその連敗した時の合計損失額です。 |
最大連勝(トレード数) | 最大の連勝した時の合計利益額とカッコ内にその連勝回数です。 |
最大連敗(トレード数) | 最大の連敗した時の合計損失額とカッコ内にその連敗回数です。 |
平均連勝 | 複数回連勝した時の平均連勝回数です。 |
平均連敗 | 複数回連敗した時の平均連敗回数です。 |
レポートで重視しなければならない項目は、EAのトレードスタイル(戦略)によって変わってきます。最終的にプラスになっていることと、相対ドローダウンが大きいとロスカットされる可能性が高くなる EAと言えるので資金管理とそれに伴う利益率を評価する必要があります。
バックテストも期間やモデル、利益幅などを変えたりといろいろな角度からテストをしてみると良いでしょう。
「結果」タブから今回例として使用した EA「BuyOnlyTraripEA.ex4」(買いのみトラリピEA)がきちんと動いているかを確認しておきましょう。今回の場合は、一定間隔で新規注文や決済、再注文が出来ているかになります。
以上