Errores, fallos, preguntas - página 1088

 
MoneyJinn:

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

 
Olegts:

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.

 
MoneyJinn:

No hay archivos de plug-in.

entonces deberías publicar el indicador, tal vez alguien le eche un vistazo en su tiempo libre)
 

¿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í.

 
MoneyJinn:
¿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.
Esto no significa que aumente su tamaño por sí mismo, la función ArrayResize lo hace y entonces puedes añadir datos, pero no más que el nuevo tamaño del array
 
MoneyJinn:
¿Por qué se produce un error de"matriz fuera de rango" al intentar introducir algo en una matriz dinámica? Es dinámico.
(fcplm)
 
TheXpert:
(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.

Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
  • 2010.10.25
  • Nikolay Kositsin
  • www.mql5.com
Статья о традиционных и не совсем традиционных алгоритмах усреднения, упакованных в максимально простые и достаточно однотипные классы. Они задумывались для универсального использования в практических разработках индикаторов. Надеюсь, что предложенные классы в определенных ситуациях могут оказаться достаточно актуальной альтернативой громоздким, в некотором смысле, вызовам пользовательских и технических индикаторов.
 
MoneyJinn:

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.

 
Renat:

¿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.