Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1112

 
Alexey Viktorov:

En OnChartEvent, también es necesario conocer el nombre exacto del objeto. Y no se tiene hasta que se tiene el objeto en sí.

Es, sobre la creación, en sparam.

En general, funciona en OnChartEvent, pero no funciona en el probador.

 
Andrey Sokolov:

Es, sobre la creación, en sparam.

En general, funciona en OnChartEvent, pero no funciona en el probador.

Prueba esta lógica:

si hay un nuevo objeto ...

 
Andrey Sokolov:

Es, sobre la creación, en sparam.

En general, funciona en OnChartEvent, pero no funciona en el probador.

Pero, ¿con qué debo compararlo? ¿Cómo se distingue que es el objeto correcto? ¿Cómo sabes que funciona con la misma garrapata?

Artyom Trishkin:

Prueba esta lógica:

Si hay un nuevo objeto ...

Va a estar en la siguiente garrapata, no importa lo difícil que sea.

 
Artyom Trishkin:

Prueba esta lógica:

si hay un nuevo objeto ...

Por favor, aclare cómo exactamente

 
Alexey Viktorov:

¿Pero con qué comparas a Sparam? ¿Cómo puedes saber si es el objeto correcto? La parte del nombre.

¿Cómo se puede saber si funciona con la misma garrapata? - Al imprimirlo.

 
Andrey Sokolov:

¿Pero con qué comparas a Sparam? ¿Cómo puedes saber si es el objeto correcto? La parte del nombre.

¿Cómo se puede saber si funciona con la misma garrapata? - Impresión de la salida.

1. Mira los otros objetos para ver si esas partes del nombre coinciden.

2. ¿Imprime el tiempo en segundos? ¿Y con qué frecuencia hay garrapatas?

 
Alexey Viktorov:


Será, por así decirlo, en el siguiente tic.

Bueno, espera..., en un temporizador de milisegundos podemos saber el volumen actual. Mientras el volumen no haya cambiado (tick actual) comprobamos si ha aparecido un nuevo objeto. Tan pronto como el número pasado de objetos no es igual al número actual de objetos, mientras que el Volumen actual es igual al Volumen pasado - se capta la aparición de algún objeto dentro de la garrapata actual - se hace lo que se necesita.
¿O me equivoco? Hay que comprobarlo...

SZZ. Como vemos - cuando aparece un nuevo objeto en el temporizador, enviamos un evento de usuario, en el que escribimos la información necesaria. Todo el procesamiento de la aparición del nuevo objeto de esta manera se hará en el manejador de eventos. Y no es seguro que la suposición sea correcta, y vale la pena...

 
Artyom Trishkin:

Un momento, en un temporizador de milisegundos podemos saber el Volumen actual. Mientras el volumen no haya cambiado (tick actual) comprobamos si ha aparecido un nuevo objeto. Tan pronto como el número pasado de objetos no es igual al número actual de objetos, mientras que el Volumen actual es igual al Volumen pasado - se capta la aparición de algún objeto dentro de la garrapata actual - se hace lo que se necesita.
¿O me equivoco? Hay que comprobarlo...

SZZ. Como vemos - cuando aparece un nuevo objeto en el temporizador, enviamos un evento de usuario, en el que escribimos la información necesaria. Todo el procesamiento de la ocurrencia de nuevos objetos de esta manera se hará en el manejador de eventos. Y no es seguro que la suposición sea correcta y valga la pena...

Si no en el probador, OnChartEvent es suficiente, pero en el probador ni el temporizador ni OnChartEvent funcionan.

Hasta ahora, la cuestión es hacer que funcione en el probador en el mismo tick.

 
Alexey Viktorov:

1. Mira los otros objetos para ver si estas partes del nombre coinciden. - Eso es suficiente para mí.

2. ¿Imprime el tiempo en segundos? ¿Con qué frecuencia aparecen las garrapatas? - No hay ningún retraso apreciable, puede comprobarlo usted mismo, el código es mínimo

 
Artyom Trishkin:

Un momento, en el temporizador de milisegundos podemos saber el Volumen actual. Mientras el volumen no haya cambiado (tick actual) comprobamos si ha aparecido un nuevo objeto. Tan pronto como el número pasado de objetos no es igual al número actual de objetos, mientras que el Volumen actual es igual al Volumen pasado - se capta la aparición de algún objeto dentro de la garrapata actual - se hace lo que se necesita.
¿O me equivoco? Hay que comprobarlo...

SZZ. Como vemos - cuando aparece un nuevo objeto en el temporizador, enviamos un evento de usuario, en el que escribimos la información necesaria. Todo el procesamiento de la aparición del nuevo objeto de esta manera se hará en el manejador de eventos. Y no es seguro que la suposición sea correcta, y vale la pena...

Según entiendo la tarea:

En un gráfico hay un indicador que dibuja marcas y un EA que lee estas marcas.

El Asesor Experto necesita leer en un tick la marca que el indicador dibujó en el mismo tick. ¿Dónde está la garantía de que el indicador funcionará más rápido que el Asesor Experto? El evento se producirá simultáneamente en el indicador y en el Asesor Experto. En segundo lugar, incluso en un código, después de ObjectCreate es imposible leer las propiedades del objeto, a pesar de que el objeto ya ha sido creado.

Dudo mucho de la posibilidad de tal maniobra. Pero me alegraría mucho si estuviera equivocado.