本記事は、Windows環境で複数のMT5(MetaTrader 5)を同時運用している方向けに、① batファイルでの一括起動、② 自動起動(スタートアップ/タスク スケジューラ)の手順を、実務目線でまとめたガイドです。ゴールはシンプルで、PC/VPSを再起動しても、クリックなしで必要なMT5がすべて立ち上がる状態を作ること。
なお、同一/別ブローカーのMT5を複数インストールする方法自体は、こちらで解説しています(先に環境を整えておくとスムーズです)。
関連記事:MT5を複数起動する方法|同一ブローカーで口座別にEAを分離運用(Windows/VPS)の方が良い?
事前準備:MT5の置き場所(Cドライブ直下)を統一する


前提:本記事では C:\HFM Metatrader 5 や C:\MetaTrader 5 IC Markets (SC) のように、Cドライブ直下に各MT5フォルダを配置している想定で進めます(C:\MT5 のような専用親フォルダを作らなくてもOK)。
なぜ直下配置が楽なのか
- パスが短い(スペースや括弧の扱いで詰まりにくい)
- 書き込み権限が明確(UAC絡みの不具合を避けやすい)
- バックアップ/複製が簡単(フォルダ単位で移動・保守できる)
Program Files 配下でも起動自体は可能ですが、複数インスタンス運用では直下配置の方がトラブルが少ない傾向があります。UAC絡みの注意点は、必要に応じて以下も参照してください。
MT5×EAのUAC(ユーザーアカウント制御)権限エラー:原因と回避方法
- 既存インストールを移設する場合は、MT5フォルダを丸ごとコピーし、各フォルダ直下に
terminal64.exeがある状態にします。
【一括起動】batファイルで複数MT5を順番に立ち上げる
複数MT5を手で開くのは地味に面倒です。まずは一括起動用のbatファイルを作り、ダブルクリック1回で全MT5を起動できるようにします。
手順1:メモ帳でbatファイルを作る

デスクトップなどにテキストファイルを新規作成し、以下を貼り付けて保存します(パスはあなたのMT5フォルダ名に合わせて変更)。
@echo off
rem ===== MT5 一括起動スクリプト =====
setlocal
rem (任意)ネットワーク安定待ち(秒)
set WAIT_NET=10
timeout /t %WAIT_NET% /nobreak >nul
rem ---- 1つ目(作業ディレクトリを明示)----
start "" /D "C:\MetaTrader 5 IC Markets (SC)" "terminal64.exe" /portable
timeout /t 3 /nobreak >nul
rem ---- 2つ目 ----
start "" /D "C:\HFM Metatrader 5" "terminal64.exe" /portable
timeout /t 3 /nobreak >nul
rem ---- 3つ目以降は上記同様に----
endlocal
ファイル名例:mt5_start_all.bat
重要:拡張子を .txt から .bat に変更します。拡張子が表示されない場合は、Windowsの表示設定で「ファイル名拡張子」をオンにしてください。


手順2:batを実行してMT5を起動する
mt5_start_all.bat をダブルクリックすると、複数のMT5が順番に起動します。
ここがポイント
start "" /D "フォルダ" "terminal64.exe"で作業ディレクトリを正しく指定できます(複数運用での事故を減らせます)。timeout /t 3で起動間隔を空け、CPU/RAMの突発負荷を和らげます。MT5が多いなら5〜10秒に伸ばすと安定します。- 起動対象の追加・削除は、batを右クリック→編集でOK。
【自動起動・推奨】スタートアップ登録(いちばんシンプル)
手間とトラブルを最小化するなら、まずはこれが定番です。Windowsのログオン時にbatが自動実行され、MT5がまとめて起動します。
手順:スタートアップフォルダにbat(またはショートカット)を入れる


- エクスプローラーのアドレスバーに
shell:startupと入力して実行 - 開いた「スタートアップ」フォルダに
mt5_start_all.batをコピー(ショートカットでもOK)
注意:スタートアップはログオン後に動きます。VPSで無人運用する場合は、自動ログオン設定がないと「再起動後に止まったまま」になりがちです。
【自動起動・上級】タスク スケジューラで遅延・再試行まで管理する
「ログオン直後は重くてMT5がこける」「ネットワークが上がる前に実行される」などがある場合は、タスク スケジューラで遅延起動や再試行を組むと安定します。
基本設定(よく使う形)
- 「タスク スケジューラ」→「タスクの作成」
- 全般:名前(例:MT5 Auto Start)/「ユーザーがログオンしているときのみ実行」を選択(MT5はGUIアプリのため)
- トリガー:「ログオン時」+必要なら「遅延タスクの実行」(例:30秒)
- 操作:「プログラムの開始」
プログラム/スクリプト:C:\mt5_start_all.bat
開始(作業フォルダ):C:\(batの配置に合わせて) - 条件:「ネットワーク接続が使用可能になったらタスクを開始する」にチェック推奨
- 設定:「失敗した場合は次の間隔で再起動」→ 1分・3回 など
補足(重要):「システム起動時」トリガーはセッション0で動作しやすく、MT5の画面が出ない/操作できないケースがあるため基本は非推奨です。MT5は「ログオン時」起動が安定します。
停止用スクリプト(強制終了・注意)
これは緊急停止用です。強制終了は未保存データの喪失や、ログ/履歴の破損リスクがあるため、計画停止時のみ使ってください。
@echo off
taskkill /IM terminal64.exe /F
rem ※ 全インスタンスを終了します。対象を絞る場合は条件指定でフィルタしてください。