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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Gregory Kovalenko
565
Gregory Kovalenko  

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

Проблема.

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

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.

Yury Kirillov
5298
Yury Kirillov  
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. Из-за этого слетают настройки и постоянно нарушается синхронизация файлов с хранилищем. Хватит это терпеть!

Gregory Kovalenko
565
Gregory Kovalenko  
Yury Kirillov:

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


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

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

Maxim Dmitrievsky
19195
Maxim Dmitrievsky  
Gregory Kovalenko:

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


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

Yury Kirillov
5298
Yury Kirillov  
Gregory Kovalenko:


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

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


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

Vasiliy Sokolov
30014
Vasiliy Sokolov  
Gregory Kovalenko:

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

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

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


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

Gregory Kovalenko
565
Gregory Kovalenko  
Vasiliy Sokolov:

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


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

Vasiliy Sokolov
30014
Vasiliy Sokolov  
Gregory Kovalenko:

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

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

Rashid Umarov
Админ
16680
Rashid Umarov  
Gregory Kovalenko:

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

Проблема.

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

....

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

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

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

fxsaber
16824
fxsaber  
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-ссылку, приводит к удалению всей оригинальной базы.

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

Alexey Navoykov
4571
Alexey Navoykov  

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

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

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

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

#ifndef MYFILEH

#define MYFILEH

...

#endif

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

12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий