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
@deysmacro: Ya sé dónde está la línea que provoca la división por cero. Es porque necesito el rango promedio diario de los últimos cinco días. Después en el indicador divido algo por ese ATR y mientras no se actualicen los datos el ATR es cero y ese es el problema. Necesito estar seguro de que los datos diarios de al menos los últimos 5 días están disponibles. Sólo entonces el ATR será >0 y el indicador funciona.
Poner los datos disponibles en GV y recuperarlos. De esta manera, cuando haya datos que lleguen o haya diferencias en los datos, sólo hay que actualizar GV.
Quizá ATR funcione así.
La gente siempre decía "haz que funcione primero, luego optimiza el código".
A veces para que funcione, la línea de códigos es muy larga pero una vez que funciona, puedes empezar a recortar el código. :)
Tal vez suene estúpido, pero ¿qué es la GV?
Por supuesto... :-)
Otra cosa que no puedo explicar: El siguiente código es una pequeña modificación de mi primer código que publiqué. También es un indicador de Moneymanagement pero he eliminado el ATR. Sólo imprime niveles de stop loss de 5 - 100 pips en pasos de 5 pips. Por lo tanto, no hay cálculo de ATR en absoluto. Cuando usted arrastra este indicador a su gráfico funciona bien. Cada par, cada marco de tiempo. No hay problemas. Pero cuando se abre el MetaTrader se produce un error de división por cero y de nuevo sólo se imprime la "etiqueta" en lugar de los niveles de pérdida de la parada.
El error se produce en esta línea:
Imprimí TODAS las variables de esta línea y llegué a la conclusión de que AccountBalance() es cero y MarketInfo(Symbol(), MODE_TICKVALUE) es cero. Así que, obviamente, al abrir el MetaTrader, no hay ningún dato disponible. Esto nunca ocurrió en el antiguo MetaTrader. Así que no tengo ni idea de qué hacer...
Aquí está el código:
¿Podría ser un poco más preciso? ¿Cuál es exactamente el problema con ellos (porque siempre ha funcionado..)?
Creo que sigue existiendo el problema de que AccountBalance() y otros datos que necesito de MetaTrader no están disponibles justo después de iniciar la Plataforma.
Otro ejemplo:
Si abre el MetaTrader, el resultado será cero. Y se queda en cero hasta que cambies el marco temporal o el par. Creo que este es exactamente el problema del error de división por cero. ¿No crees tú también?Imprimí TODAS las variables de esta línea y llegué a la conclusión de que AccountBalance() es cero y MarketInfo(Symbol(), MODE_TICKVALUE) es cero. Así que, obviamente, al abrir el MetaTrader, no hay ningún dato disponible. Esto nunca ocurrió en el antiguo MetaTrader. Así que no tengo ni idea de qué hacer...
Aquí está el código:
Si estás seguro de que esta es la causa del problema, añade esto justo después de Start()
Hola GumRai,
Lo he probado con el indicador anterior. El AccountBalance se mantiene en cero incluso si dejo que el MetaTrader funcione durante algunos minutos. Sólo hasta que cambié algo manualmente (par, marco de tiempo) se muestra el AccountBalance correcto. Y si utilizo su solución no tengo problemas con el error de división por cero, pero el indicador nunca hará su trabajo porque AccountBalance permanece cero.
Me pregunto si soy la única persona que tiene este problema. Creo que es un problema general de importación de datos del nuevo MetaTrader...