Retrasa la alerta varios segundos - página 3

 
GumRai:

¿Cuál es su punto?

¿Por qué no? No hay nada malo en usar Time[0] para detectar una nueva barra.

Mi código está bien. Quiere 3 segundos después del inicio de la barra.

A veces, cuando el historial se actualiza, Time[0] no funciona.

https://forum.mql4.com/ru/65066/page6#1016370

(rus)

 
omissamf:
Hola chicos, ¡¡¡sois geniales !!!
No sé cómo agradeceros vuestra colaboración.
El código publicado eevviill funciona muy bien, a eso me refería.
El código de GumRai en cambio hace repintar y dar la señal cada vez que el RSI cruza los niveles 30/70.
Inserto el código que funciona según las sugerencias de eevviill, esperando que sirva un poco más.

Gracias por todo, Massimo.


Un placer.
 
Hola eevviill, sólo una curiosidad: ¿a qué te referías con:
P.D. No usar el Tiempo [0], usar las Barras?
¿Es posible cambiar el coodice que publicó GumRai?
es sólo mi curiosidad, porque estoy tratando de entender y estudiar el lenguaje.
Gracias, Max.
 
eevviill: P.D. No use Tiempo[0], use Barras
No use barras, puede cambiar en un refresco (nuevo historial descargado.) No use volumen (puede perder ticks) Siempre use tiempo.
 
omissamf:
Hola eevviill, sólo una curiosidad: ¿qué quieres decir con:
P.D. No usar Tiempo [0], usar Bares ?
¿Es posible cambiar el coodice que publicó GumRai?
es sólo mi curiosidad, porque estoy tratando de entender y estudiar el lenguaje.
Gracias, Max.

En mi código Bares. Puedes comprobarlo.

Para detectar una nueva barra sólo se utiliza Bars.

 
WHRoeder:
No utilice las barras, puede cambiar en un refresco (nueva historia descargada.) No utilice el volumen (se puede perder ticks) Siempre use el tiempo.

¿Y? ¿Los bares siguen igual?

Usted está equivocado.

 
omissamf:
El código de GumRai en cambio hace repaint y da la señal cada vez que el RSI cruza los niveles 30/70.


¿Te refieres a este ejemplo que he publicado?

   static datetime BarStart=0;
   static bool check=false;
   if(BarStart!=Time[0])
     {
      BarStart=Time[0];
      check=true;
     }
   if(check && TimeCurrent()>=Time[0]+3)
     {
      check=false;
      //Check Condition
     }

No creo que esto cause ningún repintado o señales adicionales

Debe ser tu código. Posiblemente hayas colocado código para comprobar condiciones y alertas fuera del

   if(check && TimeCurrent()>=Time[0]+3)
     {
      check=false;
      //Check Condition
     }

bloque.

 
eevviill:

¿Y? ¿Los bares siguen igual?

Estás equivocado.

Si se recibe un nuevo historial, las barras cambian. Sin embargo, eso no indica al EA que se ha formado una nueva barra.

 
WHRoeder:

Si se recibe un nuevo historial, las barras cambian. Sin embargo, esto no indica al EA que se ha formado una nueva barra.



Si la historia del gráfico se actualiza y el número de barras aumenta, entonces las barras no cambian ????

 

He editado los dos últimos mensajes. Por favor, dejad de discutir, no se consigue nada.

Seguiré utilizando Time[0] para detectar una nueva barra ya que nunca he tenido problemas con ella.

Para ser honesto, no sé qué pasa cuando Bars alcanza el máximo en la historia, así que no usaré Bars. Si eevviil prefiere usar Bars, es cosa suya. WHRoeder es un contribuyente extremadamente experimentado y valioso en este foro y cualquier cosa que diga no debe ser desestimada a la ligera.