MetaTrader 5 на Windows VPS: установка, автозапуск и задержка до брокера
TL;DR
Windows VPS позволяет держать MetaTrader 5 включённым круглосуточно, запускать торговых роботов после перезагрузки сервера и выбирать локацию с минимальной задержкой до торгового сервера брокера. В этом руководстве вы настроите защищённый Windows Server, установите MT5, включите надёжный автозапуск терминала, проверите соединение с брокером и организуете резервные копии.
- Для одного терминала MT5 обычно достаточно 2 vCPU, 4 ГБ RAM и 50–80 ГБ NVMe-диска.
- Терминал должен работать под отдельной учётной записью Windows, а не под встроенным Administrator.
- Автозапуск лучше настраивать через Планировщик заданий Windows после входа торгового пользователя.
- Не закрывайте RDP-сеанс через «Выйти»: просто отключайтесь, чтобы советники продолжали работать.
- Задержку нужно измерять не только ICMP-пингом, но и по статусу подключения и журналу MT5.
- Бэкапируйте папки MQL5, Profiles, Templates и конфигурацию терминала во внешнее S3-совместимое хранилище.
Что мы настраиваем и зачем
MetaTrader 5 на Windows VPS — это постоянно работающий торговый терминал, доступный через удалённый рабочий стол. На нём можно запускать советников, торговые панели, скрипты, индикаторы, копировщики сделок и несколько экземпляров MT5 для разных брокеров или счетов.
Основная причина перенести MT5 с домашнего компьютера на VPS — непрерывность работы. Домашний ПК может перезагрузиться после обновления Windows, уйти в спящий режим, потерять интернет или питание. VPS обычно расположен в дата-центре с резервным питанием, стабильным каналом и сетевой инфраструктурой, рассчитанной на постоянную работу.
Вторая причина — сетевая задержка до торгового сервера брокера. Если торговый сервер брокера находится в Лондоне, Франкфурте, Нью-Йорке, Токио или Амстердаме, сервер в том же городе или регионе зачастую получает более короткий сетевой маршрут, чем домашний интернет. Это особенно важно для алгоритмов, чувствительных к скорости исполнения, но не отменяет спред, проскальзывание, очередь исполнения, ограничения брокера и ликвидность.
Что будет готово после настройки
- Windows Server с отдельным пользователем для торговли.
- Защищённый RDP-доступ с Network Level Authentication и ограничением входящих адресов.
- Установленный MetaTrader 5 из официального источника или от брокера.
- Торговый счёт, подключённый к правильному серверу брокера.
- Автозапуск MT5 после перезагрузки и входа торговой учётной записи.
- Проверка соединения, журналов и измерение задержки до брокера.
- Регулярный бэкап экспертных советников, профилей и настроек.
Управляемый облачный терминал и собственный VPS
Некоторые брокеры предлагают встроенный виртуальный хостинг для MT5. Такой вариант удобен, если нужно запустить один терминал без администрирования: платформа переносит окружение на виртуальный хостинг, а пользователь не работает с Windows напрямую. Ограничения обычно касаются установки сторонних программ, нестандартных библиотек, копировщиков, нескольких терминалов и контроля над резервным копированием.
Собственный Windows VPS даёт полный доступ администратора. На нём можно установить несколько терминалов, Python-скрипты, базы данных, мониторинг, VPN, средства резервного копирования, торговые панели и собственные утилиты. Цена этой гибкости — ответственность за безопасность Windows, обновления, лицензирование и сохранность данных.
| Критерий | Встроенный VPS у брокера | Собственный Windows VPS |
|---|---|---|
| Установка стороннего ПО | Обычно ограничена | Полный контроль |
| Несколько терминалов | Зависит от тарифа и правил | Можно запускать несколько экземпляров |
| Доступ к Windows | Как правило, нет | Есть через RDP |
| Резервное копирование | Ограниченное | Настраивается самостоятельно |
| Администрирование | Минимальное | Нужно выполнять самостоятельно |
| Гибкость для роботов и интеграций | Средняя | Высокая |
VPS снижает технические риски непрерывной работы, но не делает торговую стратегию прибыльной. Перед запуском на реальном счёте проверяйте робота на демо-счёте, ограничивайте риск и контролируйте объём открываемых позиций.
Какой VPS-конфиг нужен под эту задачу
Потребление ресурсов MT5 зависит не столько от самого терминала, сколько от количества графиков, активных символов, индикаторов, советников, истории котировок и внешних программ. Один пустой терминал обычно потребляет немного памяти и процессорного времени. Однако тяжёлый советник с расчётами на каждом тике, десятки графиков или несколько одновременных терминалов могут заметно нагружать CPU.
Минимальная и рекомендуемая конфигурация
| Сценарий | vCPU | RAM | Диск | Сеть |
|---|---|---|---|---|
| Один MT5, 1–3 советника, несколько графиков | 2 | 4 ГБ | 50 ГБ NVMe | 100 Мбит/с и выше |
| 2–4 терминала, несколько стратегий | 4 | 8 ГБ | 80–120 ГБ NVMe | 100 Мбит/с и выше |
| Много графиков, копировщик, Python, мониторинг | 4–6 | 16 ГБ | 160 ГБ NVMe | 1 Гбит/с желательно |
| Оптимизация стратегий в Strategy Tester | 8 и более | 16–32 ГБ | 200 ГБ NVMe | Скорость вторична |
Практичный стартовый вариант для одного или двух торговых терминалов — 2–4 vCPU, 4–8 ГБ RAM и 80 ГБ NVMe. Можно взять VPS с указанными характеристиками, а затем увеличить ресурсы, если диспетчер задач показывает устойчивую загрузку процессора выше 70%, нехватку памяти или активное использование файла подкачки.
Для работы MT5 важнее стабильность CPU и NVMe-диска, чем большой объём канала. Торговые котировки и торговые запросы потребляют очень мало трафика. Канал становится важнее при скачивании большой истории, обновлениях, использовании удалённого рабочего стола и передаче резервных копий.
Когда нужен dedicated, а не VPS
Выделенный сервер оправдан, если вы запускаете большое число терминалов, строите внутреннюю инфраструктуру для нескольких пользователей, одновременно проводите тяжёлые оптимизации или нуждаетесь в гарантированном доступе ко всем физическим ядрам. Для одного MT5 dedicated обычно избыточен: расходы не дают пропорционального преимущества в торговом исполнении.
Выделенный сервер также может понадобиться, если правила компании требуют изоляции на физическом уровне, нужен большой локальный объём NVMe или постоянно работают вычислительно тяжёлые внешние сервисы. Для обычной торговли, одного робота или портфеля из нескольких роботов достаточно качественного Windows VPS.
Как выбрать локацию
Выбирайте не страну проживания, а регион, где расположен торговый шлюз конкретного брокера. Брокер может быть зарегистрирован в одной стране, а его серверы MT5 работать в другом дата-центре. Распространённые финансовые локации — Лондон, Франкфурт, Амстердам, Нью-Йорк, Чикаго, Сингапур, Токио и Гонконг.
Сначала выясните точное имя сервера в окне входа MT5 или в документации брокера. Затем создайте тестовый VPS в одном-двух близких регионах, проверьте маршрут, доступность порта и показания терминала в часы активной торговли. Не выбирайте локацию только по географической карте: интернет-маршруты между двумя близкими городами иногда хуже, чем маршрут до более удалённого узла.
Подготовка сервера
Для MT5 удобнее всего использовать Windows Server 2025 Standard или Windows Server 2022 Standard с графическим интерфейсом. Версия Windows 11 Pro также технически подходит, но серверная редакция лучше рассчитана на удалённую работу и постоянную доступность. После получения данных RDP сразу смените временный пароль администратора.
В Windows нет необходимости поднимать SSH для работы с MT5. Управление выполняется через Remote Desktop Protocol. OpenSSH можно установить дополнительно для администрирования скриптами, но открытый SSH-порт не нужен, если вы не используете его осознанно.
Создайте отдельную учётную запись для торговли
Не запускайте терминал под встроенным пользователем Administrator. Отдельный пользователь изолирует профиль MT5, снижает вероятность случайного изменения системных параметров и упрощает резервное копирование. Откройте PowerShell от имени администратора и выполните команды.
# Создаёт локального пользователя для запуска MetaTrader 5.
$Password = Read-Host "Введите сложный пароль для mt5trade" -AsSecureString
New-LocalUser -Name "mt5trade" -Password $Password -FullName "MT5 Trading" -Description "Изолированная учётная запись для MetaTrader 5"
# Добавляет пользователя в группу удалённого рабочего стола без выдачи прав администратора.
Add-LocalGroupMember -Group "Remote Desktop Users" -Member "mt5trade"
Для обычного запуска MT5 права локального администратора не нужны. Если советник устанавливает DLL, драйверы, торговый шлюз или стороннюю программу, временно используйте административную учётную запись для установки, а сам терминал оставляйте под обычным пользователем.
Обновите Windows и базовые компоненты
Установите все накопительные обновления Windows до запуска торговли. Планируйте обновления так, чтобы сервер не перезагрузился во время важных рыночных сессий. В Windows Server обновления можно контролировать вручную через Windows Update или централизованно через политики.
# Показывает информацию о версии Windows и последних установленных обновлениях.
Get-ComputerInfo | Select-Object WindowsProductName, WindowsVersion, OsBuildNumber
Get-HotFix | Sort-Object InstalledOn -Descending | Select-Object -First 10
Защитите RDP
RDP является основной целью автоматических сканеров и перебора паролей. Минимальный набор защиты: уникальный длинный пароль, Network Level Authentication, ограничение входящих IP-адресов и блокировка попыток перебора. Если у вас динамический домашний IP, безопаснее подключаться через VPN с фиксированным адресом или периодически обновлять правило брандмауэра.
# Включает требование Network Level Authentication для RDP-подключений.
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name UserAuthentication -Value 1
# Включает встроенный брандмауэр Windows для всех профилей сети.
Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled True
# Разрешает RDP только с вашего внешнего IP-адреса; замените пример на свой IP или подсеть.
New-NetFirewallRule -DisplayName "RDP only from trusted IP" -Direction Inbound -Protocol TCP -LocalPort 3389 -RemoteAddress "203.0.113.25" -Action Allow
Перед отключением стандартного правила RDP обязательно проверьте, что новое правило работает во втором RDP-сеансе. Иначе можно потерять доступ к серверу. Если провайдер предлагает консоль в панели управления, сохраните доступ к ней как аварийный вариант.
# Отключает широкое стандартное правило RDP только после проверки собственного ограниченного правила.
Disable-NetFirewallRule -DisplayGroup "Remote Desktop"
Вместо Linux-инструмента fail2ban в Windows можно использовать правила блокировки через Defender Firewall, аудит входов и средства защиты конечной точки. Для небольшого личного VPS наиболее эффективны ограничение RDP по IP, NLA и сильный пароль. Не меняйте порт RDP как единственную меру защиты: это уменьшает шум сканеров, но не заменяет контроль доступа.
Отключите сон и проверьте синхронизацию времени
Сервер не должен переходить в спящий режим. В серверных редакциях Windows сон обычно отключён, но проверьте схему электропитания. Точное системное время важно для логов, расписаний советников и диагностики сделок.
# Отключает гибернацию и выводит состояние службы синхронизации времени.
powercfg /hibernate off
Get-Service W32Time
w32tm /query /status
Установка ПО — пошагово
На начало 2026 года MetaTrader 5 регулярно обновляется MetaQuotes, поэтому правильнее устанавливать актуальный официальный установщик, а не фиксировать старый номер сборки в инструкции. После установки номер сборки можно посмотреть в меню Справка → О программе. Для критичных роботов не обновляйте терминал вслепую в середине торгового периода: сначала проверяйте обновление на тестовом экземпляре.
Шаг 1. Войдите под торговым пользователем
Отключитесь от административного сеанса и войдите по RDP как mt5trade. Установка в профиль торгового пользователя гарантирует, что папка данных, ключи доступа и настройки будут находиться именно в его профиле.
# Показывает текущую учётную запись: перед установкой должна отображаться mt5trade.
whoami
Шаг 2. Установите winget или проверьте его наличие
В актуальных образах Windows Server 2025 менеджер пакетов winget может уже присутствовать. Если команда не найдена, используйте официальный установщик MT5 с сайта брокера или официальный установщик MetaTrader 5 через браузер. Не скачивайте терминал с файловых каталогов, Telegram-каналов и неизвестных зеркал.
# Проверяет наличие Windows Package Manager и его версию.
winget --version
Шаг 3. Найдите официальный пакет MetaTrader 5
Каталоги winget могут меняться, поэтому сначала найдите доступный пакет по названию. Если в выдаче есть официальный издатель MetaQuotes, используйте точный идентификатор из вашего каталога.
# Ищет пакеты MetaTrader в официальном источнике winget.
winget search MetaTrader
Шаг 4. Установите терминал
Ниже указан типичный идентификатор пакета. Если поиск вернул другой точный ID, подставьте его. Альтернативный и часто предпочтительный вариант — терминал в брендинге брокера: он обычно заранее содержит корректный список серверов этого брокера.
# Устанавливает MetaTrader 5 в тихом режиме через winget.
winget install --id MetaQuotes.MetaTrader5 --exact --accept-package-agreements --accept-source-agreements
Если установка через winget недоступна, загрузите файл установки с официального сайта брокера, сохраните его, например, в C:\Users\mt5trade\Downloads, и запустите вручную. Перед запуском проверьте цифровую подпись файла через свойства Windows или PowerShell.
# Проверяет цифровую подпись скачанного установщика MT5.
Get-AuthenticodeSignature "$env:USERPROFILE\Downloads\mt5setup.exe" | Format-List Status,SignerCertificate
Шаг 5. Запустите терминал первый раз
После установки найдите terminal64.exe. Путь зависит от способа установки и выбранной папки. Не запускайте несколько копий терминала из одной папки данных, если собираетесь использовать разные счета: лучше делать отдельные экземпляры.
# Ищет исполняемый файл терминала в типичных каталогах Program Files.
Get-ChildItem "C:\Program Files","C:\Program Files (x86)" -Filter "terminal64.exe" -Recurse -ErrorAction SilentlyContinue |
Select-Object -ExpandProperty FullName
# Запускает найденный терминал; замените путь на фактический путь вашей установки.
Start-Process "C:\Program Files\MetaTrader 5\terminal64.exe"
Шаг 6. Выполните вход в торговый счёт
В терминале откройте Файл → Войти в торговый счёт. Укажите номер счёта, пароль и именно тот сервер, который выдал брокер. Названия вроде Broker-Real, Broker-Real 2 и Broker-Demo могут быть разными серверами с разной инфраструктурой.
После входа убедитесь, что в правом нижнем углу терминала отображается соединение и задержка в миллисекундах. Откройте Вид → Журнал и убедитесь, что нет повторяющихся сообщений об авторизации, обрывах связи или неверном сервере.
Шаг 7. Установите советника или индикатор
Откройте Файл → Открыть каталог данных. Это самый надёжный способ попасть в рабочую папку конкретного экземпляра MT5. Скопируйте экспертного советника в каталог MQL5\Experts, индикатор — в MQL5\Indicators, библиотеки — в MQL5\Libraries.
# Открывает папку данных MetaTrader; запускайте команду после определения нужного каталога.
explorer.exe "$env:APPDATA\MetaQuotes\Terminal"
После копирования файлов в терминале щёлкните правой кнопкой в окне Navigator и выберите обновление, либо перезапустите MT5. Если советник поставляется как исходник .mq5, скомпилируйте его в MetaEditor и проверьте вкладку ошибок до прикрепления к графику.
Шаг 8. Включите алгоритмическую торговлю осознанно
Глобальная кнопка Algo Trading должна быть включена, но это не единственное условие. В свойствах конкретного советника также должна быть разрешена алгоритмическая торговля. Если EA использует DLL или WebRequest, добавляйте разрешения только после проверки происхождения кода и адресов, к которым он обращается.
# Проверяет, что процесс MetaTrader 5 уже работает.
Get-Process terminal64 -ErrorAction SilentlyContinue | Select-Object Id,ProcessName,StartTime,CPU
Конфигурация
Главная цель конфигурации — обеспечить предсказуемый запуск MT5 после перезагрузки Windows и не потерять торговый процесс из-за неправильного завершения RDP-сеанса. Терминал хранит часть настроек в каталоге данных и в профиле пользователя, поэтому всегда запускайте его под одним и тем же пользователем.
Разделите экземпляры MT5
Если на VPS будет несколько счетов, создайте отдельную папку установки и отдельную папку данных для каждого терминала. Не подключайте два разных реальных счёта к одному экземпляру: при переключении счёта можно случайно запустить советника не на том аккаунте.
Для отдельных экземпляров удобно использовать параметр /portable. В таком режиме данные хранятся рядом с исполняемым файлом. Перед применением протестируйте его на демо-терминале: перенос уже настроенного экземпляра требует аккуратного копирования данных.
# Создаёт отдельную папку для второго экземпляра MT5.
New-Item -ItemType Directory -Path "C:\MT5\BrokerA" -Force
# Пример запуска из изолированной папки данных в portable-режиме.
Start-Process "C:\MT5\BrokerA\terminal64.exe" -ArgumentList "/portable"
Настройте автозапуск через Планировщик заданий
Самый безопасный и понятный вариант — запускать MT5 при входе пользователя mt5trade. После перезагрузки сервера потребуется один интерактивный вход под этой учётной записью. В обычной эксплуатации не нужно завершать этот сеанс: просто закройте окно RDP-клиента, выбрав отключение, а не выход из системы.
Создайте файл запуска. Он проверяет наличие процесса и открывает терминал только если тот ещё не работает. Это не заменяет мониторинг: если терминал завис, процесс может остаться в памяти. Но скрипт защищает от создания множества копий при повторном входе.
# Создаёт папку для административных скриптов MT5.
New-Item -ItemType Directory -Path "C:\MT5\Scripts" -Force
# Сохраняет скрипт запуска MT5 с проверкой уже работающего процесса.
@'
$Terminal = "C:\Program Files\MetaTrader 5\terminal64.exe"
if (-not (Get-Process terminal64 -ErrorAction SilentlyContinue)) {
Start-Process -FilePath $Terminal
}
'@ | Set-Content -Path "C:\MT5\Scripts\Start-MT5.ps1" -Encoding UTF8
# Создаёт задание: запуск скрипта при входе торгового пользователя.
$Action = New-ScheduledTaskAction -Execute "powershell.exe" -Argument "-NoProfile -ExecutionPolicy Bypass -File C:\MT5\Scripts\Start-MT5.ps1"
$Trigger = New-ScheduledTaskTrigger -AtLogOn -User "mt5trade"
$Principal = New-ScheduledTaskPrincipal -UserId "mt5trade" -LogonType Interactive -RunLevel Limited
Register-ScheduledTask -TaskName "Start MetaTrader 5" -Action $Action -Trigger $Trigger -Principal $Principal -Description "Автозапуск MT5 после входа mt5trade" -Force
# Проверяет состояние созданного задания и запускает его вручную для теста.
Get-ScheduledTask -TaskName "Start MetaTrader 5"
Start-ScheduledTask -TaskName "Start MetaTrader 5"
В некоторых сценариях нужен автологин Windows после перезагрузки. Это повышает риск: пароль хранится в системе, а любой, получивший административный доступ, сможет использовать торговый профиль. Предпочтительнее применять автологин только на выделенном, защищённом сервере с ограниченным RDP-доступом и отдельным торговым счётом с ограниченными правами. Если автологин не нужен, после плановой перезагрузки войдите по RDP вручную и убедитесь, что задача стартовала.
Контроль состояния после отключения RDP
Закрытие окна RDP-клиента обычно оставляет сессию пользователя активной, поэтому MT5 продолжает работать. Команда «Выйти» завершает пользовательскую сессию, закрывает терминал и останавливает советников. Не путайте отключение и выход.
# Показывает активные и отключённые пользовательские сеансы на сервере.
query user
В идеале после отключения RDP вы должны видеть статус Disc у пользователя mt5trade, а процесс terminal64.exe должен оставаться в диспетчере задач. При следующем подключении не открывайте второй терминал вручную, если первый уже работает.
Секреты и внешние интеграции
Логин и пароль торгового счёта не храните в MQL5-коде, PowerShell-скриптах или общих папках. Терминал сохраняет данные входа в своём защищённом профиле. Для внешних сервисов, например Telegram-уведомлений, API аналитики или S3-бэкапов, используйте переменные окружения или отдельный файл .env с ограниченными правами NTFS.
# Создаёт закрытую папку для секретов.
New-Item -ItemType Directory -Path "C:\MT5\Secrets" -Force
icacls "C:\MT5\Secrets" /inheritance:r
icacls "C:\MT5\Secrets" /grant "mt5trade:(OI)(CI)F" "Administrators:(OI)(CI)F"
# C:\MT5\Secrets\backup.env
RESTIC_REPOSITORY=s3:https://s3.example.net/mt5-backups
RESTIC_PASSWORD=замените-на-длинный-отдельный-пароль
AWS_ACCESS_KEY_ID=идентификатор-ключа
AWS_SECRET_ACCESS_KEY=секретный-ключ
Не передавайте файл .env через мессенджеры и не включайте его в архив с советником. При утечке ключей отзовите их в панели хранилища, создайте новые и проверьте историю доступа.
TLS/HTTPS и доступ к терминалу
Для самого подключения MT5 к брокеру не требуется Caddy, certbot или собственный HTTPS-сервер: терминал использует протокол и шифрование, определённые торговой инфраструктурой брокера. Не открывайте веб-порты 80 и 443 «для MT5» — это не улучшит задержку и только увеличит поверхность атаки.
Если на этом же VPS вы разворачиваете отдельную веб-панель мониторинга, API или страницу статуса, настраивайте TLS отдельно через Caddy или certbot. Сам MetaTrader 5 не должен быть доступен из интернета через HTTP. RDP также не следует публиковать через самодельный reverse proxy; используйте ограничение IP или VPN.
Проверка связи и измерение задержки до брокера
Сначала ориентируйтесь на значение в правом нижнем углу MT5. Это более полезный показатель, чем обычный ping, потому что он отражает состояние соединения терминала с торговым сервером. Откройте вкладку журнала и проверьте, что после подключения есть сообщения об успешной авторизации и синхронизации.
# Проверяет DNS-разрешение имени торгового сервера; замените имя на сервер брокера.
Resolve-DnsName "mt5.example-broker.com"
# Проверяет доступность конкретного TCP-порта, если брокер сообщил его в документации.
Test-NetConnection -ComputerName "mt5.example-broker.com" -Port 443
# Выполняет ICMP-проверку и показывает среднюю задержку, если сервер отвечает на ping.
Test-Connection -ComputerName "mt5.example-broker.com" -Count 20 |
Measure-Object -Property ResponseTime -Average -Minimum -Maximum
Порт 443 в примере не является универсальным портом MT5. Уточните его у брокера или используйте только для проверки опубликованного адреса. Многие торговые серверы не отвечают на ICMP-пакеты, и это не означает проблему: если MT5 подключён и показывает стабильную задержку, отсутствие ответа на ping не критично.
Измеряйте показатели минимум несколько раз: в спокойный период, на открытии Лондона, на открытии Нью-Йорка и во время новостей, если стратегия торгует тогда. Запишите среднюю и максимальную задержку, число переподключений в журнале и фактическое время исполнения сделок. Низкие 2 мс до шлюза не гарантируют такое же время до механизма исполнения заявок.
Бэкапы и обслуживание
Снимок VPS полезен, но не должен быть единственным резервным копированием. Снапшот может храниться в той же инфраструктуре, что и сервер, быть неудобным для восстановления одного файла и не защищать от удаления данных вместе с виртуальной машиной. Нужна отдельная копия в S3-совместимом хранилище или на другом сервере.
Что нужно бэкапить
- Каталог
MQL5: советники, индикаторы, библиотеки, include-файлы, пресеты и исходный код. - Каталоги
ProfilesиTemplates: графики, рабочие пространства и шаблоны. - Настройки терминала и список серверов из каталога данных MetaTrader.
- Скрипты автозапуска из
C:\MT5\Scripts. - Файлы конфигурации мониторинга и бэкапа, кроме секретов либо вместе с ними в отдельном защищённом контуре.
- Экспорт отчётов и журналов, если они нужны для аудита стратегии.
Не рассчитывайте на перенос сохранённого пароля MT5 на другой сервер. Учётные данные могут быть защищены механизмами профиля Windows и не восстановятся на новой машине. После аварийного восстановления подготовьте пароль инвестора или торговый пароль из безопасного менеджера паролей и войдите вручную.
Установка restic
Restic — инструмент резервного копирования с шифрованием на стороне клиента. Он подходит для выгрузки данных на S3-совместимое хранилище. Используйте актуальный стабильный релиз restic, доступный в winget, либо официальный бинарный файл проекта. Проверяйте контрольные суммы и подписи релизов перед установкой.
# Ищет пакет restic в каталоге winget.
winget search restic
# Устанавливает restic; при необходимости замените ID на найденный в вашей выдаче.
winget install --id restic.restic --exact --accept-package-agreements --accept-source-agreements
Создайте скрипт резервного копирования
Сначала через MT5 определите реальный каталог данных командой «Открыть каталог данных». Часто он расположен в %APPDATA%\MetaQuotes\Terminal\ и содержит подпапки с хеш-именами. В скрипте ниже резервируются все экземпляры из этой папки, а также собственные скрипты.
# Создаёт сценарий ежедневного зашифрованного бэкапа MT5 в удалённый репозиторий restic.
@'
$EnvFile = "C:\MT5\Secrets\backup.env"
Get-Content $EnvFile | ForEach-Object {
if ($_ -match "^\s([^#][^=]+)=(.)$") {
[Environment]::SetEnvironmentVariable($matches[1].Trim(), $matches[2].Trim(), "Process")
}
}
$Restic = "C:\Program Files\restic\restic.exe"
if (-not (Test-Path $Restic)) {
$Restic = "restic.exe"
}
& $Restic backup
"$env:APPDATA\MetaQuotes\Terminal"
"C:\MT5\Scripts"
--tag mt5
--tag daily
& $Restic forget --keep-daily 14 --keep-weekly 8 --keep-monthly 12 --prune
'@ | Set-Content -Path "C:\MT5\Scripts\Backup-MT5.ps1" -Encoding UTF8
Перед первым бэкапом инициализируйте пустой репозиторий. Выполняйте команду под пользователем, который имеет доступ к файлу секретов. Restic запросит пароль, если он не задан в переменной окружения.
# Загружает переменные окружения и создаёт новый зашифрованный репозиторий restic.
Get-Content "C:\MT5\Secrets\backup.env" | ForEach-Object {
if ($_ -match "^\s([^#][^=]+)=(.)$") {
[Environment]::SetEnvironmentVariable($matches[1].Trim(), $matches[2].Trim(), "Process")
}
}
restic init
# Запускает первый бэкап вручную и выводит список созданных снимков.
powershell.exe -NoProfile -ExecutionPolicy Bypass -File "C:\MT5\Scripts\Backup-MT5.ps1"
restic snapshots
Запланируйте ежедневный бэкап
Не запускайте резервное копирование в момент, когда советник активно пишет большие логи или проходит важная торговая сессия. Для большинства стратегий подойдёт окно после закрытия основного рынка, например 02:30 по времени сервера. Проверьте часовой пояс Windows перед созданием задания.
# Создаёт ежедневную задачу бэкапа в 02:30 от имени торгового пользователя.
$Action = New-ScheduledTaskAction -Execute "powershell.exe" -Argument "-NoProfile -ExecutionPolicy Bypass -File C:\MT5\Scripts\Backup-MT5.ps1"
$Trigger = New-ScheduledTaskTrigger -Daily -At 2:30AM
$Principal = New-ScheduledTaskPrincipal -UserId "mt5trade" -LogonType Interactive -RunLevel Limited
Register-ScheduledTask -TaskName "Backup MetaTrader 5" -Action $Action -Trigger $Trigger -Principal $Principal -Description "Ежедневный бэкап данных MT5" -Force
Если задание выполняется только при активной сессии, это нормально для простой схемы. Для полностью автоматического бэкапа после перезагрузки потребуется настроить задачу с сохранёнными учётными данными или служебную учётную запись, тщательно защищая пароль. После настройки обязательно проверьте не только создание резервной копии, но и восстановление одного файла в отдельную папку.
# Проверяет целостность репозитория и восстанавливает снимок в тестовую папку.
restic check
New-Item -ItemType Directory -Path "C:\Restore-Test" -Force
restic restore latest --target "C:\Restore-Test"
Обновления и окно обслуживания
Для торгового VPS не применяйте обновления по принципу непрерывного rolling update. MT5 — клиентское приложение, которому требуется контролируемая перезагрузка при обновлении Windows или терминала. Планируйте maintenance window: сохраните текущий журнал, сделайте бэкап, убедитесь в отсутствии критичных позиций или в корректной логике робота, обновите систему и проверьте автоматический старт.
После обновления Windows проверьте четыре вещи: активен ли пользовательский сеанс, запущен ли terminal64.exe, подключён ли терминал к правильному серверу и включена ли алгоритмическая торговля. После обновления MT5 отдельно проверьте вкладки Experts и Journal, потому что изменения платформы иногда влияют на старые библиотеки, DLL или поведение советника.
Troubleshooting + FAQ
MT5 показывает «Нет связи» или постоянно переподключается. Что проверить?
Сначала проверьте правильность выбранного сервера в окне входа: у брокера может быть несколько похожих серверов для демо, реальных и разных регионов. Затем откройте вкладку Journal и найдите точный текст ошибки. Проверьте DNS через Resolve-DnsName, доступность опубликованного брокером порта через Test-NetConnection и правила Defender Firewall. Если соединение пропадает только периодически, сравните время обрывов с нагрузкой VPS, обновлениями Windows и сообщениями брокера о технических работах.
Советник не торгует, хотя терминал подключён. В чём причина?
Проверьте глобальную кнопку Algo Trading, разрешение алгоритмической торговли в настройках конкретного EA, вкладки Experts и Journal. Частые причины: отключён автотрейдинг, неверный символ, рынок закрыт, недостаточно средств, запрещён объём, торговля запрещена в настройках счёта, не разрешены DLL или WebRequest. Также убедитесь, что советник прикреплён именно к нужному графику нужного реального счёта. Не ориентируйтесь только на улыбающийся значок: журнал сообщает причину точнее.
После перезагрузки Windows MetaTrader 5 не стартует автоматически. Как исправить?
Проверьте задачу командой Get-ScheduledTask -TaskName "Start MetaTrader 5" и откройте в Планировщике историю её запуска. Частая причина — задача настроена «при входе», но после перезагрузки никто не вошёл под пользователем mt5trade. Войдите вручную и проверьте запуск. Убедитесь, что путь к terminal64.exe в скрипте верный. Не используйте автозапуск через папку Startup как единственный механизм: Планировщик удобнее диагностировать и контролировать.
Почему робот остановился после того, как я закрыл RDP?
Скорее всего, был выполнен выход из учётной записи Windows, а не обычное отключение от удалённого рабочего стола. При выходе Windows завершает пользовательские процессы, включая MT5. В RDP-клиенте просто закройте окно или нажмите отключение, затем проверьте через query user, что сессия имеет статус Disc. При следующем подключении убедитесь по времени запуска процесса и журналу, что терминал не был перезапущен или остановлен.
Задержка до брокера высокая, хотя VPS находится в том же городе. Что делать?
Географическая близость не гарантирует оптимальный маршрут. Проверьте, к какому именно серверу подключён MT5, а не только сайт брокера. Сравните показания задержки в терминале в разные часы, выполните трассировку маршрута и протестируйте другой регион VPS. Причиной могут быть промежуточные сети, DDoS-защита брокера, перегруженный шлюз или неверный сервер счёта. Не делайте вывод по одному ICMP-пингу: многие торговые узлы блокируют ICMP, а торговое соединение при этом работает нормально.
Какой VPS-конфиг минимально подойдёт?
Для одного MetaTrader 5 с несколькими графиками и одним-двумя нетяжёлыми советниками минимально разумная конфигурация — 2 vCPU, 4 ГБ RAM и 50 ГБ NVMe-диска. Если вы используете несколько терминалов, копировщик сделок, Python-интеграцию или много индикаторов, выбирайте 4 vCPU и 8 ГБ RAM. Следите за Диспетчером задач: постоянная загрузка CPU выше 70%, нехватка памяти и активный swap означают, что ресурсы нужно увеличить.
Что выбрать — VPS или dedicated для этой задачи?
Для одного или нескольких торговых терминалов почти всегда достаточно VPS. Он дешевле, быстрее разворачивается и обычно даёт нужную стабильность. Dedicated имеет смысл при десятках экземпляров MT5, тяжёлых оптимизациях, собственных сервисах обработки данных или требованиях к физической изоляции. Низкая задержка зависит прежде всего от расположения и маршрута до торгового шлюза, а не от того, является ли сервер физическим или виртуальным. Сначала измерьте реальную задержку на VPS.
Можно ли запускать несколько терминалов MT5 на одном Windows VPS?
Да, но у каждого экземпляра должны быть отдельные папки установки и данных, особенно если используются разные реальные счета. Для изоляции применяют отдельные каталоги и параметр /portable либо отдельные профили Windows. Не запускайте несколько терминалов с одним и тем же каталогом данных: настройки, логи, профили и подключение к счёту могут конфликтовать. Увеличивайте RAM и CPU пропорционально числу активных роботов, а не просто числу открытых окон.
Нужно ли открывать порты для MetaTrader 5 в Windows Firewall?
Обычно нет. MT5 устанавливает исходящее соединение к серверу брокера, а Windows Firewall по умолчанию разрешает исходящий трафик. Не создавайте широкое входящее правило для MT5: терминал не должен принимать подключения из интернета. Входящий доступ нужен только для администрирования через RDP, и его следует ограничить доверенными IP-адресами или VPN. Если корпоративная политика блокирует исходящий трафик, разрешайте только конкретный процесс и адреса, опубликованные брокером.
Выводы и следующие шаги
Теперь у вас есть Windows VPS с защищённым RDP-доступом, отдельным торговым пользователем, установленным MetaTrader 5, проверяемым автозапуском и резервным копированием. Самое важное после настройки — регулярно проверять журнал MT5, состояние соединения и факт запуска советников после обновлений или перезагрузок.
- Протестируйте сервер на демо-счёте минимум несколько торговых сессий и проверьте работу после перезагрузки Windows.
- Сравните задержку и стабильность соединения в двух ближайших к брокеру локациях, если стратегия чувствительна к исполнению.
- Добавьте внешний мониторинг процесса MT5, свободного места на диске и уведомления о сбоях, прежде чем увеличивать число терминалов или торговые объёмы.