Errores, fallos, preguntas - página 2904

 
suncrypto:

¡Hola!

Mensaje a los desarrolladores.

Continúo probando Python - MT5. Hay una cosa más interesante, tal vez sea un error.
La esencia.

De vez en cuando me pongo a seleccionar instrumentos financieros de entre todos los que están disponibles en el terminal (unos 4000k).
Me conecto al terminal desde una aplicación externa, es decir, los scripts no se inician dentro del terminal.

Obtengo barras diarias y de minutos para cada símbolo y luego uso "pandas" para realizar los cálculos y la selección inicial de instrumentos.
He notado que el terminal empieza a cargar gradualmente el procesador hasta el 70-80% después de una operación de este tipo.
Después de que la carga del procesador de trabajo de secuencia de comandos no está disminuyendo (traté de esperar 15 min.), pero el terminal es muy lento. Sólo ayuda cerrando el terminal.
Si ejecuto el script dos veces sin cerrar el terminal el script funciona sin errores pero la carga de la CPU se mantiene en un 70-80%.

He simplificado el script al mínimo para poder repetir el experimento y dejar solicitando sólo las cotizaciones. El problema persiste.

Si es necesario, está preparado para grabar un vídeo o proporcionar información de otra forma.

El código es pyhton:

Respetuosamente, Alexander.

No hay ningún error en el comportamiento del terminal. Tienes que entender que para trabajar con 1000 o más caracteres - necesitas una plancha potente y mucha memoria. También se recomienda limitar mucho el número de barras en el gráfico (en la configuración del terminal).

Al menos i7 o i9 de novena o mejor décima generación. Memoria de al menos 32 GB.


"... dejó sólo la solicitud de cotización ..." - Si realmente cree que solicitar cotizaciones es una operación muy sencilla, deje de operar y no se acerque nunca a su ordenador.

 
Vladimir Karputov:

No hay ningún error en el comportamiento del terminal. Tienes que entender que para trabajar con 1000 o más símbolos - necesitas un hardware potente y mucha memoria. También se recomienda limitar severamente el número de barras en el gráfico (en la configuración del terminal).

Al menos i7 o i9 de novena o mejor décima generación. Memoria de al menos 32 GB.


"... dejó sólo la solicitud de cotización ..." - Si realmente cree que solicitar cotizaciones es una operación muy sencilla, deje de operar y no se acerque nunca al ordenador.

Puede que no haya ningún error, no digo que lo haya, sólo señalé este comportamiento como un posible fallo, este hilo parece estar reservado para ello, ¿o me equivoco?

Según lo que dices, mi hardware es más que adecuado. El consumo de memoria, por cierto, es relativamente bajo para esta operación, unos 3,5 GB. Todo está bien con la memoria, y en general todo funciona de forma estable.

Ahora, he reducido intencionadamente el número de barras en la configuración de 1mln a 1k. No hubo ninguna diferencia. Creo que tendrá más efecto si abro unos cientos de pestañas en el terminal.

No es una cuestión de cuánto tiempo de CPU se come en el proceso de enumeración, la cuestión es que después de que todas las consultas hayan terminado, la carga no baje.
Si asumimos que para cada símbolo solicitado se deja un hilo separado en memoria (no se destruye) para su uso posterior, entonces esto lo explica todo y no hay preguntas.

¿Y he afirmado que pedir presupuestos es una operación sencilla? No es eso lo que he escrito en absoluto. Sobre mí simplificando el guion a la primitiva para que no influyan otros factores y dejando "sólo la petición de oferta".

Si realmente piensa que el comercio requiere entender que la solicitud de cotizaciones es una operación complicada, no es así en absoluto.

En cuanto al consejo de dejar el trading y alejarse del ordenador, demasiado tarde. Llega usted 25 años tarde para el primer punto y 10 años tarde para el segundo.

Si los promotores lo consideran necesario, tendrán en cuenta la información. Si no lo hacen, no lo hacen.

Saludos, Alexander.

 
suncrypto:

Puede que no haya ningún error, no lo estoy afirmando, señalé este comportamiento como un posible error, este hilo parece estar diseñado para ello, ¿o me equivoco?

Por lo que dices, tengo hardware más que suficiente. El consumo de memoria, por cierto, es relativamente bajo para esta operación, unos 3,5 GB. Todo está bien con la memoria, y en general todo funciona de forma estable.

Ahora, he reducido intencionadamente el número de barras en la configuración de 1mln a 1k. No hubo ninguna diferencia. Creo que tendrá más efecto si abro unos cientos de pestañas en el terminal.

No es una cuestión de cuánto tiempo de CPU se come en el proceso de enumeración, la cuestión es que después de que todas las consultas hayan terminado, la carga no baje.
Si suponemos que por cada carácter solicitado se deja un hilo separado en memoria (no se destruye) para su uso posterior, entonces esto lo explica todo y no hay preguntas.

¿Y he afirmado que pedir presupuestos es una operación sencilla? No es eso lo que he escrito en absoluto. Sobre cómo simplifiqué el guión a uno primitivo para que no influyan otros factores y dejé "sólo la solicitud de presupuesto".

Si realmente piensa que para operar hay que saber que pedir cotizaciones es una operación complicada, no es así en absoluto.

En cuanto al consejo de dejar el trading y alejarse del ordenador, demasiado tarde. Llegas 25 años tarde para el primer punto y 10 años tarde para el segundo.

Si los promotores lo consideran necesario, tendrán en cuenta la información. Si no lo hacen, no lo hacen.

Saludos, Alexander.

¿Has reiniciado tu terminal después de disminuir el número de barras?

 
Vladimir Karputov:

¿Has reiniciado el terminal después de reducir el número de barras?

Por supuesto que sí.
 
Vladimir Karputov:

¿Has reiniciado el terminal después de reducir el número de barras?

suncrypto:
Por supuesto.

Hice un experimento.

He abierto unas 100 ventanas en el terminal (no abre más, hay un límite).
La carga del procesador aumentó ligeramente hasta el 8-10% y el tamaño de la memoria utilizada aumentó, lo cual es lógico.
Entonces cerré el terminal, lo abrí de nuevo, la carga aumentó hasta el 70-80% y después de un minuto se normalizó y volvió al 8-10%.

(Ajústalo a 1 millón de barras en los ajustes).


Por lo tanto, la situación descrita anteriormente (con conexión externa), es como se dice, o un error o una característica.
Sólo los desarrolladores conocen la respuesta correcta.
Si se trata de un error, cierre el terminal y vuelva a abrirlo después de dicha operación. La operación no es frecuente.

 
suncrypto:

Si esto es una característica, entonces cerrar el terminal después de tal operación y volver a abrirlo es toda una solución. La operación no es frecuente.

Sí, se supone que el terminal mantiene un caché de las series temporales solicitadas recientemente.

Pero no tiene que hacerlo siempre, creo que había un tiempo de espera de 3 o 5 minutos.

 
suncrypto:


Tenga en cuenta que a partir de la versión 2650:


1.Terminal: Se ha añadido el ajuste "Cargar los datos del gráfico por adelantado para las posiciones y órdenes abiertas".


Para ahorrar tráfico, la plataforma de negociación sólo descarga el historial de precios de los instrumentos en el momento de su solicitud real, por ejemplo, al abrir un gráfico o ejecutar una prueba. Sin embargo, en el caso de los instrumentos de uso activo, esto no siempre es conveniente. Si activa la nueva opción, los gráficos de los instrumentos para los que tiene posiciones abiertas u órdenes pendientes se actualizarán en segundo plano cada vez que inicie la plataforma. Así, cuando abra los gráficos, no tendrá que esperar a que se recarguen los datos, sino que estarán disponibles inmediatamente para su análisis.

Новая версия платформы MetaTrader 5 build 2650: Фоновая загрузка графиков и улучшения в профилировщике MQL5-кода
Новая версия платформы MetaTrader 5 build 2650: Фоновая загрузка графиков и улучшения в профилировщике MQL5-кода
  • 2020.10.08
  • www.mql5.com
В пятницу 9 октября 2020 года будет выпущена обновленная версия платформы MetaTrader 5...
 
Andrey Khatimlianskii:

Sí, se supone que el terminal mantiene un caché de las series de tiempo solicitadas recientemente.

Pero no debería hacer esto siempre, creo que había un tiempo de espera de 3 o 5 minutos.

Sí, todo está bien en el propio terminal. Cerrar las ventanas "innecesarias" reduce tanto la carga de la CPU como el consumo de memoria.
La única pregunta hasta ahora es sobre la conexión externa desde python.
 
Vladimir Karputov:

Tenga en cuenta que a partir de la versión 2650:


1.Terminal: Se ha añadido el ajuste "Cargar los datos del gráfico por adelantado para las posiciones y órdenes abiertas".


Para ahorrar tráfico, la plataforma de negociación sólo descarga el historial de precios de los instrumentos en el momento de su solicitud real, por ejemplo, al abrir un gráfico o ejecutar una prueba. Sin embargo, en el caso de los instrumentos de uso activo, esto no siempre es conveniente. Si activa la nueva opción, los gráficos de los instrumentos para los que tiene posiciones abiertas u órdenes pendientes se actualizarán en segundo plano cada vez que inicie la plataforma. Así, cuando abra un gráfico, no tendrá que esperar a que se carguen los datos, ya que estarán disponibles inmediatamente para su análisis.

En este punto, hay una cláusula de exención de responsabilidad:"Los gráficos de los instrumentos para los que tiene posiciones abiertas u órdenes pendientes.
Además, todos los gráficos ya se han cargado en la base de datos local mientras se ejecuta el script, el tráfico es mínimo.

Aunque no es del todo correcto, si establecemos una analogía con el servidor SQL al que le hacemos al menos 1 millón de peticiones de datos, entonces, sí, habrá un pico de carga en el procesador en el momento, pero la carga en el procesador se reducirá definitivamente después de que la operación se complete.

Por supuesto, Metatrader no es un servidor sql, es una plataforma diferente, pero por alguna razón me parece que después de la ejecución de las solicitudes a MetaTrader para las cotizaciones y el cierre de la conexión a la misma, todo debería volver a la normalidad. Espero que los desarrolladores de metatrader lo expliquen.

 
mox_dimass:

¿Cuál es el error con el rollover en el probador? En el archivo adjunto una captura de pantalla con un ejemplo: una posiciónabierta de Venta, cerrada por rollover a través de Compra, luego reabierta a través de Venta, pero con volumen cero.

Como resultado, la posición no se reabre, sino que desaparece. Está resaltado en la captura de pantalla. Ya he escrito sobre ello pero sin fotos. ¿Qué tipo de error es este? Hace imposible probarlo.

Me pregunto si los desarrolladores responderán a este fallo. Al fin y al cabo, el rollover lo genera el probador y no mi software.