XMTrading
新規口座開設13,000円ボーナスキャンペーン開催中!
最大10,500ドルの入金100%+20%ボーナスキャンペーン開催中!
シルバーウィーク100%入金ボーナスキャンペーン開催中!
XM等の海外FXのMT4でEAのバックテストがどう足掻いてもうまくできない!すぐエラーが出てなんかおかしい!全然エントリーしてくれない!という多くの方が壁にぶつかりそうなお悩みの解決を私自身の経験も踏まえて初心者向けに解説してきます!
バックテストできない原因というのは本記事で記載されていること以外にもあると思うのですが、あくまで私自身がかつて嵌まった体験ベースでありがちなものを4つに絞りました!また、その中でも一番嵌まりやすそうなヒストリカルデータのダウンロード・インポートについては本記事でも比重を置いて解説しています。
バックテストよくわからないからやってないという方、バックテストの必要性はわかってるけどうまくいかないとお悩みの方にとって少しでも本記事が参考になれば幸いです!
【MT4でバックテストできない原因①】:IB縛りのEAを該当のFX業者・口座番号でログインしていない!
まず、EAをご自身でプログラミングもしくはツールで自作、或いはそれなりの初期費用を払ってEAをご購入されている場合は本項目は該当しませんが、恐らくEAユーザーの多くはEA開発者のIB口座と紐付けられたEAを稼働されている、もしくは稼働されるご予定なのではないかと思います。
紐付けられたFX業者の口座番号とは違うFX業者・違う口座番号からログインしてバックテストしようとしている場合、下記のように「Usererror!CannotTrading」「unmatched data error」等のエラーが出るのはないでしょうか?
このようなIB縛りのあるEAの場合、「基本的には」指定されたFX業者の口座番号でログインしていなければEAをチャートで稼働オンにできないようにプログラミングされており、同様にバックテストもできないようになっています。
※参考までに、下記の通りGEMFOREXではシグナルプロバイダー(EA開発者)向けのマニュアルでIB縛りについて具体的なコーディングの仕方が指定されています。
GEMFOREXでは、シグナルプロバイダー様からご登録頂いたEAを、ユーザーがダウンロードする際に、該当ユーザーの口座番号のみ動作するコードを自動作成しています。その為には、シグナルプロバイダー様が登録予定のmq4ファイル内に以下のコードを記述する必要がございます。
引用元:GEMFOREXのシグナルプロバイダーEAマニュアル「手順1 アカウント縛りのコーディングについて」
ここで、なぜ「基本的には」なのかというと例外もあるからでして、GEMFOREX公式サイト上でダウンロードできるEAはデモ口座でも稼働できるようにプログラミングされており、当然バックテストもできるようになっています。
※以下、数年前に私がGEMFOREXのサポートへ問合せた時にご回答頂いた内容です。
ゲムトレードのEAにつきましては、
EAのダウンロードは、申請を頂きましたリアル口座でのみ
ダウンロードが可能となっておりますが、
ダウンロード頂きましたEAは、
デモ口座でもご利用は可能となっております。
しかしながら、EAプロバイダー様によりましては
デモ口座でのご利用を禁止しているものもございます。
マニュアルにてご確認の上、
ご利用頂ますようお願い申し上げます。
EA開発者によってはデモ口座で使えないようにしてる場合もあるとのことですが、GEMFOREXでデモ口座で稼働できないEAに当たったことは私自身は今まで一度もないですね。もしかしたらほんとに一部のEAはデモ口座で使えないようにプログラミングされているのかもしれませんが・・・
まあGEMFOREXだと大半のEAはデモ口座でお試し稼働もできるし、バックテストもできてしまうので、それが当たり前だと思って他のFX業者の口座でIB縛りされたEAを扱おうとすると嵌まるんですよねw EA-BANKでもデモ口座で稼働できませんし、EA開発者が直接配布するようなEAでもデモ口座で稼働できないことが殆どではないかと思います。この点に関してはGEMFOREXのシステムに感謝せざるを得ないですねw
というわけで、IB縛りされているFX業者の口座とは別口座(デモ口座含む)でMT4へログインされている方は、まずは括り付けられているFX業者の口座でログインしてバックテストできるのか試してみましょう!
【MT4でバックテストできない原因②】:通貨ペアの表記(シンボル名)が特殊!
次に嵌まりがちなのが、バックテストしようとしている通貨ペアの表記(シンボル名)が特殊な場合ですね。特殊な表記でしか稼働できないようにしてる逆パターンもありますが・・・
これが原因の場合、下記のように「initialization failed」「no history data」等のエラーが出るのはないでしょうか?
例えば、ドル円だったら殆どのFX業者で通常シンボル名はUSDJPYですが、GEMFOREXのロースプレッド口座ならUSDJPYfx、ガチゼロ口座ならUSDJPY.zero、スキャルピングフリー口座ならUSDJPYrというように、口座タイプによって特殊な表記になる場合があります。
GEMFOREX公式サイト上でダウンロードできるEAはオールインワン口座でのみ稼働可能な為、シグナルプロバイダー(EA開発者)向けのマニュアルには下記の通りEA作成時にシンボル名には気をつけるように明記されています。
シンボル名について
通常、シンボル名は「USDJPY」といったように通貨ペアのみとなりますが、GEMFOREXの場合、下記シンボル名となりますのでEA作成に注意が必要となります。
リアル口座 → USDJPY
引用元:GEMFOREXのシグナルプロバイダーEAマニュアル「手順3 マジックナンバーについて」
デモ口座は付与なし。
要するに、EA側でUSDJPYしか稼働できないようにプログラミングされていたら、USDJPYfxやUSDJPYr等では稼働できませんし、その逆も然りです。
他のFX業者でも口座タイプによってシンボル名の表記が変わることが多いですので、そのEAが稼働可能なFX業者の口座タイプのシンボル名の表記と、バックテストしようとしてるシンボル名が一致しているのかどうかと、次の項目に繋がりますが、該当のシンボル名のヒストリカルデータが十分な期間ダウンロードできているのかどうかを確認する必要があります。
【MT4でバックテストできない原因③】:ヒストリカルデータのダウンロードができていない!やり方解説!【2023年9月6日更新】
最後のヒストリカルデータについてが一番嵌まる方が多いかもしれませんね。ヒストリカルデータがなくてバックテストできない場合、そのままですが下記のように「no history data」等のエラーが出るのはないでしょうか?
また、下記のように、1分足のデータが過去1~2営業日分しかない場合(※)、上記の「no history data」にならなかったとしても、バックテストの取引数が極端に少ない結果になって全然参照にならないということもあります。
※下記画像は2023年2月6日のスクリーンショットです。
バックテストの必要性がわかっていても、よくわからないから面倒くさくなってやめるというのは勿体ですし、本項目ではヒストリカルデータのダウンロードの仕方を一通り解説していきます。
既存のヒストリカルデータ削除&最大バー数を上限値まで増やす&チャートを全部閉じる!【2023年9月3日更新】
まず、MT4上部メニュー「ファイル」>「データフォルダを開く」をクリックして、データフォルダを開きます。
「history」>「FX業者の該当サーバー名(下記画像ではGemTrade-Live)」を開き、この中に入っている既存のヒストリカルデータ(.hst)を全部削除します。この後、新しいヒストリカルデータを取得し直すのですが、既存のデータが中途半端に入ったまま新しいデータを入れるとバックテストの結果がおかしなことになる可能性がある為です。
次に、より長期間のバックテストができるように「ヒストリー内の最大バー数」を上限値まで引き上げておきます。MT4上部メニュー「ツール」>「オプション」をクリックします。
「チャート」タブ下部にある「ヒストリー内の最大バー数」「チャートの最大バー数」をできうる限り9を連打(9ボタン押しっぱなし)し、「OK」ボタンをクリックします。
尚、再度「オプション」の「チャート」タブを開き直すと、下記のように2つとも「2147483647」とう数値に変わっており、これがMT4の最大バー数の上限値ということになります。
そして、MT4で表示しているチャートを全部閉じてからMT4を再起動します。
チャートが開いたままだとログイン中のサーバーのヒストリカルデータが自動的に生成されてしまい、この後インポートするヒストリカルデータと被ってしまってバックテストがおかしくなる可能性があります。尚、チャートを全閉じした上で、ログアウト(意図的にID・パスワード入力ミスをする)しておくと、もっと確実にヒストリカルデータの自動生成がされなくなります。
メタクオーツのヒストリカルデータをダウンロード!
これで準備ができたので、いよいよヒストリカルデータの取得を行いますが、まずは一番手っ取り早いメタクオーツ(MT4・MT5の開発元)のヒストリカルデータの取得の仕方から解説していきます。
MT4上部メニュー「ヒストリーセンター」をクリックしてヒストリーセンターを開きます。
左側メニューでヒストリカルデータを取得したい通貨ペア・時間足(下記ではUSDJPYの1分足)をダブルクリックして灰色から色付きの状態にしたら左下「ダウンロード」ボタンをクリックします。すると「ダウンロード・アラート」が表示されますが、「OK」ボタンを押してダウンロードを行います(※)。
ダウンロードが完了し、下記のようにヒストリカルデータを過去に遡っていっぱい取得できたのが確認できたら「閉じる」ボタンをクリックして完了です。
外部のヒストリカルデータ(FXDD1分足)をダウンロード・インポート!【2023年11月16日更新】
もう1つのヒストリカルデータのダウンロード手段として挙げられるのが、外部から入手したヒストリカルデータをMT4へインポートする方法です。
メタクオーツのヒストリカルデータはFX業者のものとは異なり、あまり信憑性が高くないのと、通貨ペアによってはあまり長期間のデータを取得できず、バックテストするには不十分な場合もある為、こちらの手段の方がおすすめです。
ヒストリカルデータの取得先は、デューカスコピー・FXTF・Axiory辺りは信憑性が高くておすすめなのですが、今回は一番取得が簡単で手っ取り早いFXDDで1分足データをダウンロードしてMT4でインポートする方法を解説していきます。
まず、FXDDのヒストリーデータダウンロードページを開き、ダウンロードしたい通貨ペア(下記ではUSD/JPY)をクリックしてダウンロードします。
圧縮フォルダ(.zip)がダウンロードされるので解凍し(※)、中のヒストリカルデータ(ここではUSDJPY.hst)をデスクトップ等に保存しておき、「ヒストリーセンター」の「インポート」をクリックします。
※最近のWindowsのパソコンならダブルクリックするだけで解凍できるかと思いますが、それで解凍できない場合は別途圧縮ソフトを使って解凍するようにしましょう。
右下で「MetaQuotes files(*.hst)」を選択し、FXDDからダウンロードしたヒストリカルデータ(ここではUSDJPY.hst)を選択したら「開く」ボタンをクリックします。
下部にインポートするヒストリカルデータが表示されているのが確認できれば「OK」ボタンをクリックし、その後ヒストリーセンターも「閉じる」ボタンをクリックします。
これでFXDD1分足のヒストリカルデータのインポートは完了です。EAが1分足のロジックならそのままバックテストも可能ですが、このままだと5分足以上の時間足がまだない状態です。
次の項目で、1分足のデータから5分足以上の他の時間足のデータを生成する方法を解説していきます。
「Period_converter_ALL.mq4」で1分足以外のヒストリカルデータを生成!【2023年6月12日更新】
1分足のヒストリカルデータが長期間あれば、5分足以上の他の時間足も生成ができるのですが、今回は「Period_converter_ALL.mq4」というメタクオーツ公式サイトで無料ダウンロード可能なツールを使う方法を紹介していきます。
まず、メタクオーツ公式の下記ページ(※)へアクセスし、赤丸の箇所をクリックして「Period_converter_ALL.mq4」をダウンロードします。
※下記ページはメタクオーツ開発元のロシア語表記ですが、ダウンロードするだけなら特に問題はありません。
MT4のデータフォルダ内の「MQL4」>「Scripts」の中に「Period_converter_ALL.mq4」を入れてからデータフォルダを閉じます。
MT4を再起動するか、もしくは「ナビゲーター」>「スクリプト」で右クリックメニュー「更新」をクリックし、「ナビゲーター」>「スクリプト」で「Period_converter_ALL.mq4」が表示されることを確認します。
MT4上部メニュー「ファイル」>「オフラインチャート」をクリックします。
今回5分足以上を生成する為の1分足(FXDDからダウンロードしたヒストリカルデータ)をダブルクリックし、1分足のオフラインチャートを開きます。
左側の「Period_converter_ALL.mq4」を右側のオフラインチャートへドラッグアンドドロップすると、チャート左上で5分足以上の生成が順々に進み(赤い下線部分)、全時間足の生成が終われば赤い下線部分の表記が消えます。
これで全時間足の生成が完了しましたので、MT4を再起動してからバックテストができるようになったのかどうか確認してみましょう!
【MT4でバックテストできない原因④】:円口座(JPY)なのに通貨をUSDにしてたら右肩下がりになる場合あり!【2023年9月3日追記】
EA-BANKのフォワードランキング上位のEAをThree TraderのRawゼロ口座と紐付けし、MT4でバックテストしてみたらこんな感じの右肩下がりになってしまいました・・・
フォワードで長期間右肩上がりで、かつランキング上位のEAがバックテストでこんなパフォーマンスになったらそんなバカな!って感じですよねw
具体的に取引履歴を確認してみましたが、損益が取引とかけ離れためちゃくちゃな数字になってしまっています・・・
現在(2023年9月3日)FXDDのヒストリカルデータがダウンロードできないので(目次3-3参照)、別業者から取得したヒストリカルデータがおかしいのでは最初疑ったのですが、元のFXDDのヒストリカルデータに戻して試してみても右肩下がりだったのでどうやら原因は別にあるようで・・・
そこで、Three TraderのRawゼロ口座が日本円(JPY)口座なのに、バックテストでは通貨をUSDにしていたので、直接「JPY」と入力して再度バックテストを試してみたところ・・・
下記の通り、バックテストの右肩下がりが改善されました!
日本円口座だとしても、通貨USDでバックテストしても問題ないEAも結構ありますし、選択肢にJPYがないのがとても悩ましい点ですよねw メタクオーツはヨーロッパの会社なのでJPYを選択肢に加える気がないのでしょうか?
直接「JPY」と入力すればちゃんとJPYだと認識されますので、日本円口座でMT4のバックテストが右肩下がりの場合は一度お試し頂ければと思います。
以上、MT4でバックテストがどうしてもうまくいかなくてお悩みの方にとって、本記事が少しでも参考になっていれば幸いです。
2024年9月2日(火)更新
現在XMTradingでは以下のプロモーションを開催中!
- 新規口座開設13,000円ボーナス
- 最大500ドルの入金100%ボーナス
- 最大10,000ドルの入金20%ボーナス
- XMTRADINGロイヤルティプログラム
- シルバーウィーク100%入金ボーナスキャンペーン
- 長らく日本人ユーザー数が最も多く、WEB上で必要なノウハウがいっぱいある!
- 運営実績十分な大手FX会社!日本人向けサポートも充実!
- 口座開設ボーナス、入金ボーナスは常時開催!
- ロイヤルティプログラム:XMTradingポイントがお得!
- FXウェビナーやチュートリアル動画でFX初心者にも優しい!
- スプレッドが広い難点はKIWAMI極口座で解決!
XMでは口座開設ボーナスや入金ボーナスだけではなく、出金可能な賞金や豪華な賞品のあるプロモーションが開催されることもあります。トレードする際のモチベーションアップにも繋がりますね!
是非XMを上手く利用して稼いでいきましょう!
XMでトレードする主なメリット
XMの口座開設方法(新規・追加)については以下の記事をご参考ください。
コメント