この記事ではバックテストとは?とさらにMT4 EA(MT4上で動く自動売買ソフト)をバックテストする方法について解説します。
バックテストは奥が深く、精密性や(バックテストにおけるEAの)堅牢性などを語るとキリがありませんのでできるだけ初心者向けに簡単に説明します。
だだし、一般的な意見とは違う私見も含まれているため、それ以外の方も参考になるかもしれません。
バックテストとは
トレードする際に各人いろいろなルールでもってトレードするかと思います。
移動平均線がゴールデンクロスしたら買い、ボリンジャーバンドを下に突き抜けたら売りなど、です。
このルールを過去のチャートに当てはめてどのような取引を行い、勝率、損益、一トレードあたりの平均利益などの成績を確かめる作業のことを言います。
EAの売買ルールもMT4の「ストラテジーテスター」というツールで過去のでチャートを用いてバックテストすることができます。
そしてEAが過去にも結果を出しているなら将来に渡って良い結果を出す可能性はあります。
ここでの「出す可能性」というのはバックテストで良い結果が出ても実際の取引では出ないこともあるわけです、というか多いです。
しかし過去に結果がでない売買ルールであれば、未来に渡ってもそのルールで結果が出る可能性は低いでしょう。
バックテストの目的はこのような過去にも結果が出ない売買ルール(EA)をふるいにかけて、将来、結果が出そうな売買ルール(EA)を選別することにあるわけです。
MT4 EAをバックテストする方法
MT4の上部、表示>ストラテジーテスターを開きます。
このストラテジーテスターを使ってバックテストを行います。
EAをバックテストする方法を動画で解説
ストラテジーテスターの設定項目解説
- バックテストを行いたいEA(エキスパート・アドバイザ)を選択します。
- バックテストを行いたい通貨ペアを選びます。
- 「始値のみ」は各足の始値のみのデータを使います。結果が出るまで高速なので、簡単な確認や動作確認用に使うといいでしょう。
「全ティック」はすべての(ティック)データを使います。結果出るのに時間がかかりますが、信頼性が一番高い結果はこちらです。
「コントロールポイント」は4で設定する時間足のひとつ下の時間足まで使用します。
こちらは使うことはないと思います。 - バックテストを行いたい時間足を選びます。
- バックテストを行うFX会社の通貨のスプレッドを記入してください。
- チェックを入れるとバックテストを行う期間をこの右の「開始日」と「終了日」にて指定できます。最低1年以上~とできるだけ長いほうがバックテストの結果の信頼性が高まります。
- EAのパラメーターの設定を行います。(後述 )
- 7でEAのパラメーター設定を行ったらスタート押して、バックテストが始まります。
エキスパート設定項目解説
・テスト設定
- バックテストで使う資金を指定できます。
右の通貨を選ぶ欄にはJPY(円)はないのでキーボードで「JPY」と打ってください。
ポジションは買いのみか売りのみかを制限することができます。 - 最適化の設定です。後述。
・パラメーターの入力
EAのパラメータの入力になります。
この部分はEAによって違うので、EAに付属しているマニュアルなどをご覧いただくしかありません。
通常最適化をせずにバックテストだけを行う場合は「値」のみをそれぞれ設定します。
以上を設定してOKを押します。
MT4 ストラテジーテスターの結果の見方
ストラテジーテスターにてスタートを押したあとこのようにバーが満たされるとバックテスト完了です。
レポートの見方
レポートタブを押すと結果が現れます。項目はいろいろありますが、重要なところだけ説明します。
・純益
過去トレードした場合、儲かったかどうか見るところです。
この欄の右の、「総利益」 – 「総損失」 = 純益になります。
・プロフィットファクター
総利益が総損失の何倍かを表す数値です。
例:総利益100万 ÷ 総損失70万 = 1.42
総トレードで負け越していれば1.0以下になります。
しかし1.1や1.2などであってもランダムでトレードしても出る可能性のある値なので、
ここが低いと偶然結果が出たことを疑ったほうがいいでしょう。
一般的にこの値は重要とは言われていますが、実際のところはそこまで重要でなく、
利益が出るか? もしくは偶然出た値か?ぐらいをぱっと見れる値として捉えたほうがいいでしょう。
・総取引数
ここは多いければ多いほどバックテストの信憑性が高まりますので重要です。
さらに言えば、統計的にも最低で30回~100回は欲しいです。
理想は100回より、より多く欲しいところです。
・期待利得(期待値)
このEAで取引した場合、一回当たりに見込める利益を表したものになります。
まずここがスプレッドよりも大きくないとスプレッド負けしてしまう可能性があります。
・最大ドローダウン
最も資産の増えた時から最も資産が減じた点の下落額になります。
簡易的にロットを決めるのであれば、最大ドローダウンからロットを決めます。
もし最大ドローダウンが資金の50%で許容できる損失が30%であれば、
バックテストで設定したロットの5分の3にするなどしてロット調整します。
(上級なシステムトレーダーの方であればこのロットの決め方はおおいに突っ込むところかもしれませんが……)
グラフの見方
過去のデータでトレードした場合、口座残高の履歴をグラフで表したものです。
利益が出ているのであれば、右肩上がりになります。
このグラフでいちおう右肩上がりにはなっていますが、バックテスト期間中間にて大きく残高が下がり、一度元本割れしているが見て取れます。
優秀なEAであればグラフが右肩上がりなことはもちろんのこと、ぶれなく一直線になっているものです。
上記のようなグラフのEAであれば大きく下がる前に利益が出ているからといってロットを上げてしまい、その後の大きな残高の下落がさらに大きくなる可能性があります。
このように損益のばらつきぐらい(標準偏差)も重要で、これが小さければ小さいほどロット上げても、その後に大きく損失を被るといった可能性は低くなります。
EAの最適化についてとそのやり方
EAの最適化とは
いわゆるEAの「最適化」とは、端的に言うとEAの一番いいパラメーターを見つけることをを言います。
例えば上で取り上げてるMACDのパラメーターの一つには「EMAの期間」があります。
このEMAの期間の違いによって良い成績の期間もあれば悪い成績の期間もあるかもしれません。
EAの最適化ではEMAの期間のパラメーターやその他パラメーターをいろいろな数値で試して一番よい結果を取り出します。
そしてこれをストラテジーテスターでは自動で行うことができます。
ストレージーテスターでEAを最適化する方法
・パラメーターの設定
1.まずエキスパート設定で設定するので開きます。
2.最適化したいパラメーターにチェックを入れます。
複数のパラメーターを最適化できます。
3.スタート、ステップ、ストップを入れます。
例えば、上の画像のMATrendPeriodだとパラメータが3から始まり、6,9, 12と30まで3刻みで
合計10個パラメーターをストレージテスターが試します。
さらにMACDCloseLevelもチェックを入れているので、MACDCloseLevelのパラメーター1,2,3,4,5,6の6個が試されます。
そしてこの10個のパラメーターと6個のパラメーターをテスターがいろいろ変えて一番いい最適な値が提示されます。
ですので10×6=60回バックテストが行われます。
このパラメーターの組み合わせが多いと最適化に時間がかかるので、スタート、ストップ、ステップを変更して組み合わせを小さくしたりしましょう。
・テスト設定
次はテスト設定のタブを開きます。
最適化パラメータ:どの数値を最適化によって最大化するか決めます。
初期はBalance(口座残高)を最大化するよう設定されています。
おすすめはExpected Payoff(期待利益、総純損益を総トレード回数で割った値)です。
最適化するパラメータについてもいろいろと議論が分かれる部分ですが、とりあえず最初は期待利益を最大化すればいいかなと思います。
遺伝的アルゴリズム:ここにチェックを入れると入れないよりも早く終わりますが、厳密な最適なパラメータはチェックを入れない(総当り)よりも出ないです。
パラメーターの組み合わせが多い場合は入れてください。
設定し終わったらOKを押します。
エキスパート設定がすべて終わったら、バックテストと同じように通貨、足の期間、テストする期間を設定して最適化にチェック、スタートを押すと最適化が始まります。
EAの最適化をもっと効率化する方法
いろいろな通貨、いろいろなローソク足でバックテストやEAの最適化をするには都度通貨と時間足を変更する必要があるので骨が折れる作業です。
ですので、これを効率化するソフト「MT4バッチプロセッサー(MT4BP)」というのもあります。
私管理人もこれを使っており、複数通貨ペア・時間足を事前に設定すると複数通貨ペア・時間足のバックテストや最適化を自動化してくれるのでおすすめです
コメント