例としてSP系のForceとADXの組み合わせをテストと導入をしてみます。
サンプルは次章のVC EA Builder 実践応用 無料版を参考に作成をしてください。

EA作成ボタンをおして、作成をします。作成は「FXGM MQのMetaTrader4をインストールしたフォルダ」 → 「experts」 を選択します。同名のファイルがある場合は上書きされるので注意が必要です。
MT4をひらき、一度開いているチャートウィンドウを閉じておくと、テストがすばやく出来ます。 |

MT4からMetaEditorを開きます。

MetaEditorから作成したEAを開きます。ファイルが無い場合はFilesを右クリックし、Refleshを行います。それでもファイルが出ない場合は保存先が間違えているので、再度確認して再作成してください。
ファイルが出たら、Compileを押してコンパイルを行ってください。

上のように「0 error(s)」になれば完了です。 |

次にMT4の「表示」 → 「Strategy Tester」 を表示します。

下にこのようなウィンドウが表示されます。
|

テストデータを追加するために「ツール」 → 「History Center」を表示します。

開いた中の「ForexFXCMRegula」を開き、今回テストする「USDJPY」を開き、さらに「Monthly(MN)」を開きます。

一番上の最新のものをクリックし、下の方の1999.01.01 00:00まで選択します。一番上をクリック後にShiftキーを押したまま、下のほしい所をクリックすると、一気に全て選択できます。選択後 「Download」 をクリックします。ダウンロードには数分かかります。
FXGMのMT4では現在、古いデータが多く取れるわけではありません。
FXCM社のメタトレーダーなどで、同様の手順でデータを取得後全て選択し、エクスポートボタンでエクスポートします。
そのファイルをFXGMのヒストリーセンターでインポートを行うことで、同様の事か出来ます。
http://www.fxcm.co.uk/metatrader.jsp
全て証券会社の正しいデータを初めから全て揃えて持っていない場合があります。
正しいデータに関しては後ほど述べます。

上記のメッセージが出たら「OK」を押し、次のウィンドウで「はい」をクリックします。 |
Monthlyデータを取得すると、各足のデータもダウンロードできますので、今回テストする4 Hours(H4)の4時間足を選択し、同様に一番上から、下の方の1999.01.01 00:00まで選択します。
出来ない場合は、1分〜週足まで一度全てのデータを削除し、一度MT4を閉じた後に改めて、月足を取得してください。
その後に1分足を全て取得すれば他のデータも補完されます。

選択後 「Download」 をクリックします。こちらはあまり時間はかかりません。 |

MT4に戻ってテストを実施します。Expert Advisorには作成したEAを選択します。通貨ペアは文字通り通貨ペアを選択します。今回はUSDJPYなので、それを選択します。期間は今回4時間足なのでH4を選択します。モデルは全て最終確定足なので、Open price onlyを選択します。あとはスタートを押せば開始します。
*一度MT4を閉じると直近のデータは取得できていないものなど一部消されるようで、消された後はリアルデータではなく、一部が仮想データになったり、期間を飛ばしてテストを行うようです。テストの度に、データを取得しなおしたほうが実際の結果に近くなります。
また、閉じないでも、リアルタイムで取得しているうちにデータの一部が欠損したり、変更されたケースがあります。チャートを開くと変わるケースが多いです。テストの度、毎回取得しなおしたほうが正しいテストが出来ます。

結果の一番初めが、1999年から始まっていればデータは正しく取れています。2006年や2010年など取得したデータより新しい場合は、再度取得をします。
Graphやレポートも参考になります。 |
長期にわたるテストを行いたい場合は何点か注意ポイントがあります。証券会社ごとに発表データが異なり、データの取得の仕方で大きく結果も変わるので、注意が必要です。
特にSP系のチューニングなどはデータが一部飛ぶと、結果も内容も大きく変わってしまいます。
しかしながら、ほとんどの証券会社で過去の古いデータまで配信していないのが現状で、MT4を開発したMetaQuotesのデータをダウンロードして、バックテストを行い、その後で、実際の証券会社でフォワードテストするしかありません。 |
重要な点として、テスト時になるべく仮想データを使わない。そして、配信元がばらばらにならないことです。
そうすれば、ロジック自体の整合性はほぼ合います。
そのためには、毎回データを取得しなおす方法を推奨します。

はじめにHistryCenterから使いたい通貨の1分足を選択します。(MetaQuotes社のデータが取れるMT4を使います。)
次に、すべてを選択し、削除してしまいます。それそ全ての足で一度削除してしまいます。
削除後にMT4を再起動します。再起動前に、すべてのチャートを閉じておいたほうが、起動が早くなります。
再起動後にもう一度HistryCenterを開きます。
月足で必要な月を全て選択し、ダウンロードします。
同様に、時間足と1分足もダウンロードします。1分足は全てダウンロード後に少し追加分が出ることがあるので、それもダウンロードします。その後テストに必要な足とその前後あたりをダウンロードしておけば、あとは1分足で補完されます。 |


ダウンロード後にファイル → オフラインチャートを選択し、開きます。
使いたい通貨の足が入っていれば全てデータが取れています。
ちなみに青のものはOpenPriceといって、テストで使ったものが入るようです。
また、オフラインチャートに入っていても、一部データが欠損する場合があります。理由はわかっていません。
おそらく、チャートを開いたりした時に、バッファ(メモリ)が不足したときに一部を消してしまうようです。
いろいろ大変ですが、折角の設定も、データが違っていては正しい検証が出来ません。
面倒ですが、毎回テストを始める時にチャートを閉じデータをダウンロードし、正しい情報でテストをしてください。 |

「ツール」 → 「オプション」 → 「チャート」タブ のヒストリー内のバー最大数がかなり大きな数字になっています。
終了後は20000くらいに戻さないと、実際にチャートを表示する際に重くなるので、戻しておきましょう。
再度テストする際にはデータ数が減っているので、改めてデータを取得してから、実行するようにします。 |