MT4でEAのバックテストをする方法
MT4でEAのバックテストをする方法に
ついてお話ししますね。
バックテストとは、過去相場でEAがどの
ようなパフォーマンスを発揮したのか
検証することです。
にゃんこのパフォーマンス見てみたいなぁ。
きっと凄く面白いんだろうなぁ。
にゃんこ「無茶振りにゃ^^;ハードル上げちゃだめにゃ!」
MT4でEAのバックテストをするには、
ヒストリーデータ(過去チャートのデータ)
が必要ですので、まだ用意できていない方は
MT4でヒストリーデータを取得する方法
を先に見てくださいね。
また、MT4でEAのバックテストをする
には、MT4の「experts」フォルダにEAの
「〇〇〇.ex4」ファイルを設置することも
必要です。準備ができていない方は、
MT4でEAを動かす方法を確認してください。
【今日の目次】
(1) バックテストの設定
(2) MT4でEAのバックテスト(通常)
(3) MT4でEAのバックテスト(最適化)
(4) まとめ
(1) バックテストの設定
MT4ツールバーの「Strategy Tester」ボタン
をクリックします。
すると、MT4の下部に「テスター」ウィンドウ
が表示されます。
MT4の下部の「テスター」ウィンドウに表示
された各項目を解説します。
◆ エキスパートアドバイザー or 罫線分析ツール
EAをバックテストしたい場合は「エキスパートアドバイザー」
インジケーターをバックテストしたい場合は「罫線分析ツール」
を選択し、右側でバックテストしたいEAまたはインジケーター
を選択します。
◆ 通貨ペア
バックテストしたい通貨ペアを選択します。
◆ 期間
バックテストしたい時間足を選択します。
◆ モデル
バックテストの精度を選択します。
【全ティック(Every tick)】
最も小さい時間足の値動きデータを使って、
最も正確な精度でバックテストします
(精度を最大にするには1分足のヒストリー
データが必要です)。
【コントロールポイント(Control points)】
バックテストしたい時間足より小さい
時間足を使って、1本のローソク足に
つき12個のControl pointを作り、
中間の精度でテストします
(M30ならM15以下のヒストリーデータ
が必要です)。
【始値のみ(Open Prices Only)】
バックテストしたい時間足の始値のみ
を使って、最も速くテストします。
(EAのロジックによりどのモデルがどの程度
の精度になるかは変わります。精度を最大に
するには1分足を用意して全ティック
(Every tick)を選びましょう)
◆ スプレッド
バックテスト時に適用するスプレッドを
決めます。
「現在値、2、5、10、30、50、100」
の選択肢がありますが、直接数値を入力
することもできます。
現在値はバックテストを開始した瞬間の
スプレッドが変動せずずっと適用されます。
土、日の相場が止まっているときは通常
よりスプレッドが大きくなっているので
ご注意下さい。
なお、単位は[1/10 pips]です。
つまり、例えば13と入力したら、
13[1/10 pips] = 13 × 1/10 pips = 1.3 pips
となりますのでお気を付け下さい。
また、スプレッド以外に取引手数料が
ある口座では、バックテスト中、取引
手数料は表示されないものの自動的に
引かれますので、スプレッドに手数料分
を上乗せした数値を考える必要はありません。
◆ 最適化(Optimization)
EAのパラメーターの最適値を調べたい
場合はチェックします。
下記のビジュアルモード(Visual mode)
とは併用できません。
◆ 日付と時間を使用
チェックをしなければヒストリーデータが
ある期間すべてがバックテスト対象になり
ます。
チェックを入れたなら、差出人(開始日の誤訳)
と終了日の日付を設定します。
◆ ビジュアルモード(Visual mode)
チェックを入れると、バックテスト中に
チャート上で値動きが表示され、経過を
観察できます(ただし通常より時間が
かかります)。
上記の最適化(Optimization)とは
併用できません。
チェックを入れると右のメーター上に
取っ手が現れ、ドラッグすると32段階
動き、バックテスト中のスピードが
変えられます。
スピードはバックテスト中も変えられ
ます。
[||]ボタンは、バックテスト中に
クリックすると、一時停止します。
もう一度クリックすると再び動き
出します。
[スキップ(Skip to)]ボタンは、
バックテスト中にクリックすると、
その右で設定した日時に移動します。
◆ エキスパート設定(Expert properties)
クリックして以下ウィンドウが表示され
たら、まず「Testing」タブを設定します。
【Initial deposit】
バックテスト開始時の口座残高と口座の通貨
【Positions】
バックテスト対象を
「Long & Short」買いと売り両方
「Long Only」買いのみ
「Short Only」売りのみ
の中から選択します。
【Optimized parameter】
上述の「最適化(Optimization)」に
チェックが入っているときに適用されます。
どのパラメータで最適化するかを選択
します。
・Balance
口座残高で最適化
・Profit Factor
プロフィットファクター(総利益÷総損失)で最適化
・Expected payoff
期待損益(総損益額÷総トレード数)で最適化
・Maximal Drawdown
最大ドローダウン額で最適化
・Drawdown Percent
最大ドローダウン率で最適化
【Genetic algorithm】
上述の「最適化(Optimization)」に
チェックが入っているときに適用されます。
チェックを入れると、遺伝的アルゴリズム
という手法で高速最適化します。
チェックした方がバックテスト時間の短縮
につながります。
遺伝的アルゴリズムは、後述のパラメーター
の入力タブで設定した、パラメーター全ての
組み合わせでなく、ランダムに選択した
パラメーターの組み合わせから良い結果を
抜き出し、それを組み合わせて値を変化
させることで、効率的に最適化する方法です。
つづいて、「パラメーターの入力」タブを
設定します。
パラメーターは、使うEAによって設定できたり
できなかったりするので、それぞれのEAの取扱
説明書でご確認ください。
Value欄をダブルクリックして設定しましょう。
通常は、このValue欄の値を用いてバックテスト
します。
スタート、ステップ、ストップ欄は、上述の
「最適化(Optimization)」にチェックが
入っているときに適用されます。
そのときは、Value欄は無視されます。
Variable欄で最適化したい項目をチェック
して、スタート、ステップ、ストップ欄を
ダブルクリックして設定します。
例えばlotsのスタートを0.1、ステップを0.1
ストップを0.3とした場合、0.1から0.3の間を
0.1ずつ変化させます。
つまり、0.1、0.2、0.3でバックテストして
最適値を探します。
「Optimization」タブに関しては、いくら
減ったら停止する、いくら増えたら停止する
など、バックテストに制限を付けた状態で
最適化するときに使いますが、特別使うこと
はないと思います。
「Optimization」タブの設定も、上述の
「最適化(Optimization)」にチェック
が入っているときに適用されます。
全ての設定が終わったら「OK」ボタンを
クリックします。
◆ 通貨ペアのプロパティー
特にクリックする必要はありませんが、
MT4でスワップを見ることが出来るのは
ここだけなので一見の価値はあるかも
しれません。
好奇心に駆られて思わずクリックして
しまった方は、「閉じる」ボタンを
クリックして次に進みましょう。
◆ チャートを開く(Open chart)
バックテスト前にクリックしても何も
起きません。
バックテスト後、売買ポイントをチャート
上で確認したい場合に使います。
◆ エキスパート編集(Modify expert)
上述のエキスパートアドバイザー or
罫線分析ツールで選択したEAやインジ
ケーターのプログラムを修正したい場合
にクリックします。
ただし、mq4形式のファイルがないと
修正できません。通常販売されている
EAやインジケーターはex4形式のファイル
しか提供されませんので、普段は特に
使うことはないでしょう。
◆ スタート
クリックするとバックテストを
スタートします。
(2) MT4でEAのバックテスト(通常)
まずは、通常バージョンの、MT4でEAの
バックテストをする方法を解説します。
MT4下部の「テスター」ウィンドウにある
最適化(Optimization)のチェックが
外れていることを確認します。
バックテストのための設定が完了したら
スタートをクリックします。
バックテスト中はスタートボタンがストップ
ボタンになり、ストップボタン左のメーター
が左から緑色に変わっていきます。
バックテスト中に、結果タブ、Graphタブ、
操作履歴タブをクリックすると、途中経過を
見ることが出来ます。
特にGraphタブは、資産の増減が視覚的に
見やすいので、観察していると、
おおおぉぉぉー!!(ノ*゚▽゚)ノ
おぉ? ・・・(・-・)
おおおぉぉぉー↓↓ _| ̄|○
と楽しめるかもしれません(笑)
レポートタブはバックテスト全体の統計
が表示されますので、バックテストが
終わるまでは見れません。
しばらく待ちましょう。
バックテスト中にセッティングタブの
ストップボタンをクリックすると、
途中で強制終了されます。
自作でEAを作った場合、ロジックが複雑
すぎるとMT4の処理能力を超えてしまい、
メーターが途中から進まなくなることが
ありますので、そんなときに使えます(泣)。
バックテストが終了すると、某人気キャラクター
が早口で鳴くような音がして、メーターが
緑でいっぱいになり、ストップボタンが
スタートボタンに戻ります。
え、どこが某人気キャラクターの鳴き声に
聞こえるかですって?
小鳥の鳴き声っぽいですって?
頑張ればそう聞こえるんです。
異論は認めません(キリッ)
バックテストが無事、正常に終了すると同時に
レポートタブに、バックテストの統計情報が
表示されます。
表示された項目を解説します。
この中で、特に重要な項目は★を付けました。
◆ Bars in test
バックテストしたローソク足数
◆ Tick modeled
バックテストで使用したティック(値動き)数
★ Modeling quality
バックテストの精度(最大90%)
バックテストするEAの種類にもよりますが
出来得る限り90%を目指すことが望ましい
です。
特に短い時間足で取引するEAや、利確損切り
が細かいEAの場合、精度は重視しましょう。
長い時間足で取引するEAや、利確損切りが
広いEAの場合は、そこまで気を使わなく
ても大丈夫かもしれません。
バックテストの精度が不安な場合、実際の
取引とバックテストの結果を同じ期間で
見比べてみましょう。
ただし、実際の取引ではスリッページや
スプレッドの変動があるので、バックテスト
と完全に一致することはありません。
◆ Mismatched charts errors
バックテスト対象時間足とバックテスト
で使用したより小さい時間足との不一致
エラー数。
◆ Initial deposit
バックテスト開始時の口座残高
◆ Total net profit
総損益額
(バックテスト終了時口座残高-開始時口座残高)
◆ Gross profit
利益額(利益が出た取引の合計値)
◆ Gross loss
損失額(損失が出た取引の合計値)
★ Profit factor
プロフィットファクター
(Gross profit/Gross loss)
プロフィットファクターが高ければ利益率
が高く、高レバレッジでも耐えられます。
勝率が高くてもプロフィットファクターが
低いと問題ですが、勝率が低くても
プロフィットファクターが高ければOKです。
◆ Expected payoff
1トレードあたりの期待損益
(Total net profit/Total trades)
◆ Absolute drawdown
バックテスト開始時の口座残高からの
最大ドローダウン
(Initial deposit - 最小時口座残高)
◆ Maximal drawdown
最大ドローダウン(ピーク時の口座残高から
谷までのドローダウンの最大額と割合)
★ Relative drawdown
相対ドローダウン(ピーク時の口座残高から
谷までのドローダウンの最大比率と金額)
例えば相対ドローダウンが20%ならば、
ピーク時の口座残高から20%減ったこと
があったということです。
ドローダウンが大きすぎて精神的に許容
できない場合はロットを落としてみま
しょう。
少なくともこの相対ドローダウンまで
耐えられないというのであれば、リアル
運用は避けた方がいいです。
★ Total trades
総取引数(ポジション保有から決済までが1回)
取引回数が多いほど信頼性の高いデータ
となります。
総取引数をバックテストの期間で割れば
取引頻度が算出されます。
◆ Short positions(won %)
売り取引数(勝率)
◆ Long positions(won %)
買い取引数(勝率)
◆ Profit trades(% of total)
勝ち取引数(割合)
◆ Loss trades(% of total)
負け取引数(割合)
◆ Largest profit trade
1取引あたりの最大利益額
◆ Largest loss trade
1取引あたりの最大損失額
◆ Average profit trade
勝った取引の平均利益額
◆ Average loss trade
負けた取引の平均損失額
◆ Maximum consecutive wins
最大連続勝ち取引数(利益額)
◆ Maximum consecutive losses
最大連続負け取引数(損失額)
◆ Maximal consecutive profit
最大連続利益額(勝ち取引数)
◆ Maximal consecutive loss
最大連続損失額(負け取引数)
◆ Average consecutive wins
平均連続勝ち取引数
◆ Average consecutive loss
平均連続負け取引数
Graphタブをクリックしましょう。
青色の折れ線グラフは資産推移を示して
います。
右肩上がりが理想ですね。
青色折れ線グラフの下、緑の棒グラフは
取引ロット数の変化を示しています。
バックテスト中、ロット数が変化しない
EAの場合は表示されません。
ちなみに、横軸は時間ではなく取引回数
です。
縦軸は最小値から最大値がグラフいっぱい
に入るようになっているので、角度はあまり
気にしなくて良いです。
折れ線グラフや棒グラフにカーソルを
合わせると取引詳細が表示されます。
結果タブをクリックしましょう。
ここにはバックテストした個々の取引の
詳細が表示されています。
1行につき1種類の注文(新規注文、指値・
逆指値注文、注文の変更、決済注文)が
表示されます。
セッティングタブに戻り、チャートを開く
(Open Chart)をクリックすると、
バックテストの売買ポイントがチャート
上で確認できます。
チャート上の取引にカーソルを合わせると
詳細が見られます。
また、結果タブで表示された注文をダブル
クリックすると、チャートの左端にその
注文が表示されます。
バックテストの結果は、MT4を閉じると消え
ます。
バックテストの結果を保存したい場合は
レポートタブ画面内で右クリックして、
レポートの保存をクリックしてください。
「名前を付けて保存」ウィンドウが現れ
ます。
保存したいフォルダを選んで、お好きな
ファイル名を付けて保存しましょう。
バックテスト結果がhtml形式で保存され、
自動で保存内容が立ち上げられます。
(3) MT4でEAのバックテスト(最適化)
つづいて、MT4でEAのバックテストを
最適化して実行する方法をお伝えします。
MT4下部の「テスター」ウィンドウにある
最適化(Optimization)のチェックが
付いていることを確認します。
バックテスト最適化のための設定が完了
したらスタートをクリックします。
バックテスト中はスタートボタンがストップ
ボタンになり、ストップボタン左のメーター
が左から緑色に変わっていきます。
バックテストが終了すると、やはり某人気
キャラクターが早口で鳴くような音がして、
メーターが緑でいっぱいになり、ストップ
ボタンがスタートボタンに戻ります。
え、やっぱり某人気キャラクターの鳴き声に
は聞こえないですって?
きっと心のきれいな人にしか聞こえないん
ですよ(棒読み)。
バックテストの最適化が終わると、今まで
なかったタブ「Optimization Results」
「Optimization Graph」が出現します。
「Optimization Results」タブには、最適化
の詳細が表示されます。
パラメーターの入力という項目には、最適化
された数値が表示されています。
左側の損益、Total Trades、Protit factor、
Expected Payoff、Drawdoun $、Drawdown %、
を見比べて最適なパラメーターを決めましょう。
「Optimization Graph」タブは、「Optimization
Results」タブにあるPassナンバーを横軸に、
バックテスト前に設定した
Expert properties → Testingタブ
→ Optimized parameterで選んだ項目
を縦軸にしたグラフで表されています。
(画面を縮小している関係でPassナンバーの
位置が少々ずれています)
最適なパラメーターを決める参考に
してください。
このように、バックテストの最適化機能
を使うと、1つずつパラメーターをいじり
ながらバックテストするより、一気に作業
を短縮できます。
しかし、最適化のやり過ぎは禁物です。
やり過ぎるとカーブフィッティングになり、
昔の特定の相場でしか機能しなくなって
しまいます。
バックテストの最適化は、あくまで数値を
相場にあわせる操作です。
それをよく理解した上で利用しましょう。
結果を分析して、活用してみてください。
バックテスト最適化の結果は、MT4を閉じる
と消えます。
バックテスト最適化の結果を保存したい
場合は「Optimization Results」タブ画面内
で右クリックして、レポートの保存をクリック
してください。
「名前を付けて保存」ウィンドウが現れ
ます。
保存したいフォルダを選んで、お好きな
ファイル名を付けて保存しましょう。
バックテスト最適化の結果がhtml形式で
保存され、自動で保存内容が立ち上げられ
ます。
(4) まとめ
【MT4でEAのバックテストをする方法】
◆ バックテストする前にヒストリーデータ
とEAのインストールが必要です。
◆ バックテストはStrategy Testerで設定
して行います。
◆ バックテストの結果で特に重要なのは
「バックテストの精度」
「プロフィットファクター」
「相対ドローダウン」
「総取引数」
◆ バックテストの最適化を上手く使って
効率よく最適なパラメーターを見つけよう。
◆ バックテスト終了音が某人気キャラクター
の鳴き声に聞こえる人は心がきれいだよ。
P.S.
1分18秒~1分28秒が秀逸でした(笑)
この記事を読まれた方は次の記事も読まれています
- MT4の自動ビルドアップ無効とビルドダウンする方法 - 2017年 5月 8日
- MT4、Windows10ユーザー必見!Windows Update 無効化方法(無料・ツール不使用) - 2017年 4月 13日
- MT4、Windows10ユーザー必見!Windows Update 無効化ツール(無料) - 2017年 4月 8日
- MT4のバックテストを日本円(JPY)口座で行う裏技 - 2017年 1月 31日
- MT4でストップレベルを調べる方法 - 2017年 1月 25日
もっと詳しく知りたい事や
理解できなかった事などございましたらお気軽にご連絡下さい。
あなたの応援のおかげで明日も頑張って記事が書けます
本日のランキング応援クリックありがとうございました(*'-'*)
この記事のコメント
この記事へのコメント
あなたの応援のおかげで明日も頑張って記事が書けます
本日のランキング応援クリックありがとうございました(*'-'*)
MT4でバックテスト時のスプレッド変更法 | 2013年02月17日
MT4のEAのバックテストを自動で複数種類する方法 | 2013年01月30日