MT4/MT5 コピートレードEA

MT4/MT5の動作を軽くする

コピーが遅れる、ログに「コピー見送り:時間超過」が出るといった場合の対処です。 上から順に、効果の大きいものを並べています。

1他のEAやインジケータと同居させない

コピーが「遅れて約定する」「ときどき見送られる(ログに「コピー見送り:時間超過」と出る)」場合、 その多くはMT4/MT5の負荷が増えて、処理が遅れていることが原因です。

マスターやスレーブを稼働しているMT4/5には、他のEAやインジケータを極力同居させないでください。 別にインストールしたMT4/5でマスター・スレーブのみを動かすのがベストです。

特にMT4で注意が必要です。MT4はマルチスレッドに対応しておらず、 スキャルピング系など頻繁に発注するEAと同居していると、注文が集中したときにコピーが遅れます。

コピーEAを別のMT4/MT5に分ける

マスター側・スレーブ側で売買用のEA(スキャルピング系など、頻繁に発注するEA)を動かしている場合は、 コピーEAだけを別のMT4/MT5で動かすことを強くおすすめします。

マスター側(マスターの口座) 同居させた場合分けた場合(おすすめ) MT4/MT5 売買用のEAインジケータマスターEA MT4/MT5 ① MT4/MT5 ② 売買EAインジマスターEA ✕ 描画処理や注文が集中すると遅れる ✓ マスターEA専用で軽い ①と②はマスターの口座でログインし、マスターEAは②だけにセットする
スレーブ側(スレーブの口座) 同居させた場合分けた場合(おすすめ) MT4/MT5 売買用のEAインジケータスレーブEA MT4/MT5 ① MT4/MT5 ② 売買EAインジスレーブEA ✕ 描画処理や注文が集中すると遅れる ✓ スレーブEA専用で軽い ①と②はスレーブの口座でログインし、スレーブEAは②だけにセットする
  1. 同じPC(VPS)に、MT4またはMT5をもう1つインストールします。
  2. 2つ目のMT4/MT5に、元のMT4/MT5と同じ口座でログインします(マスター側ならマスターの口座、スレーブ側ならスレーブの口座)。
  3. 2つ目のMT4/MT5に、コピーEAだけをセットして稼働させます。設定はこれまでのままで構いません。チャートは1枚で足ります(マスターEAは、値動きの多いメジャー通貨ペアのチャートがおすすめです)。
  4. 元のMT4/MT5からはコピーEAを外し、ご自身の売買用EAだけを残します。必ず外してください。外さないと、二重発注などの危険な動作になるおそれがあります。
  5. 2つ目のMT4/MT5で「自動売買」をONにし、DLLの許可など通常の設定を確認します。これで、コピーEA専用の軽いMT4/MT5になります。

2ウィンドウを最小化する

効果が大きい設定です。最小化するとチャートの描画が止まり、負荷が下がります。 最小化してもEAは動き続けます。

下の画像のように、MT4/MT5をすべて最小化して、タスクバーにしまった状態で動かします。

VPSのデスクトップ。MT4/MT5のウィンドウはすべて最小化され、画面下のタスクバーに並んでいる
MT4/MT5をすべて最小化した状態(タスクバーの口座番号は隠しています)

起動した時点から最小化させる方法は VPSの初期設定に記載しています。

3表示を減らす

画面に出しているものが多いほど、MT4/MT5は描画や受信に手間を取られます。次の4つを見直してください。

気配値は、コピー対象の通貨ペアだけ表示する

「気配値表示」には、コピーする通貨ペアだけを残します。

MT5の気配値表示。BTCUSD#・GOLD#・USDJPY#の3銘柄だけを表示している

チャートのバー数を減らす

本EAは100本あれば足ります。ツール → オプションの「チャート」タブにある 「チャートの最大バー数」で減らします(画像はどちらも1000にした例です)。

MT4のオプションの「チャート」タブ。「チャートの最大バー数」を1000にしている
MT4:「チャート」タブ
MT5のオプションの「チャート」タブ。「チャートの最大バー数」を1000にしている
MT5:「チャート」タブ

チャートの売買の矢印を消す(MT5・MT4)

MT5は、売買の矢印(取引履歴)を初期設定でチャートに表示します。矢印が大量に出ていると動作が重くなるので、 チャートを右クリックして「プロパティ」を開きます。

MT5のチャートを右クリックしたメニュー。一番下の「プロパティ」を選んでいる

「表示」タブの「取引履歴を表示」のチェックを外します。 あわせて「チャート上にポジションとオーダーを表示」のチェックを外すこともおすすめします。 チャートごとの設定なので、開いているチャートごとに行ってください。

チャートのプロパティの「表示」タブ。「チャート上にポジションとオーダーを表示」と「取引履歴を表示」のチェックを外している

MT4は、v6.39からEAが売買の矢印を付けないようにしました。 前の版で付いた矢印は、メニューの「チャート」→「ライン等の設定」→「すべての矢印類を削除」で消せます。

MT4のメニュー「チャート」から「ライン等の設定」→「すべての矢印類を削除」を選んでいる
MT4:「チャート」→「ライン等の設定」→「すべての矢印類を削除」

ニュースと音声をオフにする

メニューのツール → オプションを開きます。

MT5のメニューの「ツール」から「オプション」を選んでいる

「サーバー」タブの「ニュースを有効にする」のチェックを外します。

オプションの「サーバー」タブ。「ニュースを有効にする」のチェックを外している
ログイン欄とパスワード欄は隠しています

音声は、MT4は「音声設定」タブの「有効にする」、 MT5は「イベント」タブの「音声アラートを有効にする」のチェックを外します。

MT4のオプションの「音声設定」タブ。「有効にする」のチェックを外している
MT4:「音声設定」タブ
MT5のオプションの「イベント」タブ。「音声アラートを有効にする」のチェックを外している
MT5:「イベント」タブ

4取引履歴の表示期間を短くする

取引履歴のタブで長い期間を表示していると、MT4/MT5はその分の履歴を読み込むため、 読み込みに時間がかかります。MT5では、メモリも大きく増えます。表示する期間は短くしておいてください。

MT4

ターミナルの「口座履歴」タブを右クリックし、「全履歴」ではなく「3ヶ月」か「1ヶ月」を選んでください。

MT4の「口座履歴」タブを右クリックしたメニュー。「3ヶ月」と「1ヶ月」を囲んでいる

MT5

ターミナルの「口座履歴」タブの一覧を右クリックし、「期間指定」を選びます。

MT5の「口座履歴」タブの一覧を右クリックしたメニュー。「全履歴」「3ヶ月」「1ヶ月」の下の「期間指定」を選んでいる
「口座履歴」タブの一覧を右クリックし、「期間指定」を選ぶ

「期間」で、表示する期間を「本日」や「直近3日」のように短くして、「OK」を押します。

「期間指定」の画面。「期間」の一覧に、本日・直近3日・先週・先月・直近3ヶ月・直近6ヶ月・全履歴が並び、「本日」を選んでいる
「期間」で「本日」か「直近3日」を選ぶ

MT5は、長い期間を表示すると、その分の取引履歴を読み込んでメモリが大きく増えます。期間を短くすると軽くなります。

MT5のメモリを減らす(取引履歴のフォルダを移す)

MT5は、口座にたまった取引の履歴を、起動のたびに読み込みます。 そのため、コピーの回数が多い口座ほどメモリの使用量が増えていき、MT5やVPSを再起動しても元に戻りません (MT4には、この増え方はありません)。表示期間を短くしても重いときは、次の手順で取引履歴のフォルダを移します。

目安は、取引の記録(約定)1万件あたり約11MBです。コピーの回数が少ない口座では増え方はわずかなので、 タスクマネージャーでMT5(terminal64.exe)のメモリが大きいときや、VPSのメモリが足りなくなってきたときに行ってください。

当方のVPSでの結果

試験のために1台あたり1日に数千回コピーしている口座で、MT5が1台あたり380〜500MBまで増えていました。 次の手順で取引履歴のフォルダを移したところ、4台の合計が1,760MBから1,078MBに下がりました(1台あたり210〜360MB)。 移したあとも、コピーと決済、その日の損益の計算は、それまでどおり動いています。

手順

  1. マスターが取引しない時間(FXなら市場が閉まっている週末)に行います。作業の間はMT5が止まるので、コピーも止まります
  2. 「口座履歴」タブの表示期間を、すぐ上の方法で「本日」や「直近3日」のように短くしておきます。 長い期間のままだと、起動したときにその分の履歴を読み込み直してしまいます
  3. MT5のメニューの「ファイル」→「データフォルダを開く」を選びます。開いたフォルダは、そのままにしておきます
  4. MT5を「ファイル」→「終了」で閉じます。タスクマネージャーの「詳細」タブで、terminal64.exe が消えたことを確かめてください
  5. データフォルダの中の bases → ログインしているサーバーの名前のフォルダ → trades と開き、 口座番号の名前のフォルダを、デスクトップなど別の場所へ移動します(削除ではなく、移動にしておきます)
    エクスプローラーで bases → XMTrading-MT5 3 → trades を開いたところ。口座番号の名前のフォルダが4つ並んでいる(番号は隠している)
    bases → サーバーの名前(この例では XMTrading-MT5 3)→ trades の中。口座番号の名前のフォルダが並んでいます(口座番号は隠しています)
  6. MT5を起動します。必要な分の履歴をMT5がサーバーから読み直し、EAもそのまま動き始めます
  7. 「口座履歴」タブに、その日の取引が表示されていることを確かめます(表示期間は短いままにしておきます)
  8. 数日たって問題がなければ、移したフォルダは削除して構いません
データフォルダ
└ bases
   └ (ログインしているサーバーの名前)
      └ trades
         └ (口座番号) ← このフォルダを移す

MT5を何台も動かしている場合は、1台ずつ行ってください。データフォルダはMT5ごとに別です。

移すのは、trades の中の口座番号のフォルダだけです。 bases の中のほかのフォルダ(価格の履歴など)には触らないでください。

移したあとは、「口座履歴」タブの表示期間を短いまま(「本日」や「直近3日」など)にしておいてください。 長い期間に戻すと、MT5がその分の履歴をサーバーから読み込み直し、メモリがまた大きく増えます。

口座の取引の記録そのものが消えるわけではありません。記録は業者のサーバーに残っていて、MT5は必要な分をサーバーから取り直します (当方の試験では、前の日の損益を使う「1日の損失上限」の判定も正しく動きました)。

取引を続けると、メモリはまた少しずつ増えていきます。大きくなってきたら、同じ手順をくり返してください。

5ログファイルを定期的に削除する

MT4/MT5のログには「操作」(ターミナル自体の動作記録)と 「エキスパート」(EAが出力する記録)の2種類があり、 どちらも日ごとに別ファイルで溜まり続けます。

本EAはコピーのたびに記録を残すため、エキスパート側が特に増えます。

ターミナル下部の「操作ログ」タブ(MT4は「操作履歴」タブ)を右クリックし、 「開く」を選ぶと、操作のログのフォルダが開きます。

MT5のターミナル下部の「操作ログ」タブを右クリックし、「開く」を選んでいる
ログに出ているIPアドレスは隠しています
開いた操作のログのフォルダ。日付ごとのログファイルが並んでいる

同じように「エキスパート」タブを右クリックし、「開く」を選ぶと、EAのログのフォルダが開きます。

「エキスパート」タブを右クリックし、「開く」を選んでいる
開いたエキスパートのログのフォルダ。日付ごとのログファイルが並んでいる

どちらのフォルダも、古い日付のファイル(20260916.log など)を削除してください。 今日の日付のファイルは使用中のため、消せないことがあります。

6VPSを定期的に再起動する

Windowsは長く動かし続けると、メモリの空きが少しずつ減るなどして、動作が重くなることがあります。 定期的に(たとえば週に1回)VPSを再起動してください。

再起動しても、コピーの紐付け情報はファイルに保存しているので、起動したあとも決済などのコピーはそのまま続きます (よくある質問)。ただし、MT4/MT5が止まっている間にマスターが出した注文は、 コピーされないことがあります。マスターが取引しない時間(FXなら市場が閉まっている週末)に行ってください。

再起動のあとにMT4/MT5が立ち上がらないと、コピーは止まったままになります。 自動ログオンとMT4/MT5の自動起動を設定しておいてください(VPSの初期設定)。

それでも重い場合

設定を見直しても改善しないなら、VPSの性能が足りていない可能性があります。 選ぶときの確認点と実測ベンチマークはVPSの選び方にまとめています。

コピーされない、ロットが合わないなどの症状は、設定ではなく別の原因かもしれません。 よくある質問とトラブルシューティングをご覧ください。