Titan FX(タイタンFX)

MT4(Mac版)のバックテストの方法

本記事では、Mac版MT4(MetaTrader 4)のStrategy Tester(ストラテジーテスター)でEAのバックテストを行い、結果の確認とレポートの保存をする方法を解説します。バックテストは設定したパラメーターでそのままテストできるほか、時間はかかりますが、最適化のテスト(パラメーターをどの値にすると結果が最適になるかの検証)も行えます。

MT4のバックテスト設定

事前にバックテストしたいEAを用意し、MT4にインストールしておきます(インストール方法はMT4(Mac版)のEAの設定方法をご参照ください)。MT4自体のインストールとログインの方法はMT4(Mac版)のインストール、ログイン方法をご参照ください。

ストラテジーテスターの表示

MT4のバックテストは、ストラテジーテスターというツールを使用して行います。
MT4のメニュー「View」から「Strategy Tester」(Ctrl+R)を選択すると、画面下部にストラテジーテスターが表示されます。

ストラテジーテスターの設定項目

ストラテジーテスターの「Settings」タブでは、次の項目を設定します。(番号は画像を参照)

①左側で「Expert Advisor」を選択し、右側でテストするEAを選択します。
②「Symbol」でテストする通貨ペアを選択します。
③「Period」でテストする時間足を選択します。
④「Model」でどの価格を用いてテストするかを選択します。基本的には「Every tick」を選択します。時間をかけたくない場合は他を選択できますが、信頼度は下がります。
⑤期間を指定する場合は「Use date」にチェックを入れ、開始日と終了日を指定します。
⑥「Spread」で想定するスプレッドを設定します(初期値は「Current」)。
⑦「Visual mode」にチェックを入れると、テスト内容をチャートで表示します(テスト時間が長くなります)。
⑧最適化のテストを行う場合は「Optimization」にチェックを入れます。次の「Expert properties」で設定した内容で最適化の検証が行われます。
⑨「Expert properties」をクリックすると、テストする口座やパラメーター、最適化の内容を設定するダイアログが表示されます。
※右側の「Open chart」をクリックすると、テストする銘柄のチャートを開けます。チャートの開き方はMT4(Mac版)の新規チャートの表示、再表示の方法もご参照ください。

Expert propertiesの「Testing」タブ

①「Initial deposit」でテスト開始時の証拠金を設定し、右側で口座通貨を指定します(画像では「USD」)。
②「Positions」でテストするポジションを、売買双方(Long & Short)、買いのみ(Long only)、売りのみ(Short only)から選択します。
③「Optimized parameter」で、どの項目を基準に最適化するかを選択します(例:Balance)。
④「Genetic algorithm」にチェックを入れると、最適化の計算を効率化できます。

Expert propertiesの「Inputs」タブ

「Inputs」タブでは、パラメーターの設定と、最適化テストを行う際の設定を行います。

①「Variable」で最適化を行う項目にチェックを入れます。
②単純にテストする場合は、「Value」の欄でパラメーターを設定します。
③「Start」で最適化テストの最小値を指定します。
④「Step」でスタート値からの間隔を指定します。
⑤「Stop」で最適化テストの最大値を指定します。

設定したパラメーターは「Save」で保存し、「Load」で読み込めます。

Expert propertiesの「Optimization」タブ

「Optimization」タブでは、指定した条件(例:「Balance minimum」「Maximal drawdown」)になったらテストを終了する設定ができます。設定しない場合は、何もチェックを入れなくても問題ありません。

設定が完了したら「OK」をクリックし、ダイアログを閉じます。

テストの開始

設定が完了したら「Start」をクリックし、テストを開始します。進行状況は左側のバーに表示されます。

テスト期間が長い場合や最適化の組み合わせが多い場合など計算量が多いときは、数時間から数日かかることもあります。設定の際は、テスト期間をなるべく短くするなど工夫してみましょう。

MT4のバックテスト結果の確認

テストが完了すると、テストの内容に応じてストラテジーテスターに次のタブが表示され、結果を確認できます。

Optimization Results(最適化結果)

最適化を行った場合、「Optimization Results」タブに結果がリスト表示されます。パラメーターの組み合わせごとの損益(Profit)、取引数、プロフィットファクター、ドローダウンなどを確認できます。

Optimization Graph(最適化グラフ)

「Optimization Graph」タブでは、最適化の結果をグラフで確認できます。

Results(結果)

「Results」タブでは、テスト取引の内容がリストで表示されます。各取引の時間、種類、ロット数(Size)、価格などを細かく確認できます。

Graph(グラフ)

「Graph」タブでは、口座残高の推移をグラフで確認できます。青いラインが口座残高(Balance)、下部の緑の棒が各取引のロット数(Size)です。

Report(レポート)

「Report」タブでは、期間を通したトレードの概要を確認できます。モデリング品質から損益、プロフィットファクター、トレード数、ドローダウンの大きさ、連勝・連敗数などをすばやくチェックできます。

レポートの保存

「Report」タブ内で右クリック(Macではcontrolキーを押しながらクリックも可)し、レポートを保存する項目を選択すると、HTML形式で保存できます。
保存したレポートはブラウザで開くことができ、テスト結果の数値に加えてグラフや取引明細も表示されます。

MT4のバックテストのレポートで使用される用語一覧

項目(画面の表示)意味
Bars in testテストに使用したバーの本数
Ticks modelledテストに用いたティック数
Modelling qualityテストの品質
Mismatched charts errorsデータの抜けなどのエラー数
Initial depositテスト開始時の口座残高
Spreadテストに使用したスプレッド
Total net profit損益金額
Gross profit利益の合計
Gross loss損失の合計
Profit factor総利益/総損失(1を超えていれば利益が出ている)
Expected payoff純益/トレード回数(1回のトレードにつき期待できる利益)
Absolute drawdown開始時点の残高に対する最大のドローダウン金額
Maximal drawdownテスト期間中のドローダウン金額が最大のもの(比率)
Relative drawdownドローダウン比率が最大のもの(金額)
Total trades取引を行った回数
Short positions (won %)売りポジションの取引回数と勝率
Long positions (won %)買いポジションの取引回数と勝率
Profit trades / Loss trades (% of total)勝ちトレード・負けトレードの回数と割合
Largest profit trade / loss trade利益が最大のトレードの利益額と、損失が最大のトレードの損失額
Average profit trade / loss trade勝ちトレード・負けトレードの平均損益
Maximum consecutive wins / losses最大連勝(連敗)数と、その時の損益
Maximal consecutive profit / loss損益額が最大の連勝(連敗)と、その回数
Average consecutive wins / losses連勝・連敗の平均回数

価格データの受信

MT4のバックテストでは、受信している価格データが少ないとバックテストを行えない場合があります。

レートを追加する方法はいくつかありますが、ここでは一番シンプルな、MetaQuotesの価格データを受信する方法をご紹介します。バックテストがうまく動作しない場合にお試しください。チャートに価格が表示されない場合はMT4(Mac版)のチャートにアップデート待機中と表示される場合の対応方法もご参照ください。

チャートの設定

MT4のメニュー「Tools」から「Options」を選択します。

「Options」ダイアログの「Charts」タブで、「Max bars in history」と「Max bars in chart」に最大値(例:999999999999)を入力し、「OK」をクリックします。

価格データのダウンロード

MT4のメニュー「Tools」から「History Center」を選択します。

「History Center」ダイアログの左側で、テストを行いたい銘柄の時間足(例:EURUSDの「1 Minute (M1)」)を選択し、左下の「Download」をクリックすると、価格データの受信が始まります。