EAを使うにあたって身につけていると役に立つスキルの1つ「バックテスト」。
EAを使っている人の中には「バックテストは当てにならない」と言う人もいますが、目的を持って行うバックテストはとても重要で、将来のリスクを把握するうえでとても大切な作業だと私は考えてます。
「自分はEA開発や提供しないから関係ないや」
「FX初心者には難しいから無理だろう」
そう考えている方も少なくないと思います。
しかし!EAのバックテストは開発者という立場の人より、提供してもらって使用する側の人の方がしないといけない作業です!
なぜなら、EAを提供している人の中には、成績の良い期間のみ公開して勧誘したり、極端に成績が良くなる様に一定の期間だけに合わせた設定で結果を作り上げる悪い人もいるからです!
そんな人のEAを、「将来こんな利益が得られるのかぁー♪」と期待だけを持って稼働してしまうと、すぐに大切な資産が溶けてしまいます。
そうならない為にも、自身がこれから使おうとしているEAはリアル稼働する前に必ず自分でもバックテストを行い、本当に公開されている情報が正しいか確かめてから稼働しましょう!
大丈夫!
バックテストの方法はこの記事で誰でも出来るようになるよう、丁寧に解説していきます。
私もEA始めた当初はいろんなサイトでバックテストのやり方を調べまくりました!
説明通りに作業しても上手くいかないことが沢山あり挫折しかけた時もあります。
そんな同じ悩みを抱えた方の気持ちは十分理解している私だから、この記事を読んでくれた方全員をバックテストが出来る様にする自信があります。
ではレッツゴー!
環境編
まずはバックテストする環境を正しい状態にするための準備を行います。
①MT4の準備
まずはPCでMT4アプリをインストールし、開設した口座にログインします。
MT4アプリはブローカーのHPからインストール出来ます。
EAは口座縛りのシステムを使用しているのもあり、そういった場合はEAと紐付けられた口座でないと稼働出来ない仕組みとなっています。
バックテストも紐付けしている口座のみ可能という場合もありますので、EAごとにバックテストする口座が変わるということも理解しておきましょう。
またEAによってはバックテストを出来ない様にしているものもあるので、当記事のやり方でバックテストが上手く出来ない場合はバックテストを出来ないEAの可能性があります。
そういった時は提供者に聞いてみてください。
②設定変更
まずはMT4の設定に関する部分から触っていきます。
MT4上部メニューの「ツール」を選択し、『オプション』をクリック。
表示された画面から、「チャート」タブを選択し
[ヒストリー内の最大バー数]と[チャートの最大バー数]
の数値を「999999999999」というように、9を長押しして最大数値にしてください。
次に横にある「エキスパートアドバイザ」のタブを選択します。
[自動売買を許可する]と[DLLの使用を許可する]にチェックを入れてください。
実際にEAを稼働しない場合でも、この項目にチェックを入れておかないと、バックテストで稼働してくれないので忘れずに!
完了したらOKボタンを押します。
③チャート表示
バックテストを行いたい通貨ペアのチャートを出します。
上記メニューの「ファイル」をクリックし、『新規チャート』を選択。
バックテストを行いたい通貨ペアを選択し、チャートを表示させます。
(今回はUSDJPYで進めていきます)
この時チャートの時間足は1分(M1)に変更しておいてください。
また上記メニューの自動スクロールボタンをクリックしOFFにします。
④既存のヒストリカルデータ削除
MT4内に元々あるヒストリカルデータは履歴が少なく品質も良くないので既存のヒストリカルデータは削除します。
上記メニューの「ファイル」をクリックし、『データフォルダを開く』をクリック
『history』をダブルクリックし、現在バックテストを行おうとしている口座をダブルクリック。
ここで一旦、MT4の×をクリックし閉じます。(ファイルの方はまだ閉じない)
ログインしている口座のフォルダをダブルクリックして開きます。
ファイル内にあるデータを全て選択し削除。
ファイル内が空っぽになったら右上の×で閉じます。
⑤ヒストリカルデータの入手
次にヒストリカルデータをMT4へインストールします。
MT4に元々あるヒストリカルデータ(④で削除したデータ)は期間が短かったり、品質が良くないので、外部からデータを入手する必要があります。
ヒストリカルデータを提供している会社は沢山あり、また有料・無料どちらもあります。
今回は初心者の方でも手軽に出来るよう無料のものを紹介していきます。
ヒストリカルデータを入手するのにおすすめの入手先はFXTF(ゴールデンウェイ・ジャパン)という会社になります。
》》》FXTF(ゴールデンウェイ・ジャパン)のHPはこちら
国内会社で数少ないMT4のサービスも提供している大手会社で、ヒストリカルデータの品質がトップクラスと多くのユーザーから高評価を得ている会社です。
私はいろんな会社のヒストリカルデータを使ってみましたが、バックテストの品質は圧倒的にFXTFが良く、安定してバックテストも出来るので、今ではここのデータしか使っていません。
FXTFのヒストリカルデータを入手するには、FXTFで口座開設する必要はありますが、無料ででき、1度口座開設してしまえばその後の更新された最新データも無制限にダウンロード出来るので、開設しておいて損は一切ありません。
口座開設が出来たらマイページにログインします。
画面を下にスクロールしたら、サイドバーに『チャートデータ』という項目があるのでクリック。
バックテストしたい通貨ペアをクリックするとすぐダウンロード出来ます。
為替以外にもゴールドやシルバー、株価指数等もあります。
ダウンロードしたヒストリカルデータはzipファイルになっているので、解凍してください。
その時、MT4でインストールしやすくするために、新規フォルダを作成し、zipファイルの中身だけのフォルダを作っておくと後々作業が楽になりますよ。
⑥チャートを遡(さかのぼ)る
再度MT4を立ち上げます。
自動スクロール機能がOFFになっていることを確認します。(ONの場合はクリックしてOFFにしてください。)
先程表示したチャートをクリックしキーボードの「HOME」ボタンを長押しし、チャートをストップするまで遡ります。
チャート画面がが動かなくなったらOKです。
⑦ヒストリカルデータ インストール
上部メニューの「ツール」をクリックし、『ヒストリーセンター』を選択。
バックテストを行う通貨ペアを探しダブルクリック(今回はUSDJPY)、各時間足が表示されるので『1分足(M1)』をダブルクリック。
「インポート」ボタンをクリックするとファイルをインストールするための画面が出てくるので、『参照』をクリックして先程入手したヒストリカルデータファイルを選択。
「OK」ボタンをクリックすると、MT4内のヒストリカルデータが更新されます。
下までスクロールし2012年までのデータが入っていれば大丈夫です。
確認したらMT4を一旦閉じ、再起動します。
⑧オフラインチャート確認
再びMT4を起動し、上部メニューの「ファイル」をクリック。
『オフラインチャート』項目を選択し、インストールした通貨ペアの1Mがあるか確認。
⑨Period Converterで各時間足生成
MT4画面の左部にあるナビゲーター内にある「スクリプト」項目の小メニューに「Period Conve」というのがあります。
これをチャート上へドラッグ&ドロップします。
すると以下のようなポップ画面が表示されますので、数値を『5』に変更してOKボタンをクリックし閉じます。
これで5分足のデータが作れました。
同じようにもう一度「Period Conve」をドラッグ&ドロップします。
すると2回目以降はこのようなポップ画面が表示されます。
ここは「はい」で大丈夫です。
次は「15」と変更しOKボタンをクリック(15分足が作られました)
同じ手順で、「30」「60」「240」「1440」の数値を作成してください。
完了したらMT4を閉じます。
⑩ヒストリカルデータが正常に生成されたか確認
MT4を起動し、上部メニューのファイルをクリック。
「オフラインチャート」をクリックし先ほど作成した通貨ペアの各時間足データが揃っているか確認。
作成した全時間足の表示があればOKです。
バックテスト編
準備ができたので、いよいよテスト段階に入ります。
①自動売買 ON
先ほどの【環境編】の初めに作業していますが、念のため再確認です。
しっかり手順通りしてきた方はここは飛ばしてOKです。
上部メニューの「ツール」をクリック。
『エキスパートアドバイザ』タブの【自動売買を許可する】と【DLLの使用を許可する】をチェック。
この時、自動売買はONになりますが、チャートのEAをセットしなければ取引が勝手に行われることはないので大丈夫です。
また、既にEAをセットしてしまっている!という方は、PC内で新規のMT4アプリをインストールし、そっちで口座にログインすることで、EAはセットされていない状態の環境を作ることができるのでさんこうにしてください。
②ストラテジーテスター表示
メニュー上部の「表示」をクリック。
『ストラテジーテスター』を選択。
するとチャート画面の下側にバックテストするための設定欄が表示されます。
③EAの選択
ここでバックテストを行いたいEAを選択します。
④通貨ペアの選択
どの通貨ペアでテストを行うか選択します。
⑤モデルの選択
推奨は「全ティック」です。
⑥期間(時間足)の選択
どの時間足にEAをセットしてバックテストを行うか決めます。
EAによっては、設定する時間足が指定されているのもあるので、EAにあった時間足を選んでください。
⑦スプレッドの選択
バックテストをする際に適応させるスプレッドになります。
スプレッドを小さく(有利に)設定しテストした場合、結果は良くなりますが、リアル稼働で「テストのような稼働になっていない」ということもあり得ますので、稼働するブローカーのスプレッドに合わせた設定でテストするといいですよ。
⑧エキスパート設定
EAのバックテストを行いたい設定をする項目になります。
口座資産を入力してください。
日本円は項目に無いので手入力で「JPY」と変更すればOKです。
⑨期間(テスト期間)の指定
テストを行う期間です。
EAにもよりますが、長い期間テストして「破綻しないか」「収支はどれくらいか?安定しているか?」「ドローダウンはどれくらいか?」などを検証した方が信憑性は高くなります。
⑩テスト開始
全ての準備ができたら「スタート」を押し、ついにバックテストの開始となります。
⑪グラフ
バックテスト中に折れ線グラフとして資産推移をみることができます。
⑫結果
バックテストで「いつ」エントリーしたか・決済したか・ロスカットしたかなどが一つ一つの取引が全て見ることができます。
⑬レポート
バックテストが完了すると下部のタグに「レポート」という項目が追加表示されます。
テスト結果がまとめられたシートのようなもので、ここで右クリックし『レポートの保存』を選択することで、今回行ったテスト結果をPC内に保存することができます。
最適化
バックテストでは複数のパターンの設定を同時にテストし、比較できる『最適化』という項目があります。
例えばEAパラメーター設定で
エントリー間隔を:5pips/ 10pips/ 15pips
利確幅を:10pips/ 20pips/ 30pips
のいろんなパターンでどれが良いか調べたい時などに、1度のバックテストでこれらの設定でどの組み合わせが一番成績が良いのか。逆にどの組み合わせが悪いかなどを見ることができます。
全パターンを1つ1つテストするよりは早く調べることができますが、パターン数が増える分、通常のバックテストよりは時間がかかってしまいます。
また、ここで成績が良いものを絞っていくと『過剰な最適化』となってしまい、逆に信ぴょう性に欠けるものにもなってしまいますので、最適化は諸刃の剣とも言えます。
なので、当記事では簡単にここまでの簡単な説明にとどめさせていただきます。
バックテストの豆知識
バックテストに関するちょっとした豆知識もお話しようと思います。
EAのバックテストなので、EAを稼働している環境で行おうと思いますよね。
どういうことかというとVPS側のPCでバックテストを行うということ。
しかし、それはあまりお勧めできません。
というのもVPSは契約時、自分のEA運用に合わせたスペックのプランで契約していると思います。
つまりそこまで容量に余裕があるPC(VPS)ではないということを理解しておかないといけません。
「EA4つくらい動かしたいからこのプランがちょっとGB数も余裕があっていいな」
こういう感じで契約しましたよね?
そこに「ヒストリカルデータ」や「バックテストを行うための容量」を一緒にしてしまうと、1回のバックテストにかかる時間がとても長くなったり、VPSの使用可能容量の圧迫でEAの稼働の不安定さなどのリスクも出てきてとても危険です。
バックテストを行う際は、必ず自身のリアルPC側で行いましょう!
まとめ
今回は「バックテストをしてみたい」「チャレンジしたことあるけどできずに挫折した」といった方向けに分かりやすく解説しました。
EAのバックテストはちょっとした抜けなどでエラーになり、本当にあとちょっとでできるのに原因が分からず諦めてしまう人は多いです。
しかし、どこが間違っているのかなんて自分では気づくことが難しく身近にも相談できる人なんていない。
そんな方にこの記事が助けとなれば幸いです。
また最初は無理に有料のデータも使う必要はありません。
私も愛用し、使いやすいFXTF(ゴールデンウェイ・ジャパン)のチャートデータで十分です!
無料でも品質は90%ととても高く安定したバックテストができています。
EAを開発したい、EAの収益で生活したい。
そんなガチな感じでEAを使いだしたら有料のデータも検討し始めるので全然いいと思います。
バックテストができるようになるとEA運用の世界はすごく広がります!
ぜひこれを機にマスターしてください。
分からないことがあれば個別でやり取りできる公式ラインもありますのでお気軽にメッセージを送ってくださいね。
》》》FXTF(ゴールデンウェイ・ジャパン)のHPはこちら