Один каталог MQL4/MQL5 для разных терминалов/счетов

 

Здравствуйте, столкнулся с интересной проблемой - решил поделиться решением. Хотя это может быть полезным при использовании нескольких терминалов с одними индикаторами и экспертами.

Проблема.

У меня в офисе стоят сервера, когда я работаю с терминалом и редактором кода, рабочий каталог стандартный 

C:\Program Files (x86)\FORT MT4 Terminal\MQL4


но когда я работаю по RDP(удаленный доступ к серверу), терминал и редактор кода запускается с рабочим каталогом 

C:\Users\pc252\AppData\Roaming\MetaQuotes\Terminal\A20CA2591770CE62A1EDA...... 

Получается что мне приходилось при подключении по RDP, копировать из первого каталога обновленные файлы во второй каталог и обратно, когда я работаю в офисе. Не знаю, почему так происходит, работаю под одним user, что локально, что удаленно.

Решение.

Выход оказался совсем прост, всего лишь нужно открыть командную строку администратора Windows и ввести для указанных выше каталогов следующую команду:

mklink /j "C:\Users\pc252\AppData\Roaming\MetaQuotes\Terminal\A20CA2591770CE62A1EDAFDBAB781292\MQL4" "C:\Program Files (x86)\FORT MT4 Terminal\MQL4"

тем самым я говорю ОС:

Создать ссылку на каталог "C:\Program Files (x86)\FORT MT4 Terminal\MQL4" и разместить ее в каталоге C:\Users\pc252\AppData\Roaming\MetaQuotes\Terminal\A20CA2591770CE62A1EDAFDBAB781292\MQL4"- имя ссылки.

Это все нужно сделать при выключенном терминале и редакторе mql4

Проблема решена.


P.S. возможно кто то встречался с этой проблемой и сможет объяснить ее происхождение - терминал 4 билд 1090.

 
Gregory Kovalenko:

Здравствуйте, столкнулся с интересной проблемой - решил поделиться решением. Хотя это может быть полезным при использовании нескольких терминалов с одними индикаторами и экспертами.

Проблема.

У меня в офисе стоят сервера, когда я работаю с терминалом и редактором кода, рабочий каталог стандартный 


но когда я работаю по RDP(удаленный доступ к серверу), терминал и редактор кода запускается с рабочим каталогом 

Получается что мне приходилось при подключении по RDP, копировать из первого каталога обновленные файлы во второй каталог и обратно, когда я работаю в офисе. Не знаю, почему так происходит, работаю под одним user, что локально, что удаленно.

Решение.

Выход оказался совсем прост, всего лишь нужно открыть командную строку администратора Windows и ввести для указанных выше каталогов следующую команду:

тем самым я говорю ОС:

Создать ссылку на каталог "C:\Program Files (x86)\FORT MT4 Terminal\MQL4" и разместить ее в каталоге C:\Users\pc252\AppData\Roaming\MetaQuotes\Terminal\A20CA2591770CE62A1EDAFDBAB781292\MQL4"- имя ссылки.

Это все нужно сделать при выключенном терминале и редакторе mql4, проблема решена.


P.S. возможно кто то встречался с этой проблемой и сможет объяснить ее происхождение - терминал 4 билд 1090.


У меня такая же точно фигня! И в МТ4 и в МТ5. Из-за этого слетают настройки и постоянно нарушается синхронизация файлов с хранилищем. Хватит это терпеть!

 
Yury Kirillov:

У меня такая же точно фигня! И в МТ4 и в МТ5. Из-за этого слетают настройки и постоянно нарушается синхронизация файлов с хранилищем. Хватит это терпеть!


Рад, если Вам это поможет. Делалось это на Windows 7, если у Вас другая версия ОС семейства Windows, почитайте справку по символьным ссылкам.

Кстати, интересно, может ошибаюсь.., если терминал запускается в ос семейства Linux под Wine, как там такое сделать...  В среде Linux с такими вещами проблем нет, это вам не винда, но вот под Wine.. интересно. 

 
Gregory Kovalenko:

Кстати, интересно, может ошибаюсь.., если терминал запускается в ос семейства Linux под Wine, как там такое сделать... 


точно так же, конкретно как уже не помню, но делалось легко. Через те же симв. ссылки

 
Gregory Kovalenko:


Рад, если Вам это поможет. Делалось это на Windows 7, если у Вас другая версия ОС семейства Windows, почитайте справку по символьным ссылкам.

Кстати, интересно, может ошибаюсь.., если терминал запускается в ос семейства Linux под Wine, как там такое сделать...  В среде Linux с такими вещами проблем нет, это вам не винда, но вот под Wine.. интересно. 


Под Wine не работает x64 и невозможно тестирование на агентах.

 
Gregory Kovalenko:

Здравствуйте, столкнулся с интересной проблемой - решил поделиться решением. Хотя это может быть полезным при использовании нескольких терминалов с одними индикаторами и экспертами.

Создать ссылку на каталог "C:\Program Files (x86)\FORT MT4 Terminal\MQL4" и разместить ее в каталоге C:\Users\pc252\AppData\Roaming\MetaQuotes\Terminal\A20CA2591770CE62A1EDAFDBAB781292\MQL4"- имя ссылки.

P.S. возможно кто то встречался с этой проблемой и сможет объяснить ее происхождение - терминал 4 билд 1090.


Ваша радость будет недолгой. MetaEditor очень странно начинает себя вести при работе с жесткими ссылками.

 
Vasiliy Sokolov:

Ваша радость будет недолгой. MetaEditor очень странно начинает себя вести при работе с жесткими ссылками.


Я пока проблем не наюлюдаю.

 
Gregory Kovalenko:

Я пока проблем не наюлюдаю.

Может пофиксили уже. Но раньше были проблемы с открытием таких файлов.

 
Gregory Kovalenko:

Здравствуйте, столкнулся с интересной проблемой - решил поделиться решением. Хотя это может быть полезным при использовании нескольких терминалов с одними индикаторами и экспертами.

Проблема.

У меня в офисе стоят сервера, когда я работаю с терминалом и редактором кода, рабочий каталог стандартный
но когда я работаю по RDP(удаленный доступ к серверу), терминал и редактор кода запускается с рабочим каталогом 

....

P.S. возможно кто то встречался с этой проблемой и сможет объяснить ее происхождение - терминал 4 билд 1090.

Это результат того, что для Windows пользователь с одной и той же записью выглядит по разному -  когда он входит локально или когда входит удаленно. Соответственно, каталоги юзера Windows создает разные.

Вы можете пользоваться MQL5 Storage и синхронизироваться через это хранилище.

 
Gregory Kovalenko:

Решение.

Выход оказался совсем прост

Будьте аккуратны

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Как полностью потерял ВСЕ свои исходники

fxsaber, 2016.11.17 14:54

Когда-то решил такую задачу

Там ниже по тексту есть решение этой задачи - mklink.

Было очень удобно. MT4 и MT5 видели одну папку, никаких постоянных копий, слежений за обновлением, синхронизаций и т.д. Одна папка исходников с EX? на все терминалы - MT4/5.

Сегодня решил стереть один ненужный установленный терминал, сделав это через стандартный uninstall.exe. Мне не нужно было ничего в папке этого терминала. Поэтому после отработки процедуры удаления папки не оказалось.

И вот тут я заподозрил, что могло произойти непоправимое. Одна из ссылок на общее хранилище лежала в удаленной папке. И uninstaller видел это хранилище, как обычную папку и просто грохнул ее. Так и вышло.

 

Со случайным удалением многие сталкиваются и полно утилит по восстановлению. Не сомневаясь, что сейчас все восстановлю, стал с ними работать. Все исходники были в состоянии Excellent. Однако, при восстановлении они оказывались заполненными нулевыми байтами. Как потом выяснил, что с SSD при включенном TRIM (включен с Win7+) удаление происходит принудительным затиранием, а не как в HDD.

 

Совсем забыл про резервную копию. Сразу вспомнил недавний пост

Речь ни о том, надо или не надо пользоваться онлайн-сервисами. Сам я ими пользоваться не готов даже после этого случая.

Написал пост для предупреждения, что mklink+undelete.exe или просто удаление папки, содержащей mklink-ссылку, приводит к удалению всей оригинальной базы.

У меня ничего не осталось. Только те крохи, что выложил в кодобазу. Ну что же, наверное, иногда полезно начать с чистого листа.

 

Было бы особенно круто, если б можно было ссылаться на одну и ту же папку MQL из MT5 и МТ4.  Но загвоздка в папке Include:  файлы стандартной библиотеки для обоих платформ имеют одинаковые имена и лежат в одинаковых подпапках, однако не все из них являются кроссплатформенными, поэтому невозможно использовать их для обоих платформ.

Я уже обращался в сервис-деск с предложением сделать библиотечные файлы кроссплатформенными, либо с разными именами, но всё без ответа.

А пока приходится иметь отдельную общую папку для каждой платформы, внутри которых уже размещать кучу ссылок на общие папки.  Когда-то делал проще, размещая внутри MQL4 ссылку на MQL5. И наоборот соответственно.  Получался замкнутый контур. И это часто приводило к рекурсии, например при поиске файлов, поэтому пришлось отказаться.  Хотя возможно просто поисковик недостаточно умный. В том числе и встроенный в Metaeditor.

И тут кстати ещё одна проблема, что при открытии нескольких ссылок одного и того же файла, Metaditor считает их разными файлами, т.к. идентифицирует каждый файл лишь по его пути:  раз путь отличается, значит это другой файл.  Это может приводить к конфликтам, когда один и тот же включаемый файл пытается включаться в код повторно.  Приходится делать всё по старинке:

#ifndef MYFILEH

#define MYFILEH

...

#endif

Но это не столь критично.  А вот отсутствие синхронизация изменений между этими открытыми ссылками - реально доставляет проблем.  В одном чё-то поменял, сохранил, а другой остался прежним, и пошло-поехало...

Причина обращения: