MT4でEAのバックテストをする〜FX自動売買の戦略を改善

最適化

さて、MT4の重要な機能の一つに、EAのバックテストがあります。

EAとはFXの自動売買の戦略プログラムのことですが、これを「過去の相場に実際に当てはめてみたらどうなるか?」を簡単にテストすることができるのです。

これをバックテストといいます。

バックテストできると何が良いの?

EAで儲かるか?が分かる

まず第一にこちらです。このEAで儲かるか?が分かります。

EAがあったとしても、これを実際に動かしてみなければ「本当に儲かるか?」は分かりません。

しかし、ただ儲かるかを確かめるためにリアル口座で実際のお金を使うのは馬鹿らしいですし、

かといって実際の資金を使わないデモ口座を使っても、儲かるかを確かめるにはある程度の時間がかかります。

ここでバックテストを使えば、EAが儲かるかがすぐさま分かります。

EAの成績を向上させられる

第二に大事なことが、EAを改善することです。かっこよく言えばPDCAを回す、ということですね。

多くのEAにはパラメータというものがあります。

例えば、有名なゴールデンクロスの戦略、つまり

短期移動平均が長期移動平均を抜いたら買い、その逆で売り

という戦略がありますね。しかし、移動平均といっても数種類ありますし、(単純移動平均、指数移動平均など)

短期・長期といっても、いったい何本分にすれば良いのでしょうか。多くのFXの例では、短期が7本、長期が28本になっていることが多いと思いますが、本当にこれで良いのでしょうか?

このように、1つの戦略の中にも細かい数値が登場して、「どの数値がいいの?」と迷うことがあります。こういう数値のことをパラメータと呼びます。

これを確かめるのがバックテストです。実際にバックテストしてみれば、どんな移動平均がいいのか、数値はいくつがいいのかがすぐさま分かります。

実際にバックテストをやってみる

では実際にバックテストを行ってみましょう。MT4には、はじめからEAがついていますので(あまりにシンプルなので全然儲からないですが)

このEAを使ってバックテストしてみます。

まずMT4を開いて、左上の「表示」→「ストラテジーテスター」を選びましょう。

ストラテジーテスター

すると、画面の下の方にこのような画面が出ます。これがバックテストの画面です。

ストラテジーテスター

ではバックテストを進めて行きましょう。

バックテストの設定

まず、ここからバックテストしたいEAを選んでみます。今回は、MT4に初めから付いている「MACD sample.ex4」を選んでみます。指標のMACDを用いて売買するEAです。

MACD

次に、通貨ペアを選びましょう。MT4では、1回のバックテストで1種類の通貨ペアをバックテストすることができます。

ここではわかりやすく、ドル円(USDJPY)を選んでみましょう。もちろん、どの通貨を選んでもOKです。

ドル円

次に時間足です。売買したい時間足を選択します。時間足というのは結構重要です。同じ戦略でも「1分足」と「日足」では全然違います。ぜひ試してみてください。

ここでは比較的メジャーだと思われる15分足を選択してみます。

M15

最後に期間を設定してみましょう。ここでは2016/1/1から2016/11/30でEAを動かしてみた、と設定します。

他の項目はとりあえず無視してOKです。

期間

では、バックテストをスタートしてみましょう。設定が終わったら、「スタート」をクリックしてみてください。

バックテストのスタート

バックテストの処理中には、このように緑のグラフが伸びていきます。

テスター

バックテストが完了すると、このようにバーが完全に緑色になり、ボタンが「スタート」に戻ります。たったこれだけでバックテストが完了します。

おわり

では結果を見ていきましょう。下の方にあるタブの「グラフ」をクリックしてみてください。

バックテストの結果

これは資産推移グラフです。バックテストをした時に、資産がどのように推移したかを表しています。ご覧の通り、右肩下がりで悲惨な結果になっています。

縦軸は資産、横軸が取引回数です。43回取引して、資産が500(ドル)くらい減ったことが分かります。

結果

次に「レポート」をクリックしてみます。するとかなり詳細にバックテストの結果が出てきます。

これに関してはおいおい説明しますが、最も重要なのが「プロフィットファクタ」と「最大ドローダウン」です。

プロフィットファクタは、バックテスト中での「利益/損失」、つまり値が1より大きければ損失より利益のほうが大きいので儲かるEAです。

最大ドローダウンは説明が難しいのですが、要するに「最大でどれだけ資産が凹んだか?」を表しています。優秀なEAは、この最大ドローダウンが低いです。

つまり、不調なときでも資産がへこみません

 

レポート

パラメータを調整してみる

さて、このままではこのEAは動かすだけ損する、ということが分かりました。なので、ちょっとパラメータを調整してみます。

EA設定画面から、「エキスパート設定」をクリックしてみましょう。

設定

次に「パラメータの入力」をクリックすると、このような画面が出てきます。これがパラメータです。

パラメータ

このEAには6つのパラメータがあるようですね。

「EAにどんなパラメータがあるか」「それぞれのパラメータにはどんな意味があるか?」は、きちんとEAの作者の説明を見たり、Google検索したり、推測しなければなりません。

慣れてくると、この画面を見るだけでパラメータがどんな意味を持っているのか分かります。あくまで一部ですが。

ここではこんな意味があります。だんだん難しくなってきましたね。

TakeProfit
この値以上の利益(単位はpoint)を確保すると利益確定する。(1pointは0.1pips)
Lots
売買単位、MT4で1lotとは10万通貨のこと。
TrailingStop
トレーリングストップのpoint
MACDOpenLevel
MACDがある程度大きくないと売買しない
MACDCloseLevel
MACDがある程度大きくないと決済しない
MATrendPeriod
移動平均の期間

余談ですが、このMACD sampleの買い条件はこのようになっています。完全にプログラミングの話なので、興味のない人は無視してください。

if(MacdCurrent<0 && MacdCurrent>SignalCurrent && MacdPrevious<SignalPrevious &&
MathAbs(MacdCurrent)>(MACDOpenLevel*Point) && MaCurrent>MaPrevious)

日本語訳すると下記です。

  • 現在、MACDが0以下で
  • 現在、シグナルよりMACDの方が数値が大きく、(シグナルはMACDの移動平均なので、つまりMACDが上向いている、ということ)
  • 1本前はシグナルよりMACDの方が小さく (つまり、ここでシグナルのMACDのクロスが起こっている)
  • MACDの絶対値がMACDOpenlevel×Pointより大きく(つまり、MACDが0近辺にあると売買しないようになっている)
  • 現在の移動平均値より1本前の移動平均のほうが小さい(つまり、移動平均が上向いている)

ここでは、パラメータを調整して「パラメータをどんな値にすれば良いのか?」を突き止めてみましょう。

パラメータの調整

試しに、今回は「TakeProfit」と「TrailingStop」の値を調整してみましょう。このように、調整したい項目にまずチェックを入れます。

次に、パラメータを動かす範囲を決めます。

例えば、TakeProfitを10から60まで変化させた時にどうなるかを調べたいときには、スタートに10、ストップに60と入れます。(逆でもOKですが)

変化の最初と最後を入れるわけですね。変化の幅は最初は検討がつかないので、広めに設定するのが良いと思います。

「ステップ」というところには、刻み幅をいれます。

例えば下記のように「スタート:10、ステップ:10、ストップ:60」のときには、

バックテストでTakeProfitを「10、20、30、40、50、60」とした時の結果をチェックしてくれます。計6回のバックテストを行ってくれるのです。

同じように、TrailingStopも設定してみました。

調整

こうなると、TakeProfit、TrailingStopで6通ずつあるので、6×6の36通りのバックテストを行ってくれます。

設定が終わったら、「最適化」にチェックを入れてバックテストをスタートさせましょう。

最適化

このように、何十通り、何百通りもパターンがあるバックテストを行うと、かなりの時間がかかります。できるだけCPUの性能が良いパソコンを使うと、バックテストが早く済みます。

(私は以前、5,000通りくらいあるバックテストを3日くらいかけて行ったことがあります、笑)

最適化の計算中は、このようにバーが伸びていき、おおよその計算残り時間も右側に表示されます。

最適化

最適化が終わると、このようにバーがすべて緑色になります。

最適化

終わったら、「最適化結果」タブをクリックして結果を見てみましょう。

最適化

あれ、何も表示されないですね、、、?今度は「操作履歴」をクリックしてみましょう。

操作履歴

メッセージの一番上に「36回最適化試したけど、36回とも利益なかったよ」と出ています。残念な結果ですね、、

その後も色々な最適化を試してみましたが、15分足では良い結果は出ませんでした。

今度は日足で、このような最適化を施してみました。

最適化

最適化

すると、最適化結果はこのようになりました。利益が出ている組み合わせがあるようです。

最適化

損益、総取引数、、などの項目は並び替えることができます。できるだけ、損益が大きく、総取引数が多く、プロフィットファクタが大きく、ドローダウンが小さいものが良いですね。

気になる組み合わせがあったら、ダブルクリックして「スタート」すると、そのパラメータが入力された状態でバックテストがスタートします。

実行してみた所、このようなグラフになりました。なんと負けなしです。ホントかよって思いますが笑

グラフ

気になる組み合わせができたら、まずはデモ口座で稼働させてみて、

これならリアル口座でもイケる!と思ったら、リアル口座で挑戦してみましょう!

MetaTrader4とEA

Posted by auto-ts.net