実運用後にドローダウンする可能性も!カーブフィッティングされたEAには要注意

243400882

 

EAの最適化について

 

MT4ではEAという簡単なプログラムにより自動売買を実現しています。

 

C言語のわかる人なら、ちょっとだけ勉強すれば
すぐプログラミングできてしまうのが最大の魅力です。

 

ちょっと勉強すれば簡単に作成できるというだけあって、
複雑なEAを作成するのにはあまり向いていないといってもいいかもしれません。

 

 

もちろん外部DLLなどを使用するとかなり高度な自動売買プログラムも出来るのですが、
その辺で売られている2~3万円クラスのEAでは
そこまで高度なものになかなかお目にかかることが出来ません。

 

EA作成はプログラミング
本格的に学んだことのない人にとってはとっつきにくいのですが、
使っているロジック自体はたいしたことがない場合も少なくありません。

 

 

MT4にはご存知のように標準で様々なテクニカル分析が組み込まれています。

 

MT4のユーザーである私たちはこのテクニカル分析を駆使して
様々な戦略で売買をすることが出来ます。

 

EAというプログラムも同様に
MT4に組み込まれているこれらのテクニカル分析を自由に使うことが出来るので、
EA開発者たちも簡単にEAを作成することが出来きるわけです。

 

 

とはいえ、簡単にEAを作成できることが、
簡単に儲かるEAをつくれるということとイコールではないところが
難しいところなのでしょうけどね。

 

そんなEA開発ですが、MT4にはEA開発者たちにとって、
とても力強い「味方」ともいえる機能が実装されています。

 

それは、MT4上で過去データ(ヒストリカルデータ)を用いて
EAをバックテストすることが出来る機能で、ストラテジーテスターと呼ばれています。

 

ストラテジーテスターはMT4で自動売買をしているトレーダーにとっても
お馴染みの機能だと思います。

 

 

購入したEAや、無料で配布されているEAを
いきなり実運用するトレーダーは少ないはずです。

 

まず、最初にストラテジーテスターを使ってバックテストしてから使う
という人がほとんどでしょう。

 

 

EA開発者も、配布前には必ずストラテジーテスターでバックテストして
過去の相場に適合しているかどうかの確認を行います。

 

そこには、過去データで利益をあげることが出来たEAは、
将来的にも利益をあげることが出来るのであろうという大前提があります。

 

 

自分のロジックをEA化して、過去データにより有効性を確認することは
考えてみれば当たり前のことだと思います。

 

未来のデータを入手することが出来ない以上、
過去のデータに頼らざるを得ないのは誰が考えてもわかる理屈でしょう。

 

 

しかし、みなさんもご存知のようにストラテジーテスターには
悪魔の機能が組み込まれています。

 

「最適化」という機能ですね。

 

MT4のEAはプロパティ画面で様々パラメーターを設定できるのですが、
パラメーターをどのくらいの数値にするのかというさじ加減
EAのパフォーマンスに大きく影響してきます。

 

 

EAの最適化とは、プロパティの値を変えながらバックテストをするという
人力でやったら膨大な手間のかかる作業を
MT4が自動的にやってくれるというありがたい機能のことです。

 

この機能を使うことにより、時間と労力を大幅に節約することが可能になります。

 

 

最適化したいパラメーターの項目が1種類の場合には、
収益曲線を眺めながら手動で最適化してもいいかなという気持ちにもなるのですが、
数種類にわたる項目を最適化したい場合には
余程ヒマと根性のある人じゃないと不可能に近くなります。

 

実際にEAを使って最適化の操作をしてみることにしましょう。

 

例えば、MT4に標準で用意されている「Moving Average」というEAには、
Lots、MaximumRisk、DecreaseFactor、MovingPeriod、MovingShift
5種類のパラメーターが用意されています。

 

 

これらのパラメーターのうち
最初の3つはロット操作に関するものなので手を付けずにおきます。

 

 

残ったMovingPeriod、MovingShiftは移動平均線の期間と
移動平均線の前後へのシフトを決定するパラメーターになっています。

 

もしこのEAを入手したとしたら、
まずこの2つのパラメーターを最適化してみたいですよね。

 

 

MovingPeriodだけを最適化したい場合は、
EAのプロパティーウィンドウで以下のように入力します。

 

今回は、移動平均線の期間10~20の11種類のパターンで最適化しています。

 

 

20160808A

 

 

この場合は、バックテストするパラメーターの数は11なのでそれほど多くないですね。

 

次に先ほどのパラメーターに加えて、
MovingShiftのパラメーターを0~10に可変させて最適化していきます。

 

 

パラメーターの項目が2種類になると
一気にバックテストの数が増えて121パターンになります。

 

こうなるともう手動ではやる気がしなくなりますよね。

 

 

最適化結果は「テスター」の「最適化」タブをクリックすると確認することが出来ます。

 

 

20160808B

 

 

このEAはMT4のおまけ的な存在なのですが、意外と成績が良くてビックリしました。

 

このEAはMT4が発表された時からずっと同梱されているものなので
10年以上前に作成されたEAになります。

 

 

10年前のEAなのに最近の相場で最適化した結果、
プラスの組み合わせのパラメーターが見つかるということに驚きを隠しきれません。

 

このEAに採用されたロジックは、意外と有効性の高いものなのかもしれないですね。

 

 

20160808C

 

 

最適化結果はテストした順番で並べられているのですが、
上部にある「損益」をクリックすると損益順に並べ替えてくれるので見やすくなります。

 

 

20160808D

 

 

せっかくなので損益がトップのパラメーターで
バックテストしてみることにしましょう。

 

 

20160808E

 

 

収益曲線を見る限りでは、移動平均線を使ったEAらしく
トレンド発生で大きく稼いでいくスタイルでドローダウン
もしくは横ばいの期間が長くなっています。

 

自分が使用しているEAで寿命が長いのはこのようなタイプのEAなので、
結局は移動平均線に有効性があるといってもいいのかもしれませんね。

 

 

とはいうものの、最適化した期間の中
もっとも成績のいいパラメーターを選んでバックテストしたにすぎないので、
今後も好成績を残してくれるかどうかは現段階ではわかりません。

 

バックテストの成績が非常に良かったので購入してみたら、
リアル口座で運用したとたんにまったく勝てなくなったという
経験を持っている人も多くいることでしょう。

 

 

運用したその日がドローダウンのスタートなんて話はざらにありますよね。

 

そんなわけで、EAの運用にはフォワードテストが重要になってくるというわけです。

 

 

 

なんちゃってフォワードテスト

 

過剰に最適化されたEAは、カーブフィッティングされたEAなどと呼ばれていますが、
なかなか見分けることが難しい代物です。

 

ユーザーが購入前にカーブフィッティングされたEAを見分けるためには、
フォワードテストが公開されているEAを購入するしかないでしょうね。

 

 

一方、EA開発者にとってもカーブフィッティングを見分けるのは困難なのは同様です。

 

 

自分が作成したEAを最適化した結果、
収益曲線がきれいなカーブを描いていると
つい調子に乗ってすぐに実運用したくなるものです。

 

 

しかし、運用をスタートさせた直後からドローダウンが始まり、
愕然とする経験をしたことのあるEA開発者は私だけではないと思います。

 

とはいえ、EAを作るたびにフォワードテストを実施するのには
手間も時間もかかります。

 

 

そこでEA開発者が手間を省くために用いているのが
なんちゃってフォワードテストです。

 

 

これはバックテスト期間の一部をフォワードテスト期間にすることにより行う
疑似フォワードテストのことで、
一般的にはウォークフォワードテストと呼ばれているものです。

 

例えば、過去データが5年分ある場合、
そのうちの前半の4年分を最適化に利用して
残りの1年間をウォークフォワードテストの期間にあてます。

 

 

より精度をあげるために期間をずらしながら
ウォークフォワードテストを繰り返していき最適値を決定するというわけです。

 

ウォークフォワードテストにしても過去データを使用しているわけなので、
未来に通用するかはわかりませんが、やらないよりは安心ですね。

 

 

説明だけだとわかりづらいので実際に先ほど紹介した
Moving AverageというEAで試してみることにしましょう。

 

最適化期間は、2015年1月1日から2015年12月31日までの1年間です。

 

疑似フォワードテストの期間は2016年1月1日から2016年6月30日までの6か月間です。

 

 

2015年1月1日から2015年12月31日のバックテスト期間

 

 

20160808F

 

 

2016年1月1日から2016年6月30日の疑似フォワードテスト期間

 

 

20160808H

 

 

最適化結果を信じてリアル運用したら大損しているパターンですね。

 

 

 

カーブフィッティングしたEAを避けるには

 

市販のEAを購入するときには
出来ればカーブフィッティングをしたものは避けたいですよね。

 

ユーザーとしてはどのようなことに注意してEAを選べばいいのでしょうか。

 

 

一番簡単なのは、
フォワードテスト結果が公開されているEAを選ぶことだと思います。

 

販売者が偽装したデータを公開する可能性もあるので、
リアルタイムでフォワードテストを公開しているEA販売サイトを選ぶべきでしょう。

 

 

また基本的にロジックがシンプルなEAは、
パラメーターによる最適化の影響を受けにくい傾向があります。

 

やたらとパラメーターの項目が多いEA
どのようなパラメーターを採用しているのか確認する必要があります。

 

 

パラメーターを表示するかしないかはMQLのプログラミングで変更できるので、
パラメーター項目が少ないからと言ってシンプルなEAとは限りません。

 

しかし、パラメーター項目が多いEAの場合は
シンプルなロジックでない確率が非常に高いと思います。

 

 

上記のことに注意するとともに、
リアル口座で運用する前には必ずデモ口座で運用してみることをお勧めします。

 

EAを入手してすぐに運用したい気持ちはわかりますが、
EAの動作確認の意味合いもあるので
若干の期間のフォワードテストは必要だと思います。

 

 

今回はEAでの運用、またはEAを選定するにあたっての
注意点やポイントについてお話しさせて頂きました。

 

 

引き続き、FXトレード研究会(FTK)で取り上げてほしい
題材(テーマ)などのリクエストも受け付けておりますので
お気軽にいつでもお問い合わせください。

 

メールでのお問い合わせはこちら

 

 

コメント