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 formadosvirtualint LongCondition();
virtualint ShortCondition();
¿he entendido bien? Al escribir mi propio módulo, ¿necesito implementarlas también? ¿Cuándo aparecerá la descripción de la clase CExpert?
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?
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?
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.
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.
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í, 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 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
for shorts - encuéntrelo usted mismo
este módulo comercia
para su caso, sustituya los largos
por
por cortos, lo encontrarás tú mismo.
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.