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
Vale, déjame decirlo de otra manera. Dentro de mql es más o menos posible, dependiendo de la frecuencia de reloj del procesador.
¿Y el PWM? -Una señal de impulso de frecuencia constante y ciclo de trabajo variable.
¿No establece una constante?
En primer lugar, lea lo que es la función WinAPI Sleep, y lo que realmente hace
PS Windows no es un sistema en tiempo real
En primer lugar, lea lo que es la función WinAPI Sleep y lo que realmente hace
PS Windows no es un sistema en tiempo real
Ejem, ¿qué tiene que ver el WinAPI Sleep con esto?
Cuando hablamos de deslizamiento de microsegundos
individualmente, para su procesador puede definir la frecuencia del temporizador y calcular el número de repeticiones.
Entonces, puedes escribir tu propio MicrosecondCount en mql, pero ¿qué sentido tiene? El estándar es suficiente.
Ejem, me da vergüenza preguntar, ¿qué tiene que ver WinAPI Sleep con esto?
Cuando hablamos de deslizamiento de microsegundos
Individualmente, para su procesador, puede definir la frecuencia del temporizador y calcular el número de repeticiones.
Entonces, puedes escribir tu propio MicrosecondCount en mql, pero ¿qué sentido tiene? El estándar es suficiente.
Su propio deslizamiento pendiente sin cambio de contexto se comerá su núcleo al 100%.
Este es un método de programación espeluznante. Dios no permita que ese código se filtre al mercado.
Su deslizamiento de espera sin cambio de contexto se comerá su núcleo al 100%.
Es un método de programación horrible. Dios no permita que ese código se filtre al mercado.
Y nadie negó que el hardcore ))
Si muestra un ejemplo de cambio de contexto, tal vez pueda mejorar?
Aquí está la carga de la CPU para µsSLEEP (µsRange), en VirtualBox con sólo 2 núcleos, 4 hilos.
Los mineros lo hacen peor ))
Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias
Bibliotecas: Secuencia
fxsaber, 2020.10.13 12:54
Un ejemplo de un EA que acabará con la mayoría de los VPS.Lo estoy ejecutando en algunos gráficos de diferentes símbolos. He utilizado este script con inAmount = 5 para automatizar esta acción.
Resultado.
El Terminal requiere más de 4 Gb de memoria para ejecutar estos seis Asesores Expertos. Tenga en cuenta que sólo es necesario para la inicialización, no para el funcionamiento de estos EAs. Imagina que inicias el terminal con Expert Advisors colgando en él. Si no tienes 4 Gb de RAM disponibles, es casi un desastre.
Ahora vamos a eliminar el comentario de esta línea en el código fuente.
Así, hemos habilitado la inicialización secuencial de los Asesores Expertos.
Veamos el resultado (tras la recompilación).
En la puesta en marcha de los Asesores Expertos hemos conseguido reducir el consumo de memoria del Terminal en más de 2,5 Gb. La probabilidad de que los VPS se caigan (y los ordenadores domésticos sean débiles) ha disminuido significativamente.
Así es como se ven ambas carreras en la dinámica.
El lanzamiento secuencial alargó la inicialización general en el tiempo, pero consiguió que el Terminal no consumiera grandes cantidades de RAM.
Losgráficos superior e inferior muestran claramente el proceso de inicialización en paralelo (pico alto izquierdo) y seis inicializaciones consecutivas (seis picos centrales).
SZY Durante los experimentos salió a la luz un desagradable matiz con Sleep - ver código fuente.
Pido que de alguna manera se permita liberar memoria por la fuerza después de usar CopyTicks. No crear esas muletas del sueño.
Por favor, recomiende la forma más económica de solicitar el historial de garrapatas en un intervalo determinado.
me parece que no estás buscando uno barato, sino una forma de liberar memoria rápidamente
como opción a comprobar:
- envolver el array dinámico MqlTick Ticks[] en la clase y crear el objeto con new (es decir, también el objeto dinámico), borrarlo cuando no lo necesite
- lo mismo, pero con estructura, pero en ámbito local ( o función o bloque local { } - o bucle con una iteración ? ), las estructuras no funcionan tan bien como las clases - reescribí la mayor parte de mi código EA alejándome de las clases y sustituyéndolas por estructuras de datos, la velocidad de optimización aumentó significativamente - quizás es un efecto subjetivo - quizás las nuevas construcciones son más rápidas
- intente añadir ArrayFree() al destructor
No creo que busques uno barato, sino una forma de liberar memoria rápidamente
El Terminal no libera memoria. Las variables MQL no tienen nada que ver.
El terminal no está liberando memoria. Las variables MQL no tienen nada que ver.
¿qué pasa si se fuerza el tamaño = 1?
qué pasa si lo haces^
y si
Después de llamar a CopyTicks, el terminal mantiene todos los datos en la memoria durante unos segundos. Por si alguien quiere releer un trozo de la historia de las garrapatas.
Es decir, la cantidad de memoria que consume el Terminal no depende del tamaño de las variables MQL.
La tarea consiste en forzar al Terminal a liberar la memoria.