Sugerencias para mejorar el MetaEditor - página 6

 
Lizar:
Inténtalo. Funciona en el probador. Pero con los ajustes estipulados en el artículo.

¿Y qué en el probador para enviar a través del evento?

A) Los gráficos en el probador no se abren

B) los indicadores de eventos no reciben

El Asesor Experto se enviará eventos a sí mismo, ¿para qué?

 

Обработка событий в тестере

La presencia del manejador OnTick() en un Asesor Experto no es necesaria para ser probado en datos históricos en el Probador de Estrategias del terminal MetaTrader 5. Es suficiente que el Asesor Experto tenga al menos una función de manejador de las enumeradas anteriormente:

  • OnTick() - manejador de un evento de llegada de un nuevo tick;
  • OnTrade () - manejador del evento de comercio;
  • OnTimer() - manejador de eventos de la llegada de la señal del temporizador;
  • OnChartEvent() - manejador de eventos personalizados.

Cuando se realizan pruebas en un Asesor Experto, los eventos personalizados pueden ser manejados por OnChartEvent(), pero en los indicadores esta función no es llamada en el probador. Incluso si el indicador tiene el manejador OnChartEvent(), y este indicador se utiliza en el Asesor Experto bajo prueba, el indicador en sí no recibirá ningún evento personalizado.

El indicador durante las pruebas puede generar eventos personalizados utilizando la función EventChartCustom(), mientras que el Asesor Experto puede procesar estos eventos en OnChartEvent().

1. Por el momento, que yo recuerde, el Asesor Experto en el probador no procesa los eventos enviados mediante la función EventChartCustom()

2. El artículo contiene una indicación de que la función no funcionará en los indicadores del probador, pero el archivo de ayuda no lo hace. ¿Cómo lo entiende?

3. bueno, no está bien que algo funcione en demo/real y no funcione en tester. Lo que sea que quieras hacerme, sigue estando mal.

Si hago OnChartEvent() en los indicadores, que funcione en todas partes, de lo contrario no tiene sentido mantenerlo allí...

PS

Pregunta para los desarrolladores: ¿no funciona en el probador en absoluto, o sólo lo que se envía con OnChartEvent()?

 
Urain:

¿Y qué en el probador para enviar a través del evento?

A) Los gráficos en el probador no se abren

B) los indicadores no reciben eventos

el Asesor Experto se enviará eventos a sí mismo, ¿qué sentido tiene eso?

Tiene sentido, yo, por ejemplo, me he enviado con éxito, y más de uno (hasta que el probador rompió la recepción de eventos).

Y cuando el probador comience a entender y procesar el gráfico, será lógico que reciba eventos...

 

La cuestión no está clara. ¿A qué te refieres con "no funciona en absoluto en el probador, o sólo procesa lo que se envía con OnChartEvent()"?

No hay ningún mecanismo en el probador para entregar ChartEvent a los indicadores. El ciclo de entrega de eventos al Asesor Experto bajo prueba es precisamente la parte principal del probador.

 
Interesting:

Hay un punto, yo, por ejemplo, me envié con éxito, y más de uno (hasta que la recepción de eventos se rompió en el probador).

¿Así que el probador solía tener recepción de eventos, pero luego se rompió?
 
Interesting:

Tiene sentido, yo, por ejemplo, me envié con éxito, y más de uno (hasta que el probador rompió la recepción de eventos).

Y cuando el probador comience a entender y procesar los gráficos, será lógico que reciba eventos...

Dentro de un programa hay muchas posibilidades de transferir información, pero el sentido de los eventos es la transferencia de información entre diferentes programas.
 
Lizar:

Hace un par de semanas que se anunció oficialmente en el artículo:

Se anuncia oficialmente en las "build updates", no en los artículos. ¿Había algo en las "actualizaciones"?
 
Urain:
Dentro de un programa hay muchas oportunidades de transferir información, el punto de los eventos es transferir información entre diferentes programas.

La cuestión no es cómo entregar, sino que lo que funcionaba en el probador (y debería haberlo hecho) dejó de funcionar allí hace unos 6 meses.

estrangulamiento:

No hay ningún mecanismo en el probador para entregar ChartEvent a los indicadores. El ciclo de entrega de eventos al Asesor Experto bajo prueba es la parte principal del probador.

¿Así que antes había recepción de eventos en el probador y luego se rompió?

Me refiero al problema de EventChartCustom() -> OnChartEvent() en el probador de Asesores Expertos. Quizás no entiendo algo, pero antes del campeonato funcionaba bien, pero ahora no.

Al mismo tiempo, creo que todo el mundo lo sabe y lo entiende ya, pero la "locomotora" sigue sin moverse (a pesar de que es exactamente la "parte principal").

Un ejemplo sencillo:

1 . Inicializamos el Asesor Experto iniciando un temporizador cada 300 segundos (5 minutos).

//Function OnInit
int OnInit()
//Function for initialization of the trade system
{
//----------------------------------------------------------------------------//
int Result = 0; //Returned importance
//----------------------------------------------------------------------------//

EventSetTimer(300);

//----------------------------------------------------------------------------//
return(Result);
//----------------------------------------------------------------------------//
}

2. En el temporizador prescribimos el envío del evento con el código 1001

//Event OnTimer
void OnTimer()
{
//----------------------------------------------------------------------------//
//Work variables
int customEventID; // номер пользовательского события для отправки
//----------------------------------------------------------------------------//
customEventID=CHARTEVENT_CUSTOM+1;

EventChartCustom(0,(ushort)(customEventID-CHARTEVENT_CUSTOM),0,0,"OnTimer - EventChartCustom");
//----------------------------------------------------------------------------//
}
3. captar este evento en el Asesor Experto
//Event OnChartEvent
void OnChartEvent(const int id,
                  const long& lparam,
                  const double& dparam,
                  const string& sparam
                  )
{
//----------------------------------------------------------------------------//
//Work variables
//----------------------------------------------------------------------------//

//----------------------------------------------------------------------------//
//                          Processing user events                            //
//----------------------------------------------------------------------------//
  if(id>CHARTEVENT_CUSTOM)
  //User event is received
  {
  Print("New event, ID ",id," - ",sparam);
  }
//----------------------------------------------------------------------------//  
}


El resultado es que la Demo recibe el evento, pero el Probador de Estrategias no.

Y este es un elemento básico del sistema de comercio que se supone que funciona incluso en caso de "guerra nuclear".

1. Demostración con un temporizador de 1 minuto


2. un probador con un temporizador de 1 hora


También debo añadir que las pruebas se realizaron del 01/04/2011 al 07/04/2011 en el marco temporal 1H.

¿Y dónde están?

PS

¿Quizás alguien piensa que si un mensaje no llega desde Expert Advisor, lo hará desde iinduke?


 
Yedelkin:
Se anuncia oficialmente en las "actualizaciones", no en los artículos. ¿Había algo en las "actualizaciones"?

Sí no había nada, como el bicho apareció por lo que pesa.

Y sobre el hecho de que en el artículo por lo que no debe ser especificado en los artículos, y ni siquiera en la descripción de las nuevas construcciones, aunque allí también.

De hecho, estas cosas deberían estar prescritas en el manual de la lengua. Muéstrame dónde hay siquiera una palabra al respecto (yo personalmente no la he encontrado)...

 
stringo:
¿Así que antes había recepción de eventos en el probador y luego se rompió?

Eso es lo que debería estar haciendo, prepararme adecuadamente para el examen estatal. lo que estoy haciendo es buscar mis mensajes en el foro. :)

1. Bichos, bichos, preguntas.

Bugs , bugs, preguntas.

Quise encontrar el primer post sobre el problema, y no lo encontré, aunque recuerdo que durante el campeonato ya no funcionaba el fic...

Supongamos que el post data del 05/09/2010 y fue el primero sobre el tema en cuestión. Conclusión: ya han pasado 8 meses... :(

PS

Aquí hay más información al respecto:

Mi ejemplo del 06/09/2010

E incluso Alexey prometió pensar en una solución al problema