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

 
@Konstantin Nikitin Lo tengo, ¡gracias!
 
Rewerpool:
@Konstantin Nikitin ¿Sugieres llevar estos parámetros fuera del cuerpo de la función? ¿O dejarlos como he escrito en la última captura de pantalla?
Por supuesto, deben estar fuera de la función. Se actualizan y comparan constantemente llamando a esta función.
 
Konstantin Nikitin:

Póngalo a nivel global. Siempre serán iguales a 0, porque cada vez que se llame a la función, se declarará una nueva.

Estática - no.
 
Konstantin Nikitin:
Por supuesto, está fuera de la función. Se actualizan y comparan constantemente llamando a esta función.
Te estás incitando a ti mismo con poca idea de lo que...
 
Artyom Trishkin:
Te vas diciendo poco a poco lo que...

¿Revisaste originalmente la función en sí?

void NOTIFICATION()
{

int DayT=0,BarTime;
 if(DayT!=Day())// Если новый день - нужно опросить
 {
 DayT=Day();
//......
}
if (BarTime==Time[0]) // Если новый бар - нужно опросить
{
   BarTime=Time[0];
//......
}
}

¿Y cómo se supone que va a cambiar aquí DayT BarTime? Siempre serán de cuerda 0.

if(DayT!=Day())

Siempre funcionará como la verdad, y

if (BarTime==Time[0])

como una mentira.

 
Konstantin Nikitin:

¿Has mirado la función por ti mismo inicialmente?

¿Y cómo se supone que va a cambiar aquí DayT BarTime? Siempre serán 0.
Has dicho que los pongas en variables globales. Es suficiente para que se queden estáticos, no para arrastrar todo a un montón.
 
Artyom Trishkin:
Dijiste que los pusieras en variables globales. Es suficiente para que se queden estáticos, no para ponerlos todos en una pila.
Depende de su gusto, pero no fueron declarados correctamente en primer lugar.
 

Resulta que también se puede hacer esto????

void NOTIFICATION()
{
static int DayT=0;
static datetime BarTime;

 if(DayT!=Day())// Если новый день - нужно опросить
 {
 DayT=Day();
if(Push_On&&DAY_HIGH())SendNotification("ДЕНЬ ЗАКРЫЛСЯ ВЫШЕ ЛИНИИ -" + Symbol());
if(Push_On&&DAY_LOW())SendNotification("ДЕНЬ ЗАКРЫЛСЯ НИЖЕ ЛИНИИ -" + Symbol());
}
if (BarTime==Time[0]) // Если новый бар - нужно опросить
{
   BarTime=Time[0];
if(Push_On&&DAY_HIGH()&&PATERN_BUY())SendNotification("ДЕНЬ ЗАКРЫЛСЯ ВЫШЕ ЛИНИИ + ПАТТЕРН -" + Symbol());
if(Push_On&&DAY_LOW()&&PATERN_SELL())SendNotification("ДЕНЬ ЗАКРЫЛСЯ НИЖЕ ЛИНИИ + ПАТТЕРН -" + Symbol());
}
}
 
Y si los llevo a un nivel global, también se pueden consultar desde otras funciones
 
Rewerpool:
Y si los pongo a nivel global, también se pueden consultar desde otras funciones
No es el enfoque correcto.