結論から言えばMT5は、
- マルチコアが使える
- 他のPCにもバックテスト処理を割り当てることができる
- クラウドにある他人のPCを処理能力を有料で借りることができる。
ため、設定する時間と、自分のPCのスペックや他人のPCの借賃にお金をかければいくらでも高速化することができます。
このような手段を使ってMT5のバックテストを高速化する方法を説明します。
MT4で高速化する方法(特別なことは書いていないですが)は以下をご覧ください。
パソコンのスペックを上げる・増強する(ハードウェア面からの説明)
身も蓋もない話ですがパソコンが貧弱であれば高速化の設定を行っても効果は薄いかと思います。
逆に言えばパソコンのスペックを上げればさらにバックテストを高速化できます。
PCにSSDを追加する
バックテストで使うヒストリカルデータ(チャートの過去データ)はSSD・ハードディスクから逐次読み取られ、さらにログや1時間足など1分足をもとに作る足も書き込まれてからバックテストを行います。
ですのでストレージ(SSD,HDD)の読み書きの速度がバックテストの速度に影響します。
そこで、ハード面でまずできることは、外付けのSSDを買ってそこにヒストリカルデータを置く。
内部のハードディスクをSSDに交換するかになります。
外付けのSSDを買ってヒストリカルデータを置きたい場合はwindowsの場合「シンボリックリンク」というものを使えば実現できます。
(MT4の高速化の「Cドライブ以外にヒストリカルデータを置く方法」参照)
SSDをすで使っているという方はNVMeタイプのものに交換・追加することをしましょう。
とりあえずそういうのが色々面倒でパソコンにハードディスクが載っている方はいっそ新しいパソコンを買うのも手です。
以下のページにおすすめのパソコンを載せています。
MT5はCPUの性能が高いことが重要
MT5のバックテストはCPUのコアをすべて使って行うことができる、
つまりCPUの性能をフルに使うことができるため、CPUの性能が問われます。
前バージョンのMT4では単一のコアしか使用できませんでした。
この画像のようにより多くのコアがあれば並行して多種のバックテストができます。
ですので、CPUの性能が低い場合は、コスパも高いAMDのRyzen 7やRyzen 5 、もしくは core i7 や core i5 の最新版を選んで交換する(BTOデスクトップや自作の場合)・このCPUが載っているPCを選んで新しく購入するとよいでしょう。
MT5のバックテストを快適に動かすためのおすすめのスペック・PC
以上のスペックを兼ね備えたおすすめのPCをピックアップしました。
AeroStream RM7A-D194/Tメーカー | TSUKUMO(ヤマダ電機グループ) |
税込価格(2020年5月現在) | 109780円 |
CPU | Ryzen™ 7 3700X |
メモリ | 8GB |
ストレージ | 240GB SSD |
このようなスペックのPCであれば、バックテストを快適に動かすことができ、
さらに、このRyzen 7であれば、16個の多通貨・別パラメーターでのバックテストを並列して行うことができます。
ただし、モニターはついておらずストレージも240Gでは少々心もとないので、
リンク先のカスタマイズ画面にてモニターをつけて、ストレージの容量も上げる選択をするとよいでしょう。
MT5の設定にてバックテストを高速化する方法(多通貨バックテスト・最適化をする方向け)
マルチコアを使用する
バックテストにて単一の銘柄でさらに最適化しないときは、一つのコアしか使用しないのでCPUのコア数が多く、性能が高くても、速度はCPUのコア数が低いものとそこまで変わらないかもしれません。
ただし、すべての銘柄に対してバックテストを行う、もしくは最適化を行う場合は並行していろいろな銘柄やパラメーターに対してバックテストを行います。
この時にコア数が多くCPUの性能が高ければ高いほど早くなります。
・バックテストの銘柄にて「すべての[気配値表示]銘柄」を選択して複数の銘柄を同時にバックテスト
MT5では複数の銘柄(通貨)を同時にバックテストすることができます。
CPUのコア数が多ければ複数の銘柄のバックテストを並行して行うため、速度も落ちることはありません。
もし複数の通貨・銘柄のバックテストを結果を知りたければ一回一回銘柄に対してバックテストを行うのではなく、バックテストの設定の銘柄にて「すべての[気配値表示]銘柄」を選択しましょう。
そうすると一度に複数の銘柄のバックテストを行うことができます。
左上の気配値表示は、気配値表示の上で右クリック→「銘柄」を選択すると以下の画面が出てきます。
1→2の順番で特定の銘柄の表示/非表示が切り替えられます。
・EAの最適化を行う
この説明は必要ないかもしれませんが、EAの最適化(オプティマイズ)を行ってもMT4と違って単一のコアではなく複数のコアを使用してバックテストを行います。
他のPCに処理を割り振る
MT5では余ってるPCなど、手持ちのPCに処理を割り当てることができます。
今回は手持ちのcore i5のノートPCを追加してみます。
1.まず自分以外の処理を割り当てるPC側には専用のソフト「MetaTrader 5 Strategy Tester」をインストールします。
インストールしたら開きます。
サービスタブを開いてIPとパスワードをメモします。
接続情報になります。
2. ストラテジーテスターのエージェントタブをクリック、
→Local Network Farm 右クリック
→追加
を押します。
3. 「ホストからエージェントを追加する」の場合、メモしたIPを入力します。
「ネットワークをスキャン」の場合は、IPの末尾を始点では.1、終点では.254と変更します。
ちなみに 「ネットワークをスキャン」 のほうが確実です。
設定が終わったら次へを押します。
接続先のPCの情報が現れます。
もしハードウェア情報の記載がない場合は接続されていません。
接続される側のwindowsやセキュリティソフトのファイアウォールを見直すか停止を行ってください。
(自分はそうでした)
完了を押すとエージェントに接続した他のPCの情報が追加されてるのが確認できます。
あとはバックテストを行うだけで稼働します。
MQL5クラウドネットワークを使う
この機能は同じくこのサービスに登録しているネット上のPCの処理能力をお金を払うことによりバックテストや最適化にて利用でき、これらの高速化が見込めます。
とはいっても私は実際に使ったことがないので軽く方法を説明します。
まずこの機能を使うにはMQL5 communityのアカウントが必要になるので登録しておきましょう。
⇒登録フォーム
IDとメールアドレスを打って登録するとメールが来ますのでそちらにパスワードが記載されてます。
クラウドネットワークを使うには入金も必要です。
メールのサインインを押し、IDとパスワードを使ってログインします。
ログイン後、1にて日本語にできます。
左の2.支払いを押し、3.で入金します。
支払いやpaypalやクレジットカードが使えます。
MT5に戻ります。
まず先程と同じくエージェントを開き、登録するを押してMQL5 communityのアカウントでログインします。
入金した額が表示されるので、あとはバックテストの設定を行ってスタートを押すとクラウドネットワークが稼働します。
多通貨とか最適化とかではなくて単体・通常のバックテスト自体が遅い場合
単体での通常のバックテスト(1通貨のみ・最適化なし)が遅い場合は以下が考えられます。
- そもそもPCのスペックが足りない。
- バックテストの期間が長すぎる
- 1分足など小さい足を使っている。
- ストラテジーテスターのモデルが「全ティック」
実際のところスペックが足りていれば下3つの条件であっても、MT5ならすぐにバックテストは終わります。
つまり単体のバックテストが遅いことの対策として、一番はやいのはこの記事の最初のハードウェアの説明に沿ったPCに買い換えることです。
しかしながらスペックが足りないときにどうバックテストをどう設定するかということに関して対策は以下が考えられます。
他のアプリを閉じる
MT5はメモリを使いますので他のアプリを閉じましょう。
とくにchromeはメモリを食いますのでこういったメモリを食うアプリを優先して閉じましょう。
バックテスト期間を短くする・足の期間を長くする
もちろんバックテストが長いとそれだけデータを読み込みます。
また小さい足を使うとデータがもちろん大きくなります。
まず直近でいい結果が出るか測り、そのあと長期間で行ったり、
足を変えてバックテストをしてみるのも手です。
ストラテジーテスターのモデルを「全ティック」以外にする(推奨しない)
全ティックは1分足から擬似的なティックを作り、その上でバックテストを行うものですが、いかんせん時間がかかります。
あまりにも時間がかかるようであれば、「1分足OHLC」あるいは「始値のみ」を使って、まず大まかにバックテストを取るのも手でしょう。
コメント