この記事でできるようになること
- MT4の「ストラテジーテスター」を開き、各設定項目の意味が分かる
- サンプルEA(RSI_Reversal_Sample)を、決めた条件でバックテストできる
- テストの進み具合と終了を自分で確認できる
準備するもの
- 前の記事でヒストリカルデータを準備したMT4
- コンパイル済みのサンプルEA(RSI_Reversal_Sample.ex4 がナビゲーターに表示されている状態)
手順
手順1 ストラテジーテスターを開く
ストラテジーテスターとは、EAを過去データで動かして成績を計算する、MT4に最初から付いている機能です。
- MT4上部のメニューから「表示」→「ストラテジーテスター」を選びます。ショートカットは [Ctrl]+[R] です。
- 画面の下側に、横長のパネルが出てきます。これがストラテジーテスターです。
パネルの上端をマウスでドラッグすると高さを変えられるので、見やすい大きさに広げておきましょう。
ここからは、パネル左側の設定項目を上から順に見ていきます。
手順2 テストするEAを選ぶ
- 一番上の欄で「エキスパートアドバイザ」が選ばれていることを確認します(「インディケータ」になっていたら切り替えます)。
- その右のドロップダウンを開き、「RSI_Reversal_Sample」を選びます。
ドロップダウンに出てこないときは、コンパイルに失敗しているか、保存場所が違います。第4章の「MT4にEAを表示させる」を見直してください。
手順3 通貨ペアを選ぶ
「通貨ペア」の欄で「USDJPY」を選びます。前の記事でヒストリカルデータを準備した通貨ペアと同じものにしてください。データを準備していない通貨ペアを選ぶと、テストが正しく動きません。
手順4 時間足を選ぶ
「期間」の欄で「H1」を選びます。要確認H1は1時間足のことで、M1=1分足、M5=5分足、H4=4時間足、D1=日足という表記です。
サンプルEAは「1時間足でRSIの行きすぎを見る」設計なので、ここはH1です。時間足を変えるとEAの動き方そのものが変わるので、まずは設計どおりの時間足でテストします。
手順5 モデルを「全ティック」にする
「モデル」の欄は、MT4が値動きをどこまで細かく再現するかの設定です。3つの選択肢があります。
| モデル | 内容 | 速さ | 正確さ |
|---|---|---|---|
| 全ティック | 1分足データから細かい値動きを再現する | 遅い | 高い |
| コントロールポイント | 途中の値動きをざっくり補う | 中 | 中 |
| 始値のみ | 各ローソク足の始値だけで判定する | 速い | 低い |
本スクールでは「全ティック」を選びます。時間はかかりますが、一番現実に近い結果になるためです。「始値のみ」は速い代わりに、利確や損切りのタイミングが実際とずれるため、成績が大きく違ってきます。
手順6 テスト期間を指定する
- 「期間を指定」のチェックボックスをオンにします。要確認
- 「開始日」と「終了日」を入力します。例として、開始日を「2023.01.01」、終了日を「2025.12.31」とします。
期間は長いほど、いろいろな相場の状態(上がり続けた時期、下がり続けた時期、動かない時期)を含むことになり、結果の信頼度が上がります。最初は2〜3年ほどを目安にしてください。あくまで目安であり、準備したデータの範囲内であれば自由に変えて構いません。
チェックを入れないと、MT4にあるデータ全期間でテストされます。それでも問題はありませんが、あとで「同じ条件でもう一度」と比較するときに期間がはっきりしている方が便利なので、指定しておくことをおすすめします。
手順7 スプレッドを設定する
スプレッドとは、買値と売値の差のことで、実質的な取引コストです(第1章で説明しました)。
「スプレッド」の欄には、数値を直接入力して固定します。本スクールでは「現在値」は使いません。「現在値」を選ぶと、テストを始めた瞬間のスプレッドがそのまま使われるため、深夜や休日などタイミングによって値が変わり、同じEA・同じ期間でもテストのたびに結果が変わってしまうからです。第6章で改善の効果を比べるときに、スプレッドが毎回違うと比較になりません。
入力する値は「20」で固定します。本スクールの記事は、すべてこの値でテストした前提で説明します。この数字の単位は「ポイント」で、HFMのように小数点以下3桁(ドル円)で表示する業者では、10ポイント = 1pips です。つまり「20」は2.0pipsに相当します。HFMのドル円の平均的なスプレッドより少し広めの値なので、実際より厳しめの条件でテストすることになります。要確認
「少し厳しめ」にしておくと、実際に運用したときに「テストより悪くなった」というがっかりを減らせます。
手順8 エキスパート設定(初期証拠金とinput変数)
パネル右側の「エキスパート設定」ボタンを押すと、EA固有の設定ダイアログが開きます。
「テスト設定」タブ
- 「初期証拠金」: テスト開始時の口座残高です。「1000000」(100万円)と入力し、通貨は「JPY」を選びます。2-2で開設したデモ口座の初期金額(1,000,000円)と条件を揃えるためです。要確認
- 金額は実際に運用する予定の額に近い方が、あとで「ドローダウン◯%」の感覚がつかみやすくなります。ここでの金額は計算上の数字であり、実際のお金が動くわけではありません。
- 「ポジション」: 「ロング&ショート」のままにします。買いも売りも両方テストする、という意味です。要確認
- 「最適化」に関する項目は、今は触りません(第6章で使います)。
「パラメータの入力」タブ
ここに、サンプルEAのコードで input と書かれていた変数が並びます。要確認プログラミングの話に聞こえますが、要するに「EAの調整つまみ」です。コードを触らずにここの数字を変えるだけで、EAの動きを変えられます。
| 変数名 | 意味 | 初期値 |
|---|---|---|
| RSIPeriod | RSIの期間 | 14 |
| BuyLevel | この値を下回ったら買い(売られすぎ) | 30 |
| SellLevel | この値を上回ったら売り(買われすぎ) | 70 |
| TakeProfitPips | 利確の幅(pips) | 50 |
| StopLossPips | 損切りの幅(pips) | 30 |
| Lots | 1回の取引のロット数 | 0.1 |
| MagicNumber | EAが自分の注文を見分ける番号 | 12345 |
| SlippagePips | 許容するスリッページ(pips) | 1.0 |
| MaxSpreadPips | この幅を超えたら新規注文しない(pips) | 3.0 |
最初のテストでは、すべて初期値のままで構いません。「値」の列だけが今回使う設定で、「スタート」「ステップ」「ストップ」の列は最適化用なので無視してOKです。確認したら「OK」でダイアログを閉じます。
手順9 スタートして進行バーを見る
- 「ビジュアルモード」のチェックはオフにしておきます。オンにするとチャート上で売買が再生されて面白いのですが、テストが非常に遅くなります。
- パネル右下の「スタート」ボタンを押します。
- パネル下部に緑色の進行バーが伸び始めます。右端まで到達したら終了です。
「全ティック」で3年分をテストすると、PCの性能によって数十秒〜数分かかります。終わると「スタート」ボタンの表示が元に戻り、パネル下部に「結果」「グラフ」「レポート」などのタブが使えるようになります。
終わったら「操作履歴」タブを一度開いてみてください。要確認テスト中のログが並んでいて、最後の方に赤字のエラーが無ければ、テストは正常に完了しています。
結果の読み方は、次の記事で説明します。
つまずきポイント
- 「スタート」を押してもすぐ終わってしまう・取引が0件: 期間の指定がデータの無い範囲になっていないか、通貨ペアがデータを準備したものと一致しているかを確認してください。また、「操作履歴」タブに「not enough money」のようなエラーがあれば、初期証拠金に対してロット数が大きすぎます。要確認
- 進行バーが動かない・固まったように見える: 全ティックは時間がかかります。数分は待ってみてください。どうしても待てないときは「ストップ」で中断し、期間を1年に短くして試すと様子がつかめます。
- EAがドロップダウンに出ない: MetaEditorでコンパイルした後、MT4のナビゲーターで右クリック→「更新」をしてください。それでも出ない場合は、保存先が MQL4/Experts フォルダになっているか確認します。
- ビジュアルモードをオンにしたままで、とても遅い: オフにしてやり直してください。オンにしたときのチャートは閉じて構いません。
- 前回の設定が残っていて、どの条件でテストしたか分からなくなった: テストのたびに「通貨ペア・時間足・期間・スプレッド・初期証拠金・パラメータ」をメモに残す習慣をつけると、後の章で比較するときに役立ちます。
次の記事
5-3 バックテスト結果の見方 で、出てきた数字とグラフを「どの順番で・どう見るか」を説明します。