[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. No puedo ir a ningún sitio sin ti - 4. - página 552

 
paladin80:

Citando al moderador "La función devuelve true cuando aparece una nueva barra en M15. Utilizar sólo en EA".


Muchas gracias.
 
iruogl:

Muchas gracias.

paladín80:

Citando al moderador "La función devuelve true cuando aparece una nueva barra en M15. Utilizar sólo en EA".


Todavía estoy aprendiendo. Y en esta función, cómo se puede determinar el precio de apertura de una vela.
 
rigonich:

Preguntas para los profesionales de los tontos:

1. al realizar cualquier operación con variables normalizadas de tipo double, se comportan como variables de tipo int (el resultado es un número normalizado), o

¿el resultado debe ser normalizado?

2. En la ayuda, está escrito: "Dos números de punto flotante no normalizados no pueden ser enlazados usando las operaciones == o !=". ¿Puedo comparar una imagen normalizada y otra no normalizada?

¿número? ¿Se pueden utilizar las operaciones >= y <=?

Cualquier número puede ser comparado entre sí utilizando >= y <=. Una vez normalizado NormalizeDouble, ya es posible comparar como == o !=. Sin embargo, hay que ver si tiene sentido comparar números así, por ejemplo con 10 decimales, no es realista encontrar una situación en la que sean iguales o desiguales.
 
iruogl:


Todavía estoy aprendiendo. Y en esta función cómo se puede determinar el precio de apertura de una vela.

Esta función sólo detecta cuando aparece una vela. Para encontrar el precio de apertura, utilice iOpen. Algo así:

int init()
{ ...
}
//---
int start()
{ 
   if (CheckOpenM15())
   {  double BarOpenPrice=iOpen(NULL, PERIOD_M15, 0)
   }
...
}
//---
int deinit()
{ ...
}

// сама функция должна находиться отдельно
bool CheckOpenM15()
{
   static int PrevTime=0;
   if (PrevTime==iTime(NULL, PERIOD_M15,0)) return(false);
   PrevTime=iTime(NULL, PERIOD_M15,0);
   return(true);
}
 
iruogl:

Soy un principiante.

Amigos, por favor, aconsejen, ya que sé que el robot se activa cada vez que cambia un tick. Cómo hacer que se active sólo cuando se abre una nueva vela, es decir, cuando aparece el precio de apertura de la vela.

Gracias a todos por los consejos.


Yo también soy un principiante, pero creo que necesito declarar una variable de tipo datetime a nivel global (por ejemplo datetime TIME;) , en init()y comprobar al principio de start() si TIME== Time[0] -- return(0); si no -- TIME= Time[0];. En este caso, el experto ejecutará start() sólo una vez en la apertura de una nueva barra.
 
paladin80:
Cualquier número puede ser comparado entre sí utilizando >= y <=. Después de que NormalizeDouble se normalice, es posible compararlos como == o !=. Sin embargo, hay que ver si tiene sentido comparar números con, por ejemplo, 10 decimales, no es realista encontrar una situación en la que sean iguales o desiguales.

Muchas gracias por la respuesta. Sólo para aclarar una cuestión: después de la normalización, el número en la memoria del ordenador sigue siendo el mismo y sólo cambia su representación. o el número en sí mismo cambia?
 
rigonich:

Muchas gracias por su respuesta. Sólo para aclarar una cuestión: después de la normalización, el número en la memoria del ordenador sigue siendo el mismo y sólo cambia su representación, ¿o el número en sí cambia?

Después de la normalización, el número cambia, por ejemplo

double var1=0.12345 6789;
double var2=NormalizeDouble(var1,5); // var2=0.12346

Otra cosa es cuando lo imprimes, con DoubleToStr, por ejemplo:

double var1=0.12345 6789;
Print("var1 = ",DoubleToStr(var1,5)); // Выход: var1=0.12345

Y si lo imprimes después de la normalización, queda así:

double var1=0.12345 6789;
double var2=NormalizeDouble(var1,5);  // var2=0.12346
Print("var2 = ",DoubleToStr(var2,5)); // Выход: var2=0.12346
 
paladin80:

Esta función sólo detecta cuando aparece una vela. Para encontrar el precio de apertura, utilice iOpen. Algo así:


Gracias, son muy útiles
 
okvseok:

Por favor, aconséjeme.

Es posible imprimir una sola hoja, pero ¿cómo puedo configurarlo para que empiece a imprimir hojas desde una fecha determinada hasta una fecha determinada? Para que no se imprima una hoja a la vez.

Gracias.



ignorar)
 
¡Buenas tardes! Sabes, algo no está funcionando en mi receta. Cuando lo arrastro al gráfico, no ocurre nada.
Razón de la queja: