MT5のバックテストは、設定条件によっては数時間かかることもあり、もっと早くできないのかと悩むトレーダーもいるようです。あるいは、自作EAのテストなどで、とにかくテストの数をもっと早くこなしたい裁量トレーダーもいるでしょう。
今回は、MT5バックテストを高速化する方法を、それぞれの目的や遅延の原因に合わせて解説していきます。クラウドネットワークで超高速にできる方法もご提案していきますので、参考にしてみて下さい。
- MT5のバックテストに時間がかかる理由
- MT5のバックテストを高速化する方法
- MQL Cloud Networks を使う方法がある
- MQL Cloud Networksの使い方
MT5のバックテストが遅いのはなぜか?
MT5のバックテストに時間がかかるのはどうしてなのでしょうか。
数時間もかかるんだけど・・・
20分ぐらいかかる。
もっとサクサク進めたいんだけど・・・
などと、遅いと感じる時間に個人差はありますが、
どうにかしたいと考えるトレーダーは結構いるようです。
最初に、バックテストに時間がかかる理由について、よくあるケースと対策をご紹介していきます。
バックテストの設定から遅くなるケース
まず時間がかかる理由として考えられるのが、バックテストの条件設定です。最もありがちなのがテスト期間の長さで、期間が長くなる、つまりテストするデータの数が多くなるほど時間がかかってしまいます。
- 1分足/3か月:ローソク足の本数(91849本)→ 数秒~数分
- 1分足/3年:ローソク足の本数(1117162本) → 数分~数十分
ローソク足の本数は、
バックテストの統計結果から見れます。
例えば、1分足で数か月程度のテストなら数秒~数分で完了しますが、1分足を全ティックで3年、となると数十分かかります。同じ期間であっても、1H足や4H足にするとテストの時間も早くなるでしょう。
また、データの対象(モデル)を「全ティック」にするか、「リアルティック」「1分足」「始値」などに変更するかによってもスピードが変わってきます。
モデルの種類
- 全ティック → MetaTraderがアルゴリズムで生成する疑似ティック
- リアルティック → 実際に動いたティックのデータ
- 1分足OHLC → 1分足の4本値のこと(始値・高値・安値・終値)
- 始値のみ → 時間足の始値のみを対象にする
- 数値計算 → 特定のレートを指定(プログラミング用)
テストの正確さを求めるなら「全ティック」または「リアルティック」がおすすめですが、データが細かいため時間かかってしまいます。
「1分足」「始値」に設定することで、データが少なくなり高速化が図れます。
高速にするための条件設定のポイント
高速にするための条件設定のポイントをまとめると以下のとおりです。
- 期間は短い方が早い(トータルのローソク足が少なくなる)
- ローソク足は長期足の方が速い(テストするデータが少ない)
- 「全ティック」よりも「1分足」「始値」に設定した方が速い
ただ、大切なのはテストにかかる時間よりも、利益につながる最適な設定を重視すべきであるため、多少は時間がかかっても仕方がないということになります。軽く手応えをチェックしたい時に上記の設定で試してみるとよいでしょう。
ちなみにストラテジーテスターの最適化について以下の記事で解説しています。合わせてご覧下さい。
EAに問題があるケース
もう1つ、バックテストに時間がかかるのは、条件設定もさることながらEAのストラテジーで時間がかかる場合もあります。それぞれのEAは、プログラミングされている売買条件が異なります。複雑なプログラミングのEAや、売買回数が多いEAなどは、テスト負荷がかかり時間も長くなりがちです。
他にも、以下のような理由からEAの動きが鈍くなることが考えられます。
- アルゴリズムの許可にチェックを入れていない(パラメーターの設定)
- EAが対応していない通貨ペアを選択している
- EAのスプレッドフィルターが稼働している
- EAがFX業者のストップレベルを超える取引をしている
などです。EAを変えてみることで動きが早くなるケースもあり、詳しくは以下の記事で解説しています。
MT5に問題があるケース
バックテストに時間がかかりすぎる場合は、MT5に問題あるかもしれません。
MT5(MT4)はカスタマイズ性に優れているため、他からインジケーターやソフト・ツールをインストールすることが可能です。新たに挿入したインジケーターやソフトが多すぎるため、MT5が重くなっている可能性があります。あるいは、表示している通貨ペアやチャートの数が多すぎることも考えられるでしょう。
以下の点をチェックしてみて下さい。
- カスタムインジケーターが多すぎないか?
- 外部からインストールしたソフトやツールが多すぎないか?
- 通貨ペアやチャートの数が多すぎないか?
- チャートで表示する最大バーが多すぎないか?
- プロファイルやテンプレートの保存が多すぎないか?
など・・・
MT5の動きを軽くする方法を、下記で詳しく解説していますのでぜひ参考にして下さい。
PCに問題があるケース
もし、MT5以外でもブラウザーやアプリなど全般的に動きが鈍い場合は、PCそのものに問題があると見れるでしょう。
以下の要件をチェックしてみて下さい。
- セキュリティソフト → 可能であれば種類を変えてみる
- アドブロック → MT5利用時は無効にしてみる
- メモリーの容量8GB~ → 容量に空きをつくる
- CPU(1.2Ghz以上 or Inter Core 4以上) → 最新バージョンほど性能は良くなる
- プロセッサー(64bit) → アップデートする(32bitから)
とりわけ、PCの速度で最も重要なのがCPUです。CPUとは人間でいうと「脳」と同じ機能をする電子チップのことです。性能が悪いと、一度に処理できるデータに限界があり動きが鈍くなってしまうのです。
古すぎるPCは、CPUも古くなるため買い替えを考えるタイミングかもしれません。中古なら高グレードのCPU搭載のPCが比較的に安価で購入できます。CPUの性能が良ければ多少古いPCでも全然快適に使えます。
VPSサーバーのレンタルを活用する方法もありますので、この機会に検討してみましょう。
MT5のバックテストを高速化する方法
MT5のバックテストが高速で出来ているトレーダーでも、本格派になると「さらに高速化」を狙うケースもあります。できるだけ短時間で大量のテストをしたいからです。同時に複数の通貨ペアをテストしたり、複数のMT5を起動させて並列テストを行うトレーダーもいます。
ここでは、本格的に高速バックテストを実現する方法をいくつかご紹介しましょう。
自分にできそうな方法があれば
チャレンジしてみて下さい!
外付けSSDにヒストリカルデータを保存!
バックテストでは、チャートのヒストリカルデータを大量に保存するため、十分なメモリーが必要です。しかし、データの期間が10年・20年以上で、しかも通貨ペア数が増えてくると膨大なデータとなり、PCに負荷を与え動作を鈍くする原因となります。
そこで使えるのが外付けSSDです。SSDとはSlid State Drive(ソリッド・ステート・ドライブ)のことでUSBのようなものです。120GB~250GBあたりが一般的で、1TB以上のSSDもあります。最近は小型化が進んでいてコンパクトで扱いやすく便利です。
SSDの参考情報(Amazonより)
外付けSSDにメモリーを振り分けるイメージ
外付けSSDにデータを振り分ければ快適で高速のPC動作が維持できるでしょう。
マルチコアでスピードアップ!
もう1つ、比較的簡単に取り組めるのが、MT5に搭載されている「CPUマルチコア」です。
マルチコアとは、「Multi(複数)」の「CPU-Core Processor(CPUコアプロセッサー)」のことで、1つのCPUに複数のプロセッサーコアが実装されていることをいいます。
マルチコアのイメージ
コアが多いほど、同時に複数の仕事が出来る仕組みになっていて、IntelやAMDなど性能のいいCPUはほとんどマルチコアになっています。
MT5では、CPUのマルチコアで複数の通貨ペアが同時にテストできるのです。
各自のPCに搭載されているCPUがマルチコアであれば、MT5のマルチコア機能が利用可能です。コア1つで数件のテストに対応できる場合もあり、10種類の通貨ペア(銘柄)でもわずかな時間で完了します。
MT5のマルチコア機能
ストラテジーテスターの「エージェント」の画面に、利用できるCPIマルチコアが表示されます。
マルチコアを使う方法
マルチコア機能で複数通貨を同時テストしたい場合は、まずは気配値表にテストしたい通貨ペアのみをリストアップしておきます。(銘柄が多すぎるとテストできない)
設定は、ストラテジーテスターの「設定」から行えます。
複数銘柄をマルチコアでテストする設定
「銘柄」「オプティマイズ」の項目に「すべての気配値表示の銘柄」をプルダウンメニューから選択します。4通貨ペア、1H足で1か月のみ試しでテストしたところ、数秒で結果が出ました。超高速です。
マルチコアテストの結果
テスト結果は「オプティマイズ結果」の画面にて確認できます。
コアが4つ使われている例
「エージェント」でコアの利用状況を見ると、4つのコアが使われていることがわかります。上図のケースではコアが12個ありますので、まだまだ多くの銘柄が同時にテスト可能ということです。
ローカルネットワークで超高速テスト!
PCなどのデバイスを複数台使っている場合は、ローカルネットワークからCPUの空きを探すことができます。ローカルネットワークとは、宅内や限られたスペースでネット接続されている、すべてのデバイスのネットワークのことです。
ローカルネットワークでCPUコアを探す方法
MT5のメニュー「ツール」→「ストラテジーエージェントマネジャー」を選択。下図のような画面が出てきます。
メニューから「サービス」をクリックして、使えるCPUがないか調べます。一番上の行にIPアドレス、ポートの欄にポートの数値が表示されますので、メモをとっておいて下さい。
次にストラテジーテスターの「エージェント」から「Local Network Farm」を右クリック、「+追加」を選択します。
エージェント検索の画面が出てきますので、中央の「ネットワークをスキャン」を選択。始点・終点にメモしたIPアドレスを入力、ポートを選択して「NEXT」に進みます。パスワードはデフォルトのままでOKです。
CPUのデータが表示されますので、確認して「Finish」で追加が完了です。
エージェントのリストに追加したCPUの空きが登録されます。
ローカルネットワークで、さらに多くのテストが高速で並列して行えるようになります。
Cloud Network(クラウドネットワーク)が超おすすめ!
CPUがマルチコアに対応していない場合や、コア数が少ない場合でも心配いりません。既存のコア数を増やしたいトレーダーも問題ありません。
MQL5のClowd Networkを使えば、いくらでもマルチコアを増設することが可能です。
MQL5のCloud Networkとは
MQL5のCloud Networkとは、世界中からCPUの空きが探せるネットワークサービスです。MT5を利用するトレーダーたちがエージェント(CPUコア・プロセッサーの空き)を登録、エージェントが必要なトレーダーは格安手数料で利用できます。
日本語で利用できるので、英語が苦手な方でも全然大丈夫です。
MQL5とは、Meta Trader(MT4/MT5)を開発・提供するMeta Quates(メタ・クォーツ)社が運営するコミュニティサイトです。EAを含めた多種多様なサービス・情報を得ることができます。
どうやって使うのか、
次の章で詳しく見ていきます。
MQL5 Cloud Networks(クラウドネットワーク)の使い方
Cloud Networksを使うためには、事前にMQL5のアカウントを作成する必要があります。登録方法や使い方をわかりやすく解説していきます。
MQL5のアカウントを作っておけば
EAも選び放題だから便利なのです。
MQL5のアカウント登録方法
MQL5のアカウントは、公式サイトから「ID」「メールアドレス」の入力して登録ボタンをクリックするとメールでパスワードが届きます。
Cloud Networkの手数料・計算方法
Cloud Networkの手数料の目安
- 1時間 0.04ドル
- 1か月:28.80ドル
計算方法は、「生産性100%(PR100)= 0.04ドル/1時間」を基準に算出されます。MQL5の決済システム(ウォレット)にチャージしておいて、そこから差し引かれる仕組みになっています。(日本語で操作可能)
MQL5の決済システムにチャージ
次に、MQL5の決済システム(ウォレットのようなもの)にチャージしておきます。チャージした分しか使わないので安心です。
決済システムへのチャージは、ログインしてプロフィールのページに行きます。
左端のメニューから「支払い」を選択。「MQL5サービスをチャージ」をクリックして希望する支払い方法のロゴを選ぶとチャージ画面が出てきます。
チャージはUSDベースになり、最低入金額は10USD(約1,300円)以上です。最初は10USDぐらいでチャージしてみるのがよいでしょう。
Cloud Networkの使い方
あとは、エージェントにCloud Network
を追加するだけだから簡単。
エージェントの画面下の方にある「MQLクラウドネットワーク」を右クリック、メニューの「MQLクラウドネットワークを使用する」にチェックを入れます。
チェックを入れると、ステイタスがReadyに切り替わり、5万以上のCPUコアが利用可能となるのです。
トレーダーによっては、コアをフル活用してわずか10分で1000回以上のテストを実行したトレーダーもいます。桁違いに効率を高めていけることがCloud Networksの最大のメリットです。
Cloud Networkの販売者になる
Cloud Networkは、エージェントを購入するだけでなく、販売者として参加することも可能です。
CPUの空きが売れるんだって!
自分のCPUの空きが販売できる
PCを24時間フル稼働で使うトレーダーはほとんどいません。EAを回すとしても、すべてのCPUコアを使うわけではないため、大抵は使っていないコアがいくつか存在します。
MQL5で使っていないコアを販売すれば、プラスアルファのちょっとした収入です。
大きな利益は期待できませんが、購入者が払う手数料の90%が決済システムに入金されます。決済システムに貯まった金額は各自の銀行口座に出金可能です。
販売者としての登録方法
MQL5のストラテジーテスターエージェントのページから、販売者用のツールをダウンロードします。
ダウンロードしたファイルを開きます。
「同意」にチェックを入れて、「Next」を3回で「Finish」をクリックします。
「MQL5 Cloud Network」のタグを開いて、「販売同意」にチェック入れます。「Account」にMQL5のIDを入力してアカウントを連結させます。
「Service」の画面で販売可能なコア一覧が出てきますので、クラウドへの接続状況などが確認できます。右クリックにて「Start/販売開始」「Stop/停止」と調整することが可能です。
販売する時間帯を「Schedule」から設定できます。
これでCPUコアを販売する準備が完了しました。販売状況はMQL5のプロフィールのメニュー「エージェント」で管理してする流れです。
ちなみに、実際にどれくらい稼げるか口コミ・投稿で調べてみました。
「どれくらい稼げるものなの?」
「ほぼゼロだよ。1年に2,3ドル入ればまし。」
「1時間0.01ドル、電気代にもならない。」
「32コアとかなら何十倍かもらえるんじゃ?」
「そもそもね。解放してても使われないのよ。」
引用元:名無しさん@お金いっぱい – チャンネル5
というように、あまり期待できないようでしたが、たまたま利用数が重なれば数ドルにはなるかもしれません。
以下の記事ではMT5にヒストリカルデータをインポートするやり方を解説しています。MT5は表示できるチャートのデータが少ない場合が多いようです。色々なやり方をご紹介していますので、どうぞ参考にして下さい。
まとめ
MT4/MT5はFXでは世界で最も利用されているプラットフォームです。今回このクラウドネットワークの存在を知り、こんなこともできるのか!脱帽するトレーダーも多いのではないでしょうか。
ここまで拡張機能に優れ、カスタマイズしていけるツールはなかなか他では探せないでしょう。MT5バックテストの高速化をクラウドネットワークで実現して、各自のEAツールのキャパシティをさらに充実・拡大させていきましょう!
コメント コメント 0