[ARCHIVO] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 3. - página 148

 
Roger:
No te preocupes, devuelve todos los que sean necesarios, sólo tienes que querer verlo.

de hecho)))

Print("ma red = ",MA_M_0); // 4 signos (1,4533)

Print("ma red = ",DoubleToStr(MA_M_0,5)); // 5 dígitos (1,45332)

Pido disculpas, tal vez sea una pregunta tonta)

¿Pero por qué?

 
Hace mucho tiempo, cuando MT4 aún no existía y el trading automatizado estaba en sus inicios, el estándar para los precios era de 4 decimales. Por eso no se molestaron en hacerlo.
 
Lo he descubierto... Así que ese es el problema con "Print", pensé que era una variable))
 
DhP:
Otra forma fácil de evitar estos problemas:
¿Qué hay originalmente en el tiempo previo?
 

Supongamos que hayuna orden abierta de Buy-Stop que está bastante lejos del precio actual. Tenemos que cambiar ligeramente su precio de apertura.

- ¿Existe alguna distancia mínima para un nuevo punto de apertura de la misma orden, relativa al valor actual de OrderOpenPrice() por debajo de la cual no se puede establecer un nuevo precio de apertura?

Gracias.

 
chief2000:

Supongamos que hay una orden abierta de Buy-Stop que está bastante lejos del precio actual. Tenemos que cambiar ligeramente su precio de apertura.

- ¿Existe alguna distancia mínima para un nuevo punto de apertura de la misma orden, relativa al valor actual de OrderOpenPrice(), por debajo de la cual no se puede establecer un nuevo precio de apertura?

Gracias.

StopLevel - a esta distancia y más cerca del precio, la orden no se puede establecer.

FreezeLevel - si una orden ya está en marcha y el precio está a esta distancia o más cerca de ella, no puede eliminar o modificar la orden (si su empresa de corretaje lo utiliza)

 
artmedia70:

StopLevel - a esta distancia y más cerca del precio, no se puede colocar una orden.

FreezeLevel - si una orden ya ha sido colocada y el precio se ha movido a esta distancia o más cerca, no podemos borrarla o modificarla (si su compañía de corretaje lo utiliza).

Eso no es exactamente lo que estaba preguntando. Lo que quería decir es que tengo una orden Buy-STOP y quiero desplazar su OrderOpenPrice() por la mínima distancia posible (y ese precio está bastante lejos de Ask).

- Por ejemplo, ¿puedo mover OrderOpenPrice() en 1 pip? Es decir

Новый_OrderOpenPrice = OrderOpenPrice() + Point

Lo pregunto porque vi algunos errores extraños, pero aumenté la distancia y los errores desaparecieron.

(Podría escribir un código aparte y comprobarlo, pero aún no me ha interesado)

 

Al comparar dos variables de tipo double, a veces se obtiene un resultado incorrecto. Esto se debe probablemente a que una de las variables puede ser ligeramente mayor o menor que la otra (por ejemplo, por 10 dígitos). El uso de la función NormalizeDouble no ayuda en la mayoría de los casos. Algunos aconsejan restar una variable de otra, pero en ese caso, ¿cómo construir más correctamente una expresión if(a>=b), restando una variable de otra? ¿O tal vez haya alguna otra manera?

 
Elenn:

Al comparar dos variables de tipo double, a veces se obtiene un resultado incorrecto. Esto se debe probablemente a que una de las variables puede ser ligeramente mayor o menor que la otra (por ejemplo, por 10 dígitos). El uso de la función NormalizeDouble no ayuda en la mayoría de los casos. Algunos aconsejan restar una variable de otra, pero en ese caso, ¿cómo construir más correctamente una expresión if(a>=b), restando una variable de otra? ¿O tal vez haya alguna otra manera?

¿Realmente necesita una precisión tan alta? - A la décima de un dígito.

Si quieres comparar utilizando la resta, puedes comparar con 0:

if((a-b)>0) { // ===>> a>b

O puedes multiplicar por 1 000 000 y luego comparar :)

 
chief2000:

¿Realmente necesitas tanta precisión? - Hasta el décimo dígito.

Si quieres comparar usando la resta, puedes comparar con 0:

if((a-b)>0) { // ===>> a>b

O puedes multiplicar por 1.000.000 y luego comparar :)

Siempre utilizo un cierto +/-epsilon=Punto*0,01 cuando comparo los precios.

Multiplicar por 1.000.000 no hará nada, créeme.