EAをMT4でバックテストする手順


EAを買おうとするとバックテストの結果が表示されていますが、その意味を理解しないでパラメータを変えると思わぬ損失になる事もあります。あるいはEAを自分でテストして宣伝どおりなのか確認しておくのも大切です。

EA バックテスト

 
EAのバックテストを行うためには、過去の取引データであるヒストリカルデータとMT4が使えるFX業者のデモ口座が必要です。
ここではテスト設定を準備しますので、このような内容になります。

  • ヒストリカルデータを取得
  • MT4のチャートの最大バー数を増やす
  • 古いヒストリカルデータを削除
  • ヒストリカルデータをインポート
  • 各時間足のデータ作成
 

ヒストリカルデータの取得

 
ヒストリカルデータと言っても、万国共通の決まったデータがあるわけではありません。
業者(ブローカー)のデータがありますが、長い足(日足)ではだいたい似たような価格です。

  1. MetaQuotes
    • MT4の開発元「MetaQuotes社」から提供されるものは精度が低くEAのテストには向いていません。手っ取り早く取り込めますけれど…
  2. FXDD
    • 2002年からの海外の老舗ブローカーですが、結構荒っぽいという噂もあります…データをもらうだけなので心配することはないですが。
  3. FXTF
    • 日本法人もあり、その点は安心です。スキャルピングが禁止されているのでそういったデータになっているかもしれません。
  4. Alpari
    • 最終的に私はこれをメインに使っていますが、ちょっと面倒です。
  5. 有償のデータ
    • いくつかのブローカーからデータが有償で提供されています。MT4に使うために一手間かかるものもあるようです。

MetaQuotes

例えばあるFX業者のデモ口座を開いてMT4をインストールし、ヒストリカルデータを取り込もうとすると、このようにデータがMetaQuotesからのものになると表示されます。

業者のヒストリカルデータが出るところであれば(Alpariなど)そのままでいいのですが、MetaQuotesは精度が悪いので以下のところからデータを取り込むことをお勧めします。

FXDD

FXDDのデータで、hstデータです。

FXDD:1分足ヒストリカルデータ に入り通貨ペアを選択してダウンロードします。
*.hst データを取得できます。

FXTF

FXTF(FXトレード・フィナンシャル)のヒストリカルデータです。以下MT4への導入はこれを例にしています。尚こちらは*.csvファイルでファイルとしては大きいです。
無料ですが口座が必要です。FXTFの口座開設はこちらから↓
 

日本のFX業者によってトレードツールは異なります。インジケータを使いたい場合はMT4が圧倒的にたくさんあります。またEAなどをやる場合は...
 

FXTFにログインしてマイページに入り、チャートデータを選択クリック

例えばここではEURJPYのデータをダウンロードします。
(EAにより対象通貨ペアが限定されていると思いますのでその通貨ペアを選びます)

EURJPY_M1.zip というファイルがダウンロードできました。
このzipファイルを解凍すると EURJPY_M1.csv が出てきます。

Alpari

Alpari UK でデモ口座を開いてAlpariのMT4でヒストリカルデータが一番です。ただし、デモ口座を開いた後で海外から英語で電話がかかってきますので、そこは覚悟してください。(しかもどこか南太平洋あたりから!) データとしては一番使いやすく信頼できそうです。

我こそはという人は試してみてください。私はこれをメインにしています。
 
 

ヒストリカルデータの問題点

今更ですが、ヒストリカルデータの問題点を理解しておいた方がいいでしょう。

  • 4時間ではブローカーによって月曜のスタート時間が異なっている影響でズレが生じています。つまりローソク足の4本値がブローカーで違うわけです。
  • 日足では、1本だけ空の足が追加されることがあります。これはリアルのMT4でも起きるのでシステムのバグでしょう。直す気は無いみたいです。(そこはNweYorkサーバーがダメダメですが東京サーバーは修正されているのでやろうと思えばできるはず…)
  • 日足が5本、6本という問題があり、6本を5本に変更しただろうあたりでデータの不整合がおきているのではというものがあります。2013年以前あたりで。いまだに6本でやっているブローカーもありますが、デイトレやスキャルのトレーダーには関係ないという理由のようです。
  • 5分足などの短い足でもスプレッドの変動があります。例えば各ブローカーのスプレッドは一定ではありません、また朝方はスプレッドがほとんどのブローカーで広がります。そこまでヒストリカルデータで取り込まれていないでしょう。
    また暴落、高騰時のスプレッドの動きまでデータに反映されているとは思えません。そういった時もバックテストでOKだと謳うEAでひどい目にあったことがあります。
     
    スプレッドが隠れてしまうのはヒストリカルデータが売値だからです。売値+スプレッドとして買値もデータとしてあれば別です。ただそれを扱うEAはまたそれなりに作成しないと行けなくなります。

では全く意味が無いかというと、個人的には最低限のロジックのテストができるという点で有効だと思います。
このヒストリカルデータを使っても利益にならないEAはそもそもダメダメということでしょう。

 

ヒストリカルデータをMT4にインポート

 
ヒストリー内の最大バー数の設定:

MT4を起動して「ツール」「オプション」を開きます。

「チャート」タブを開き、ヒストリー内の最大バー数と
チャートの最大バー数を2146483647まで最大値に設定します。
(実際はこの数字以上を入力すればこの値で頭切りされます。例:12345678901)

プロキシ設定:
アカウントにログインしてFX業者からの配信データを受信していると、テストとデータが混同します。それを回避するために、プロキシ設定を使ってオフライン状態(回線不通)にします。
「ツール」「オプション」から「サーバー」タグを選択します。


「プロキシサーバーを有効にする」にチェックを入れて、その右にある「プロキシ…」ボタンをクリック
サーバーに適当な入力をしてOKです。

古いヒストリカルデータの削除:

MT4を起動して表示しているチャートをクローズしておきます。

「ファイル」「データフォルダを開く」
データフォルダーを開いた後はMT4は終了します。

「history」をクリック

「FXTrade-Demo FXTF」を開きます。(フォルダー名は場合によって異なります)

フォルダ内にあるhstデータを消去します(実際は*.hstファイルが古いデータなのでこれらを消去)

再度MT4を起動します。チャートは表示させないでそのままです
「ヒストリーセンター」をクリック

テストしたい通貨ペアのフォルダを開き、各時間足にデータが無いことを確認します。もしもデータがあれば削除します。
「インポート」ボタンをクリック

データ取り込み画面で参照ボタンから、前に取り込んだヒストリカルデータ
EURJPY_M1.csv を指定します

データがある程度大量に取り込まれますが、2012年1月3日からのデータが揃っているのを確認して「OK」

ここは取り込みに時間が相当かかったり、いつまでたっても表示されないこともありますのでそのつもりで確認してください(ロード中のような表示がない)

ヒストリカルデータがインポートされました。ただしこれは1分足だけなのであとで他の時間足の作成が必要です。

MT4のチャートで確認するために、該当通貨ペアのチャートを開き、「チャート」「自動スクロール」をオフにします。

オフラインチャート:
メニューの「ファイル」「オフラインチャート」を開くとEURJPYの1分足チャートがありますので「開く」

チャートの左下でエンターキーを打つと日付へ飛べるダイアログが開きますので
「2012.01.03」と入力します

チャートが2012年のデータに飛んでいるのがわかります。

 

各時間足のデータ作成

 
1分足チャートを開いた状態でPeriodConverterがナビゲータウィンドウにデフォルトであり、それを起動します。

パラメータの値に時間を入力します。例えば5分足ならば「5」です
15分=15
30分=30
1時間=60
4時間=240
日足=1440
週足=10080
月足=43200

ただこのPeriodConverterはいつ終わったのか進捗状況が分からないことがありますので、period_converter_ALL.mq4というのを使うと全部いっぺんに作成してくれ進捗が分かります。

実行した後で、データフォルダを開き、ヒストリカルデータを確認すると1分足~月足までのデータができています。

これでバックテスト用のヒストリカルデータの作成は終了です。
 
 
お勧めシステムトレード:


 

このEAは時々販売を解禁したりします。


Flashes for USDJPY
【1月28日~30日 販売終了に購入が間に合わなかった方のために3日間限定販売】FXトレード日本一決定戦(WTC)ロビンスカップ準優勝のEA!8年以上右肩上がりのスキャルピングで相場のエッジを鮮やかに切り取る
【1月28日~30日 販売終了に購入が間に合わなかった方のために3日間限定販売】FXトレード日本一決定戦(WTC)ロビンスカップ準優勝のEA!8年以上右肩上がりのスキャルピングで相場のエッジを鮮やかに切り取る?|?fx-on.com
FLashes for USDJPY
FXトレード日本一決定戦(WTC)ロビンスカップ準優勝のEA!
8年以上右肩上がりのスキャルピングで相場のエッジを鮮やかに切り取る


自分でEAを簡単に作成する事もできます

EAつくーる【1ヶ月版】
MQL言語の学習ができ、裁量トレーダーもEA開発が可能になる!
MQL言語の学習ができ、裁量トレーダーもEA開発が可能になる!?|?fx-on.com

『EAつくーる』
MQL言語の学習ができ、裁量トレーダーもEA開発が可能になる!
MQL言語の学習ができ、裁量トレーダーもEA開発が可能になる!?|?fx-on.com

fx-on電子書籍お試し用・EAつくーるマニュアル
fx-onの電子書籍リーダーをお試しください!

解説ページ

公式ページ


EAつくーるとセットでインジケーターつくーるも場合によっては必要になるかもしれません
手法次第です
インジケーターつくーる【1ヶ月版】
インジケーターつくーる
インジケーターつくーる?|?fx-on.com

インジケーターつくーる
MQL言語の学習ができ、裁量トレーダーもインジケーター開発が可能に
MQL言語の学習ができ、裁量トレーダーもインジケーター開発が可能に?|?fx-on.com