Discusión sobre el artículo "MQL5 Wizard: Cómo enseñar a un Asesor Experto a abrir las órdenes pendientes de cualquier precio"

 

Artículo publicado MQL5 Wizard: Cómo enseñar a un Asesor Experto a abrir las órdenes pendientes de cualquier precio:

El artículo describe un método para modificar el código de un módulo de señal de trading para la implementación de la funcionalidad que le permite ajustar órdenes pendientes con cualquier diferencia del precio actual: puede ser el precio de cierre o de apertura de la barra anterior o el valor de la media móvil. Hay muchas opciones. Lo importante es que puede establecer cualquier precio de apertura para una orden pendiente. Este artículo será muy útil para los traders que operan con órdenes pendientes.

Un Asesor Experto generado usando MQL5 Wizard sólo puede abrir órdenes pendientes hasta una distancia fija del precio actual. Esto significa que si la situación del mercado cambia (por ejemplo un cambio en la volatilidad del mercado), el Asesor Experto tendrá que ejecutarse otra vez con nuevos parámetros.

Esto no sería conveniente para muchos sistemas de trading. En la mayoría de los casos, el nivel de precios para órdenes pendientes está determinado de forma dinámica por un sistema de trading. Y la distancia del precio actual cambia constantemente. En este artículo, analizaremos cómo modificar un Asesor Experto generado mediante MQL5 Wizard para que pueda abrir órdenes pendientes para variar distancias del precio actual.

Fig. 1. Signal_PriceLevel=-50

Autor: Karputov Vladimir

 

Gracias al autor por el útil artículo, pero en mi opinión es necesario volver a comprobar el código, por ejemplo, me he dado cuenta de que en los métodos CMySignalEnvelopes::LongCondition y CMySignalEnvelopes::ShortCondition la llamada se realiza sobre un puntero NULL no comprobado al objeto m_signal, y en el método CMySignalEnvelopes::GetPriceLevelStopp se aplica la resta del valor actual de la variable local no inicializada temp....

Además, antes de adoptar su mecanismo propuesto de cambio de parámetros de apertura de órdenes, me gustaría asegurarme de su corrección.
Mis dudas son las siguientes:
en primer lugar, sus cambios de parámetros nivelan el valor de la configuración externa del Asesor Experto Signal_PriceLevel, lo que puede inducir a error al usuario,
en segundo lugar, este cambio pasa por el campo del módulo principal, lo que puede afectar al trabajo de otros módulos,
en tercer lugar, los métodos donde se realiza, funcionalmente sirven para un fin determinado.

En este caso, para cambiar los parámetros de las órdenes de apertura, la clase base CExpertSignal tiene métodos específicos, virtuales - OpenLongParams, OpenShortParams, que pueden haber sido destinados por los desarrolladores para ser anulados en las clases descendientes, módulos de señales personalizadas, y para permitir la llamada de estos métodos, es suficiente en la inicialización para llamar al método General y pasarle el índice del objeto de su clase.

En general, me gustaría que artículos como el tuyo o el mío, donde se proponen extensiones para las librerías del sistema, fueran acompañados de al menos un pequeño comentario de los desarrolladores MQ de estas librerías, porque no hay tantos artículos de este tipo.
.

 

gracias por tu código, es muy útil.

Por cierto, estoy tratando de ejecutar el código, el resultado incluye compra y venta en diferentes precios, pero la columna de beneficios es siempre CERO, incluso hay algunas ofertas.

esto sucede con diferentes simbolos y tiempos.

su ayuda es muy apreciada.

Archivos adjuntos:
 
Gracias por compartirlo, es un gran mérito para los recién llegados.
 
hongtao:
Gracias por compartirlo, es un gran mérito para los recién llegados.
Gracias por el análisis, vaquero !!!!!!
 
He leído que este EA establece órdenes pendientes a decenas de pips por encima y por debajo del nivel actual. ¿Puedo preguntar cómo establecer puntos de soporte y resistencia para órdenes pendientes en este EA de órdenes pendientes? Por ejemplo, calcular el precio mínimo, precio máximo de la línea k anterior, y establecer órdenes pendientes en el precio mínimo y máximo.
 

Hola Karputov

Gracias por este maravilloso tutorial. Quería preguntarte si es posible modificar este código para que el EA abra órdenes pendientes de cobertura.

Solo opero en Oro con la siguiente estrategia:

1. si 12 SMA cruza por encima de 20 SMA, entonces quiero abrir un conjunto de buy stop & sell limit orders como abajo;

Por ejemplo, el precio actual cuando la SMA cruza es $1300.00 entonces;

1er stop de compra @ 1302.00 y limite de venta @ 1302.50

2do stop de compra @ 1303.00 y límite de venta @ 1303.50

3er stop de compra @ 1304.00 y límite de venta @ 1304.50

4to stop de compra @ 1305.00 y límite de venta @ 1305.50


2. si 12 SMA cruza por debajo de 20 SMA, entonces quiero abrir un stop de venta y un límite de compra como se indica a continuación;

Por ejemplo, el precio actual cuando la SMA cruza es $1300.00 entonces;

1er stop de venta @ 1298.00 y limite de compra @ 1297.50

2do stop de venta @ 1297.00 y limite de compra @ 1296.50

3er stop de venta @ 1296.00 y límite de compra @ 1295.50

4º stop de venta @ 1295.00 y límite de compra @ 1294.50


Necesito que el EA acepte el tamaño de la orden manualmente y luego coloque las órdenes pendientes basadas en los cruces SMA anteriores. Actualmente estoy operando en la plataforma MT4 con un servidor virtual y he buscado por todas partes un EA para hacer esto. Lo único más parecido que he encontrado es su EA para la plataforma MT5, así que cambiaré a MT5 si es necesario. Espero que puedas ayudarme a codificar esto.


Gracias

Dev

 
Deven Parmar :

***

Necesito que el EA acepte el tamaño de la orden manualmente y luego coloque las órdenes pendientes basadas en los cruces SMA anteriores. Actualmente estoy operando en la plataforma MT4 con un servidor virtual y he buscado por todas partes un EA para hacer esto. Lo único más parecido que he encontrado es su EA para la plataforma MT5, así que cambiaré a MT5 si es necesario. Espero que puedan ayudarme a codificar esto.

***

Necesitas buscar un asesor adecuado en CodeBase. O póngase en contacto con Freelance. Tu pregunta no es sobre el tema de este artículo.

 
Vladimir Karputov:

Tienes que buscar un asesor adecuado en CodeBase. O ponerse en contacto con Freelance. Su pregunta no es sobre el tema de este artículo.

Entiendo que no es sobre el tema de este artículo, pero ¿es posible que puedas ayudarme a modificar y recodificar este EA para que funcione como yo quiero? No soy muy bueno con la codificación.

 
Deven Parmar :

Entiendo que no está en el tema de este artículo, pero ¿es posible que me puedas ayudar a modificar y recodificar este EA para que funcione como yo quiero? No soy muy bueno con la codificación.

Usted escribe en el artículo de discusión. Mejor crea un tema en el foro "Ayúdame a encontrar un asesor que trabaje con órdenes pendientes". Tal vez usted puede ayudar.

 
Vladimir Karputov:

Escribes en el artículo de discusión. Mejor crea un tema en el foro "Ayúdame a encontrar un asesor que trabaje con órdenes pendientes". A lo mejor te puede ayudar.

Ah vale, ahora entiendo lo que dices. Gracias