Errores, fallos, preguntas - página 2676
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
MT5 (build 2347) ¿Por qué una sobrecarga tan grande cuando se añade un elemento a la vez a una matriz utilizando ArrayResize, si la memoria se ha reservado para ellos de antemano?
Por favor, considere la posibilidad de mejorar el algoritmo de reserva interna con ArrayResize.
Por ejemplo, para las clases podemos suponer que realizan algún tipo de "registro interno en listas" además de la llamada al constructor.
Y en el marco de la reserva con ArrayResize, además de la asignación directa de memoria, se puede intentar optimizar el proceso:
- tomar datos del elemento adyacente creado (por ejemplo, puntero a una tabla de funciones virtuales);
- preejecutar o reservar espacio para la "inscripción interna" de las clases que aún no han sido creadas;
Gracias por el mensaje.
El código de ArrayResize está protegido de ser llamado vacío (cuando no hay cambio en el número de elementos), por lo que el código de la función no funciona.
Mientras que un cambio real en el número de elementos activa una u otra parte de la función ArrayResize, dependiendo del array
Gracias al código que has presentado, he podido reducir la complejidad de una parte de ArrayResize a cero, esto acelerará la función para arrays de objetos
¿Pueden decirme cómo reducir el consumo de memoria del terminal? Cuando ejecuto un EA, solicito unos cuantos millones de ticks. Hago cálculos con ellos y ya no los necesito. Sólo utilizo las funciones de garrapata para cargar garrapatas frescas para que no haya espacios en blanco.
Debido a ese millón de ticks el terminal consume 500 Mb de memoria y no se apresura a liberarla. Para ser más exactos, simplemente no lo libera. ¿Es posible forzar a Terminal a borrar todas sus cachés para minimizar el consumo? Para un VPS, 0,5 GB por terminal es demasiado.
¿Pueden decirme cómo reducir el consumo de memoria del terminal? Cuando ejecuto un EA, solicito unos cuantos millones de ticks. Hago cálculos con ellos y ya no los necesito. Sólo utilizo las funciones de garrapata para cargar garrapatas frescas para que no haya huecos.
Debido a ese millón de ticks el terminal consume 500 Mb de memoria y no se apresura a liberarla. Para ser más exactos, simplemente no lo libera. ¿Es posible forzar a Terminal a borrar todas sus cachés para minimizar el consumo? Para el VPS, 0,5 GB por terminal es demasiado.
ArrayFree
Si su programa necesita gestionar la memoria en entornos dinámicos complejos, la función ArrayFree() le permite liberar explícitamente y de forma inmediata la memoria ocupada por un array dinámico que ya no se necesita.
ArrayFree
Gratis, por supuesto. El propio terminal almacena ticks en su caché, que no necesito durante el funcionamiento.
Es mejor que vuelva a criar estas garrapatas cuando tenga frío. Necesito un mecanismo para "enfriar" el Terminal.
Hola, he encontrado un problema que CopyTicks y CopyTicksRange en el probador no puede obtener datos de otras herramientas... Cuando se añade al gráfico, todo funciona.
Construir 2363 (y lo mismo fue en 2361)
¿He cometido un error? Por favor, ayuda, ¡gracias!
Hola, he encontrado un problema que CopyTicks y CopyTicksRange en el probador no puede obtener datos de otras herramientas... Cuando se añade al gráfico, todo funciona.
Bild 2363 (y lo mismo ocurría en el 2361)
¿Me habré equivocado? Por favor, ayuda, ¡gracias!
CopyTicks no inicia una carga de datos en el probador
Solicite primero los CopyRates del instrumento deseado. Al menos 1 bar. A continuación, se producirá el bombeo y la generación de la secuencia de garrapatas.
Después de eso, en silencio solicitar garrapatas
Gracias por el mensaje.
Gracias al código que has presentado, he conseguido reducir la complejidad de una parte de ArrayResize a cero, esto agilizará la función para arrays de objetosEl código de ArrayResize tiene protección contra una llamada vacía (cuando no hay cambio en el número de elementos), por lo que el código de la función no funciona.
Mientras que un cambio real en el número de elementos, activa una u otra parte de la función ArrayResize, dependiendo del array
Buenas tardes, muchas gracias.
No he utilizado el operador new antes, ya que debe ser más lento por lógica que ArrayResize con memoria reservada.
Pero estoy impresionado con los resultados obtenidos, resulta que es al revés, el array nativo mediante el operador new es más rápido.
MT5 (build 2363):
CopyTicks no inicia una carga de datos en el probador
Solicite primero los CopyRates del instrumento deseado. Al menos 1 bar. A continuación, se producirá el bombeo y la generación de la secuencia de garrapatas.
Después de eso, en silencio solicitar garrapatas
Muchas gracias, me ha servido de ayuda. No pude encontrarlo en la documentación... ¿O he buscado mal? Sería bueno escribir sobre ello allí :)
Sería mejor hacer subidas automáticas como en CopyRates.
Ayer limpié la lista de "viejos" agentes inactivos en mi perfil
Un día después voy al perfil y veo que la lista de agentes ha sido restaurada con las entradas que fueron borradas.
Y se ha modificado la fecha de creación y actividad de los agentes