No description
  • Python 49.6%
  • MQL5 26.4%
  • JavaScript 13.4%
  • HTML 7.2%
  • CSS 3.4%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-10-31 15:40:40 +03:00
.forgejo/workflows Trigger the Windows runner check on workflow changes 2026-10-30 15:14:08 +03:00
docs Update part five article for current deployment behavior 2026-10-31 15:40:40 +03:00
static Add expertmode=1 to services.ini 2026-10-31 14:31:34 +03:00
templates Ensure service autostart during deployment 2026-10-31 14:22:28 +03:00
tests Ensure service autostart during deployment 2026-10-31 14:22:28 +03:00
tools Добавить создание терминалов, обновление сервиса и документацию 2026-10-29 14:39:39 +03:00
.gitignore Support running the manager outside a MetaTrader installation 2026-10-31 06:48:02 +03:00
config.example.json Support running the manager outside a MetaTrader installation 2026-10-31 06:48:02 +03:00
config.json Draft version 2026-07-25 20:52:51 +03:00
config.py Resolve all terminal paths relative to the base directory 2026-10-31 07:26:44 +03:00
deploy_service.py Ensure service autostart during deployment 2026-10-31 14:22:28 +03:00
extracticon.py Add account info, BEP, start/stop icons 2025-10-24 02:13:35 +03:00
LICENSE Initial commit 2025-10-04 08:21:12 +00:00
main.py Support running the manager outside a MetaTrader installation 2026-10-31 06:48:02 +03:00
mt5_control.py Avoid creating empty databases when reading terminal state 2026-10-31 08:21:17 +03:00
project_updates.py Ensure service autostart during deployment 2026-10-31 14:22:28 +03:00
README.md Resolve all terminal paths relative to the base directory 2026-10-31 07:26:44 +03:00
requirements.txt Добавить создание терминалов, обновление сервиса и документацию 2026-10-29 14:39:39 +03:00
run.py Добавить создание терминалов, обновление сервиса и документацию 2026-10-29 14:39:39 +03:00
ServiceStateWriter.mq5 Avoid creating empty databases when reading terminal state 2026-10-31 08:21:17 +03:00
terminal_manager.py Ensure service autostart during deployment 2026-10-31 14:22:28 +03:00

MT5 Manager

Веб-приложение для управления несколькими экземплярами MetaTrader 5 на Windows. Позволяет создавать терминалы, запускать и останавливать их, задавать торговые счета и просматривать состояние и финансовые показатели. Данные поступают от MQL5-сервиса через общую SQLite; Python-библиотека MetaTrader5 для работы менеджера не требуется.

Быстрый старт

Понадобятся Windows, Python (текущая версия проверена на 3.14) и хотя бы одна установка MetaTrader 5, уже запущенная в режиме /portable. Менеджер и терминалы должны работать от одного пользователя Windows.

  1. Клонируйте проект в удобную папку. Размещение внутри установки MT5 необязательно. Если выбрать MQL5/Shared Projects/mt5-manager, менеджер сможет автоматически использовать файлы этой установки без дополнительной настройки. В примере терминал установлен в C:\MT5\MetaTrader5.1:

    New-Item -ItemType Directory -Force 'C:\MT5\MetaTrader5.1\MQL5\Shared Projects' | Out-Null
    Set-Location 'C:\MT5\MetaTrader5.1\MQL5\Shared Projects'
    git clone https://forge.mql5.io/antekov/mt5-manager.git
    Set-Location mt5-manager
    
  2. Установите зависимости в отдельное окружение:

    py -3.14 -m venv .venv
    .\.venv\Scripts\python.exe -m pip install -r requirements.txt
    
  3. Подготовьте личную конфигурацию из примера. Команды подставят путь к общей папке текущего пользователя вместо USERNAME:

    $managerConfig = Get-Content config.example.json -Raw | ConvertFrom-Json
    $managerConfig.database = Join-Path $env:APPDATA 'MetaQuotes\Terminal\Common\Files\mt5-manager.sqlite'
    New-Item -ItemType Directory -Force (Split-Path -Parent $managerConfig.database) | Out-Null
    $managerConfig | ConvertTo-Json -Depth 10 | Set-Content config.local.json -Encoding utf8
    

    В примере нет счетов и существующих экземпляров. При необходимости измените mt5_folder: это базовая папка всех терминалов. Каждый экземпляр расположен в её подпапке с именем из terminals. Изменение базы меняет пути всех экземпляров; сами папки при этом не перемещаются.

  4. Запустите приложение из корня проекта и откройте главную страницу:

    .\.venv\Scripts\python.exe run.py --config-file config.local.json --host 127.0.0.1 --port 8000
    
  5. Откройте «Настройки» и проверьте наличие исходных файлов. Если они не загружены, менеджер использует terminal64.exe, MetaEditor64.exe и config/servers.dat из установки, указанной в поле «Папка установки MT5 для получения файлов». Для проекта внутри MQL5/Shared Projects это поле можно оставить пустым. При отдельном размещении укажите установку или загрузите файлы через интерфейс. Для автоматической сборки достаточно доступного MetaEditor64.exe и исходника проекта; можно также загрузить готовый ServiceStateWriter.ex5. Затем нажмите «Новый терминал» на главной странице. Реквизиты счёта можно задать сразу или оставить пустыми и настроить позже.

В настройках также доступны проверка Git-обновлений и отдельная команда сборки и распространения сервиса. Порядок обновления описан в руководстве по эксплуатации.

Для работы с нужным брокером исходный servers.dat должен содержать сведения о его торговом сервере. Как подготовить файлы и разместить проект вне установки MT5, описано в руководстве по установке.

В приложении пока нет входа пользователей и разграничения прав. Для удалённой работы используйте защищённый доступ, например VPN. Параметры сети и хранения реквизитов разобраны в документации по эксплуатации.

Документация

Документация описывает текущую реализацию и обновляется вместе с кодом. Статьи сохраняют последовательность разработки и состояние соответствующей части цикла.

MQL5 Algo Forge / antekov