Errores, fallos, preguntas - página 560

 
Puedes crear tantos objetos como quieras hasta que te quedes sin memoria. Lo más probable es que el asunto esté en otra cosa.

Sería estupendo que pudiéramos ejecutar tu código en el depurador, ¿puedes darnos el código fuente? Después de comprobarlo lo borraremos.
 
Urain:

P.D. ¿Cómo termino normalmente el programa si hay muchos objetos de clase?

hay un problema de este tipo.

¿cómo se borra?

 
sergeev:

hay un problema de este tipo.

¿Cómo se quita?

He probado diferentes maneras, sobre todo con los ciclos, con y sin resbalones, los objetos son matrioskas, las 20 piezas superiores (y me gustaría 100) causan la eliminación de la interna en la cantidad de ~ 30000/obj (en resumen una matriz de objetos) en el que a su vez (en cada uno) piezas de 10 objetos.
 
Urain:
Lo he probado de diferentes maneras, sobre todo en bucles, con y sin resbalones, los objetos son matrioskas, los 20 primeros (me gustaría 100) llaman a borrar los internos en cantidad ~30000/obj (array más corto de objetos) en el que (en cada uno) hay 10 objetos.

No, no.

Es decir, ¿qué funciones utiliza durante el borrado?

ObjectGetString o directamente a ObjectDelete.

¿Cómo se sabe y se especifica el nombre del objeto que se quiere eliminar?

Lo principal es no utilizar funciones síncronas (de tiempo crítico).

 
sergeev:

No, no.

Es decir, ¿qué funciones utiliza durante el borrado?

ObjectGetString o directamente a ObjectDelete.

¿Cómo se sabe y se especifica el nombre del objeto que se quiere eliminar?

Lo principal aquí es no utilizar funciones sincrónicas (de tiempo crítico).

Estamos hablando de objetos de clase, no de objetos gráficos.

Aunque por supuesto los gráficos están en objetos, no todos por supuesto, no más de 30000 objetos gráficos por gráfico.

El nombre de un objeto gráfico se guarda en el área privada de un objeto vinculante.

En el momento del borrado uso delete obj; que si es necesario llama a ObjectDelete.

 

Lo tengo.

Es que siempre tenía Terminación Anormal cuando la función sincrónica buscaba un objeto gráfico o una variable global por su nombre.

Документация по MQL5: Основы языка / Переменные / Глобальные переменные
Документация по MQL5: Основы языка / Переменные / Глобальные переменные
  • www.mql5.com
Основы языка / Переменные / Глобальные переменные - Документация по MQL5
 
sergeev:

Lo tengo.

Es que siempre tenía Terminación Anormal cuando la función sincrónica buscaba un objeto gráfico o una variable global por su nombre.

Sí, lo encontré, gracias sergeev por impulsar la idea, efectivamente la bandera de la existencia de los gráficos no se estableció, y como resultado un intento de eliminar objeto gráfico inexistente. Cuando el número de objetos era pequeño, el terminal se lo tragaba, pero millones de peticiones ObjectDelete falsas daban lugar a una Terminación Anormal.
 
1. ¿Existe un límite de tiempo para la función OnTester ()? Tengo una situación en la que, al ejecutar un cálculo bastante masivo en esta función, el registro escribe "Disconected" (probé a cambiar de núcleo - el mismo mensaje) y la prueba se detiene.
Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
Основы языка / Функции / Функции обработки событий - Документация по MQL5
 

Muchas gracias. Pero parece un poco artesanal y limitado.

Lamentablemente, sigo sin entender por qué metaquotes no está interesado en implementar la funcionalidad de MT4 en el terminal MT5, manteniéndose dentro del concepto de una orden de mercado, en lo que respecta a la gestión de órdenes virtuales tanto manualmente como a través de un Asesor Experto. ¡Sólo hay ventajas por todos los lados y se adapta perfectamente!

 
El error relacionado con la carga del historial constante y la activación constante if(prev_calculated==0), previamente eliminado en las divisas, está presente en los gráficos CFD.