Обсуждение статьи "Проекты позволяют создавать прибыльных торговых роботов! Но это не точно" - страница 2

 
Rashid Umarov:

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

Вы можете включить в проект EX5 файлы в качестве ресурсов, например, скомпилированные индикаторы.

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

 
Vladimir Karputov:

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

Нет такой возможности. Индикатор может лежать вне папки проекта, нужно правильно прописать путь к нему, как сказано в анонсе 2485 билда.

Новая версия платформы MetaTrader 5 build 2485: улучшения в iCustom и общая оптимизация в MQL5
Новая версия платформы MetaTrader 5 build 2485: улучшения в iCustom и общая оптимизация в MQL5
  • 2020.06.05
  • www.mql5.com
В пятницу 5 июня 2020 года будет выпущена обновленная версия платформы MetaTrader 5...
 
Rashid Umarov:

Нет такой возможности. Индикатор может лежать вне папки проекта, нужно правильно прописать путь к нему, как сказано в анонсе 2485 билда.

Уточните: "теперь нет такой возможности"? То есть правила создания проекта стали более жесткими?

 
Vladimir Karputov:

Уточните: "теперь нет такой возможности"? То есть правила создания проекта стали более жесткими?

Так всегда было

 
Rashid Umarov:

Так всегда было

Мой проект был создан давно: в нём был и индикатор и советник - всё работало на момент публикации. И индикатор и советник были в одной папке Shared project.


В 2485 это перестало работать.

Хорошо, я вынес индикатор в отдельную папку - за пределы Shared Projets: (конечно скомпилировал по новому месту)

[data folder]\MQL5\Indicators\AlligatorAndStochastic histogram\AlligatorAndStochastic histogram.mq5

в советнике прописал путь

   handle_iCustom=iCustom(m_symbol.Name(),Period(),"AlligatorAndStochastic\\AlligatorAndStochastic rectangles",

по идеи я обращаюсь к папке Indicators\AlligatorAndStochastic histogram\AlligatorAndStochastic histogram


но получаю ошибку:

        2020.01.30 00:00:00   AlligatorAndStochastic\AlligatorAndStochastic rectangles
        program file Experts\Shared Projects\AlligatorAndStochastic\AlligatorAndStochastic\AlligatorAndStochastic rectangles.ex5 read error
        program file Indicators\AlligatorAndStochastic\AlligatorAndStochastic rectangles.ex5 read error
        loading of AlligatorAndStochastic rectangles EURUSD,M15 failed [557]
        2020.01.30 00:00:00   cannot load custom indicator 'AlligatorAndStochastic\AlligatorAndStochastic rectangles' [4802]
        2020.01.30 00:00:00   Failed to create handle of the iCustom indicator for the symbol EURUSD/PERIOD_M15, error code 4802


Но файл там точно есть:


 

Что за чудеса?

Повторю: вариант (ранее рабочий) - в проекте совместно находится советник и индикатор

   handle_iCustom=iCustom(m_symbol.Name(),Period(),"Shared Projects\\AlligatorAndStochastic\\AlligatorAndStochastic rectangles",

сегодня на 2485 начал выдавать ошибку - мол файл не найден.


После многих экспериментов вынес индикатор за пределы Shared Projects в отдельную папку. Результата не принесло


Удалил вынесенную папку. Откатил все изменения проекта назад (то есть теперь снова и СОВЕТНИК и ИНДИКАТОР в одной паапке) - и о чуда: отладка на истории запустилась:


Кто хочет можете проверить проект 'AlligatorAndStochastic'

 

Тема статьи достаточно важная, но сама статья - пустое промо, концентрирующее внимание на конечной цели в виде построения прибыльных советников, но при этом  совершенно не рассматривающее использование прикладные аспекты  применения функционала Проектов для организации взаимодействия участников при одновременной работе над  сложными экспертами.
На самом деле текущий функционал MQL-проектов очень скудный и по сути негодный для организации проектов. Именно поэтому многие именитые форумчане выбирают  Github для размещения своих публичных и частных проектов (н-р свой достаточно известен репозиторий PublicMqlProjects Василия Соколова).

Совсем недавно я размещал на Фриланс заказ на отдельные графические компоненты для своего эксперта (SixPanels), так как возникло желание распараллелить рабту - самому сконценрироваться на центральном функционале, создание gui отдать на аутсорсинг, т.е.по сути провести  организацию проектного взаимодействия с одном из разработчиков. Однако в целях сохранения своих know-how это потребовало от меня  и от  заказчика многочисленных непроизводительных трудозатрат:
    - мне потребовалось создать целый набор классов-пустышек, эмулирующих работу настоящий классов,
    - заказчику  в ходе реализации потребовалось переписать часть данных классов, что было произведено без синхронизации с моей продолжающейся разработчик центральной части советника,
    - по итогам выполнения заказа  мне потребовалось выполнить реинтеграцию gui компонентов со своим кодом, внося изменения в код gui -компонентов.

Более того, чтобы теперь перейти к обеспечению возможности выполнения 2го заказа, мне потребуется дополнительно сделать ретрофит классов-пустышек под код интегрированных gui -компонентов.

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

Описанные ниже недостатки функционал MQL-проектов условно разделены на 2 части:
А.  Недостатки  текущего Функционала  в части организации и ведения проектов
В. Недостатки  текущего Функционала  в части интеграции в экосистему MQL5.com

Фриланс-сервис на MQL5.com: 6 графических панелей на библиотеке EasyAndFastGUI для торгового эксперта
Фриланс-сервис на MQL5.com: 6 графических панелей на библиотеке EasyAndFastGUI для торгового эксперта
  • www.mql5.com
Нужен программист по графике MQL5 с опытом разработки GUI, рассмотрю заявки с количеством выполненных проект от 50+, адекватным количеством арбитражей. Есть код советника выоской готовности, для него необходимо создать 6 панелей, используя библиотеку EasyAndFastGUI (на основе версии из этой статьи: Ссылка)/При этом сам дизайн панелей как...
 

А. Недостатки  текущего функционала MQL-проектов в части организации и ведения проектов

Недостатки , из-за которых участники сейчас выбирают Github вместо MT5.Проекты

1. Неполноценная ролевая структуры,  без возможности обеспечения доступа отдельных участников к отдельным каталогам проекта
Use case 1: Привлечение платного фрилансера к выполнению части работ в более крупном проекте
Use case2: Распределение работ между разработчиками с целью защиты
Как устранить недостаток:  создать распределение доступов на уровне отдельных каталогов проекта и расширить текущую структуру доступов для до след.состава:  Владелец (полный доступна уровне всего проекта + администрирование участников) , Участник (полный доступ на уровне всего проекта), Разработчик(полный доступ на уровне корневого каталога и отдельных подкаталогов) , Наблюдатель (доступ на просмотр уровне всего проекта); без присвоения прав доступа участник с ролью разработчик не получает доступа к о всем подкаталогам.

2. Отсутствует функционал планирования и распределения задач
Use case 1: Требуется фиксировать список задач на выполнение и распределять/назначать  задачи участникам
Use case 2: Требуется выстроить упорядоченную структуру задач, которые  должны быть решены в ходе проекта
Use case 2: Требуется учитывать отпуска и периоды неактивности участников
Как устранить недостаток:  в параллели с SVN системой облачного хранения и версионирования файлов запустить серверную систему jira, проведя  интеграцию отдельных ее компонентов в MetaEditor, в частности таких компонентов как Задачи и Доски; т.е. по сути создание MQL-проекта в MetaEditor должно приводит одновременно и к выделению файлового пространства в SVN и к автоматической регистрации нового проекта в системы Jira.

3. Отсутствует функционал запуска/компиляции нескольких mq5 в рамках одного проекта
Use case 1: Требуется параллельная разработка в различных классах, для удобства тестирования каждый разработчик делает копию первичного класса программы, изменения при этом ссылки на с те вложенные классы, которые он дорабатывает; для ускорения тестирования каждый запускает свой экземпляр  первичного класса программы.
Use case 2: В целях- распределения потоков на процессорных ядрах разработка распределенного советника, отдельные части которого общаются собой через систему событий (events) или общие файлы;
н-р у меня сейчас советник из 2х компонент: бэк-енд  телеграм бота работает как независимый эксперт на одном графике, анализирует команды и посредством events перенаправляет их в core, запушенном как советник на другом графике того же символа (+ в планах собираюсь добавить 3х элемент, который будет работать как сервис и поставлять данные с внешних источников), при этом все оба компонента опираются на одни библиотеки и по сути являются одним проектом.
Как устранить недостаток:  в рамках структуры проекта сделать указатель какой .mq5 файл компилируется, который может быть установлен на уровне каждого участника проекта; если внутри проекта вложено более 2-х файлов .mq5 , то MetaEditorпозволяет на уровне проекта сменить компилируемый участником файл.

4. Отсутствует функционал интегрированной разработки с адресацией к индикаторам

Use case 1: Внешние индикаторы  часто являются важнейшая часть советников, выполняя как расчетные функции, так и визуализацию на графиках.
Use case 2: Индикаторы т позволяют распараллелить вычисления внутри индикаторного потока.
Функционал был ранее рабочим, но по каким-то соображениям был удален в последней версии MetaEditor.
В  принципе описано в постах выше, и полагаю что топик  не нуждается в отдельных комментариях.
Как устранить недостаток: восстановить функционал вызов в советнике и работу через iCustom  индикаторов, содержащихся в подкаталогах проекта.

5. Отсутствует  функционал поддержки параллельной работы над разными редакциями проекта (а-ка DevOps)
Use case 1:  Требуется обеспечить работу разных участников над проектом в разных стадиях, с целью ускорения релизов.
Use case 2: В ситуации когда советник уже используется участниками для торговли на реальных счетах требуется обеспечить релизы с высоким качеством тестирования
Как устранить недостаток: сделать минимальную структуру редакций проекта: DEV, TEST, PROD; вначале проект создается как DEV, затем участник с ролью  Владелец может создать редакцию TEST, затем PROD; при этом при работе с проектом каждый участник может переключить версию, задав ее в свойствах проекта, и перейти к работе над предыдущей редакцией; участник с ролью  Владелец могут обновлять редакции TEST/PROD, при этом система требует "согласия" всех участников с ролью Владелец.
 

В. Недостатки  текущего функционала MQL-проекты в части интеграции в экосистему MQL5.com

Недостатки, препятствующие широкому использованию в рамках экосистему MQL5.com.
По сути сейчас функционал MQL-проекты вообще никак не связан с экосистемой, поэтому речь иджет об установлении наиболее важных связей.
Основной целью в данном случае является как развитие экосистему MQL5.com, так и в отдельных случаях доп. монетизация для компании MQ.

6. Связь с разделом Фриланс (1): отсутствует  реестр совместных запросов на поиск участников
Use case 1: Требуется найти потенциальных участников проекта, с нужными скилзами, требуется понимание опыта потенциальных партнеров.
Use case 2: Требуется проскринить список потенциальных проектов, в которых было бы интересно принять участие.
Как устранить недостаток:  создать в рамках раздела Фриланс подраздел "Доска Проектов", в которых выводить запросы  организаторов  на поиск участников (подразуемевается бесплатное участие в реализации проектов), с совместным правом пользоваться итоговым результатом.
P.S.: сейчас в определенном виде кооперация идет за счет обсуждений на форуме в виде отдельных тем "напишу советник бесплатно" и т.д., но по сути не организовано никак вокруг проектного функионала, и достаточно часто обсуждение превращается в какой-то срач и флуд. Организация Доски проектов позволит увязать данную активность с проектным функционалом.

7. Связь с разделом Фриланс (2): отсутствует  возможность сделать проект в виде совместного заказа
Use case 1: Нескольким участникам требуется вскладчину оплатить создание нового функционала, с привлечением внешнего разработчика из Фриланс.
Как устранить недостаток:  в  проекте создать вкладку "Заказы на Фриланс", на которой регистрировать заявки с бюджетом для Фриланса; после выбора разработчика, данный участник получает доступ к проекту с ролью "Разработчик", контрактные доступы которой задаются участниками с ролью Владелец.
Монетизация (для MQ):  рост сложности совместных заказов, потенциальный рост  среднего чека заказов.

8. Связь с разделом Маркет (1): отсутствует  возможность вывести результаты проекта на продажу, получая автоматическое разделение прибыли
Use case 1: По итогам завершения проекта участники решают опубликовать советник/утилиту на Маркете, требуется функционал разделения прибыли в зафиксированной в проекте пропорции.
Как устранить недостаток:  в  проекте создать вкладку "Заказы на Фриланс", на которой регистрировать заявки с бюджетом для Фриланса; после выбора разработчика, данный участник получает доступ к проекту с ролью

9. Связь с разделом Статьи
Use case 1: По итогам публикации сери и статей с некой полезной библиотекой, автор теряет к развитию данной библиотеки интерес, у сообщества нет инструментов для организованной поддержки/развития проктов; деньги MQ, уплаченные авторам серии статей уходят в песок (т.е. эффект теряется за 1-2 года после публикаций); среди примеров можно привести "Универсальный торговый эксперт" (В. Соколов), "Библиотека Easy & Fast GUI" (А. Кажарский), которые были заброшены/подзабыты свои авторами.
Как устранить недостаток:  для всех авторов, развивающих своим библиотеки в ряде статей , установить обязательно требование  к публикации библиотеки в виде общедоступного проекта; при этом начиная с 3й статьи должно быть установлено доп. Требования включения в данный проекта +1 участника mql-сообщества с ролью Владелец перед каждой след. Статьей или +3 участника с ролью Участник.
P.S. Т.е. по сути - если публикации авторов не находят отклика в участника mql-сообщества в  виде желающих стать со-владельцами проекта и далее еге развивать, то данная библиотека не интересна сообществу и ее развитие через Статьи не подлежит финансированию. Пусть авторы публикуют ее в Кодебазе и все.

10. Связь с функционалом MQ-Сообщения
Use case 1: После сбора участников требуется организовать обсуждение, которое сейчас чаще всего проходит в Телеграмм или Ватсапп, т.е. вне экосистемы MQL5.com
Как устранить недостаток:  в настройках проекта создать галочку для открытия в  системе MQ-Сообщения  связанного с проектом закрытого  канала, в участники которого  автоматически добавляются участники проекта.


Без  устранения вышеописанных недостатков, любая агитация типа  данной статьи - просто пустые лозунги. Они не приведут ни к популярности текущего функционала проектов, ни к монитезации для MQ.
То что сейчас сделано в рамках MQL-проектов  - это можно рассматривать только как первый, базовый шаг.
Вывод функционала MQL-проектов на новый уровень интеграции в экосистему MQL5.com требует устранения вышеуказанных недостатков.
 

Sergey Lebedev:

... запустить серверную систему jira...

У MQ есть свой продукт - TeamWox, так что интеграция с конкурентом в лице Jira, скорее всего, исключается по политическим мотивам.

По поводу всего остального складывается непаханное поле разноплановых задач, а для MQ лучше всего было бы сконцентрироваться на качестве и полноте основного функционала, т.е. трейдерского. ИМХО, "нельзя объять необъятное" и все такие утилитарные вещи как редактор+IDE, система сборки, контроля версий, workflow и пр. имело смысл брать готовые и настраивать для работы с MQL и компилятором MQL. Почему-то для контроля версий решили взять сторонний CVS (выбрав SVN!), а всё остальное -- писать с нуля. В результате по всем параметрам уступают признанным инструментам в каждом сегменте.

PS. Основной аргумент от MQ был, насколько я помню, такой, чтобы дать всё в одном флаконе яко-бы удобном для трейдеров-непрограммистов. Но в результате инструмент становился все более и более сложным, и вот уже он по-любому не из разряда для непрограммистов и при этом не обладает "фичами", привычными для программистов. Ни вашим, ни нашим.

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