Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1206
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Alert("Разбег "+DoubleToString(delta,_Digits));
o Alert(StringFormat("Spread %.5f",delta));
en general, acostúmbrate, sólo son representaciones diferentes de un mismo número. Piensa en tus maravillosos años escolares: de ahí viene.
Gracias. ¿Pero qué pasa si necesito utilizar el valor delta como un número y compararlo? Por ejemplo.
¿Sería eso correcto?Gracias. ¿Y si tengo que utilizar el valor delta como un número y comparar? Por ejemplo.
¿Es esto correcto?Puedes comparar dos números reales así:
https://www.mql5.com/ru/docs/basis/types/double
Puedes comparar dos números reales así:
https://www.mql5.com/ru/docs/basis/types/double
Puedes, si estás seguro de que no pueden estar muy cerca en valor. Al fin y al cabo, lo suave se compara con lo cálido.
No lo entiendo. Por ejemplo. Tomo el número de pips que el precio ha pasado en un tick. Si el precio pasó más de 20 puntos, entonces recibo una Alerta.
Comparo la diferencia de precios (1,12300-1,12321=0,00021) con el valor máximo necesario (0,00020).
0.00021>0.00020.
¿Qué tiene que ver esto con lo suave y lo cálido?
No lo entiendo. Por ejemplo. Tomo el número de pips que el precio ha pasado en un tick. Si el precio pasó más de 20 puntos, entonces recibo una Alerta.
Comparo la diferencia de precios (1,12300-1,12321=0,00021) con el valor máximo necesario (0,00020).
0.00021>0.00020.
¿Qué tiene que ver esto con lo suave y lo cálido?
necesitas puntos, así que compara los puntos.
y el doble se compara con el épsilon (DBL_EPS si la memoria no me falla), de lo contrario podría obtener 3,0-0,2 > 2,0+0,8 (en sentido figurado, las cifras pueden ser diferentes)
necesitas puntos, así que compara los puntos. son enteros por cierto.
mientras que el doble se compara con el épsilon (DBL_EPS si la memoria no me falla), de lo contrario puede obtener 3,0-0,2 > 2,0+0,8 (en sentido figurado, los números pueden ser diferentes)
mejor usar el ejemplo de @fxsaber para este propósito:
para comprobarlo:
No lo entiendo. Por ejemplo. Tomo el número de pips que el precio ha pasado en un tick. Si el precio pasó más de 20 puntos, entonces recibo una Alerta.
Comparo la diferencia de precios (1,12300-1,12321=0,00021) con el valor máximo necesario (0,00020).
0.00021>0.00020.
¿Qué tiene que ver esto con lo suave y lo cálido?
Bueno, a veces no hay que leer todo lo que se escribe.
Tomaste números que normalmente son representados por el sistema. Toma estos...
y se obtiene
La idea es a-b==c, pero el ordenador te dará esos errores. Se ha escrito mucho sobre ello en el foro, busca y lee.
Pero puedes tomar la diferencia normalizada y el valor de control normalizado y compararlos.
Que se diviertan todos. Pregunta: en MT4, cuando se trabaja en el probador con cruces (pares sin quid), ¿cómo calcula el probador los resultados de las posiciones cerradas, si la cuenta, en la que se realiza la prueba, es una cuenta en dólares? Para el recálculo de los totales de las posiciones en dólares, ¿el comprobador toma el tipo de cambio de la moneda base del cruce con el dólar en el momento actual o en el momento del intervalo comprobado? Tengo la firme sospecha de que lo es en la actualidad. Si es así, ¿es imposible hacerlo calcular en el momento del intervalo?
¿Alguien lo sabe?
cuenta el propio MODE_TICKVALUE para cada tick.
Podrías, si estás seguro de que no pueden estar muy cerca en valor. Al fin y al cabo, lo suave se compara con lo cálido.
Siprom18 necesita comparar dos números, dentro de los signos de Dígitos, este es el único método que funciona:
Pero como puede ver, tiene aún más variaciones: https://www.mql5.com/ru/forum/160683/page1205#comment_17247843. Por lo tanto, en el ejemplo he reducido intencionadamente la precisión de la comparación en dos dígitos. Por supuesto, esa diferencia en los valores de los precios es bastante inexacta... Pero, ¿cómo comparar dos números en casos como éste? Si la desviación fuera de más de Dígitos, entonces no podríamos usar EqualDoubles, sino usar NormalizeDouble para cortar todo lo innecesario.
Aunque también podrías hacerlo así: