Введение

Многие трейдеры и разработчики торговых систем для технических целей имеют несколько копий терминалов MetaTrader 4. На них открыты разные графики, разные счета, проверяются разные стратегии. При этом периодически выходят новые версии терминала, появляются новые индикаторы, советники, другой MQL код.

Для нормальной работы рано или поздно встанет вопрос о синхронизации используемых копий теримнала. Для этого потребуется технический инструмент, способный решить данную задачу. Мы рассмотрим процесс его создания и получим в итоге готовый инструмент.
На кого рассчитана эта статья

В статье рассмотрено создание примера программной системы для синхронизации нескольких копий терминалов.

Исходя из этого, статья может быть интересна двум категориям читателей:
1. Пользователи-трейдеры могут использовать для себя готовую программную систему из данной статьи.
2. Профессиональные разработчики программных систем, выходящих за рамки MQL кода, могут рассмотреть в личных познавательных целях данную систему, возможно, высказав здравую критику и полезные предложения.
Необходимость системы синхронизации терминалов

Допустим, у вас восемь копий терминалов. Вы ставите новую вышедшую версию. Как? По очереди нажимаете восемь раз на скачанный файл MetaTrader4 и указываете ему ваши папки, в которых установлены копии? Хорошо, это несложно.

Далее, вы разработали три новых индикатора, два эксперта и одну библиотеку. Вам нужно проверить их в разных ситуациях на тех же восьми копиях терминалов. Значит, исходные MQL и бинарные ex4 файлы нужно также обновить. Вы вели эти разработки в одной, исходной копии терминала. Нужно тиражировать их в остальные копии. Вы открываете по очереди подпапки исходного терминала: experts, затем experts\indicators и experts\libraries. В каждой из них в Проводнике Windows копируете нужные файлы, далее открываете в каждой обновляемой копии терминала такую же папку и копируете в неё нужные файлы. И повторяете этот двойной цикл для каждой исходной подпапки и каждой аналогичной подпапки обновляемого терминала.

Знакомая вам ситуация? Если вы делаете это регулярно, то наверняка не раз задумывались над упрощением этой работы. Для этого нужен инструмент, позволяющий автоматизировать данную задачу. Т.е. обновление терминалов в итоге желательно запускать нажатием одной кнопки. И весьма полезно иметь возможность настройки параметров данного процесса, таких, как путь к исходному контрольному терминалу, множество путей обновляемых терминалов, задавать фильтры на файлы, которые нужно обновить. Возможно, ещё какие-либо параметры. Для контроля результата процесса нужно видеть список ошибок, возникших при копировании синхронизируемых файлов. Например, мы ошиблись в пути к папке терминала, значит, система синхронизации должна показать нам это.

Т.е. наш инструмент должен быть гибким и эффективным. Попробуем его таким создать.

Готовый бинарный проект и пример кода модуля системы.