Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 507

 
lil_lil:

Indicador MTF, pongo H1 en la configuración externa, lo adjunto al gráfico M15. La señal parpadea en la barra 4. Cuando se cierra la barra H1, la señal no parpadea, en M15 la señal deja de parpadear en la barra 4. Si lo pongo en М1, respectivamente, deja de parpadear en la barra 60. por lo que i+N debería calcularse para que N varíe en función del periodo seleccionado en los ajustes y en el gráfico del periodo, en el que se adjunta el indicador.

¿Tienes el código completo?

 

Buenas tardes. No puedo entenderlo, apologistas de la OOP, por favor ayuden.

Así, hay una clase, por ejemplo CCandle. En esta clase, habrá los mismos parámetros para todos los objetos de esta clase. Estos parámetros también pueden ser inicializados en OnInit() y serán los mismos para todos los objetos de esta clase. Entonces, cómo puedo hacerlo correctamente, para que no se inicialicen cada vez al crear un nuevo objeto. Supongamos que todos ellos en la función CCandle::Init(). No puedo entenderlo.

 
Juer:

Buenas tardes. No puedo entenderlo, apologistas de la OOP, por favor ayuden.

Hay una clase, por ejemplo CCandle. En esta clase, habrá los mismos parámetros para todos los objetos de esta clase. Estos parámetros también pueden ser inicializados en OnInit(), y serán los mismos para todos los objetos de esta clase. Entonces, cómo puedo hacerlo correctamente, para que no se inicialicen cada vez al crear un nuevo objeto. Supongamos que todos ellos en la función CCandle::Init(). No puedo entenderlo.

Esto se hace en la lista de inicialización, que se encuentra en el constructor de la clase:

class CCandle
{
   int      m_nA;
   double   m_fB;
   datetime m_dtC;


   void CCandle::CCandle(void);
};

CCandle::CCandle(void)
            : m_nA(0)
            , m_fB(0.0)
            , m_dtC(0)
{
}
 
Juer:

Buenas tardes. No puedo entenderlo, apologistas de la OOP, por favor ayuden.

Así, hay una clase, por ejemplo CCandle. En esta clase, habrá los mismos parámetros para todos los objetos de esta clase. Estos parámetros también pueden ser inicializados en OnInit() y serán los mismos para todos los objetos de esta clase. Entonces, cómo puedo hacerlo correctamente, para que no se inicialicen cada vez al crear un nuevo objeto. Supongamos que todos ellos en la función CCandle::Init(). No puedo entenderlo.

Hacer un constructor paramétrico en una clase, y pasarle los parámetros necesarios para inicializar el objeto
 
No entendí nada. La inicialización de un objeto no es un problema. ¿Cómo puedo inicializar una vez todos los objetos de una clase determinada? Es decir, se crea un nuevo objeto y los parámetros ya están inicializados con valores, sin tener que inicializarlos cada vez para cada nuevo objeto.
 
Colegas, por favor, aconsejen si es correcto utilizar eloperador return desde el cuerpo del bucle? Por ejemplo, tenemos una función con un bucle. En algún momento necesitamos devolver algún valor y así salir de la función. La forma correcta es usar break y luego return(valor). Pero, ¿podemos utilizar return(value) de inmediato?
 
Juer:
No entendí nada. La inicialización de un objeto no es un problema. ¿Cómo puedo inicializar una vez todos los objetos de una clase determinada? Es decir, se crea un nuevo objeto y los parámetros ya están inicializados con valores, sin tener que inicializarlos cada vez para cada nuevo objeto.
Los parámetros se pueden inicializar a partir de los existentes.
 
lsv107:
Colegas, por favor, aconsejen si es correcto utilizar eloperador return desde el cuerpo del bucle? Por ejemplo, tenemos una función con un bucle. En algún momento necesitamos devolver algún valor y así salir de la función. La forma correcta es usar break y luego return(valor). Pero, ¿podemos devolver(valor) de una vez?
Nada le impide salir del bucle.
 
Artyom Trishkin:
Los parámetros se pueden inicializar a partir de algo que existe.

Es una pregunta sencilla, ¿no? La cuestión es inicializar lo mismo.

 
Artyom Trishkin:
No hay nada que le impida salir del bucle.

Sólo temía que el bucle permaneciera activo dentro de la función y que el operador de retorno sólo transfiriera el control del bucle activo al punto de llamada, existiendo el riesgo de desbordamiento de la pila si se volvía a llamar a la función (recursión). Este era exactamente el caso en Pascal y, por las reglas de la programación estructural en general, los bucles deben terminar uno tras otro y luego se sale de la función. Si return, junto con una función, termina el bucle, estupendo, pero debería haberlo aclarado, ya que he vuelto a programar después de un largo parón.

Razón de la queja: