Errores, fallos, preguntas - página 1153
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
El vídeo en los mensajes del foro no se reproduce. hay un espacio vacío en el lugar del vídeo. probado muchos navegadores. dispositivo - Lenovo K900.
¿Cómo se ejecuta un programa instalado en Windows 8.1? ¿Con /portátil?
Si se trabaja en Windows 8.1 como usuario normal, el terminal MT5 no recuerda los números de cuenta introducidos. Además, el MetaEditor no guarda el estado de almacenamiento de MQL5. Esto sólo se puede solucionar si se trabaja como administrador o si se selecciona "Ejecutar este programa como administrador" en las propiedades de metaeditor64.exe y terminal64.exe.
P.D. El terminal es lo último, pero el problema no es nuevo.
Buenas tardes.
Tengo un indicador que consume bastantes recursos (que se calcula a partir de 7+ arrays), se carga normalmente sólo "intermitentemente" en el terminal, no sé por qué razón. No hay errores en él, es algo con la propia terminal MT5...
Me gustaría probarlo en el tester, pero en el tester sigue dando error: adjunto una captura de pantalla.
Porfavor, aconséjeme, ¿hay alguna posibilidad de procesar el error antes del inicio del probador y recargar forzosamente el indicador en el probador, si aparece?
Buenas tardes.
Tengo un indicador que consume bastantes recursos (que se calcula a partir de 7+ arrays), se carga normalmente sólo "intermitentemente" en el terminal, no sé por qué razón. No hay errores en él, es algo con la propia terminal MT5...
Me gustaría probarlo en el tester, pero en el tester sigue dando un error: adjunto una captura de pantalla.
Porfavor, aconséjeme, ¿hay alguna manera de manejar el error antes del inicio del probador y recargar forzosamente el indicador en el probador, si aparece?
.
El error está en tu código, no en el terminal. Incluso hay una pista de dónde buscar el error: línea 302, posición 49. Este error es una salida del array de su rango. Por ejemplo, tienes un array con tamaño [4], pero estás intentando obtener el valor [5].
No puedo arreglarlo, el array se llena de comillas (100%) o de valores indicadores. En el terminal en un momento determinado el valor de las cotizaciones o indicadores X sale NULL, y en otro momento sale un valor normal (no en la barra 0). No sé por qué ocurre.
El valor NULL siempre está presente en el probador. El error se produce cuando intento multiplicar un valor de cotización o de indicador, pero allí es NULL.
No puedo arreglarlo, el array se llena de comillas (100%) o de valores indicadores. En el terminal en un momento determinado el valor de las comillas X da NULL, y en otro momento da un valor normal (no en la barra 0). No sé por qué ocurre.
El valor NULL siempre está presente en el probador. El error se produce cuando intento multiplicar un valor de cotización o de indicador, pero allí es NULL.
Este código es el del indicador y la función OnInit(). En consecuencia, OnInit() se procesa en el momento del inicio del terminal - y este código muestra correctamente el precio del tick. Es OnInit() y no init() - como el suyo. Si el error se repite, por favor envíe el código y la versión del terminal.
El error es que está intentando recibir información del mercado (MarketInfo...) en OnInit() del indicador. El indicador no tiene funciones de negociación y, por lo tanto, durante la inicialización no espera la actualización de la información de la cuenta y del mercado.
Para obtener los datos del mercado, utilice OnInit() del EA, no del indicador.
Si desea utilizar la información del mercado en el indicador, debe introducir una bandera (bool) y comprobar la corrección de la información de la cuenta (Account...) en la función OnCalculate() en el caso de la primera ejecución o en OnInit() si cambia el marco temporal o la configuración del indicador.
No engañe a la gente. Independientemente de que se utilice el init() o el OnInit() del indicador, el terminal no garantiza que se llame a este manejador cuando se haya realizado el ingreso y se conozca el valor del tick. Así que también es fácil obtener el cero en OnInit. Tampoco se prohíbe el uso de información de mercado en los indicadores. Pero en este caso realmente tenemos que transferir la inicialización a la parte de cálculo del indicador y ejecutarla en los primeros ticks.
No hay funciones de negociación en el indicador. El Asesor Experto tiene funciones comerciales. Por lo tanto, cuando el EA llama al entorno del mercado y/o a la información de la cuenta, todo va correctamente en OnInit().
Para probar mis palabras, aquí está un simple EA en el que OnInit() se refiere al entorno de negociación y a la información de la cuenta:
No hay funciones de negociación en el indicador. El Asesor Experto tiene funciones comerciales. Por lo tanto, cuando el EA llama al entorno del mercado y/o a la información de la cuenta, todo va correctamente en OnInit().
Para probar mis palabras, aquí está un simple Asesor Experto que OnInit() llama al entorno del mercado y la información de la cuenta: