MT4を使ったEAのバックテスト 設定と成績評価について解説

仕事中だから相場のチェックができない

売買の機会損失を防ぎたい

自己ルールがはっきりしている

そんな方にはEAを使った自動売買をオススメします。

自動売買EAを使えば、チャートに張り付く必要もなく、ルールに従い、自動的に注文から決済まで全て自動で行ってくれます。

EAは難しそう?

いいえ、そんなことはありません!MT4を使えば初心者でも簡単に設定ができます。

通常、EAを稼動させるまでの手順は

EA入手

バックテスト

フォワードテスト

稼動

の4ステップを辿ります。

今回はEAのバックテストを焦点にストラレテジーテスターの使い方から設定方法までMT4付属サンプルEAの「Moving Average.ex4」を例に紹介していきます。

MT4のインストール

MT4をインストールしていない方はMT4を準備することから始めます。

リアル口座とバックテスト用の口座は分けることをオススメ。

管理人はバックテストには業者のデモ口座を利用しています。そのままフォワードテストも行えるメリットもありますね!

XMのデモ口座は即時に開設でき、有効期限がありません。MT4の機能も全て使えます。

EAの入手

EAの入手は「有料、無料、自作する」の3パターンあります。高機能・高性能なものは有料のものが多いです。

海外サイトを探せばフリーのものも存在しますが、必ずバックテストを行う必要があります。フリーEAは検証が不十分でバグなどが存在する可能性があります。

リアル口座で稼動させて予期せぬ売買が発生したり、損切り・利確の設定がなされずポジションを保有し続けるなどのリスクも・・

必ずバックテストを長期スパンにて行い、実用に耐えうるか検証してください。

今回はMT4付属のEAを使うのでこの過程は省略します。

MT4のバックテスト

EAを入手したらバックテストを行います。バックテストとは、過去レートを元にEAを適用・稼動させて検証することをいいます。

後述しますが、検証後に成績が発行されます。

運用に値するかどうかはこの成績を基に判断されます。

ヒストリカルデータを入手

では、バックテストの準備に入ります。

過去レートにEAを適用させるので、過去レートをどこからか持ってくる必要がありますね!

1・FX業者独自のヒストリカルデータ

最もオススメ。配布している業者は少ない

2・FXDDのヒストリカルデータ

多くのユーザーに使われている

3・MetaQuotes社のヒストリカルデータ

MT4上から簡単ダウンロード。抜けや信頼度の問題があり評判がよくない

一番理想的なのはEAを適用させようと思っている業者のデータです。

ほとんど配布しているところがないのがネックです。

最も多くのユーザーに利用されているのはFXDDのデータ。過去10年分のデータを使える、検証に耐えうる信頼性もあります。

MetaQuotes社のものは最も古い時期まで遡れますが、抜けが多いため検証結果の信頼が落ちます。

今回はFXDDのヒストリカルデータを使い検証いたします。

事前準備

データダウンロード

自動化有効

.hstファイル削除

.hstファイル追加

全てのデータ足作成

5ステップでいきます。

まずはFXDDにアクセス。

FXDDティックデータ

1分足のティックデータがズラーッと並んでいます。検証したい通貨ペアのデータをダウンロード→解凍。

次にMT4起動。上メニュー『ツール』→『オプション』→『エキスパートアドバイザー』を開き「自動売買を許可する」にチェック。

『チャート』タブに切り替え、表示バー数を設定。MAXの「2147483647」にしておく(9999999999と打ち込んでもOK)

尚、バー数が多いとMT4が重くなるのでリアル口座では少ない方が良い。バックテストは過去のデータを参照する必要があるのでMAXにしておくことが望ましい。

続いて.hstファイルを削除します。.hstファイルはヒストリカルデータが格納されているファイルのことで、MT4を開いていると勝手に作成されます。

これからFXDDのデータとの混同を避けるためにすでに入ってるファイルは削除します。

上メニュー『ファイル』→『データフォルダを開く』→『history』から上画像のような画面が表示されます。

管理人はEAの検証にはデモ口座を使っています。リアル口座と検証用口座は分けておいたほうが良いでしょう。

ここで一旦MT4を閉じてください(.hstファイルの自動生成を防ぐため)

Demo3フォルダに入ると.hstファイルがたくさんあります。EAを適用させたいペアの.hstファイルを全て削除します。

今回はEURUSDでEAの検証をするのでEURUSDを全て削除。

MT4を再起動後に『ツール』→『ヒストリーセンター』

EURUSDの1分足をチェック!

MT4を起動すると自動的に直近のバーデータが生成されます。ダウンロードしたFXDDとの間に期間の抜けが発生するので一応削除しておきましょう。

削除が終わったら、『インポート』→『参照』

さきほどダウンロードしたFXDDの.hstファイルを選択→『OK』

MT4を再起動

再びヒストリーセンターを開いてください。過去分のデータが表示されていたら完了です。

今作ったのは1分足のデータのみです。

ここから5分足~月足のデータを作成します。

MT4付属の「Period Converter」で作成できますが、1つずつ作る必要があり非常に面倒です。

「Period Converter ALL」というスクリプトが無料配布されているのでこちらを使います。

「Period Converter ALL」ダウンロード

MT4の上メニュー『ファイル』→『データフォルダを開く』→『MQL4』→『Scripts』にダウンロードしたファイルをコピー。

MT4を再起動

ナビゲーターから『スクリプト』→『perido_converter_ALL』をEUR/USDチャートにドラッグ&ドロップ。

処理が完了するまでに数分かかります。

『ファイル』→『オフラインチャート』を開いてください。

EURUSDの全ての時間足のヒストリカルデータが作成されたら事前準備は終了です!

ストラテジーテスターでバックテスト

ストラテジーテスター設定

いよいよバックテストに取り掛かります。

『表示』→『ストラテジーテスター』(もしくはCTRL+R)で開きます。

①エスキスパートアドバイザー

EAを選択。今回は付属のMoving Average.ex4を選択

②通貨ペア

EAを適用させる通貨ペアを選択。EAによっては使える通貨ペアが限定されています。

③モデル

シュミレーションの精度を選択。全ティック>コントロールポイント>始値のみの順に精度が上がりますが、バックテスト時間もより長くかかります。実運用の事を考えて全ティックにしておく方が良いです。

④期間を指定

EAを適用させる期間を指定。ヒストリカルデータによって指定できる期間が違います。

⑤ビジュアルモード

チェックをいれるとチャートを描画しながらシュミレーションします。エントリーポイントなどが視覚的に確認できますが、バックテスト時間は極端に長くなります。


⑥期間

EAを適用させる時間足を指定します。EAによっては使える時間足が限定されます。

⑦スプレッド

バックテストは原則固定スプレッドです。その値を指定。単位はポイントが採用されています。1pipは10ポイントです。

⑧最適化

EAのパラメーターを複数適用させながらバックテストを行います。パラメーターの設定は『エキスパート設定』から。尚、最適化にチェックをいれるとビジュアルモードは使えないのでご注意ください。

損益を確認するために証拠金などの設定もしておきましょう!

『エキスパートアドバイザー』をクリック。

初期証拠金を設定します。円建てにしたければJPYと直打ちします。

ポジションで買いのみ、売りのみのエントリーに設定することもできます。デフォルトではlong&short。

最適化の項目は最適化にチェックをいれてる時のみ設定します。今回は不要です。

サンプル設定

では、今回のサンプルの設定にはいります。各項目を以下のように設定してください。

①エキスパートアドバイザー

Moving Average.ex4

②通貨ペア

EURUSD

③モデル

全ティック

④期間を指定

2014.1.1~2016.12.1

⑤ビジュアルモード

なし(チェックを付けて描画を見てもOK)

⑥期間

日足

⑦スプレッド

30

⑧最適化

チェックをつけない

以上の設定後に『スタート』

緑のバーが右端までいったらバックテスト終了です!

成績評価

成績評価は見る項目が多く、評価の仕方は人それぞれです。

特に重要なものをピックアップして紹介します。

成績は下タブから見れます。『結果』『グラフ』『レポート』の3つです。

結果

売買や約定の履歴が見れます。それに応じた約定レート、損益もここで確認

グラフ

資産の推移をグラフ化

レポート

成績評価の要。純益、ドローダウン、プロフィットファクタなどを確認。

レポート画面は右クリックから保存ができます。

今回のバックテストの全結果は下のレポートをクリック。

今回のバックテストで得た利益は241.93ドルです。全体の勝率は25%。

連勝、連敗まで分かります。

しかし、これらのデータより赤枠で囲んだデータを重視する必要があります。各データの内容は以下の通り

モデリング品質

バックテストの精度。MAXは90%。90%未満で低品質、n/aが表示されれば信頼に値しない。検証結果は90%であることが望ましい。

不整合チャートエラー

エラーのあったティック数。0でない結果はそれだけで信憑性にかける。

プロフィックファクタ

プロフィックファクタ=総利益/総損失。1.0以上だと利益をだせるEA、1.0未満だと利益をだせないEAと簡単に理解できる。バックテストの設定によって変化するが、当然ながら1.0未満のEAは使い物にならない。

期待利得

1回のトレードあたりの損益(平均値)。期待利得=純利益/トレード回数

絶対ドローダウン

口座の初期資金から最も下がった時の金額。EAの開始時期によってはガッツリ下がるがそこまで重要な指標ではない。

最大ドローダウン

バックテスト期間中に最も大損した金額。

相対ドローダウン

バックテスト期間中に最も大損した割合。

総益や純利益よりもプロフィックファクタの方がより重要です。テストAで「純利益100万、純損失50万」よりテストB「純利益10万、純損失2万」の方が優秀です。

プロフィックファクタ

・・テストA→2.0

・・テストB→5.0

テストBのレバレッジを10倍にしてやれば純利益100万の純損失20万なわけですから、テストAと比較して30万も得しています。

このように利益よりプロフィックファクタを見た方が正しい評価に繋がります。

また、ドローダウンは単利運用と複式運用で重視すべき項目が違います。

単利なら最大ドローダウン、複式なら相対ドローダウンを重視すべきです。というのも単利は固定ロットで運用されるのに対して複利は損益に合わせてロット数が変化します。

一定の利益を上げられるEAがあるとします。単利の場合、利益曲線は直線。一方の複利の場合は曲線です。

複利で元金が大きくなればなるほど、必然的に利益も損失も大きくなります。

そのため金額よりも相対ドローダウンで比率を見た方が正当な評価につながります。

ドローダウンはより小さい値ほどリスクの少ない安定したEAという事になりますね!

最適化でバックテスト

ストラテジーテスターの最適化にチェックを付けると様々なパラメーターを利用してバックテストが行えます。

パラメーターは複数組み合わせることができますが、あまり設定しすぎると極端に時間が掛かるのでご注意ください。

例えばパラメーターにMAの期間を3パターン、TPを4パターン設定すると・・

3×4=12

合計12パターン全ての組み合わせで検証をします。最適化前と単純に比較して12倍の計算量が必要になります。

遺伝的アルゴリズムにチェックを付けると悪い結果を除外してくれます。そのためバックテストを高速化できます。

パラメーターの設定はEAごとに異なります。

基本はチェックを付けてスタート(初期値)、ステップ(増加)、ストップ(最後値)を設定してあげます。

上の画像だとLotsのパラメーターをスタート0.1、ステップ0.1、ストップ0.6に設定しています。

「0.1から0.6まで0.1刻みの値を全てテスト」

という意味です。全部で6パターンですね。

「Moving Average.ex4」のパラメーター「Moving Shift」「Maximum Risk」「Decrease Factor」を設定して最適化→バックテストしたものは以下の通り。

『最適化結果』でパラメーターの組み合わせによるプロフィットファクタやドローダウンが分かります。

『最適化グラフ』でパラメーターごとの利益グラフが一目瞭然で分かります。

通常のバックテストと同様にレポート発行も可能(上の画像をクリック)

バックテストの問題点

バックテストには様々な問題点があります。

スリッページを考慮していない

スプレッドの広がりを考慮していない

約定拒否を考慮していない

設定次第でいくらでも良い結果が得られる

今回のサンプルEA「Moving Average.ex4」もあえて良い結果がでるよう期間設定をしました。

期間や時間足を変えると大抵ボロボロの結果になります。

このようにEAは設定次第でいくらでも高評価は叩き出せます!

重要なのはいろんなパターンや設定変更をしてそれでもなお、安定した成績を出せるかを根気よく検証することです。

さらに言えば、結果よりも良い成績になった背景(相場状況や傾向)を見極めることが大切です。

EAはただ使えば良いわけではなく、トレーダーの使い方が非常に重要になってきます。

VPSを導入して本格的にシストレ

以上のバックテストが終了したらフォワードテストを行います。

フォワードテストとは実際の相場でEAを稼動させて検証することをいいます。一般的にデモ口座を利用して行われます。

その後、問題がなければリアル口座にて実運用に入っていきます。

自宅でEAを稼動させるためには原則24時間PCをつけっぱなしにする必要があります。

電気代などのコストや安定性に欠けるというデメリットがあり、現実的にはVPSを使うことになるかと思います。

VPSとは、MT4/5がインストールできるサーバーの事をいいます。メタトレーダーをインストールするためOSはWindowsサーバーです。(Linuxサーバーでも使えるが敷居が高い)

安定性の向上、約定力の強化に繋がるため本気でEA運用を考えている方は利用することをオススメします。

デメリットは有料なことです。

VPSでよく利用されるのは以下の業者

お名前.com デスクトップクラウド

ABLENET VPS

海外業者の中にはVPSを無料で貸し出してくれる業者もあります。

無料利用できる業者は以下の通り

XM

MT4/5対応。取引制限なし。約定力の向上。データセンター近接位置。

FBS

MT4/5対応。約定力の向上。取引制限なし。

Traders Trust

MT4対応。スペックの異なる3種類のサーバー

VPSサーバーの導入方法については以下の記事を参考

どうしても自宅PCでEAを稼動させたい方はできるだけスプレッドの狭い、約定力の強い業者を選ぶことが重要になります。

最もオススメする業者はAXIORYです。

AXIORYのメリット

・ヒストリカルデータ公開

・低スプレッド

・レイテンシー84ms

・取引制限なし

独自のヒストリカルデータを無料で公開しており、バックテストに業者独自のティックデータを使うことができます。

ECN口座のスプレッドは業界でも一二を争う低い水準だけでなく、約定力も優秀です。海外業者は物理的に離れているためレイテンシーはどうしても100~300msを推移します。

AXIORYは独自のデータ網を駆使しており、レイテンシーは70~90msと非常に速い数値が出せます。

取引制限がないためスキャルピング系EAや経済指標系のEAも使い放題です。

AXIORY公式