
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
En mi caso era "<=", pero los valores del estocástico cambian muy fuertemente incluso con cada tick - hay cuatro decimales más, es decir, en un tick los valores pueden cambiar de (por ejemplo) 75,0003 a 74,0900.
Por lo tanto, el signo "=" puede omitirse sin ningún temor. Pero claro, para no pensar - creo que lo haré.
Pruebe a añadir Print antes de OrderClose y vea si aparece la señal de cierre.
Hecho. Añadido. ¡No, .....! La notificación de cierre no aparece en el libro de registro.
¡No lo entiendo! He puesto este bloque en otro EA. Y un tercero. ... . Pero la situación no ha cambiado. Los puestos no están cerrados. Aunque rara vez, rara vez (una o dos veces en la historia = 1 año) y parpadea un triángulo verde cerca en el gráfico visual. Pero no debería ser así. Las posiciones, a juzgar por el código, deberían cerrarse como una lanzadera de máquina de coser.
Indicador NOnLagMA en la descarga
¿Tal vez este bloque no debería funcionar? Al fin y al cabo, en el código tenemos stops al abrir: - stoploss y takeprofit. ¿Y tal vez todas las demás condiciones de cierre se ignoran por esta razón?
ticket=OrderSend(Symbol(),0,Lots,Ask,Slippage,Bid-SL_long*Point,Ask+TP_long*Point, NULL,MagicNum, 0,CLR_NONE);
Tendré que lidiar con ello de alguna otra manera.
¡No entiendo nada!
Deberías estar más atento).
Aquí está la función start() de la variante de prueba (sin SL y TP, con mensajes correctos y sin deslizamientos innecesarios):
Pero yo no usaría este EA en una cuenta real si fuera usted. Hay que ponerlo en orden, o en "disposición", si se quiere ;)
Sí, por supuesto. Gracias por su ayuda. Entiendo su comentario sobre mi error.
Y he tomado nota de sus recomendaciones. Todavía hay un largo camino por recorrer antes de que el comercio real...
p.s/ Todo está funcionando.... ¡! ¡Y cómo ha funcionado!
No he mirado el código.
Pero una cosa es segura: en lugar de "if(Stochast_1>75 && Stochast_0<75)" yo haría "if(Stochast_1>75 && Stochast_0<=75)".
Una forma mejor sería: if(Stochast_1-75.0>0 && Stochast_0-75.0<=0) para evitar conversiones innecesarias de los tipos int y double.
Y cómo evitamos los innecesarios int y double. ? No puedo entenderlo. Además, en lugar de números podemos utilizar parámetros externos extern int Up_lim = 80; extern int Low_lim = 20;
En primer lugar, es incorrecto comparar Stochast_ real y entero 75, y en segundo lugar, es más correcto comparar su diferencia con cero.
Comparación de números reales".