Vasily, sinceramente esperaba algo mejor. En este opus, has conseguido desconcertar al lector con el significado de tu propuesta.
Pero podrías haberlo llamado mucho más simple - "Cómo operar Asesores Expertos con lógica MQL4 en la terminal MT5". Y esto es a lo que deberías prestar atención.
Si te hubieras centrado en esta piedra angular, habría sido mucho más compacto y comprensible.
Y así, primero has cargado con listas dinámicas y su aplicación para este caso concreto. Luego con una tabla de órdenes virtuales.
Toda la logica de MQL4 se resuelve en MQL5 utilizando la funcionalidad de DOS metodos!
1. Restablecimiento de las entradas stop loss y take profit desde el historial del terminal
2. Su control posterior cuando una de ellas se produce. 2. Su control posterior cuando uno de ellos se dispara o el oderer principal se borra.
Y luego, después de explicar estas dos funciones GENERALES , pasa a las matrices dinámicas y a la construcción de "modelos-mql4-expertos".
Es muy malo que no hayan descrito el trabajo con las órdenes pendientes. aunque no son más complicadas que las órdenes de mercado. sólo retrasan la colocación de las órdenes reales de stop-loss y take-profit.
Por alguna razón cargaron el lector con el archivo inútil <Time.mqh>, con realizaciones no muy bonitas de sus funciones.
Luego funciones para conteo de órdenes, control de lotes.
Parece que trataron de poner todos sus conocimientos de trabajo con expertos en el artículo y enterraron el propósito mismo del artículo bajo este crecimiento.
Bueno, y sobre los modelos dados - no he entendido cómo se utiliza stop-loss y take-profit en una orden. Ni en IACD ni en Bolinger he encontrado el uso de stops.
En general, no me gustó leer el artículo. hay una gran cantidad de peso innecesario que enterró una idea brillante.

- www.mql5.com
Sí, sin restaurar la lista de operaciones del historial de la cuenta (o de su propio archivo), resultó ser un juguete de probador.
Hay trabajo con órdenes pendientes, pero está escrito al final del artículo. (probablemente usted no tuvo la paciencia de leerlo :)).
En general, el artículo es muy difícil de entender. Podría estar mejor estructurado en cuanto a la presentación de la información.
to:Udmurt2
¿Dónde crees que está la lógica de los expertos en MQL4 en mi artículo? De la crítica escrita por usted me da la impresión de una completa falta de comprensión del material. En muchos aspectos es mi culpa, por supuesto, tal vez realmente debería haber sido estructurado mejor.
--------------------------------
¿Tiene alguna sugerencia concreta para mejorar la estructura del artículo?
Estoy de acuerdo, muchas cosas se quedaron "entre bastidores". Considere esta versión como 1.0. Esto es lo que está previsto introducir:
1. Serialización de datos basada en ficheros de datos;
2. Reconstrucción del historial de operaciones del modelo mediante el historial de pedidos;
3. 4. Descripción completa del modelo basada en órdenes pendientes;
4. Descripción del modelo de negociación mediante un sistema complejo de órdenes mutuamente contabilizadas;
5. Control dinámico de la eficiencia de cada modelo (eliminación de modelos ineficientes de la lista de modelos).
6. Retirada de funciones externas de los modelos de negociación, por ejemplo, funciones de gestión de capital.
7. Soporte multithreading (parcialmente utilizado ahora, gracias a la paralelización interna de MT5).
...
Como puede ver, el material que queda por considerar es tan amplio que ya es hora de escribir otro artículo al respecto, la segunda parte por así decirlo. Este artículo no es un artículo de goma, en cualquier caso, creo que las tareas que me propuse han sido resueltas. Y aquí Udmurt2 está particularmente equivocado. La base del planteamiento propuesto son las listas dinámicas, no trabajar con órdenes pendientes en absoluto (como le pareció a él por alguna razón). Por eso se les presta tanta atención. En general, no habría ninguna estrategia que no pudiera resolverse sin utilizar órdenes pendientes. Sin embargo, el enfoque que he propuesto no impone ninguna restricción al uso de órdenes pendientes que simulen los mismos stops y take-outs. Sin embargo, en este caso se requieren comprobaciones adicionales y subsistemas de programa, en particular, una estructura que describa el evento Trade() sería muy útil. Y mientras no exista tal estructura (porque MQL5 está en desarrollo), considero una completa locura escribir sistemas de control para posibilidades inexistentes.
Por cierto, en el caso más sencillo se puede escribir un restaurador de operaciones a partir de ficheros en unas horas. Sin embargo, esta cuestión no fue considerada en el artículo, porque quiero que esta solución sea bien pensada, no sólo una escrita apresuradamente. En cualquier caso, será una de las muchas cuestiones interesantes que se resolverán en la segunda parte.
MQL5 se está desarrollando ahora. El enfoque propuesto, al igual que MQL5, también se desarrollará con el tiempo y ganará oportunidades. A algunos les puede parecer que en la fase actual es un juguete para un probador. En este caso, podemos decir que MetaTrader 5 es también un juguete para cuentas demo. Pero créanme, no pasará mucho tiempo y MT5 se convertirá en un estándar de facto, y el enfoque que he propuesto será una poderosa solución para el comercio multidivisa/multihorario/multisistema. Lo principal ahora es entender los fundamentos. Estos fundamentos son los que he descrito en este artículo. Una vez que los entiendas, podrás escribir fácilmente tu propio modelo de negociación utilizando todas las ventajas de las órdenes pendientes y memorizando las operaciones en archivos.

- www.mql5.com
¿Dónde crees que está la lógica de los expertos MQL4 en mi artículo?
Por lo tanto, aquí están las principales tareas que tendremos que resolver:
- Un Asesor Experto debe operar sobre la base de varios sistemas de comercio a la vez. Al mismo tiempo, debería ser igual de fácil operar tanto con uno como con varios sistemas de trading;
- Todos los sistemas de negociación incluidos en el Asesor Experto no deben entrar en conflicto entre sí. Cada sistema de negociación debe procesar sólo su contribución a la posición agregada, y sólo sus órdenes;
- Cualquiera de los sistemas agregados debe ser igualmente fácil de negociar tanto en un marco temporal del instrumento como en todos los marcos temporales a la vez.
- Cualquiera de los sistemas agregados debe ser igualmente fácil de operar tanto en un instrumento de negociación como en todos los instrumentos disponibles a la vez.
y por todos estos puntos la lógica del terminal MT4 está clara y absolutamente identificada
1. puede dirigir simultáneamente varios Asesores Expertos gracias al magik y a la ausencia de posición neta.
2. los Expertos no entran en conflicto entre sí gracias al mismo magik y a la ausencia de posición neta.
3. todo se negocia en cualquier marco temporal. Todo se negocia en cualquier marco temporal
4. Todo se negocia en cualquier instrumento.
PREGUNTA:¿Qué has escrito de nuevo que no esté en el terminal MT4?
Escribí anteriormente que usted podría construir su razonamiento de la base de MQL4 y desarrollar su aplicación. por lo que sería mucho más claro lo que quieres decir.
Yo lo construiría paso a paso, desde la contabilización de stops mediante magik-ticket hasta la creación de un modelo de Asesor Experto de trading-mt4
y sólo entonces pasaría a los métodos de control de varios Asesores Expertos. (listas/no listas es lo que uno tenga ganas de usar)
.
Considere esta versión como 1.0. Esto es lo que está previsto introducir:
2. Reconstrucción del historial de operaciones modelo Reconstrucción del historial de operaciones del modelo mediante el historial de órdenes;
3. 3. Descripción completa del modelo basado en órdenes pendientes;
4. Descripción del modelo de negociación utilizando un sistema complejo de órdenes contadas mutuamente;
los puntos 2-4 son los que deberiais haber resuelto inmediatamente en este articulo. todo lo demas es del malo. y podria haberse dejado a criterio del programador o en el segundo articulo.
las listas dinamicas son solo uno de los metodos de su control y contabilizacion. que puedes hacer con un array ordinario.
Dime, ¿qué otro enfoque propuesto tiene tal flexibilidad y controlabilidad?
cualquier experto MT4 :)))
C-4:
Puede parecer a algunas personas que en la etapa actual es un juguete para un probador. En este caso, podemos decir que MetaTrader 5 es ahora también un juguete para cuentas demo.
Sí, lo es ;)
Pero MT se está ultimando. Y el código propuesto en el artículo podría haber sido escrito para cuentas reales.
Por cierto, ¿cómo es el Asesor Experto del Campeonato? ¿Ha sufrido reinicios?
Vasily, debes estar trabajando demasiado. A veces hay que volver al principio y rehacerlo todo. Ya estoy convencido por milésima vez de que la gente tiende a complicarlo todo. Mi recomendación amistosa para ti - rehaz tus clases base sobre la lógica madre del funcionamiento del terminal MT4 con un dispositivo lineal. Muchas cosas quedarán más claras.
De lo contrario tendré que escribir el segundo artículo :)
Sí, lo es ;)
Pero MT se está ultimando. Y el código propuesto en el artículo podría haberse escrito inmediatamente con vistas al real.
Por cierto, ¿cómo está el EA Championship? ¿Ha sufrido con los reinicios?
Ha sufrido, pero no significativamente. Por supuesto, tenía incorporado un manejador de eventos de inicialización/desinicialización. Sin embargo, no tuve en cuenta una cosa: la inicialización y desinicialización pueden tener lugar en horas no laborables, por ejemplo el sábado, que es lo que dispuso la organización del campeonato. Esto se soluciona con unas pocas líneas de código, pero no me di cuenta de una combinación tan insidiosa (bueno, no se puede tener todo en cuenta), así que en algún lugar se perdió 1 montón.
Intentaré escribir una serialización de datos sencilla en un futuro próximo e insertarla en el artículo (en principio me llevará dos días). Con él será un producto de pleno derecho para el trabajo en cuentas en tiempo real (demo y real). Así que usted dice que esto es un juguete para un probador. Le falta sólo el 5-6% del código de mantenimiento para un uso fiable en cuentas reales.
También planeamos introducir algo así: digamos que hay un modelo de negociación abstracto. Utiliza sólo órdenes pendientes (stops, take-outs, puntos de entrada). Habrá dos formas de utilizarlo en el motor: todos los puntos de entrada serán virtuales, ocultos a los ojos del broker. La segunda opción: todos los take stops y puntos de entrada estarán en órdenes pendientes, para aumentar la fiabilidad. Es interesante que para cada modelo habrá dos tipos de virtualización (pendiente y virtual). Es decir, será así: switch virtual_orders=true; - y todas las órdenes son virtuales, ocultas a los ojos del broker; switch virtual_orders=false; - y todas las órdenes se convierten mágicamente en pendientes. Lo mejor es que no se requerirá ningún soporte especial por parte del modelo, todo se implementará a nivel del motor. Los modelos sólo necesitarán especificar el tipo de orden para los puntos de entrada, el tipo de stops y tomas se elegirán independientemente, dependiendo del switch virtual_orders.

- www.mql5.com
a:Udmurt
Por favor, no me digas lo que debería haber hecho y lo que no. No sirvo a sus intereses ni trabajo para usted.
Considero que nuestra conversación no tiene sentido, porque ni siquiera comprendes del todo la esencia de tus propias afirmaciones. Demuéstrame que realmente entiendes MQL4 y escribes un experto en trading sobre él, por ejemplo, operando simultáneamente 500 modelos diferentes de trading. Tomemos 5 estrategias * 20 instrumentos * 5 marcos temporales como ejemplo. Cuando tu Expert Advisor funcione claramente en ellos al menos en el tester, entonces y sólo entonces admitiré que las tonterías recalentadas que estás diciendo no son realmente tonterías, sino observaciones útiles de una persona inteligente. Ahora quiero pedirte un favor: no me molestes por nada y ni siquiera intentes comunicarte conmigo sin el código fuente de este experto.

- 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 Crear Multi-Expert Advisors basados en los modelos de trading:
El uso del enfoque orientado a objetos de MQL5 simplifica enormemente la creación de Expert Advisors multidivisa, multisistema y con multiperíodo. Imagine su único EA operando con docenas de estrategias de trading, con todos los instrumentos disponibles y todos los períodos de tiempo posibles. Además, se prueba el EA fácilmente en el probador, y dispone de uno o varios sistemas funcionales de gestión de dinero para todas las estrategias que lo componen.
Autor: Василий Соколов