Discusión sobre el artículo "Experto comercial universal: El comercio en grupo y la gestión de la cartera de estrategias (Parte 4)"
Por favor, responda a un par de preguntas:
1. El autor en los primeros artículos escribió sobre la independencia de la plataforma... ¿Qué se debe hacer para adaptar este código a MT4?
2. Cuando el comercio de 10 instrumentos, 2-3 sistemas en cada uno, cada sistema tiene 10 parámetros, XML-cartera se convertirá en un archivo muy grande, que será difícil de editar a mano sin errores. Tal vez en este caso sería razonable para almacenar XML-cartera en diferentes archivos - un archivo para cada instrumento, que contiene información sobre los sistemas negociados en él y sus parámetros? Entonces sería más fácil de activar / desactivar (mediante el establecimiento de casillas de verificación en el archivo), tanto el comercio en el instrumento y TS individuales en este instrumento.
Muchas gracias a Vasiliy Sokolov por un trabajo tan minucioso.
Por favor, responda a un par de preguntas:
1. El autor en los primeros artículos escribió sobre la independencia de la plataforma... ¿Qué se debe hacer para adaptar este código a MT4?
2. Cuando el comercio de 10 instrumentos, 2-3 sistemas en cada uno, cada sistema tiene 10 parámetros, XML-cartera se convertirá en un archivo muy grande, que será difícil de editar a mano sin errores. Tal vez en este caso sería razonable almacenar XML-cartera en diferentes archivos - un archivo para cada instrumento, que contiene información acerca de los sistemas negociados en él y sus parámetros? Entonces sería más fácil de activar / desactivar (mediante el establecimiento de casillas de verificación en el archivo), tanto el comercio en el instrumento y TS individuales en este instrumento.
Desafortunadamente, la primera pregunta no es tan fácil de responder. En realidad, hay que escribir bastantes cosas para que el motor funcione en MT4. Lo haré pronto. Cuando porte el motor a MT4, publicaré el artículo correspondiente.
En cuanto a la segunda pregunta - es mejor almacenar todo en un archivo. XML es bueno porque te permite organizar las secciones en forma de árbol y no te permite confundirte incluso en un gran volumen de etiquetas. Otra cosa es que la edición manual de XML no sea bien acogida por la propia norma. Es un formato industrial para que los algoritmos se comuniquen entre sí. Lo ideal sería que cada archivo xml tuviera un bozal gui en forma de aplicación normal que permitiera editar los parámetros de la estrategia. Pero esto, aunque bastante simple (desde un punto de vista algorítmico) llevará bastante tiempo, así que por ahora editamos xml directamente.
Cada archivo xml debería tener un bozal gui en forma de aplicación normal que permitiera editar los parámetros de la estrategia. Pero esto, aunque bastante simple (desde un punto de vista algorítmico) llevaría bastante tiempo, así que por ahora editamos el xml directamente.
La solución ideal sería un botón "Editar" en el Panel de Usuario que abriera una ventana para editar la sección <Estrategia>... correspondiente . </Estrategia>:)
Sí, sería genial. Sólo necesito encontrar a alguien que esté dispuesto a dar el paso y hacerlo. No es difícil de hacer, incluso puedo decirte qué hacer.
¡Buenas tardes, Vasily!
Gran motor! ...por supuesto tengo que terminar algunas cosas (por ejemplo, el trabajo con los pedidos pendientes).... pero esto ya es tuning...
Tengo una pregunta... Por alguna razón la posición no se cierra cuando se llama al método m_trade.PositionClose()... error 10030, 10015 ocurre cuando se cierra una posición.
Entiendo que en comparación con MQL4 en términos de cierre de órdenes/posiciones todo ha cambiado mucho... Quiero entender cuál es el problema....
Vasiliy Sokolov, hay que señalar que usted ha hecho un tremendo trabajo de creación de un motor universal, y ha demostrado sólo un virtuoso dominio de la programación orientada a objetos. Así que el estudio de este material es útil incluso por sí mismo para mejorar sus habilidades de programación MQL5.
El motor contiene un montón de puntos necesarios y útiles y será demandado por muchos traders.
Actualmente estoy migrando mis robots del motor S#.Shell a MT5, y debo decir que el motor de trading que has creado implementa muchas características que me faltaban cuando me familiaricé con las plantillas estándar de Expert Advisor presentadas en Codebase. Además, muchas cosas están implementadas al mismo nivel, e incluso más genial, a pesar de que el producto mencionado es el trabajo de todo un equipo de programadores.
En este sentido, después de familiarizarme, decidí dejar de trabajar en mi código y portarlo a su motor.
Vasiliy Sokolov, hay que señalar que usted ha hecho un tremendo trabajo de creación de un motor universal, y ha demostrado sólo un virtuoso dominio de la programación orientada a objetos. Así que el estudio de este material es útil incluso por sí mismo para mejorar sus habilidades de programación MQL5.
El motor contiene un montón de puntos necesarios y útiles y será demandado por muchos traders.
Actualmente estoy migrando mis robots del motor S#.Shell a MT5, y debo decir que el motor de trading que has creado implementa muchas características que me faltaban cuando me familiaricé con las plantillas estándar de Expert Advisor presentadas en Codebase. Además, muchas cosas están implementadas al mismo nivel, e incluso más genial, a pesar de que el producto mencionado es el trabajo de todo un equipo de programadores.
En este sentido, después de familiarizarme, decidí dejar de trabajar en mi código y portarlo a su motor.
Gracias por su apreciación de mi propuesta.
Me gustaría señalar que el propio motor de negociación CStrategy se basa en la biblioteca estándar, empezando por las clases de organización de datos y terminando con la clase de negociación CTrade. La biblioteca estándar es buena, robusta y eficiente, pero no todas sus clases son realmente OO. Muchas de ellas no son más que envoltorios de funciones estándar. El objetivo del enfoque OO no es llamar a una función estándar de otra forma más compleja, sino realizar una tarea útil de la forma más eficiente posible, ocultando la complejidad de la implementación. Pero esto ya es una filosofía...
Gracias por su apreciación de mi enfoque propuesto.
Me gustaría señalar que el propio motor de negociación CStrategy se basa en una biblioteca estándar, a partir de las clases de organización de datos y terminando con la clase de negociación CTrade. La biblioteca estándar es buena, robusta y eficiente, pero no todas sus clases son realmente OO. Muchas de ellas no son más que envoltorios de funciones estándar. El objetivo del enfoque OO no es llamar a una función estándar de otra forma más compleja, sino realizar una tarea útil de la forma más eficiente posible, ocultando la complejidad de la implementación. Pero esto ya es una filosofía...
Dígame cómo utilizar el módulo MoneyManagement. No se muestra en ninguna parte de los ejemplos. ¿Se supone que los ajustes de MM son diferentes para cada estrategia o son los ajustes comunes para toda la cartera?
¿Por qué aparecen estas variables externas en MoneyManagement.mqh? No entiendo dónde se utilizan.
input ENUM_MM_TYPE TypeMM; // Тип управления MM
input double FixLotOrPercent; // Фикс. лот или %
Hola.
Interesante material. Lo he leído y decidí probarlo en la práctica. Estoy tratando de compilar el Expert Advisor Agent.mq5 adjunto en MT5 Build 1295. Todos los archivos están libres de errores, pero al final "Error interno del compilador". :( ¿Pueden decirme dónde buscar?
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso
Artículo publicado Experto comercial universal: El comercio en grupo y la gestión de la cartera de estrategias (Parte 4):
En la parte definitiva de esta serie de artículos sobre el motor comercial CStrategy, estudiaremos el funcionamiento simultáneo de múltiples algoritmos comerciales, la descarga de estrategias desde archivos XML, así como la presentación de un sencillo panel para la selección de expertos, que se encuentra dentro de un módulo ejecutable único, y veremos la gestión de los modos comerciales de los mismos.
Muy a menudo es necesario crear algoritmos que deben "llevarse bien" los unos con los otros, es decir, en el funcionamiento de cada algoritmo por separado no deberá influir el funcionamiento de otros algoritmos que tenga lugar en ese mismo momento. Esta situación se produce cuando es necesario combinar varios algoritmos en un solo módulo ejecutable ex5. A pesar de su aparente sencillez, estas tareas ocultan varias "trampas" significativas: las peculiaridades algorítmicas que deben ser tenidas en cuenta al construir el motor de estrategias comerciales.
El motor comercial CStrategy incluye un conjunto de algoritmos que implementan el trabajo conjunto de dos y más estrategias comerciales. En la cuarta parte de esta serie de artículos vamos a describirlos con detalle. Asimismo, crearemos una cartera comercial, un conjunto de expertos que comercian de forma simultánea con el objetivo de diversificar los riesgos comerciales. La clase CStrategyList pertenece al tipo de algoritmos que posibilitan el funcionamiento simultáneo de varias estrategias. Se trata de un contenedor de estrategias del tipo CStrategy. Permite cargar presentaciones de estrategias en XML y crearlas dinámicamente con la ayuda del método correspondiente de la fábrica de estrategias.
Con la ayuda de un vídeo demostrativo, veremos el proceso de testeo de varias estrategias en el simulador de estrategias de MetaTrader 5. Además, todas las estrategias basadas en el motor comercial descrito se conforman por defecto en un panel de usuario, con la ayuda del cual será bastante sencillo gestionar estrategias concretas directamente en el gráfico.
El gestor de estrategias CStrategyList
El segundo artículo de la serie "Experto comercial universal" se dedicó a la clase básica CStrategy y los módulos principales de los que consta. Gracias a esta clase y al funcional implementado en estos módulos, cada estrategia comercial heredada de ella posee una lógica comercial unificada. Sin embargo, la organización del proceso comercial con ayuda de robots no trata simplemente de la ejecución de órdenes comerciales. Es importante asegurarse de su funcionamiento conjunto, incluyendo el funcionamiento de varios algoritmos en un solo módulo ejecutable ex5.
Fig. 3. Lista de expertos cargados
Autor: Vasiliy Sokolov