bifurcado de antekov/mt5-manager
Separate configuration saving from connection testing, preserve terminal process state after tests, and support deleting stopped instances. Simplify account fields and optional servers.dat uploads. Show operation progress per terminal and dismiss results after five seconds with a circular countdown. Update documentation and tests for the revised behavior.
# Установка и первый запуск
| |
| |
[Документация](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).
|