Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 593

 

Otra pregunta, ¿qué tan bien funciona el probador con EAs que copian datos de múltiples TFs?

Si es correcto, ¿qué TF elegir a la hora de hacer las pruebas es importante?

 
Juer:

Aparece un error de falta de memoria al ejecutar una prueba (no se inicia). ¿Cómo solucionarlo?

Después de reiniciar el terminal, se inician las pruebas, y después de varias pruebas de nuevo fuera de la memoria.

Reduzca el número de barras visibles y del historial (pero en este caso el historial de cotizaciones profundas desaparecerá, así que usted decide qué es más importante). También es posible que se abran demasiados gráficos en el terminal. A veces un usuario abre unos 50 gráficos con 1 millón de barras de historia. Ninguna memoria es suficiente en este caso.

 
Artyom Trishkin:

Aquí es donde podrán responder con exactitud.

Hay varias decenas de miles de líneas en el código. En los errores de los registros sólo después de probar xxx objetos no eliminados izquierda. Puedo realizar una media de 9 pruebas y luego me quedo sin memoria.

 
Ihor Herasko:

Reduzca el número de barras visibles y del historial (sólo en este caso desaparecerá el historial de cotizaciones profundas, así que usted decide qué es más importante). También es posible que haya demasiados gráficos abiertos en el terminal. A veces un usuario abre unos 50 gráficos con 1 millón de barras de historia. Ninguna memoria es suficiente en este caso.

No, no ayuda ni afecta a nada. Estoy probando con un gráfico y reduciendo el historial al mínimo. Repito, se puede probar, pero sólo un número limitado de veces. Alrededor de la décima prueba, aparece un error de memoria.

 
Juer:

Hay varias decenas de miles de líneas en el código. En los errores de los registros sólo después de probar xxx objetos no eliminados izquierda. Por término medio, puedo realizar 9 pruebas y, a continuación, me quedo sin memoria.

Todo esto son fugas de memoria. Hay que eliminarlos liberando la memoria asignada a cada uno de los objetos mediante el comando delete.

 
Ihor Herasko:

Todo esto son fugas de memoria. Deben eliminarse liberando la memoria asignada a cada uno de los objetos mediante el comando delete.

Para aclarar: borrar todos los objetos en OnDeinit() - gráficos, objetos de clase si los hay...

 
Artyom Trishkin:

Para aclarar: borrar todos los objetos en OnDeinit() - gráficos, objetos de clase si los hay...

¿Cómo los borro allí si no son visibles...

Tengo una colección de objetos (clase heredada de CArrayObj), estos a su vez se añaden a una lista de objetos similares, y estos al objeto final (también heredado de CArrayObj), que ya es visible a nivel global y que borro en OnDeinit... Y no los borro cuando los elimino, los necesito mientras el programa está en marcha.

 
Juer:

¿Cómo los borro allí si no son visibles allí...

Tengo una colección de objetos (clase heredada de CArrayObj), estos a su vez se añaden a una lista de objetos similares, y estos al objeto final (también heredado de CArrayObj), que ya es visible a nivel global y que borro en OnDeinit... Y no los borro cuando los elimino, los necesito mientras el programa está en marcha.

No ocurre que los objetos que creas sean invisibles.

Pueden ser inaccesibles desde una u otra función, pero deben ser accesibles en el propio objeto. Este es el objeto en el que hay que borrar la memoria. Esto se suele hacer con el destructor de la clase. Para asegurarte, pon Prints en todos los destructores y en OnDeinit.

 
Por favor, quién sabe, dígame cómo determinar si hay un panel OCT en el gráfico
 
Stanislav Dray:
Por favor, quién sabe, dígame cómo identificar la presencia de un panel OCT en un gráfico

¿Qué es un panel OCT?

Razón de la queja: