Discusión sobre el artículo "MQL5 Wizard: Cómo crear un módulo de señales de trading" - página 3

 
En la nueva versión del MQL5 Wizard, el formato de los módulos de señal ha cambiado. Mira aquí para obtener información - https://www.mql5.com/ru/forum/3724/66962#comment_66962.
Обсуждение статьи "Мастер MQL5: Новая версия"
Обсуждение статьи "Мастер MQL5: Новая версия"
  • www.mql5.com
Изменения в архитектуре сигналов позволяют теперь создавать торговые роботы на основе комбинации различных рыночных моделей.
 
Rosh:
En la nueva versión del MQL5 Wizard, el formato de los módulos de señal ha cambiado. Mire aquí para obtener información - https://www.mql5.com/ru/forum/3724/66962#comment_66962.

He hecho estos cambios, el asistente ve el nuevo módulo de señal, pero el Asesor Experto resultante no opera por alguna razón. ¿Puedo utilizar la depuración para llegar a las funciones CheckOpenShort/CheckOpenLong?
 
Miré a través del código de varias señales listas de la carpeta de señales, no hay ninguna implementación de las funciones CheckOpenShort/CheckOpenLong. En lugar de ellos se utilizan
//--- métodos para comprobar si los modelos de mercado están formados
   virtual int       LongCondition();
   virtual int       ShortCondition();
¿he entendido bien? Al escribir mi propio módulo, ¿necesito implementarlas también? ¿Cuándo aparecerá la descripción de la clase CExpert?
 
beginner:

Miré a través del código de varias señales listas de la carpeta de señales, no hay ninguna implementación de las funciones CheckOpenShort/CheckOpenLong. ¿En lugar de ellos se utilizan correctamente entiendo?
Sí, eso es correcto.
 
Rosh:
Sí, así es.

Para ser honesto, estoy un poco confundido. Hay funciones CheckOpenShort/CheckOpenLong en la clase CExpertSignal. Tú usas otras funciones en tus señales, y tampoco entiendo dónde se llaman en CExpert. El problema es que tomé una señal ya hecha del artículo sobre cómo escribir mi propio módulo de señales, hice que el asistente la viera (probablemente puedas hacer cambios en el artículo sobre el nuevo formato) y obtuve un Asesor Experto con esta señal, pero no opera, ni una sola operación en el probador durante un año.

Las funciones se llaman en el constructor - está claro, pero ¿por qué no se utilizan funciones estándar?

 
Por favor, vea lo que está mal. No comerciar con el probador.
Archivos adjuntos:
1.mq5  7 kb
 
beginner:

Por favor, vea lo que está mal. No es el comercio en el probador.

Este módulo es el comercio.

Para su caso, reemplace para largos

if(  High(1) > High(2) && Low(2)>Low(3) && High(2)<High(3) && Close(3)>Open(3) ){
     return(100);
   }
//--- условие не выполнено
   return(0);  
  }

por

Open(1)< Open(2)

for shorts - encuéntrelo usted mismo

Archivos adjuntos:
 
gdtt:

este módulo comercia

para su caso, sustituya los largos

por

por cortos, lo encontrarás tú mismo.

¡Sí lo hace, gracias! Pasé el día, creo que hice todo como en el artículo, ¿cuál es mi error?
 
beginner:
Sí, gracias. Pasé el día, creo que hice todo como en el artículo, ¿cuál es mi error?

En el nuevo asistente comparado con el anterior hay cambios muy grandes,

virtual bool CheckOpenLong(double& price,double& sl,double& tp,datetime& expiration);

virtual bool CheckOpenShort(double& price,double& sl,double& tp,datetime& expiration);

Entendí lo siguiente: debe haber un objeto de la clase CExpertSignal entre varios objetos utilizados en el Asesor Experto con el atributo principal, puede utilizar estas funciones. otros objetos participan en la apertura de posiciones a través de las funciones

virtual int ShortCondition(); //comprobar la condición de apertura de venta

virtual int LongCondition(); //comprobar la condición de apertura de una posición de Compra

Para poner los puntos sobre las íes, necesitamos un artículo sobre cómo escribir tu propio módulo de señales en el nuevo asistente, así que lo estamos esperando.

 
Sí, falta el artículo y probablemente haya que actualizar la documentación de CExpertSignal.