# Установка и первый запуск [Документация](README.md) · [Настройки](configuration.md) · [Веб-интерфейс](user-guide.md) ## Подготовка компьютера Нужны Windows, Python, Git для клонирования проекта и два EXE из установки MetaTrader 5. Текущая реализация проверена на Python 3.14; пакеты перечислены в `requirements.txt`, зависимость от Python API `MetaTrader5` отсутствует. Один раз установите MT5 обычным способом либо подготовьте его `terminal64.exe` и `MetaEditor64.exe` для загрузки на сервер. Для работы менеджера все управляемые копии также запускаются в portable-режиме. Выберите каталог, в который текущий пользователь может записывать файлы. Приложение и терминалы должны работать от одного пользователя Windows, поскольку используют его общую папку `MetaQuotes/Terminal/Common/Files`. ## Размещение проекта Рекомендуемое расположение — `MQL5/Shared Projects/mt5-manager` внутри установки MT5. Например, при установке в `C:\MT5\MetaTrader5.1` корень проекта будет `C:\MT5\MetaTrader5.1\MQL5\Shared Projects\mt5-manager`. При таком размещении скомпилированный сервис попадает в папку `MQL5/Services/Shared Projects`. Исходную установку для получения EXE выбирайте явно в настройках независимо от размещения репозитория. Команды клонирования и создания Python-окружения приведены в [README](../README.md). Все команды запуска выполняются из корня проекта. Проект можно разместить отдельно, например в `C:\Apps\mt5-manager`. В настройках укажите папку исходной установки MT5 (`terminal_template`), например `C:\Programs\MetaTrader 5`. Она может находиться вне базовой папки управляемых экземпляров. Менеджер использует оба EXE именно из неё. ## Личная конфигурация В репозитории есть [config.example.json](../config.example.json) с пустым списком терминалов. Создайте из него `config.local.json`, как показано в README. Команды там подставляют путь к `Common/Files` текущего пользователя и создают каталог, если его ещё нет. Не запускайте пример с буквальным `USERNAME` в пути. `config.local.json` исключён из Git. Исходный `config.json` менять для первого запуска не требуется. При старте указывайте личный файл явно: ```powershell .\.venv\Scripts\python.exe run.py --config-file config.local.json --host 127.0.0.1 --port 8000 ``` Данные о базе, папках и существующих экземплярах описаны в [справочнике конфигурации](configuration.md). ## Файлы для создания терминала На странице «Настройки» укажите папку исходной установки, в которой находятся `terminal64.exe` и `MetaEditor64.exe`. Если одного из EXE нет, загрузите его через блок «Файлы исходной установки»: он будет сохранён прямо в указанную папку. Найденные EXE повторно загружать не требуется. Сервис собирается из исходного кода текущего проекта через выбранный MetaEditor. Для отдельного проекта EX5 создаётся рядом с исходником; в Shared Projects — в соответствующей подпапке `MQL5/Services`. Существующая сборка используется повторно, если она не старее исходника. При ошибке сборки проверьте MetaEditor и журнал компиляции. `servers.dat` можно выбрать отдельно при создании каждого экземпляра; загрузка необязательна, если нужные серверы уже доступны терминалу. Возьмите файл из папки `config` своего локального терминала, где уже есть нужный торговый сервер. Если его нет, предварительно найдите брокера в диалоге открытия счёта. Списки серверов разных экземпляров могут различаться; общего файла для всех нет. Менеджер копирует выбранный файл только в создаваемую папку и не обновляет другие терминалы. ## Первый экземпляр Проверьте `mt5_folder` и исходные файлы в настройках. На главной странице нажмите «Новый терминал». Можно оставить счёт пустым или указать уже существующие логин, сервер и пароль. Менеджер не открывает демо- или реальные счета самостоятельно. Создание завершится только после получения свежего состояния от сервиса, а при заданных реквизитах — после проверки первого подключения и повторного обычного запуска. Последовательность и возможные ошибки разобраны в [руководстве по интерфейсу](user-guide.md). ## Уже установленные экземпляры Укажите их базовую папку в `mt5_folder` и добавьте имена подпапок в `terminals` личной конфигурации. Отдельное расположение для экземпляра не задаётся. В каждом должен быть сервис по пути `MQL5/Services/Shared Projects/mt5-manager/ServiceStateWriter.ex5` и файл `config/services.ini` из `static/services.ini`. Значение `InpDatabase` должно совпадать с именем базы менеджера; формат файла — UTF-16. После изменения JSON вручную перезапустите менеджер. Способ развёртывания сервиса сразу по нескольким существующим терминалам и ограничения скрипта описаны в [руководстве по эксплуатации](maintenance.md).