[¡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 30

 

Estimados miembros del foro ayuden a resolver el problema con la precisión del indicador Standart Deviation, si se observa la comparación puramente visual de dos valores adyacentes del indicador, se puede ver que el valor actual es mayor/menor que el anterior, pero si se comparan estos dos valores en los valores reales por ejemplo en la ventana de datos, se puede ver que los valores serán los mismos.



 
Los valores que se mostrarán en la etiqueta de texto se truncan hasta el cuarto dígito, lo que no garantiza su igualdad real, ya que el quinto y más dígitos son diferentes.
 
evillive:
Los valores que se mostrarán en la etiqueta de texto se truncan hasta el cuarto dígito, esto no garantiza su igualdad real, el quinto y los dígitos posteriores son diferentes.
Y para obtener la 5ª y posteriores cifras, es necesario conocer los valores del indicador con mayor precisión. Probé con NormalizeDouble para obtener más precisión pero nada funciona.
 
Alexandr24:
Para obtener 5 y más dígitos, es necesario conocer los valores del indicador con mayor precisión. He probado con NormalizeDouble para conseguir más precisión, pero nada funciona.

Es mejor utilizar DoubleToStr().
 
evillive:

Es mejor utilizar DoubleToStr().
Sí, se puede, pero los valores aparecen como una cadena de texto y no se puede trabajar con el texto, por ejemplo, no se puede añadir un valor a otro.
 

Entiendo que este valor es necesario para el marcador en el gráfico, y si la cifra se recibe del indicador estándar, entonces ya se convierte a Dígitos, probablemente no hay nada que hacer, a menos que implemente el algoritmo del indicador en su código.

O para los cálculos puedes intentar convertir de nuevo a Doble, con dígitos aumentados...

 
evillive:

Entiendo que este valor es necesario para el marcador en el gráfico y si el número se recibe desde el indicador estándar se convertirá en dígitos, probablemente no se puede hacer nada excepto implementar el algoritmo del indicador en el código.

O, para los cálculos, puedes intentar convertirlo de nuevo en Doble, con mayor capacidad de dígitos...

La vuelta al doble no funciona redondeando a 4 dígitos. Gracias por la ayuda.

UPD: He quitado la pregunta, creo que lo he resuelto, sólo he multiplicado los valores del indicador por 10, se mantienen los mismos 4 dígitos, pero la precisión ha aumentado.

 

1) ir a codebase, descargar el indicador :https://www.mql5.com/ru/code/8022

2) Insertar IndicatorDigits(x); x = número de ceros después del punto decimal (precisión)

3) Lanza el indicador sobre el gráfico - admira tu trabajo.

 
alsu:
Lamentablemente, en su caso no importa el precio que tenga en mente al abrir la orden. La cuestión es que el punto de apertura está determinado por el punto en el tiempo, no por el nivel de precios; en este punto, hay los mismos precios de compra y venta y, por lo tanto, no difiere principalmente de todos los demás ticks. Por lo tanto, abra en el momento de la apertura de la barra o en cualquier otro momento - el resultado será el mismo. Además, tenga en cuenta que si la hora de apertura de la barra se especifica a la 01:00, no significa que el primer tick de la barra haya sido precisamente a la 01:00:00. Así que Open es sólo una condición del nuevo corte de barras para facilitar la construcción de gráficos.

Gracias por su respuesta. Tienes toda la razón en que OPEN es el punto de corte de un nuevo bar, pero este punto tiene un precio fijo. La diferencia fundamental entre una entrada abierta es que el precio abierto será el mismo en todos los terminales de la misma cuenta. Por regla general, la diferencia de velocidad terminal no supera el segundo. Durante este tiempo, en el terminal "rápido" la vela puede abrirse y moverse n puntos. En este caso, en el terminal "lento", esta vela aparecerá un poco más tarde, pero con el movimiento ya formado. Es decir, la apertura y el precio actual serán los mismos que en el terminal "rápido". Por lo tanto, si el script calcula la orden a partir del precio actual, el precio de entrada puede ser diferente en diferentes terminales. En un terminal rápido, es el precio de apertura (Bid en el momento de la apertura de la barra), en uno lento es el precio actual (Bid en el momento). En consecuencia, pueden ser diferentes. Y si tomamos como base el precio de apertura, el script tomará inmediatamente el precio necesario en el terminal lento sin prestar atención a la Oferta actual. Como resultado, tendremos el mismo precio abierto para calcular las órdenes en todos los terminales.

 
¿Dónde puedo encontrar un EA que coloque, elimine o modifique una orden, TP o SL a un determinado precio?
Razón de la queja: