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
He echado un vistazo rápido (no he investigado todavía), he encontrado la referencia del punto que estás calculando.
Prueba a "tirarlo" y a poner el estúpido Punto. Tal vez ese sea el problema (el punto a través de MarketInfo no siempre sale como uno quiere).
Siempre se supone que...
aunque también puedes intentar normalizarlo =)
y no siempre es aceptable - el experto puede operar en varios pares, y el punto puede ser diferente...
Supongamos que ordertoploss = 1.29211 (5 dígitos después del punto decimal)
bid=1.29716 (también 5 dígitos )
TrailingStop = 50
point =0.001
entonces (bid - TrailingStop * point)=1.29216>1.29211
Verdadero, esto requiere que los dígitos se conviertan de repente en 5
Y también
puede ser sustituido sin problemas por
Creo que no es necesario comprobar la ausencia de nivel de stop loss cuando se hace trailing.
En realidad lo es, me corrijo. Si establecemos un stop loss sólo cuando hay beneficios, y si no estamos dispuestos a esperar un ajuste de márgenes.
No he encontrado nada más. ¿En qué par funcionó mal su trailing stop y hubo algún movimiento fuerte?
Estoy convirtiendo todo a valores enteros para fines de comparación. Almaceno y utilizo los valores dados siempre que puedo (en el array).
utilizar los valores dados (en matrices, variables, etc.)
Es decir, las variables de tipo int pueden tomar valores de -2147483648 a 2147483647.
Esta dimensionalidad es muy adecuada para los cruces.
De la misma manera, 1,2999 y 1,3000 se pueden convertir en 12999 y 13000, y entonces se pueden comparar con seguridad,
sin preocuparse por las meteduras de pata periódicas.
He esbozado un ejemplo aquí :)
aquí
de salida:
shiftpoint EURUSD,H1: Valor doble real = 1.29999999
shiftpoint EURUSD,H1: Valor del punto de desplazamiento = 13000
shiftpoint EURUSD,H1: Valor restaurado = 1.3000
en
Alternativamente.
Hola.
Llevo todo a números enteros para comparar
2dev:
Tienes razón: es un problema fundamental, es peligroso comparar números en coma flotante.
En los lugares importantes, lleve siempre los números a una determinada precisión mediante Normalize().
Estandarizar el tipo doble (8 bytes).
Por cierto, forzamos la normalización de todos los precios pasados en las consultas comerciales para evitar errores.
Puede enviar una solicitud de stop loss como 1,2932461, pero se establecerá como 1,2932.
Por favor, compruebe si este es el error al intentar reajustar el stop al mismo precio.
3 personas estaban mirando =)) Renat vino y acaba de señalar el error con el dedo =)))
Voy a comprobar ahora, por supuesto, pero lo más probable es que este es el caso ... No he normalizado "bid - TrailingStop * point", y esta misma construcción está implicada en la modificación de la orden...
no estamos atentos, señores ;)
¿te refieres a la función Normalize() que sugirió Begun?
¿te refieres a la función Normalize() que sugirió Begun?
Perdón, me refería a la norma NormalizeDouble.