Новая версия платформы MetaTrader 5 build 1745 - страница 6

 
Vladimir Karputov:

Я прочёл. И понял что с новыми проектами:

Не поняли.

Меняйте подход. Если вы спрятали компоненты в своем личном каталоге MQL5, то о какой совместной работе вы думаете?

Измените подход, постройте все с точки зрения физической доступности для репликации и тогда все будет правильно работать.

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

 

только сейчас обратил внимание, в версии 1748 появилась ошибка

2018.01.18 23:17:40.982 Books   invalid book transaction [Si-3.18,sell,57000.00000,-1][buys: 40, sells: 40, depth: 20]

в прошлых версиях не замечал, заявки на сделки робот не отправлял в это время

 
Alexey Volchanskiy:

а сюда чего не кинуть? предупрежден - значит вооружен

Баг в новом билде пофиксили и очень оперативно.

(Респект МК за реакцию).

Кст недостаток проявлялся на виртуализованных средах, в новом релизе эта засада пофиксена.

 
Alexandr Krivoshey:

(Респект МК за реакцию).

Рекомендуем не создавать одиночные функции на десятки тысяч строк.

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

 
Renat Fatkhullin:

Не поняли.

Меняйте подход. Если вы спрятали компоненты в своем личном каталоге MQL5, то о какой совместной работе вы думаете?

Измените подход, постройте все с точки зрения физической доступности для репликации и тогда все будет правильно работать.

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


Попытка номер N.

Проектирую такую структуру: в папке Experts будет вложенная папка "ForEach" с экспертами:

ForEach

Задача: на второй стороне человек должен видеть ТАКУЮ ЖЕ структуру папок. 

Внутри папки ForEach я даже создал проект "ForEach.mqproj". Но на этот "ForEach.mqproj" НЕЛЬЗЯ по правому клику назначить права доступа. Нельзя, так как по правому клику такого пункта нет (он неактивен).

Вопрос: и как же делится с человеком на другой стороне, чтобы у него была та же структура папок?

 

Перешёл во вкладку "Проекты" в окне "Навигатор", по правому клику на проекте 

Добавить существующий

добавил в него все советники из папки, в которой создан файл "mqproj".


Всё равно нигде нет пункта, чтобы папке [data folder]\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\Experts\Articles\ForEach\ (в которой лежит созданный файл "mqproj") дать права доступа.

 

И снова фиаско.

Теперь в проект  ( файл "mqproj" в папке [data folder]\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\Experts\Articles\ForEach\) включены НЕСКОЛЬКО советников. 

В проект включены несколько советников

и при попытке компиляции ЛЮБОГО из них, я получаю такие ошибки:

Ошибки при компиляции

 

Как вы личную папку собрались расшарить?

Это возможно только для проектов в Shared Projects.


Кроме того, вы все еще не понимаете, что такое проект, раз помещаете несколько отдельных программ в него.

 
Renat Fatkhullin:

Не увидит.

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

Если планируете использовать свою библиотеку в совместных проектах, то сделайте отдельный проект типа «Username.Common”, поместите туда нужные файлы или настройте внутри хардлинки на каталоги этой же библиотеки внутри MQL5/Include и тоже делайте доступными для обмена.

Еще вариант - это создание локального /include каталога внутри разделяемого проекта и ручная привязка хардлинками нужных файлов из основного MQL5/Include.


Но это подразумевает КОПИРОВАНИЕ - то есть создание дубля. А если есть дубль, то запутаться в версиях проще простого. 

Каким образом через MetaEditor можно предоставить доступ к включаемому файлу на моём компьютере второй стороне, но только НИКАКИХ КОПИРОВАНИЙ и НИКАКИХ ДУБЛЕЙ? То есть я работаю с включаемым файлом в своём MetaEditor'е и как только я фиксирую изменения это должен видеть человек на второй стороне?

 
Vladimir Karputov:

Но это подразумевает КОПИРОВАНИЕ - то есть создание дубля. А если есть дубль, то запутаться в версиях проще простого. 

Каким образом через MetaEditor можно предоставить доступ к включаемому файлу на моём компьютере второй стороне, но только НИКАКИХ КОПИРОВАНИЙ и НИКАКИХ ДУБЛЕЙ? То есть я работаю с включаемым файлом в своём MetaEditor'е и как только я фиксирую изменения это должен видеть человек на второй стороне?

Только методом работы в Shared Projects и наличию файла именно в папке проекта внутри Shared Projects.

В этом и суть совместной работы - делаете физически отчуждаемый проект и в режиме версионной репликации каталога работаете с другими участниками. Если вы закладываетесь на нестандартные(все, кроме стандартной поставки MQL5) связи вне реплицируемого каталога, значит делаете неправильно.

Вопрос дублей - это исключительно ваша личная проблема. Она никакой магией не решается. Ваши личные файлы не будут магическим образом прикреплены к чужому реплицируемому каталогу.

Чтобы совсем было понятно:

  • Ваш личный каталог /MQL5 - это отдельная физическая сущность/проект, которая реплицируется отдельно и доступна только вам персонально.
  • Нельзя совместно работать в личном каталоге
  • Проекты в Shared Projects - это физически отдельные и несвязанные реплицируемые проекты, у которые есть права совместного доступа
  • Совместно работать можно только с проектами в Shared Projects

Логика работы с совместными проектами общепринятая. У нее есть требования и ограничения, без которых все развалится. Подход "все неправильно, я хочу по-другому, хочу по-своему, мне не нравится" тут не сработает - все давно обосновано и правильно.

Поэтому надо под эти правила подстраиваться, чтобы получить правильную систему работы.

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