Errores, fallos, preguntas - página 1088
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
Después de recompilar el indicador, el error "array out of range" comenzó a ocurrir cuando se trabaja con arrays dinámicos.
Antes no ocurría. ¿Qué hacer?
Si tiene líneas similares al principio del archivo
#include <Archivo.mqh> , lo más probable es que estos archivos de inclusión hayan sido modificados desde su anterior compilación, por usted o por otra persona
Si tiene líneas similares al principio de su archivo
#include <Archivo.mqh>, es probable que estos archivos de inclusión hayan sido modificados desde su última compilación, por usted o por otra persona.
No hay archivos de inclusión.
No hay archivos de plug-in.
¿Por qué se produce un error de"matriz fuera de rango" al intentar introducir algo en una matriz dinámica? Es una matriz dinámica.
Array B1[] Establecido como el búfer del indicador correspondiente
SetIndexBuffer(0,B1,INDICATOR_DATA); ArraySetAsSeries(B1,true);
El tamaño de la matriz no está claramente controlado por el usuario aquí.
¿Por qué se produce un error de"matriz fuera de rango" al intentar introducir algo en una matriz dinámica? Es una matriz dinámica.
¿Por qué se produce un error de"matriz fuera de rango" al intentar introducir algo en una matriz dinámica? Es dinámico.
(fcplm)
¡¿Quién lo va a encerrar?! ¡Es un monumento!
Error de plataforma.
Si al llenar el array B1 del buffer de indicadores se llama repetidamente al procedimiento SetIndexBuffer(0,B1,INDICATOR_DATA),
Por ejemplo, al inicializar el indicador, el siguiente intento de escribir algo en el array B1 provoca el error"array out of range".
Cuando se llama al procedimiento SetIndexBuffer(0,B1,INDICATOR_DATA) una vez, todo funciona bien.
Antes no existía tal cosa.
Error de plataforma.
Si al llenar el array B1 del buffer de indicadores se llama repetidamente al procedimiento SetIndexBuffer(0,B1,INDICATOR_DATA),
por ejemplo, al inicializar el indicador, el siguiente intento de escribir algo en el array B1 provoca el error"array out of range".
Cuando se realiza una única llamada al procedimiento SetIndexBuffer(0,B1,INDICATOR_DATA), todo funciona bien.
Antes no ocurría.
Pero, ¿por qué lo hace repetidamente?
Vincular un búfer significa despejarlo y prepararlo para la vinculación dinámica para los cálculos posteriores. Si se llama una segunda vez, el búfer anterior se borrará y se llenará sólo en la siguiente llamada del recálculo del indicador.
¿Por qué haces esto repetidamente?
La vinculación de la memoria intermedia significa su limpieza y la preparación para la vinculación dinámica para los siguientes cálculos. Si se llama una segunda vez, el búfer anterior se borrará y se llenará sólo en la siguiente llamada del recálculo del indicador.
Esta fue la inicialización completa estándar del indicador, que tiene lugar cuando el indicador se inicia por primera vez y se realiza a través de Oninit().
A veces, cuando se actualiza el historial, etc., también hay que hacerlo.
Nadie pensó nunca que la repetida inicialización del indicador a través de Oninit() provocaría que las matrices dejaran de responder.