MT4のEAバックテスト 設定や成績評価について解説

仕事中だからチャートのチェックができない

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

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

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

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

EAは難しそう?

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

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

 

EA入手

バックテスト

フォワードテスト

稼動

 

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

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

バックテストはデモ口座でやった方が良い

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

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

間違えてテスト前にリアルトレードに投入・・・何てことになっても誰も責任をとってくれませんからね( ̄Д ̄;;

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

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

EAはどうやって入手したらいいの?

EAは無料・有料・自作するのいずれかで手に入れます。今の世の中、Googleに聞けばすぐに関連するEAを教えてくれますよね^^;

高機能なものは有料のモノが多いですが、必ずしも優秀とは限らないのがEAの難しいところです。

 

無料EAを入手 → 必要に応じて有料・自作

 

という流れで良いかと思います。

要は「どういった自動売買をしたいのか?」が問題なので、フリーで間に合えばそれで充分といえます。

 

フリーEAは検証が不十分でバグなどが存在する可能性があります。

 

海外サイトで探せばフリーEAは多く存在しますが、必ずバックテストを行う必要があります。

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

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

MT4でバックテストをやってみよう!

EAを入手したらバックテストを行います!!

バックテストとは、過去のレートを使いEAを適用・稼動させてどういった結果を残すのか検証する事をいいます。

後述しますが、検証後にEAの成績が発行されます。運用に値するかどうかはこの成績によって判断されます。

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

それではバックテストの前準備に入りましょう。

過去のレートをデータ化したものをヒストリカルデータといいます。通常は各ペアの価格が数年分まとめらているデータファイルとなっています。

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

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

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

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

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

③ FXDDのヒストリカルデータ

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

会社によって価格レートは微妙に違います。自分が使うFX会社のヒストリカルデータ(過去データ)を基に検証するのが最も理想的かと思います。

AXIORYなど一部の業者では公開されていますが、残念ながら多くの業者は過去データを公開していません。

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

最も多くのユーザーに利用されているのはFXDDのヒストリカルデータです!

過去10年分のデータを使えるのに加え、抜けがないため検証に耐えうる信頼性もあります。今回はFXDDのヒストリカルデータを使い検証していきます。

ヒストリカルデータをMT4に組み込む

 

データダウンロード

自動化有効

.hstファイル削除

.hstファイル追加

全てのデータ足作成

 

5ステップでいきます!

まずはFXDDにアクセス。

FXDDティックデータ

1分足のティックデータがズラーッと並んでいます。検証したい通貨ペアのデータをダウンロード → 解凍して.hstファイルを準備しておきます。

次にMT4起動。

上メニューから【ツール】→【オプション】→【エキスパートアドバイザー】を開き「自動売買を許可する」にチェックを付けます。

【チャート】タブに切り替え、【ヒストリー内の最大バー数】を設定します。MAXの【2147483647】にしておく(9999999999と打ち込んでもOK)

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

続いて現在の.hstファイルを削除します。

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

これから使うFXDDの.hstファイルとの混同を避けるため、すでに入ってるファイルは削除します。

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

【XMTrading-】以下のDemoはデモ口座、Realはリアル口座を意味します。管理人はバックテストの際はデモ口座を使用しています。

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

【XMTrading-Demo 3】に入ると.hstファイルがたくさんあります。

EAを適用させたいペアの.hstファイルを全て削除します。

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

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

EURUSDの1分足をチェック!

MT4を起動すると自動的に直近のバーデータが生成されます。テスト期間を調整すれば問題はありませんが、ダウンロードしたFXDDとの間に期間の抜けが発生するので一応削除しておきましょう。

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

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

以上のように過去分のデータが表示されていたら完了です!

今作ったのは1分足のティックデータのみです。ここから5分足~月足のデータを作成します。

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

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

「Period Converter ALL」ダウンロード

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

ナビゲーターから【スクリプト】→【perido_converter_ALL】をEUR/USDの1分足チャートにドラッグ&ドロップ。

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

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

差出人のリストがデータの始まり年月です。(上図は2018年に作成したもので、適時検証したい期間が入ってればOK)

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

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

ストラテジーテスターの設定方法

いよいよバックテストの実行です!

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

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

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

② 通貨ペア

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

③ モデル

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

④ 期間を指定

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

⑤ ビジュアルモード

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


⑥ 期間

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

⑦ スプレッド

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

⑧ 最適化

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

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

【エキスパート設定】をクリック。

【テスト設定】から初期証拠金を設定します。円建てにしたければJPYと直打ちします。

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

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

【パラメーターの入力】からEAのパラメーターが設定できます。

【値】となっている箇所に入力していきます。例えばMAの期間を変えたければ【Moving Period】の12.0日を変更します。

尚、右側のスタート、ステップ、ストップは最適化する際に使います。ここでは不要です。

サンプルEAで自動売買を実行

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

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

Moving Average.ex4

② 通貨ペア

EURUSD

③ モデル

全ティック

④ 期間を指定

2014.1.1~2016.12.1

⑤ ビジュアルモード

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

⑥ 期間

日足

⑦ スプレッド

30

⑧ 最適化

チェックをつけない

⑨ パラメーター値

初期値のまま

以上を設定したら【スタート】を押してバックテストを開始します。緑のバーが右端までいったらバックテスト終了です!

テスト後の成績評価について

バックテストの後に成績表が発行されます。成績評価は見る項目が多く、評価の仕方は人それぞれです。

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

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

結果

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

グラフ

資産の推移をグラフ化

レポート

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

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

↓↓下のレポート画像をクリックすると今回のテスト結果を見ることができます↓↓

今回のバックテストで

総トレード数36回中、勝ちトレードが9回、負けトレードが27回。勝利地は25%で、損益は241.93ドルのプラスになっているのがレポートから分かります。

連勝、連敗まで分かりますね!

様々な統計を確認できますが、赤枠で囲んだ統計はより重要です。各データの内容は以下の通り

モデリング品質

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

不整合チャートエラー

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

プロフィットファクタ(PF)

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

期待利得

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

絶対ドローダウン

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

最大ドローダウン

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

相対ドローダウン

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

総益や純利益よりもプロフィットファクタの方がより重要な指標になります!!

AというEAで「純利益100万、純損失50万」、BというEAで「純利益10万、純損失2万」の結果が出たとしてどちらが優秀だと思いますか?

プロフィックファクタ(PF)で比較すると….

 

A → PFは2.0

B → PFは5.0

 

Bのレバレッジを10倍にしてやれば純利益100万の純損失20万になりますよね?AのEAより利益が30万円も上乗せされている事が分かります。

このように利益よりプロフィットファクタを見た方が正しい評価に繋がるわけです!

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

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

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

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

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

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

自動売買の最適化とは何なのか?

設定値を決めた上でバックテストを行いましたが、場合によっては色々と設定値を変更しながらテストを行いたいところです。(例えばスプレッドを10pipsや20pipsと変えて)

 

このような時に最適化を使います!

 

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

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

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

3 × 4 = 12パターン

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

少しでも最適化の検証を早く終わらせたい場合は、【エキスパート設定】→【テスト設定】→【遺伝的アルゴリズム】にチェックを付けましょう。

これによって明らかに悪い結果を試行から除外してくれます。結果としてバックテストの高速化につながりますね!

最適化の設定は【エキスパート設定】→【パラメーターの入力】から行います。

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

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

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

 

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

 

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

 

続いて何に最適化するか?を設定します。

【最適化】のタブから最適化したい項目にチェックを入れます。

例えば【利益】と【ドローダウン】にチェックを入れると、先ほど設定したパラメーターの組み合わせを色々変えながら、利益とドローダウンが最も良くなるパラメーター値を出力してくれます。

最適化の実行と結果

最適化の実行は【最適化】にチェックを付けて、スタートを押すだけです。

自動的にパラメーターの組み合わせによる結果を出力してくれます。

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

パラメーターの組み合わせはパスとして管理されています。

【最適化グラフ】は、パスごとの利益がプロットされており、どのパス(パラメーターの組み合わせ)が利益を出せるのか?一目瞭然で分かるようになっています。

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

バックテストの問題点

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

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

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

リクオートを考慮していない

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

バックテストはあくまで仮想空間でのテストです。リアルトレードでは、スプレッドの広がりが当たり前のようにありますが、テストでは考慮されていません。

cTraderのバックテストでは、スプレッドの広がりを考慮することができます。

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

期間や時間足を変えると大抵ボロボロの結果になります(^▽^;)

EAは設定次第でいくらでも高成績は叩き出せます!

どんな状況でも成績の良いEAなどありえません・・・もしそんなEAがあればそれは聖杯ですし、人には絶対に教えません(笑)

重要なのは、「この状況なら得意」「この状況は苦手」というようにEAの得意不得意(性質)をしっかり理解することです!

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

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

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

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

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

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

自宅でEAを稼動させるためにはPCの電源をONにし続けなければなりません!

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

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

安定性の向上、約定力の強化に繋がるため本気で自動売買にて運用を考えている方は検討してみると良いでしょう。

↓↓国内業者で有名なレンタルサーバー↓↓

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

ABLENET VPS

FX会社の中にはVPSを無料で貸し出してくれるところもあります。

無料でレンタルするには条件がありますので、詳細は公式サイトにて確認しておいてください。

XM

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

FBS

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

Traders Trust

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

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

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

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

AXIORYのメリット

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

・低スプレッド

・レイテンシー 84ms

・取引制限なし

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

ECN口座の評判が良く、スプレッドや約定力などの条件が優れています。

海外FXはサーバーの物理的な理由からレイテンシーが100~300ms程度と約定力の面では不利ですが、AXIORYのレイテンシーは70~90msと国内業者にも負けないスピードが出せます。

自宅PCからでもVPSに匹敵する約定力を実現できます。

The following two tabs change content below.
投資歴11年。FX歴7年。負けに負けまくってFXの難しさを悟るლ( ˇωˇლ)現在はシステムトレードがメイン。 好きな投資の名言 (´・ω・`)「ルール その1:絶対に損をしないこと。ルール その2:絶対にルール1を忘れないこと。」
タイトルとURLをコピーしました