Deseos para MT5 - página 50

 

Yedelkin:

Bueno, porque el manual dice que"el evento NewTick se genera cuando se recibe un nuevo tick en el símbolo al que el EA está vinculado en el gráfico", el hecho de recibir nuevos ticks debería provocar la generación de eventosNewTick.

A juzgar por la pregunta, ¿crees que no se generan eventos NewTick cuando OnTick() está desactivado? Pero no he encontrado esa información en el manual de referencia.

Así es como yo lo veo: si no hay manejador, el evento no se pone en cola. Esto es lógico, y no veo el sentido de escribir sobre ello en la ayuda.

El Asesor Experto genera un gran número de eventos (eventos comerciales, de un gráfico, etc.), no es necesario manejarlos todos.

Si todos los eventos (incluidos los no gestionados) se pusieran en cola, algunos EAs no funcionarían - su evento no llegaría a la cola (por ejemplo, cuando se trabaja sólo con el temporizador una vez al día).

 
komposter:

Así es como yo lo veo - si no hay un manejador, el evento no se pondrá en cola. Esto es lógico y no veo el sentido de escribir sobre ello en la ayuda.

El Asesor Experto genera un gran número de eventos (eventos comerciales, eventos de gráficos, etc.), no es necesario manejarlos todos.

Si todos los eventos (incluidos los no manejados) se colocaran en la misma cola, algunos Asesores Expertos no podrían trabajar - su evento no llegaría a la cola (por ejemplo, cuando sólo el temporizador funcionaba una vez al día).

En mi opinión, los dos tipos de eventos (NewTick y Timer) deben ser procesados por separado de los demás.

Lo más probable es que también debamos separar los eventos de comercio (Trade) y los eventos para el procesamiento de la Profundidad de Mercado (BookEvent).

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Типы событий графика
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Типы событий графика
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы графиков / Типы событий графика - Документация по MQL5
 

Lizar, interesante,

Me equivoqué en las conclusiones de la operación del probador. Al parecer, confundí los registros de la demo con los de los probadores. El diseño de

void OnChartEvent(const int id,           
                const long& lparam,   
                const double& dparam, 
                const string& sparam  
                )
  {
   if(id==CHARTEVENT_CUSTOM) TesterWithdrawal(1);
  }

todavía no me funciona. Sugiere que el evento de usuarioCHARTEVENT_CUSTOM de los indicadores de los símbolos ajenos no se recibe o no se procesa.

 
komposter:

Creo que este es el caso - si no hay manejador, el evento no se pone en cola.

Estaría bien que se confirmara esta versión. Pero para el probador, los ticks se generan de todos modos. Incluso cuando son absolutamente innecesarios.

komposter:

Esto es lógico y no veo ninguna razón para escribir sobre ello en la ayuda.

Tal vez sea lógico, pero no para todos. Los desarrolladores han reprendido repetidamente a los usuarios por pensar demasiado. Por lo tanto, en mis conclusiones intento basarlas únicamente en la información disponible en este momento. Y en la actualidad, como se ha dicho antes, el manual dice que"el evento NewTick se genera cuando serecibe un nuevo tick para el símbolo, al gráfico del que está unido el Asesor Experto". No encontré ninguna cláusula de excepción, por lo que llegué a la conclusión de que el hecho de recibir nuevos ticks debe provocar la generación de eventosNewTick.

komposter:

El Asesor Experto genera un gran número de eventos (eventos comerciales, del gráfico, etc.), no es necesario manejarlos todos.

Para asegurarse de que el eventoNewTick no se maneja, propongo hacer una función de cambio. El Asesor Experto podrá decidir por sí mismo si requiere la generación de eventosNewTick por parte del terminal. Mi Asesor Experto debería trabajar sólo con señales "ajenas", pero aún así necesita estar unido a algún gráfico. Y resulta, por ejemplo, que durante las pruebas/optimización se gasta una cierta cantidad de tiempo en generar ticks para el símbolo al que está vinculado el Asesor Experto, mientras que el Asesor Experto no necesita estos ticks (y eventos NewTick) en absoluto.
 
Yedelkin:

Pero para el probador, los ticks se generan de todos modos. Incluso cuando son completamente innecesarios.

¿Qué significa? ¿Y comprobará la activación de órdenes (pendientes, SL y TP) a qué precios?

En el probador, necesitamos ticks para todos los símbolos, en los que el EA opera. Por supuesto, cuanto mayor sea el número de instrumentos y la calidad del modelado, más lenta será la operación.


Yedelkin:

Y de momento, como se ha dicho, el manual dice que"el evento NewTick se generacuando llega un nuevo tick para el símbolo a cuyo gráfico está unido el Asesor Experto". No he encontrado ninguna cláusula de excepción a esta regla y por tanto he llegado a la conclusión de que la llegada de nuevos ticks debería generar el eventoNewTick.

Sí, pero siguiendo esta lógica, todos los demás eventos deberían ponerse en cola de la misma manera. Eso sería demasiado.

 
komposter:

¿Cómo es eso? ¿Y comprobará la activación de las órdenes (pendientes, SL y TP) a qué precios?

Pues bien, repito: el EA no funciona con el símbolo adjunto en absoluto. Y no necesita seguir el SL y el TP de este símbolo. Es decir, el EA no necesita ticks para este símbolo. El EA se adjunta al símbolo sólo cuando es necesario, ya que necesita adjuntarse al menos en algún lugar para activarse.

komposter:


Sí, pero siguiendo esta lógica, todos los demás eventos deben ponerse en cola exactamente de la misma manera. Sería demasiado.

Siguiendo esta lógica, todas las excepciones a las reglas de generación de ticks y/o eventos de cola deben ser listadas en el libro de referencia. Hasta ahora, sólo he encontrado una excepción, - para un caso en el que (1) hay una función OnTick(), (2) esta función maneja el evento anterior NewTick. Esta excepción no se ajusta a mi caso.

Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
Основы языка / Функции / Функции обработки событий - Документация по MQL5
 

Yedelkin:

Siguiendo esta lógica, todas las excepciones a las reglas de generación de ticks y/o eventos de cola deben figurar en el manual. Hasta ahora, sólo he encontrado una excepción, que es el caso cuando (1) hay una función OnTick(), (2) esta función maneja el evento NewTick anterior. Esta excepción no se ajusta a mi caso.

Sería lógico suponer que si OnTick() está ausente, no hay procesamiento de ticks para este gráfico (por el símbolo de este gráfico).

Si los eventos se ponen en cola o no, y en qué cola es otra cuestión. ¡Lo principal es que los ticks no son procesados por el gráfico (Expert Advisor en él)!

Si tenemos en cuenta que el EA procesa ticks de otros gráficos, tendremos que considerar el procesamiento de ticks EXTERNOS.

Por lo tanto, en mi opinión, en mi Asesor de Expertos debe ser creado su propio procesamiento de garrapatas, en el que como parámetros de entrada para pasar: símbolo, tiempo, precio (el evento personalizado teóricamente permite hacer todo esto).

Creo que es el trabajo con el potk de eventos personalizados lo que hay que estudiar y optimizar en detalle.

 
Interesting:

Si se tiene en cuenta que el EA procesa ticks de otros gráficos, entonces es necesario trabajar con el procesamiento de ticks EXTERNOS.

Por lo tanto, en mi opinión, en el Asesor de Expertos debe ser creado su propio procesamiento de garrapatas, en el que como parámetros de entrada para pasar: símbolo, el tiempo, el precio (el evento personalizado teóricamente permite hacer todo esto).

En mi opinión, sólo el trabajo con potk evento personalizado debe ser estudiado y optimizado en los detalles.

Tienes razón, ese es exactamente el camino que seguí, manejando sólo los ticks externos. Todavía no hay preguntas aquí.

Interesante:

Sería lógico suponer que si OnTick() está ausente, el procesamiento de ticks para este gráfico (según el símbolo de este gráfico) no se realiza.

Si los eventos se ponen en cola o no, y en qué cola es otra cuestión. ¡Lo principal es que los ticks no son procesados por el gráfico (Expert Advisor en él)!

Así que me fijo en que la cola general en mi caso no esté atascada con eventos de ticks "internos". Podría estar equivocado, por supuesto, pero debería ser mucho más fácil "deshabilitar" que "asegurar la generación oportuna de ticks, la cola de eventos adecuada, la sincronización con el servidor, etc." ...Deja que el "valor por defecto" para la mayoría de la gente permanezca como está en este momento, pero para la gente extrema como yo, agrega una función de deshabilitar/conmutar. Con precauciones en el manual si puede haber algún efecto secundario.
 
Yedelkin:

Así es, esa es exactamente la forma en que lo hice: manejando exclusivamente las garrapatas externas. Todavía no hay preguntas aquí.

En eso me fijo, en que la cola general en mi caso no se atasque con eventos de ticks "internos". Podría estar equivocado, por supuesto, pero "desactivar" debería ser mucho más fácil que "asegurar la generación oportuna de ticks, la cola de eventos adecuada, la sincronización con el servidor, etc." ...Deja que el "valor por defecto" para la mayoría de la gente permanezca como está en este momento, pero para la gente extrema como yo, añade una función de desactivación/interruptor. Con precauciones en el manual si puede haber algún efecto secundario.

En cuanto a la facilidad, es una cuestión discutible, y la variante que propones no lo es menos (en mi opinión).

La cuestión relativa a los ticks, y a todos los eventos en general, es qué pasa con los eventos si no hay un manejador en el Asesor Experto.

Mi segunda pregunta a este respecto sería: ¿se manejan todos los eventos en la misma cola o ciertos eventos (OnTimer, OnTick y OnTrade) tienen sus propias colas?

 
Interesting:

Más fácil es discutible, y la opción que propones no es menos discutible (en mi opinión).

Estoy de acuerdo; es difícil juzgar lo que no se conoce. Sólo queda expresar los deseos :) Sobre la discutibilidad de mi versión puedo decir que lo principal aquí es la idea de "¡No necesito tics!"; cómo se implementará depende de los desarrolladores.

Interesante:

La cuestión de los ticks, y de todos los eventos en general, es qué pasa con los eventos si no hay un manejador en el Asesor Experto.

Exactamente. Sólo hay una solución para mí - para cortar los extremos (introducir la función de interruptor), y está garantizado para no molestar a la pregunta :) Pero también debemos recordar al probador que pierde el tiempo creando (¿generando?) ticks que en principio son innecesarios. Sólo porque el probador se ve obligado a apegarse a uno de los personajes.

Interesante:

La segunda pregunta que tengo en este contexto es la siguiente: ¿se procesan todos los eventos en una cola o hay colas separadas para ciertos eventos (OnTimer, OnTick y OnTrade)?

Pues bien, en el manual se indica explícitamente que "todos los eventos que se producen" se ponen en una cola común y se procesan uno tras otro en el orden en que se reciben. La única excepción se especifica para NewTick. De alguna manera has demostrado que el evento OnTimer no siempre se maneja, pero también puede ser eliminado como resultado del desbordamiento de la cola común. No he visto ninguna mención a colas separadas para cada evento en absoluto.

Razón de la queja: