Discusión sobre el artículo "¡Los proyectos ayudan a crear robots rentables! O eso parece" - página 2

 
Rashid Umarov:

Sólo puede haber un archivo compilado principal en un proyecto. Todas las demás fuentes pueden servir como archivos de inclusión.

Puede incluir archivos EX5 en el proyecto como recursos, por ejemplo, indicadores compilados.

¿Y cómo incluir un indicador personalizado en el proyecto EA? (no como recurso, sino para que el código editable esté disponible).

 
Vladimir Karputov:

¿Cómo incluir un indicador personalizado en el proyecto EA? (no como recurso, sino para que el código editable esté disponible).

No existe tal posibilidad. El indicador puede estar fuera de la carpeta del proyecto, es necesario especificar correctamente la ruta a la misma, como se indica en el anuncio de 2485 construir.

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

No existe tal posibilidad. Indicador puede estar fuera de la carpeta del proyecto, es necesario especificar correctamente la ruta a la misma, como se indica en el anuncio de 2485 construir.

Aclare: ¿"ahora no existe tal posibilidad"? Es decir, ¿las normas de creación de proyectos se han vuelto más estrictas?

 
Vladimir Karputov:

Aclárese: ¿"ahora no existe tal posibilidad"? Entonces, ¿se han endurecido las normas para crear un proyecto?

Así ha sido siempre

 
Rashid Umarov:

Siempre ha sido así.

Mi proyecto fue creado hace mucho tiempo: tenía un indicador y un Asesor Experto - todo funcionaba en el momento de la publicación. Tanto el indicador como el Asesor Experto estaban en una carpeta Proyecto compartido.


En 2485 dejó de funcionar.

Bueno, moví el indicador a una carpeta separada - fuera de Shared Projets: (por supuesto, lo compilé en un nuevo lugar).

[carpeta de datos]\MQL5\Indicators\AlligatorAndStochastic histogram\AlligatorAndStochastic histogram.mq5

He escrito la ruta en el Asesor Experto.

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

Supuestamente estoy accediendo a la carpeta Indicators\AlligatorAndStochastic histogram\AlligatorAndStochastic histogram.


pero me da un error:

        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


Pero el archivo está definitivamente allí:


 

¿Cuáles son estos milagros?

Permítanme repetir: la variante (anteriormente de trabajo) - hay un Asesor Experto y un indicador en el proyecto juntos.

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

Hoy en 2485 comenzó a generar un error - archivo no encontrado.


Después de muchos experimentos moví el indicador fuera de Proyectos Compartidos a una carpeta separada. Ningún resultado.


He borrado la carpeta. Retrocedí todos los cambios del proyecto (es decir, ahora de nuevo tanto el CONTADOR como el INDICADOR están en la misma carpeta) - y oh maravilla: la depuración en la historia comenzó:


¿Quién quiere comprobar el proyecto 'AlligatorAndStochastic'?

 
Es un poco complicado, y es en MT4, así que no sé si el código puede ser construido y utilizado en MT4.
 

El tema del artículo es bastante importante, pero el artículo en sí es una promoción vacía que se centra en el objetivo final de construir EAs rentables, pero no considera en absoluto los aspectos aplicados del uso de la funcionalidad de Proyectos para organizar la interacción entre los participantes mientras se trabaja en EAs complejos.
De hecho, la funcionalidad actual de MQL-proyectos es muy pobre y esencialmente inadecuada para organizar proyectos. Es por eso que muchos miembros destacados del foro eligen Github para alojar sus proyectos públicos y privados (por ejemplo, el repositorio PublicMqlProjects de Vasily Sokolov es bastante famoso).

Hace poco hice un pedido en Freelance de componentes gráficos separados para mi experto(SixPanels), porque quería paralelizar el trabajo - concentrarme en la funcionalidad central yo mismo y externalizar la creación de la gui, es decir, organizar la interacción del proyecto con uno de los desarrolladores. Sin embargo, para ahorrarme mis propios conocimientos técnicos, tanto yo como el cliente tuvimos que emplear una gran cantidad de mano de obra improductiva:
- Tuve que crear todo un conjunto de clases vacías emulando el trabajo de las clases reales,
- el cliente en el curso de la implementación tuvo que reescribir una parte de estas clases, lo que se hizo sin sincronización con mi desarrollo en curso de la parte central de EA,
.- como resultado del cumplimiento del pedido tuve que realizar la reintegración de los componentes gui con mi código, realizando cambios en el código de los componentes gui.

Además, para poder pasar ahora a habilitar el 2º pedido, necesitaré adicionalmente realizar adaptaciones de clases void al código de los componentes gui integrados.

Así que hoy, que tengo un día libre, he decidido cubrir el tema de las deficiencias de la funcionalidad de MT5.Projects más a fondo, tanto en vista de mi reciente experiencia en el desarrollo distribuido como de mi experiencia profesional en la gestión de proyectos de TI.

Las deficiencias de la funcionalidad de MQL-project que se describen a continuación se dividen condicionalmente en 2 partes:
A. Deficiencias de la funcionalidad actual en términos de organización y mantenimiento de proyectos
B. Desventajas de la funcionalidad actual en términos de integración en el ecosistema MQL5.com

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

А. Desventajas de la funcionalidad actual de MQL-projects en términos de organización y mantenimiento de proyectos.

Desventajas por las que los participantes eligen ahora Github en lugar de MT5.Projects

1. Estructura de roles incompleta, sin posibilidad de proporcionar acceso de participantes individuales a catálogos de proyectos individuales
Caso de uso 1: Contratación de un freelance remunerado para realizar parte del trabajo en un proyecto más grande
Caso de uso2: Distribución del trabajo entre desarrolladores con fines de protección
Cómo eliminar el inconveniente: crear una distribución de acceso a nivel de catálogos de proyectos individuales y ampliar la estructura de acceso actual a lo siguiente.Propietario (acceso completo a nivel de todo el proyecto + administración de participantes) , Participante (acceso completo a nivel de todo el proyecto), Desarrollador (acceso completo a nivel del directorio raíz y subdirectorios individuales) , Observador (acceso de vista a nivel de todo el proyecto); sin asignar derechos de acceso, un participante con el rol Desarrollador no tiene acceso a todos los subdirectorios.

2.Sin funcionalidad de programación y asignación de tareas
Caso de uso 1: Requiere fijar una lista de tareas a realizar y asignar/asignar tareas a los participantes
Caso de uso 2: Requiere construir una estructura ordenada de tareas a realizar durante el proyecto
Caso de uso 2: Necesidad de tener en cuenta las vacaciones y los periodos de inactividad de los participantes
Cómo subsanar la deficiencia: en paralelo con el sistema de almacenamiento en la nube SVN y de versionado de archivos, lanzar el sistema de servidor jira, integrando algunos de sus componentes en el MetaEditor, en particular componentes como Tareas y Tableros; es decir, en esencia la creación de un proyecto MQL.es decir, en esencia, la creación de un proyecto MQL en MetaEditor debería dar lugar tanto a la asignación de espacio de archivo en SVN como al registro automático del nuevo proyecto en el sistema Jira.

3.No hay funcionalidad para ejecutar/compilar varios mq5 dentro de un mismo proyecto
Caso de uso 1: Se requiere un desarrollo paralelo en diferentes clases; para la comodidad de las pruebas, cada desarrollador hace una copia de la clase primaria del programa, cambiando las referencias a las clases anidadas que está refinando; para acelerar las pruebas, cada uno ejecuta su propia instancia de la clase primaria del programa.
Caso de uso 2: Con el fin de distribuir los hilos en los núcleos del procesador, desarrollar un Asesor Experto distribuido, cuyas partes individuales se comunican entre sí a través de un sistema de eventos o archivos comunes;
por ejemplo, ahora tengo un Asesor Experto de 2 componentes: El back-end del bot de Telegram funciona como experto independiente en un gráfico, analiza órdenes y las redirige mediante eventos al núcleo que funciona como Asesor Experto en el otro gráfico del mismo símbolo (+ tengo previsto añadir un elemento 3x que funcionará como servicio y suministrará datos de fuentes externas), y ambos componentes dependen de las mismas librerías y son esencialmente un solo proyecto.
Cómo eliminar el inconveniente: dentro de la estructura del proyecto para hacer un puntero qué archivo .mq5 se compila, que se puede establecer en el nivel de cada participante del proyecto; si hay más de 2 archivos .mq5 anidados dentro del proyecto, MetaEditor permite en el nivel de proyecto para cambiar el archivo compilado por el participante.

4
.No existe la funcionalidad de desarrollo integrado con respecto a los indicadores
Caso de uso 1: Los indicadores externos son a menudo la parte más importante de los Asesores Expertos, realizando tanto funciones de cálculo como de visualización en los gráficos.
Caso de uso 2: Los indicadores t permiten la paralelización de los cálculos dentro del flujo del indicador.
La funcionalidad funcionaba anteriormente, pero por alguna razón fue eliminada en la última versión del MetaEditor.
Básicamente se describe en los posts anteriores, y creo que el tema no necesita comentarios separados.
Cómo solucionar el defecto: restablecer la funcionalidad de la llamada en el Asesor Experto y trabajar a través de los indicadores iCustom contenidos en los subdirectorios del proyecto.

5.No hay funcionalidad para apoyar el trabajo paralelo en diferentes versiones del proyecto (aka DevOps)
Caso de uso 1: Se requiere asegurar que diferentes participantes trabajen en el proyecto en diferentes etapas con el fin de acelerar los lanzamientos.
Caso de uso 2: En una situación en la que el Asesor Experto ya es utilizado por los participantes para operar en cuentas reales, se requiere proporcionar versiones con pruebas de alta calidad
Cómo eliminar el inconveniente: hacer una estructura mínima de ediciones del proyecto: DEV, TEST, PROD; al principio el proyecto se crea como DEV, luego un participante con el rol de Propietario puede crear la edición TEST, luego PROD; mientras trabaja con el proyecto cada participante puede cambiar la versión configurándolo en las propiedades del proyecto y volver a trabajar en la edición anterior; un participante con el rol de Propietario puede actualizar las ediciones TEST/PROD, mientras que el sistema requiere el "consentimiento" de todos los participantes con el rol de Propietario.
 

В. Deficiencias de la funcionalidad actual de los proyectos MQL en cuanto a la integración en el ecosistema MQL5.com

Deficiencias que impiden un uso amplio dentro del ecosistema MQL5.com.
De hecho, la funcionalidad actual de MQL-projects no está conectada en absoluto con el ecosistema, por lo que se trata de establecer los vínculos más importantes.
El objetivo principal en este caso es tanto el desarrollo del ecosistema MQL5.com como, en algunos casos, la monetización adicional para la empresa MQ.

6.Conexión con la sección Freelance (1): no existe un registro de solicitudes conjuntas para la búsqueda de participantes
Caso de uso 1: se requiere encontrar potenciales participantes de proyectos con las habilidades necesarias, es necesario conocer la experiencia de los potenciales socios.
Caso de uso 2: se requiere cribar la lista de potenciales proyectos en los que sería interesante participar.
Cómo eliminar la deficiencia: crear una subsección "Tablón de proyectos" dentro de la sección Freelance, en la que mostrar las solicitudes de los organizadores para buscar participantes (participación gratuita implícita en la realización de proyectos), con el derecho conjunto de utilizar el resultado final.
P.D.: ahora en cierta forma la cooperación se produce a expensas de las discusiones en el foro en forma de temas separados "Escribiré un asesor gratis", etc., pero en realidad no está organizado de ninguna manera en torno a las funciones del proyecto, y muy a menudo la discusión se convierte en una especie de scrum y la inundación. La organización de la Junta del Proyecto permitirá vincular esta actividad a las funcionalidades del proyecto.

7Vínculo con Freelance(2): no hay posibilidad de hacer un proyecto como un pedido conjunto
Caso de uso 1: Varios participantes necesitan pagar por la creación de una nueva funcionalidad con la participación de un desarrollador externo de Freelance.
Cómo eliminar la desventaja: crear una pestaña "Pedidos Freelance" en el proyecto, en la que registrar las solicitudes con presupuesto para Freelance; tras seleccionar un desarrollador, este participante obtiene acceso al proyecto con el rol "Desarrollador", cuyos accesos contractuales son establecidos por los participantes con el rol Propietario.
Monetización (para MQ): aumento de la complejidad de los pedidos conjuntos, aumento potencial de la comprobación media de los pedidos.

8Vinculación con el Mercado (1): no hay posibilidad de poner a la venta los resultados del proyecto, recibiendo reparto automático de beneficios
Caso de uso 1: Una vez finalizado el proyecto, los participantes deciden publicar el Asesor Experto/utilidad en el Mercado, y necesitan la funcionalidad de reparto de beneficios en la proporción fijada en el proyecto.
Cómo eliminar el inconveniente: cree una pestaña "Pedidos Freelance" en el proyecto, donde se pueden registrar solicitudes con un presupuesto para Freelance; después de seleccionar un desarrollador, este participante obtiene acceso al proyecto con el rol

9.Enlace a la sección Artículos
Caso de uso 1: Después de la publicación de una serie de artículos con alguna librería útil, el autor pierde interés en el desarrollo de esta librería, la comunidad no tiene herramientas para el soporte/desarrollo organizado de los productos; el dinero de MQ pagado a los autores de la serie de artículos se va a la arena (es decir, el efecto se pierde durante 1-2 años después de la publicación); los ejemplos incluyen "Universal Trading Expert" (V. Sokolov), "Easy & Fast GUI Library" (A. Kazharsky), que fueron publicados por los autores de la serie de artículos. Kazharsky), que fueron abandonados/olvidados por sus autores.
Cómo eliminar el inconveniente: para todos los autores que desarrollen su biblioteca en una serie de artículos, establecer el requisito obligatorio de publicar la biblioteca como un proyecto público; en este caso, a partir del 3er artículo se debe establecer el requisito adicional de incluir en este proyecto +1 miembro de la mql-comunidad con el rol de Propietario antes de cada artículo posterior o +3 miembros con el rol de propietario antes de cada artículo posterior. Artículos o +3 participantes con el rol de Participante.
P.S. Es decir, en esencia - si las publicaciones de los autores no encuentran respuesta en los participantes de la mql-comunidad en forma de aquellos que quieran convertirse en co-propietarios del proyecto y seguir desarrollándolo, entonces esta biblioteca no es interesante para la comunidad y su desarrollo a través de Artículos no está sujeto a financiación. Que los autores la publiquen en Codebase y ya está.

10 .Enlace a la funcionalidad MQ-Messaging
Caso de uso 1: Después de reunir a los participantes, es necesario organizar un debate, que ahora se suele celebrar en Telegram o WhatsApp, es decir, fuera del ecosistema MQL5.com
Cómo eliminar este inconveniente: en la configuración del proyecto, crea una casilla de verificación para abrir un canal cerrado en el sistema MQ-Communications asociado al proyecto, al que se añadirán automáticamente los participantes del proyecto.


Sin eliminar los inconvenientes mencionados, cualquier agitación como la de este artículo no son más que eslóganes vacíos. No conducirán ni a la popularidad de la funcionalidad actual de los proyectos, ni a la monetización de MQ.
Lo que se hace ahora en el marco de los proyectos MQL - puede ser considerado sólo como un primer paso básico.
Llevar la funcionalidad de los proyectos MQL a un nuevo nivel de integración en el ecosistema MQL5.com requiere eliminar las deficiencias antes mencionadas.