Discusión sobre el artículo "Interfaces gráficas X: Gestión ampliada de las listas y tablas. Optimización de código (build 7)" - página 4

 
Anatoli Kazharski:

A través de eventos, entonces. Pero no a través de un temporizador con tanta frecuencia. En general, los frenos están de tu lado, no del lado de la biblioteca o de la grabación de vídeo. No tengo más preguntas.

Está claro que los frenos están de mi lado - no seas tan vulnerable (intentas defenderte ;)). Pero que no existen esos frenos sin grabación de vídeo es un hecho. Están ahí, pero son pequeños.

¿Cómo se puede organizar un modelo de eventos sin temporizador cuando se trata de un número desconocido de caracteres? OnTick()no le permitirá detectar a tiempo el evento requerido en un símbolo "no nativo".
Así que - sólo para navegar por el temporizador en un bucle todos los símbolos necesarios, definir el criterio y enviar el evento. Entonces ya procesar el evento.
Ya he pensado en esto. Usted no puede deshacerse del bucle a través de los personajes en el temporizador con el control de los criterios requeridos de todos modos. Y el procesamiento de eventos no toma mucho tiempo. Aunque aliviará ligeramente el temporizador. Lo probaré por supuesto - ya iba a probarlo.

 
Artyom Trishkin:

...

¿Cómo organizar un modelo de eventos sin temporizador cuando se busca un número desconocido de caracteres? OnTick()no le permitirá determinar el evento requerido en un carácter "no nativo" en el tiempo.
Así que - sólo mirar a través del temporizador en un bucle a través de todos los caracteres requeridos, determinar el criterio y enviar el evento. Entonces ya procesar el evento.
Ya he pensado en esto. Usted no puede deshacerse del bucle a través de los caracteres en el temporizador con el control de los criterios requeridos de todos modos. Y el procesamiento de eventos no toma mucho tiempo. Aunque aliviará ligeramente el temporizador. Lo intentaré por supuesto - ya iba a hacerlo.

¿Y cuántos caracteres estaban en el procesamiento al grabar vídeo?

Esta opción no es adecuada? >>> MQL5 Recetas - Multicurrency Expert Advisor: un ejemplo de un esquema sencillo, preciso y rápido. Si no es así, ¿por qué no?

 
Artyom Trishkin:


¿Cómo organizar un modelo de eventos sin temporizador cuando se busca un número desconocido de caracteres? OnTick()no le permitirá definir oportunamente el evento requerido en un carácter "no nativo".
Así que - sólo para ver todos los caracteres requeridos a través del temporizador en un bucle, definir el criterio y enviar el evento. Entonces ya procesar el evento.
Ya he pensado en esto. Usted no puede deshacerse del bucle a través de los personajes en el temporizador con el control de los criterios requeridos de todos modos. Y el procesamiento de eventos no toma mucho tiempo. Aunque aliviará ligeramente el temporizador. Lo probaré por supuesto - ya iba a probarlo.

En un tiempo, estudié los intervalos de tiempo entre los ticks entrantes por alguna razón. Buscaba algunos patrones. Pasé semanas en ello. Puedo decir que los flujos observados de ticks venían con una frecuencia no superior a 90 - 100 milisegundos.

Si usted necesita comprobar un montón de instrumentos para las garrapatas, creo que no tiene sentido hacerlo con más frecuencia que una vez cada 100 milisegundos. No creo que haya asincronía en la llegada de ticks entre instrumentos, lo que haría necesario aumentar la frecuencia de comprobación hasta el máximo de 16 ms.

Puedes comprobar fácilmente si hay asincronía en la llegada de ticks en los instrumentos, lo que eleva la frecuencia total de ticks a 16 ms con Alert.
 
Anatoli Kazharski:

¿Y cuántos personajes había en el proceso cuando se grabó el vídeo?

¿Es esta variante no es adecuado? >>> MQL5 Recipes - Multicurrency Expert Advisor: un ejemplo de un esquema simple, preciso y rápido. Si no es así, ¿por qué no?

El número total de símbolos implicados era aproximadamente 13 de 34 - primero se determina la presencia de una señal en los símbolos allí, se seleccionan los que tienen una señal, y estos son los que participan en la búsqueda en el temporizador - se busca el precio que cruza los niveles requeridos.

Me preguntaba por qué es necesario buscar una nueva barra para cada símbolo presente en la Observación del Mercado en el temporizador - es un gasto inadmisible de recursos cuando se utilizan sólo tres tf - diario, semanal y mensual. Necesitamos algún otro algoritmo. Pero de nuevo - independiente de los ticks del símbolo actual.

En cuanto al modelo de eventos propuesto, ya lo he practicado, pero sólo en los casos en que los gráficos estaban abiertos. Pero de esta manera tendré que añadir un agente para cada símbolo necesario (no conocido de antemano), que enviará eventos - ¿no requerirá aúnmás recursos?

 
Artyom Trishkin:

El número total de símbolos implicados era de unos 13 de 34 - allí se determina primero la presencia de señal en los símbolos, se seleccionan los que tienen señal, y estos son los que participan en la búsqueda en el temporizador - se busca el cruce de precios de los niveles requeridos.

Me preguntaba por qué es necesario buscar una nueva barra para cada símbolo presente en la Observación del Mercado en el temporizador - es un gasto inadmisible de recursos cuando se utilizan sólo tres tf - diario, semanal y mensual. Necesitamos algún otro algoritmo. Pero de nuevo - independiente de los ticks del símbolo actual.

En cuanto al modelo de eventos propuesto, ya lo he practicado, pero sólo en los casos en que los gráficos estaban abiertos. Pero de esta manera tendré que añadir un agente para cada símbolo necesario (no conocido de antemano), que enviará eventos - ¿no requerirá aúnmás recursos?

No puedo decir con seguridad cuál será el resultado final. Tengo que probarlo. Yo también estoy ocupado, así que si lo haces, por favor demuéstralo más tarde si tienes un minuto libre. Muy interesante.

Ahora estoy trabajando en un campo de entrada multilínea(CTextBox) sin restricciones. Será casi análogo a la aplicación de Windows "Notepad". )

 
Anatoli Kazharski:

No puedo asegurar cuál será el resultado final. Tengo que probarlo. Yo también estoy ocupado, así que si lo haces, por favor demuéstralo más tarde si tienes un minuto libre. Muy interesante.

Estoy trabajando en un campo de entrada multilínea(CTextBox) sin restricciones. Será casi análogo a la aplicación de Windows "Bloc de notas". )

Bueno, vamos a ver cuál será el resultado.

Interesante campo de entrada - vamos a ver ;)

 
Artyom Trishkin:

Me preguntaba por qué tengo que buscar una nueva barra para cada uno de los símbolos presentes en la Observación del Mercado en el temporizador - esto es un gasto inexcusable de recursos cuando sólo se utilizan tres tf's - diario, semanal y mensual. Necesitamos algún otro algoritmo. Pero de nuevo - independiente de los ticks del símbolo actual.

El tiempo teórico de la aparición de la siguiente barra es conocido. Y es el mismo para todos los instrumentos.

Puede comprobar si una barra ha aparecido realmente en la lista de instrumentos de trabajo sólo cuando llegue este tiempo estimado.

 
Andrey Khatimlianskii:

El tiempo teórico de aparición del siguiente compás es conocido. Y es el mismo para todos los instrumentos.

Puede comprobar si una barra ha aparecido realmente en la lista de instrumentos de trabajo sólo cuando llegue este tiempo estimado.

Sí, Andrei, es conocido. Pero es diferente para los distintos mercados. En Forex es una cosa, en acciones es bastante diferente. No me gustaría introducir el control manual de este tiempo. Me gustaría que sea capaz de determinar nuevas barras en cualquier mercado por sí mismo, sin especificar el momento a partir del cual se debe empezar a esperar a su ocurrencia.

Y, sí, no en cada símbolo del mismo mercado una nueva barra viene al mismo tiempo que las otras - cuando viene el primer tick. Esto significa que debe esperar la aparición de nuevas barras en todos los símbolos durante algún tiempo.

 
Artyom Trishkin:

Sí, Andrei, se sabe. Pero es diferente para los distintos mercados. En forex es una cosa, en acciones es bastante diferente. No me gustaría introducir el control manual de este tiempo. Me gustaría que fuera capaz de determinar nuevas barras en cualquier mercado por sí mismo, sin especificar el momento a partir del cual debe empezar a esperar por ellos.

Y, sí, no en cada símbolo del mismo mercado una nueva barra viene al mismo tiempo que las otras - como viene el primer tick. Y esto significa que usted debe esperar la aparición de nuevas barras en todos los símbolos durante algún tiempo.

Bueno, sí, en algún lugar y a las 11 de la mañana puede aparecer una barra, comprobar a partir de las 00:00 no es una opción.

Entonces lo más fácil es poner la comprobación de una nueva barra en un segundo temporizador separado (más a menudo no tiene sentido, por lo que a mí respecta).

 
Andrey Khatimlianskii:

Sí, una barra puede aparecer en algún lugar a las 11 de la mañana, la comprobación a partir de las 00:00 no es una opción.

Entonces la forma más fácil es poner la comprobación de una nueva barra en un segundo temporizador separado (más a menudo no tiene sentido, por lo que a mí respecta).

En la especificación del símbolo hay sus sesiones - cotización y negociación. Probablemente deberíamos tratar de empezar desde ellos....