Errores, fallos, preguntas - página 676

 

costy_,

¿Intentar reiniciar después de una inicialización fallida y entrar en un bucle infinito?

I en Oninite inicializar las variables (asignar valores a las variables) relativas al nivel global del programa. Poder utilizar un código de retorno distinto de cero me permite imprimir la causa del fallo y detener el programa de una manera decente (es decir, detenerlo a través de OnDeinit). Esto es bastante satisfactorio.

 

No es perpetuo, hasta la finalización con éxito de la initio. poiticovo (como indicador) advertencia en la ayuda.

¿Comprueba las variables glob. después de la inicialización para ver si se han inicializado correctamente?

¿Quieres intentar inicializarlos unas cuantas veces más si la inicialización falla?

 

Gracias a los que han respondido. Este código resultó ser un corte del EA multidivisa - se encontró que el probador no quiere comerlo.

Nuevos detalles: la caída se produce sólo el 7 y 8 de marzo de 2011, sólo en Alpha forex

 

costy_

 Не вечный, до удачного завершения иниц. потиково (т.к. индикатор) предупредив в справке.

Por lo visto, no entiendo tu intención, es decir, no entiendo qué es la "inicialización en Oninit() po-tikovo", y qué es la" inicializaciónexitosa en Oninit() po-tikovo".

¿Comprueba las variables globales después de la inicialización para asegurarse de que se han inicializado correctamente?

Otro concepto que es nuevo para mí: "comprobar las variables globales de un programa después de la inicialización para comprobar la coherencia con la inicialización".

Pero puedo responder a la pregunta. La comprobación del éxito en la asignación de valores a las variables globales de un programa (por ejemplo, los manejadores) se produce dentro de la función Oninit(). En caso de fallo, ejecuto el bucle final allí (en Oninit) si es necesario. En el caso de un fallo final al asignar valores a la variable dentro de Oninit(), envío un mensaje a la impresora. Entonces, o bien encuentro mi error en el código o lo comunico en el foro.

No compruebo el tipo de "coincidencia de inicialización" después de la terminación de la función Oninit(), porque no tiene sentido cuando la función Oninit() termina con éxito.

Y qué pasa con tu ejemplo: allí se declara una variable local bool err. ¿Piensa inicializar la variable local de la función Oninit() de alguna manera?

¿Quieres intentar inicializarlos unas cuantas veces más si fallan?

Lo hago todo el tiempo dentro de la función Oninit(), hasta que termina.

Permítanme añadir. Por "inicialización" dentro de este hilo me refiero a la asignación de valores a las variables globales dentro de la función Oninit (es decir, utilizando la jerga). Estoy añadiendo, porque el terminal del cliente comienza su propio proceso de inicialización de las variables globales antes de enviar el evento Init.

 

ilunga

De hecho, el código y las condiciones de prueba son mejores en el servicentro.

 

En la funcióntrali_vali_for_indicator() sincronizando múltiplesMqlRates EURUSD[],AUDUSD[],GBPUSD[],NZDUSD[],USDCAD[],USDCHF[],USDJPY[];

no hay manera de hacerlo a la primera, en teoría una vez sincronizado y hay estructuras ejemplares con xxxxxx[0].time == yyyyy[0].time== ..... zzzzzzzz[0] más sincronización por tiempo > xxxxxxxx[0].tiempo.

He creado mi función init(), ¡pero se trata deOnInit()!

SiOnInit() falla, el arranque no se producirá (si el motor de arranque no arranca >> girar el cigüeñal a mano), entonces el usuario necesita

  • lista de indicadores >> reiniciar el ind.
  • quitar ind. >> conectar ind.
  • llamada de apoyo >>
  • otros

En ticko es >> " al no completar f.OnInit()genera un eventoDeinit con el código de causaREASON_INITFAILED"+ con la subsiguiente reinicialización en el siguiente tick hasta la reinicialización exitosa. +

(Por qué hacer interrupción - deinit si el indicador mostrará erizos de todos modos).

Esto es más bien una pregunta para los desarrolladores...

 
abolk:
¿Qué pasa con el problema de la imposibilidad de manejar el botón "Responder" en el foro? ¿Van a arreglarlo? Algún tipo de silencio de apoyo. Por lo menos, una tranquilidad como "hacer/no hacer".
Arreglado, gracias a todos los que han prestado atención.
 

costy_:

Yo mismo evito el problema de la sincronización, así que no puedo aconsejarte nada. Pero el problema en sí se ha discutido en el foro muchas veces. Búsquelo con una palabra clave.

 
Yedelkin:

Yo mismo evito el problema de la sincronización, así que no puedo aconsejarte nada. Pero el problema en sí se ha discutido en el foro muchas veces. Busque la palabra clave de búsqueda.

Gracias, voy a echar otro vistazo.

 

Hola, ¿podríais aconsejarme?

Estoy tratando de añadir un indicador ADX para el módulo de comercio. Estoy tratando de hacer una señal de dos medias móviles con la confirmación de ADX. Este código lo copié de otro módulo, en la versión original todo funciona naturalmente, lo bajé de este sitio y el código en sí no debería dar errores.

//+------------------------------------------------------------------+
//| Create ADX indicator.                                            |
//| INPUT:  indicators -pointer of indicator collection.             |
//| OUTPUT: true-if successful, false otherwise.                     |
//| REMARK: no.                                                      |
//+------------------------------------------------------------------+
bool CSignalMY_MA_ADX::InitADX(CIndicators* indicators)
  {
//--- create ADX indicator
   if(m_ADX==NULL)
      if((m_ADX=new CiADX)==NULL)
        {
         printf(__FUNCTION__+": error creating object of the ADX");
         return(false);
        }
//--- add ADX indicator to collection
   if(!indicators.Add(m_ADX))
     {
      printf(__FUNCTION__+": error adding object of the ADX");
      delete m_ADX;
      return(false);
     }
//--- initialize ADX indicator
   if(!m_ADX.Create(m_symbol.Name(),m_period,m_period_ADX))
     {
      printf(__FUNCTION__+": error initializing object of the ADX");
      return(false);
     }
//--- ok
   return(true);
  }

Pero debo haber hecho algo mal y me salen errores como estos:

'==' - operación ilegal usar SignalADX-MA.mqh 183 12

'CiADX' - type mismatch SignalADX-MA.mqh 184 21

'=' - operación ilegal usar SignalADX-MA.mqh 184 16

'm_ADX' - conversión de parámetros no permitida SignalADX-MA.mqh 190 23

'm_ADX' - puntero de objeto esperado SignalADX-MA.mqh 193 14

Por favor, ayúdenme, les estaré muy agradecido. Puedo adjuntar el archivo aquí si lo necesitas, no te preocupes es un desastre, estoy aprendiendo y todo el proceso consistió en que corté y pegué de nuevo algunos módulos de comercio diferentes para el EA.


Razón de la queja: