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

 
MakarFX:

Gracias por la ayuda. Si no me equivoco, a pesar de que void OnTick() maneja cada tic, si usamosTimeSeconds() dentro de él, entonces void OnTick() no manejará cada tic, sino sólo el comienzo de cada vela de minuto y así ahorrará tiempo de ejecución de todo el código.

Dime, si en lugar de TimeSeconds(), escribes la condición if(Minute() != x), y al final x= Minute(), ¿tendrá el mismo efecto que TimeSeconds()?

Gracias

 
ANDREY:

Gracias por la ayuda. Si no me equivoco, a pesar de que void OnTick() maneja cada tic, si usamosTimeSeconds() dentro de él, entonces void OnTick() no manejará cada tic, sino sólo el comienzo de cada vela de minuto y así ahorrará tiempo de ejecución de todo el código.

Dime, si en lugar de TimeSeconds(), escribes la condición if(Minute() != x), y al final x= Minute(), ¿tendrá el mismo efecto que TimeSeconds()?

Gracias

bool FlagNewBar=false,
     FlagBegin=true;

void OnTick()

FlagNewBar=false;
   if(BarTime!=Time[0])
     {
      BarTime=Time[0];
      FlagNewBar=true;
     }


   if(FlagNewBar || FlagBegin)
     {
      FlagBegin=false;
.......

)

Es mejor, tendrás un temporizador también fuera de las sesiones. Y sólo en una vela nueva.

Pero, ¿por qué lo necesita así, ya que es más fácil colocar una parrilla de órdenes pendientes en el primer extremo? Esto es esencialmente lo mismo contigo. La primera condición es identificar el extremo y luego, si la tendencia va a la baja, las órdenes se colocarán después de 30 puntos.

Se necesita el marcado para trabajar inmediatamente después de ser lanzado en la carta. Si no es necesario, elimine la señalización.

 
Valeriy Yastremskiy:

Mejor aún, tendrá el temporizador de sesiones. Pero sólo en una vela nueva.

¿Y por qué lo harías, porque es más fácil colocar una parrilla de órdenes pendientes desde el primer extremo? Esto es esencialmente lo mismo contigo. La primera condición es identificar el extremo y luego, si la tendencia va a la baja, las órdenes se colocarán después de 30 puntos.

Se necesita el marcado para trabajar inmediatamente después de ser lanzado en la carta. Si no es necesario, elimine la señalización.

Mi orden se abre 30 pips hacia arriba desde el mínimo local, es decir, BID menos MINIMO >= 30 pips.
Gracias por su participación. Ahora voy a empezar a profundizar en sus consejos....

 
Valeriy Yastremskiy:

Mejor aún, tendrá el temporizador de sesiones. Pero sólo en una vela nueva.

¿Y por qué lo harías, porque es más fácil colocar una parrilla de órdenes pendientes desde el primer extremo? Esto es esencialmente lo mismo contigo. La primera condición es identificar el extremo y luego, si la tendencia va a la baja, las órdenes se colocarán después de 30 puntos.

Se necesita el marcado para trabajar inmediatamente después de ser lanzado en la carta. Si no lo necesitamos, eliminaremos la señalización.

Había un mínimo local. Y puse 10 órdenes pendientes a la distancia de 30,32,34...pips del mínimo local. Y entonces el mínimo local se actualizó antes de que el precio alcanzara la primera orden pendiente, y tengo que establecer todas las órdenes pendientes una vez más. Tal y como yo lo veo, establecer y restablecer las órdenes pendientes lleva mucho tiempo. Y estoy tratando de salvarlo.

 
Valeriy Yastremskiy:

Mejor aún, tendrá el temporizador de sesiones. Pero sólo en una vela nueva.

¿Y por qué lo harías, porque es más fácil colocar una parrilla de órdenes pendientes desde el primer extremo? Esto es esencialmente lo mismo contigo. La primera condición es identificar el extremo y luego, si la tendencia va a la baja, las órdenes se colocarán después de 30 puntos.

Se necesita el marcado para trabajar inmediatamente después de ser lanzado en la carta. Si no es necesario, elimine la señalización.

Me alegraría que mi temporizador se azotara. Pero como resultó en el probador de MT4, el temporizador no funciona.

 
ANDREY:

Gracias por la ayuda. Si no me equivoco, a pesar de que void OnTick() maneja cada tic, si usamosTimeSeconds() dentro de él, entonces void OnTick() no manejará cada tic, sino sólo el comienzo de cada vela de minuto y por lo tanto ahorrará tiempo de ejecución de todo el código.

Dime, si en lugar de TimeSeconds(), escribes la condición if(Minute() != x), y al final x= Minute(), ¿tendrá el mismo efecto que TimeSeconds()?

Gracias

      if(TimeMinute(TimeCurrent())!=x)
         x=TimeMinute(TimeCurrent();
 
Valeriy Yastremskiy:

Es mejor así,

¿Puede decirme por qué necesitamos una "FlagNewBar"?

¿No es lo mismo?

   if(BarTime!=Time[0])
     {
      ........
      BarTime=Time[0];
     }
 

MakarFX:

if(TimeMinute(TimeCurrent())!=x)
         x=TimeMinute(TimeCurrent();


Sigo sin entender si utilizar las funciones TimeSeconds() o TimeMinute() en este caso es fundamental y obligatorio? Al fin y al cabo, se puede obtener el mismo resultado que con estas funciones utilizando una sola función: Minute( )

if(Minute()!= x)
{

acción
x= Minuto();

}

Gracias.

 
ANDREY:

Sigo sin entender si utilizar las funciones TimeSeconds() o TimeMinute() en este caso es fundamental y obligatorio? Al fin y al cabo, se puede obtener el mismo resultado que con estas funciones utilizando una sola función: Minute( )

if(Minute()!= x)
{

acción
x= Minuto();

}

Gracias.

No es una cuestión de principios. Lo que más le convenga
 
MakarFX:

¿Puede decirme por qué es necesaria la "FlagNewBar"?

¿No es lo mismo?

Es un hábito de BASIC. Es más fácil usarlo). Puedes hacerlo sin él). Y si la condición se inserta en varios lugares, el registro es más corto.

Zy. Si la lógica es ramificada y con histéresis, no se puede prescindir de las banderas. Y es conveniente imprimirlos)