Características del lenguaje mql5, sutilezas y técnicas - página 131

 
fxsaber:

Laliberación de la memoria es la única razón.

¿Qué tipo de memoria? Si es redundante, entoncesreserve_size=-1 es suficiente, como ya se ha dicho. Sólo que la persona que está allí obviamente tiene algo mal con las mediciones de velocidad (condiciones de prueba incorrectas, supongo)

 

He observado una posibilidad interesante, que llamaré recursión de indicadores.

Cuando se puede calcular un indicador a partir de sí mismo:

handle=iMA(_Symbol,_Period,per1,0,MaMethod,PriceBase);  
for(int i=0;i<N;i++) handle=iMA(_Symbol,_Period,per2,0,MaMethod,handle);

Puede ser útil para los aficionados a los indicadores...

En caso de que este tema ya se haya tratado, la repetición es la madre del aprendizaje.

Para demostrar esta característica, he escrito especialmente un indicador en QB.

 
Nikolai Semko:

He observado una posibilidad interesante, que llamaré recursión de indicadores.

Cuando se puede calcular un indicador a partir de sí mismo:

Puede ser útil para los aficionados a los indicadores...

En caso de que este tema ya se haya tratado, la repetición es la madre del aprendizaje.

Para demostrar esta característica, he escrito especialmente un indicador en QB.

Sí... No pensé que fuera una característica especial. Una vez que lo necesité, simplemente lo escribí así, sólo hice diferentes nombres de variables para las manijas. Pensé que todo el mundo lo usaba cuando lo necesitaba...

 
Alexey Viktorov:

Sí... No pensé que fuera una característica. Una vez que lo necesité, lo escribí así, pero con diferentes nombres de variables para las asas. Pensé que todo el mundo lo usaba cuando lo necesitaba...

Sólo se me ocurrió ponerlo en bucle ahora. Puedes reproducir el indicador 100 veces, pero sólo hay un asa.

 
Nikolai Semko:

Sólo se me ha ocurrido ponerlo en un bucle. Se puede reproducir el indicador al menos 100 veces, pero sólo hay un asa.

No es un mango único, tienes una variable. Ha perdido los valores de las asas anteriores. ¿Y cómo se cierran?

 
Alexey Navoykov:

No es un mango único, tienes una variable. Ha perdido los valores de las asas anteriores. ¿Y cómo se cierran?

Bueno...

Consume mucha memoria. Realmente, sólo cambiando el TF se pueden liberar losbuffers de indicadores internos que ya no se necesitan. ))

No hay forma de atornillar en ArrayFree.

 
Nikolai Semko: Realmente, sólo cambiando el TF se pueden liberar losbuffers de indicadores internos que no se necesitan. ))

No hay manera de adjuntar ArrayFree.

Al cambiar la TF se crea una nueva copia del indicador y se destruye la anterior

 
Igor Makanu:

al cambiar el TF se crea una nueva copia del indicador y se destruye la anterior

Bueno, eso es comprensible.

Acabo de mirar el uso de memoria cuando se carga en la configuración máxima de mi indicador (deslizadores a la derecha hasta el borde). De 50 MB de memoria se ha pasado a unos 400 MB. Pero cuando volví a poner el indicador al mínimo (deslizadores a la izquierda), la memoria sigue colgada en 400 Mb.

Significa que los 100 indicadores calculados están colgados en la memoria, aunque no se utilizan.
El cambio de TF lo despeja.

 
Nikolai Semko:

Bueno, eso es comprensible.

Es que miré el uso de la memoria durante el arranque según la configuración máxima de mi indicador (deslizadores a la derecha hasta el borde). De 50 MB de memoria se pasó a unos 400 MB. Pero cuando volví a poner el indicador al mínimo (deslizadores a la izquierda), la memoria sigue colgada en 400 Mb.

Así, los 100 indicadores calculados quedan colgados en la memoria, aunque ya no se utilicen.
El cambio de TF lo despeja.

Envuélvalo en el indicador de cálculo de la clase - vincule los topes a los campos de la clase

 
Igor Makanu:

envolver el cálculo del indicador en una clase - vincular los buffers a los campos de la clase

Sí, tendré que probarlo. Gracias.