【難しいこと抜き】EAのバックテストのやり方とテスト結果の見方

EAを入手した人の中には自分の大事な資金を投入して運用する前に入手したEAが過去の相場で運用した場合にどのような結果になったか気になる人もいるだろう。
バックテストの結果が良いEAが未来の相場で必ずいい結果をもたらすとは言えないがバックテストを行うことで運用する前に明らかにアカンEAは選別することができる。

また、自分でEAのバックテストを行うことでEA配布者が提示していたバックテストデータに嘘がないか自分で検証することが可能だ。
そこに嘘があればそんなEAはすぐに捨ててしまえばいい話だ。

バックテストと聞くとなんだか難しそう、テスト結果をどう活用すればいいかわからないという方向けに難しい話を全部抜きにしてそのEAが使えそうなのかゴミなのかを瞬時に判断するバックテストのやり方とテスト結果の参照のやり方を伝授する。

バックテストとフォワードテスト

バックテストのやり方について説明する前に前提となる大切な知識を伝授しておかなければならない。
バックテストの対義語としてフォワードテストというものが存在する。
それぞれ説明する。

バックテストとフォワードテスト

・バックテスト・・・EAを過去の相場に当てはめたらどの様な成績になるか確認すること。MT4ですぐにできる。
・フォワードテスト・・・EAを未来の相場に当てはめたらどの様な成績になるか確認すること。リアルタイムの相場で行うので1か月分のデータが欲しければ1か月かかる。

バックテスト結果とフォワードテスト結果の信頼度の話

結論から言うと両者の結果の信頼度はフォワードテスト結果>>超えられない壁>>バックテスト結果である。
例えば1年間実際の相場で毎月利益を出し続けてきたEAと過去の相場1年間で利益を出し続けてきたEAどちらを信頼する?という話である。

そもそも過去の相場で通用したものが未来の相場で通用するとは限らない。
未来の相場で結果を出し続ける(フォワードテスト結果の良い)EAこそが正義である。

しかしながらフォワードテストはリアルタイムの相場でテストするが故にテスト結果が出るまでに時間がかかる。
そこでバックテストを行いフォワードテストを行う価値があるEAなのかを判断するためにバックテストは存在する。

バックテスト結果が悪ければフォワードで良い成績が出るわけないのでそこでゴミEAをはじき大幅な時間を節約できる。

普通に考えればわかる話だがフォワードテスト結果が良いEAが未来の相場でも良い結果を出すのであればこの世には金持ちだらけになる。
今ネットで拾えるEAなんて全部バックテスト結果めちゃくちゃ良いでしょ?
でもEA使ってお金を稼げている人なんてそう多くない。

つまりフォワードテスト最強、バックテストはフォワードテストする価値があるか見極めるための一次試験という認識でバックテストを行ってほしい。

バックテストのやり方

さて、ここから本題に入る。
まずはバックテストを行いたいEAを用意してほしい。
もしまだEAを持っていなければ私のオリジナルEAのフォワードテスト結果を公開している以下の記事を読み気に入れば無料で受け取ってほしい。

【随時更新】オリジナルEA「be-legend」の成績公開!

MT4にEAを取り込む

既にMT4にバックテストしたいEAを取り込んでいる方はスキップしてください。
やり方がわからない方はここで説明します。

まずはMT4左上の「ファイル」から「データフォルダを開く」をクリックします。

MQL4→Expertsの順にクリックすると画像のようなフォルダにたどり着くのでここにEAをドラックアンドドロップないし、コピペで格納してください。
その後このフォルダ、MT4もろとも「×」で閉じてしまってMT4を再起動してください。

MT4を再起動した後表示タブから「ナビゲーター」をクリックしナビゲーターを表示させます。

ナビゲーターのエキスパートアドバイザの「+」をクリックするとあなたがバックテストしたいEAが表示されているはずです。
画像の例では私のオリジナルEAの「be-legend」が格納されています。
あなたがバックテストしたいEAが格納されていることが確認出来たら次のステップに進みます。

過去相場データを取得する

バックテストを行うためには3年~5年くらいの過去データが必要になりますが通常MT4には3年も5年も昔のデータは入っていません。
なのでヒストリーセンターというところから過去データを引っ張ってくる必要があります。

まずMT4のツール→ヒストリーセンターの順にクリックします。

すると画像のような画面になるのでバックテストしたいEAの推奨通貨ペアをダブルクリックし画像のように時間足を表示させ1分足をダブルクリックします。
今回はオリジナルEAのbe-legendの推奨通貨ペアであるUSDCADを選択します。
EAを動作させる時間足に関係なく1分足を選択しましょう。

そしてダウンロードボタンをクリックします。

問題ないので「OK」をクリックします。

 

そうすると緑のメーターがどんどん貯まっていき過去データのダウンロードが始まります。
ダウンロード完了までしばらくかかるので待ちましょう。

今回はオリジナルEAのbe-legendの推奨通貨ペアであるUSDCADで説明しましたが推奨通貨ペアが違っても選択する通貨ペアを変更するだけでやり方は同じです。
緑のゲージが満タンになったら過去データの取得が完了します。

過去データの取得が完了したら次のステップです。

ストラテジーテスターを開く

MT4でバックテストを行う際はこの「ストラテジーテスター」というものを利用することにります。

まずはMT4上部のタブの「表示」→「ストラテジーテスター」の順にクリックします。

そうするとMT4下部に以下の画像のような画面が表示されます。
これがストラテジーテスターです。

これでストラテジーテスターは開けたので次はいよいよ各種数値を入力してバックテストの設定を行います。

エキスパートアドバイザの設定

添付画像ので「エキスパートアドバイザ」が選択されていることを確認する。
でプルダウン選択形式になっているのであなたがバックテストをしたいEAが選択されていることを確認してください。
今回は私のオリジナルEA「be-legend」のバックテスト用ファイルを選択します。

もしここであなたがバックテストしたいEAが無ければMT4を再起動してください。
MT4にEAを取り込んだ際、再起動しないとEAが表示されないのは仕様です。

通貨ペアの選択

あなたがバックテストを行いたいEAの推奨通貨ペアを選択します。
今回はオリジナルEA「be-legend」の推奨通貨ペアであるUSDCADを選択します。

期間の設定

あなたがバックテストを行いたいEAを動作させる時間足を選択します。
今回はオリジナルEA「be-legend」の時間足である5分足を選択します。

モデルの選択

ここでは全ティック、コントロールポイント、始値の3つから選択します。
一番精度の高いバックテストができるモデルは「全ティック」なので全ティックを選択しておきましょう。

スプレッドを選択

あなたがバックテストを行いたいEAの「エントリーするときスプレッドが〇pips以上の時エントリーを回避」といったような機能がもしあればそのスプレッド値を入力しましょう。
ものによってはこれが存在しないEAもあります。
もし存在しない場合は5pipsくらいを入力しましょう。
この欄は手動による数値入力が可能です。

バックテストを行う期間を指定する

どれくらいの期間でバックテストを行いますか?という項目です。
「期間を指定」にチェックを入れます。
その後期間の選択を行いますが今回は2021年1月1日~2021年5月31日までを指定してみます。

ビジュアルモードについて

ビジュアルモードにチェックを入れてバックテストを行うとEAがどこでエントリーをしてどこで決済を行ったのか目に見える形で表示されます。
ただしバックテストの結果が出るまで時間がかかるのでデータだけほしいという方はチェックを外してください。
自分でEA開発を行う方は仕上がったEAがきちんとロジック通りに動作しているか確認するためにはこのビジュアルモードでのバックテストが必須です。
添付画像にビジュアルモードでバックテストを行うとどのような感じになるか示しておきます。

以上でMT4側の設定は完了である。
次にEAのパラメーター設定を行う。

EAのパラメーター設定

次にEAのパラメーターを設定する。
EAのパラメーター設定に関してはそのEAのマニュアルに設定内容が記載してあるはずなのでその通りに設定してほしい。

まずはストラテジーテスターの右上にある「エキスパート設定」ボタンをクリックしてほしい。

テスト設定

エキスパート設定ボタンをクリックすると添付画像のような画面になる。
初期証拠金額を手動で入力する。
この項目は証拠金がいくらある前提でテストを行うか決定する項目である。
今回は100万円でバックテストを行うこととする。
通貨を「JPY」にすること。プルダウンの選択に無い場合は手動で入力。

パラメーターの入力

この項目はあなたが入手したEAのマニュアル通り設定してほしい。
なお添付画像は私のオリジナルEA「be-legend」の設定画面である。
最適化タブについては触らなくていい。

いよいよバックテストを実行する

めんどくさい設定はここまでで終わりだ。
後はいよいよスタートボタンをぽちっとなとやるだけでそのEAのバックテスト結果が出る。
あなたが入手したEAはゴミなのか・・・優秀である可能性があるのか・・・ついに答えは出る。
下の緑のゲージが溜まっていき、変な音が鳴ったらバックテスト完了の合図である。

バックテスト結果を保存する

バックテストが完了したらバックテスト結果を保存する。
学生の頃にもらった「成績通知表」のようなものだ。

まずは結果タブを選択右クリック→レポートを保存の順にクリックする。

デスクトップでもどこでも自分がわかる場所に保存してください。

バックテスト結果の見方

あなたはEAのバックテスト結果を見てこのEAを評価する必要がある。
そのためのバックテストだ。

では、どのような項目に注目すれば良いか解説する。
今回は私のオリジナルEA「be-legend」のテスト結果を例に説明する。

バックテスト結果の全容

以下の画像は私のオリジナルEA「be-legend」のバックテスト結果の画像である。
注目すべき項目には赤枠と番号を振っておいた。
この画像を元に解説していく。

①純益

総利益から総損失を引いたものが純利益である。
要するに設定した期間このEAを稼働させた場合いくら儲かったの?という数値である。

今回の例のbe-legendは2021年1月1日~2021年5月31日まで稼働させて1641553円利益が出たという結果になった。
平均すると月利30%で5か月間稼働したことになる。

②プロフィットファクター

プロフィットファクターは総利益は総損失の何倍ですか?という指標である。
例えば総利益が100万円、総損失が50万円、純益が50万円だった場合のプロフィットファクターは「2」である。

同じ純益50万円でも総利益300万円、総損失250万円であった場合のプロフィットファクターは「1.2」となりプロフィットファクターの数値が小さくなればなるほど「トレードの利益率」が悪化し小さなことがきっかけで損失に転じる可能性が高まる。

よってプロフィットファクターの数値は高ければ高いほど優秀と言える。

be-legendのプロフィットファクターは約2となっており、これはかなり優秀な数字である。

③最大ドローンダウン

最大ドローダウンとはEAをバックテストした期間中に資金に対して最大何%の含み損(もしくは確定した損失)を持ちましたか、という指標である。
例えばテスト期間中資金100万円で含み損(もしくは確定した損失)が50万円出た場合、最大ドローダウンは50%である。

be-legendの最大ドローダウンは約50%となっており正直この数字はあまりよくない。

しかし実際には指標発表前のEAのオフ、月末月初のEAのOFFなどEAのオンオフをしっかり切り替えているのでこれまで経験した最大ドローダウンは20%ほどである。

バックテスト結果で見るべき項目は以上である。
この3つの項目を見ることが出来ればそのEAがどれくらいのリスクを取ってどれくらいの利益を見込めそうかざっくり把握することができる。

バックテストのやり方から結果の参照のやり方の説明は以上である。

筆者のバックテストに対する見解

冒頭にも述べましたがバックテストの成績がそのままリアルタイムのチャートでいい成績を残すことはあまりありません。
もしそうであれば世の中どんなEAを入手してきてもお金持ちになれます。
そのためバックテストの成績はそのEAが明らかにダメかどうか調べる手段、程度に思っておいた方が良いです。

実際私自身、EAを開発し使用していますが本記事でバックテストデータをお見せしたように最大ドローダウンは50%と良い数字ではありません。
ですが実際は大きな指標発表前のEAのオフ、その他EAオフ期間を設け最大ドローダウンを大幅に下げています。

このように指標発表前のEAのオフなどはバックテスト上で再現できません。

なのでバックテストで成績を残せる可能性がある、と判断したら1~3か月程度のフォワードテスト(リアルタイム相場での試験運転)を行った後、資金を投入するのがよいかと思います。

オリジナルEA「be-legend」について

私が開発したオリジナルEA「be-legend」はナンピン型ロジックの月利30%~50%を目標とした高利益率EAです。
週に一回be-legendの成績を以下の記事にアップしていますので、もしよければ除いてみてください。

【随時更新】オリジナルEA「be-legend」の成績公開!