FC2ブログ

EAのバックテスト

FX初心者
08 /04 2018
EAを購入したら、まずバックテスト!
デフォルト設定でどのくらいのパフォーマンスが出るのか?カタログスペック通りなのか?
やっぱり確かめてみないと!ですね。
デフォルト設定では物足りないなーとか、もっと安全に運用したいとか言う人は絶対したほうが良いです!

やり方は簡単、ヒストリカルデータをMT4に読み込ませて「ストラテジーテスター」を走らせるだけ。

まずはヒストリカルデータ

FX会社からダウンロードします。FXTF、FXDDなどのヒストリカルデータのダウンロードサイトですね。

口座登録のいらないFXDDヒストリカルデータは→こちら

そして、1分足から各時間足に展開するスクリプトをダウンロードしておきます。→こちら

ヒストリカルデータはZIP形式なので、解凍ソフト(Lhasaなど)で解凍しておきます。

準備は整いました。

MT4の準備をする

まず、チャートを最大に表示できるようにしておきます。

チャートの最大バー 

"9999999999"を入れてOKボタンで設定すると、最大値で更新してくれます。

チャートの最大バー2 

自動売買はできないようにして、DLLの使用を許可します。
(デモ口座で自動売買のフォワードテストもするのであれば、チェックしておきましょう)

DLLを使用 

ヒストリーセンターを開いて、ヒストリカルデータをダウンロードした通貨ペアを開いて、インポートボタンを押すと、インポートするファイルの指定になります。


ヒストリーセンター

ダウンロードしたファイルを読み込ませると、ヒストリカルデータが表示されます。

インポート1
             ↓
ヒストリーセンター3

ここで一旦、MT4を終了します。(終了させないと反映されないことがあるようです)
MT4を立ち上げ直して、オフラインチャートを表示します。(一分足)

オフラインチャート 
オフラインチャート2

表示した一分足のオフラインチャートに、先ほどダウンロードした「period_converter_All」をドラッグドロップします。
 
オフラインチャート3 

「period_converter_All」が、一分足から全足に展開してくれます。

オフラインチャート4 
ここまででヒストリカルデータがチャートに反映されました。
もう一度MT4を再起動しておきましょう。

EAを動かす

やっとバックテストができます。

ストラテジテスターの画面を表示してください。
エキスパートアドバイザにバックテストをしたいEAを設定します。
期間にバックテストをしたい時間足を指定します。スプレッドは「現在値」のままでも「2」などをしていしてもOKです。
また、期間を指定しないと時間がかかるので、指定しておきます。

ストラテジテスター

「スタート」で実行されます。

ストラテジテスター2  
ストラテジテスター3

「MACD Sample」の結果は全然だめですね^^;

デフォルトの設定だからかもしれません。「最適化」をしてみましょう。

パラメータの設定にスタート・ステップ・ストップを入力して、左にチェックをしておきます。
スタート~ストップまでを、ステップごとにテストしてくれます。

ストラテジテスター4 
ストラテジテスター5

 「最適化」にチェックを入れて「スタート」!

ストラテジテスター6  
最適化結果を見てみると・・・?!何も表示されてません><
バグってる??
いえいえ、有効な利益の出るパラメータのパターンがないと何も表示されませんww

「MACD Sample」・・・がっかりですw

例がないとわかりにくいので、パペ太自作のEA(テスト用)を最適化してみた結果はこちら。

ストラテジテスター7

ちゃんと最適化結果が表示されます。
最適化結果の一つのパラメータ設定でバックテストをしてみました。
(プロフィットファクタ:3.26、ドローダウン%:0.98のパラメータを選択しています)
普通に利益が出ていますね。

ストラテジテスター8  
EAを新しく買ったり、パラメータを変えたいと思ったら、必ずバックテストをしましょう。
痛い目にあいますよー

パペ太メモ

最適化は「ある期間」の最適なパラメータを探すのに役にたちますが、「ある期間」以外の期間にはあっていない可能性があります。(カーブフィッティング)

買ってきたEAはバックテストで最適化されていますが、フォワードに対処できるかは未知数です。
カーブフィッティングの場合は全くフォワードで機能しない場合もありますので、定期的に直近のバックテストをしてみたり、最適化をしてパラメータを変えて(デモ口座で)フォワードテストをするのが、おすすめです。

豆知識:
株式とかFXでは「カーブフィッティング」というようですが、機械学習(ディープラーニング)にもあって、ニューラルネットワークが学習データに合いすぎているのを、オーバーフィッティング(過学習)といいます。




関連記事

コメント

非公開コメント

パペ太

パペ太は自動人形(EA)を操るという意味で、puppeteer(人形遣い)から付けました。
高収益のEAを目指して日々悩んでいます。