Errores, fallos, preguntas - página 2225

 

De alguna manera, me perdí el punto o ya lo he olvidado:

¿se devuelven normalmente los valores de los objetos en el alojamiento compartido?

Es decir, si la estrategia utiliza líneas, ¿puedo obtener el valor de esas líneas en el alojamiento virtual de las metacotizaciones?

 
Nikolai Semko:

No servirá de nada. Especialmente si el temporizador ya está activado antes de ser habilitado en la clase, por ejemplo, a intervalos de algunas horas o días. Entonces dicha clase arruinará toda la lógica del programa.

Idealmente, todo el trabajo con el temporizador debe estar envuelto en una clase, y todas las partes de un programa donde se necesite el temporizador, deben usarlo a través de esta clase.

De lo contrario, es imposible hacer un seguimiento.

 
Andrey Khatimlianskii:

Idealmente, todo el trabajo del temporizador debería estar envuelto en una clase, y todas las partes del programa que necesitan un temporizador deberían usarlo a través de esa clase.

De lo contrario, es imposible seguirle la pista.

sabiamente

 
Nikolai Semko:

sensible

Tendría sentido hacerlo a nivel de plataforma y permitirnos ejecutar varios temporizadores para diferentes necesidades )

 
Andrey Khatimlianskii:

Idealmente, todo el trabajo del temporizador debería estar envuelto en una clase, y todas las partes del programa que necesitan un temporizador deberían usarlo a través de esa clase.

De lo contrario, no podrás seguirlo.

Y en esta clase puedes vencer el OnTimer, EventSetMillisecondTimer, EventSetTimer, EventKillTimer, como fue hecho por Faber en Init_Sync.mqh. Y luego el control total. Buena idea. Gracias.

 
Nikolai Semko:

Puedes añadir OnTimer, EventSetMillisecondTimer, EventSetTimer, EventKillTimer a esta clase, como hizo Faber en Init_Sync.mqh. Y luego el control total. Buena idea. Gracias.

Esperando a KB ;)

 
Andrey Khatimlianskii:

Tendría sentido hacerlo a nivel de plataforma y permitirnos ejecutar varios temporizadores para diferentes necesidades )

Bien...
Eso sería mucho más fácil. Pero las formas fáciles son para los chicos, y los maridos no buscan formas fáciles :))

 
Andrey Khatimlianskii:

Esperando el QB ;)

Espero tenerlo en mis manos algún día...

 
Dmitri Custurov:

He probado tanto el feng shui como esto - el resultado es el mismo. El caso es que todo funciona el 99% de las veces, y yo necesito el 100%. Por el momento, lo principal para mí es conseguir la lógica correcta, y podré hacer la belleza más tarde.

Se me olvidó añadir sólo que el error mencionado anteriormente aparece en el probador. Cuando lo abro en un gráfico, no lo noto o sólo tengo que esperar al extremo requerido donde se producirá de nuevo el error.

Hay que comparar correctamente los reales

/*!
   \brief   Сравнение вещественных double
   \return true в случае равно, иначе false
*/
bool CompDouble(const double a_one,const double a_two) {
   if(fabs(a_one - a_two) <= DBL_EPSILON * fmax(fabs(a_one), fabs(a_two)))
      return true;    // числа равны с относительной точностью DBL_EPSILON
//---
   return false;
}
/*!
   \brief   Сравнение вещественных float
   \return true в случае равно, иначе false
*/
bool CompFloat(const float a_one,const float a_two) {
   if(fabs(a_one - a_two) <= FLT_EPSILON * fmax(fabs(a_one), fabs(a_two)))
      return true;    // числа равны с относительной точностью FLT_EPSILON
//---
   return false;
}
 
Gracias por el consejo. Está funcionando. Ya me preocupaba OrderSelect.