Probador de Estrategias de MetaTrader 5: errores, fallos, sugerencias de mejora - página 38

 

Reproducción del error de reinicio de la entrada durante la compilación.

EA

input int inRange = 0;

void OnInit() {}

1. Establecer inRange = 25 y ejecutar una sola pasada

2. CTRL+V en la pestaña de Configuración del Comprobador de la siguiente línea

inRange=123

3. Recompilar EA.

4. Comprueba que el inRange se restablece a 25. Debería haber sido 123.

 
Slava:

En el temporizador del Comprobador o a través de Sleep desplazado por 0,5 segundos. ¿Cómo identificar lo sucedido? TimeTradeServer no muestra datos de menos de un segundo.

 
fxsaber:

Reproducción del error de reinicio de la entrada durante la compilación.

EA

1. Establecer inRange = 25 y ejecutar una sola pasada

2. CTRL+V en la pestaña de Configuración del Comprobador de la siguiente línea

3. Recompilar EA.

4. Comprueba que el inRange se restablece a 25. Debería haber sido 123.

No es un error.

Como se ha diseñado. Hasta que no se pulsa el botón de prueba, los parámetros actuales no se escriben en el <nombre_del_experto>.set actual

Al volver a compilar, si la composición de los parámetros no ha cambiado, sus valores se restauran a partir del conjunto actual

 
Slava:

No es un error.

Como se ha diseñado. Hasta que no se pulse el botón de prueba, los parámetros actuales no se escriben en el <nombre_del_experto>.set actual

Al volver a compilar, si la composición de los parámetros no ha cambiado, sus valores se restauran a partir del conjunto actual

No lo es. Si escribes 123 a mano, la compilación no cambiará el valor.

 
Yaescribí sobre este tema también, pero no hubo respuesta. De hecho, resulta imposible depurar con parámetros personalizados. Porque la depuración se reconstruye cada vez, aunque no se haya cambiado nada. La reconstrucción restablece los parámetros. Tendré que salir de la ecuación cambiando el Asesor Experto y clavando los parámetros, lo cual no es muy conveniente.
Новая версия платформы MetaTrader 5 build 2190
Новая версия платформы MetaTrader 5 build 2190
  • 2019.11.25
  • www.mql5.com
В пятницу 18 октября 2019 года будет выпущена обновленная версия платформы MetaTrader 5...
 
Andrey Khatimlianskii:

Algo que ha optimizado en exceso con iTime:


Trabajando en la M5:


Se trata de un error de larga duración.

Apareció en ticks reales del EURUSD exactamente en este rango de prueba

Corregido.

 
traveller00:
Tambiénescribí sobre este tema, pero no hubo respuesta. De hecho, resulta imposible depurar con parámetros personalizados. Porque la depuración se reconstruye cada vez, aunque no se haya cambiado nada. La reconstrucción restablece los parámetros. Tendré que salir de la ecuación cambiando el Asesor Experto y clavando los parámetros, lo cual no es muy conveniente.

No has dicho nada sobre los pasos para reproducir el problema que describes.

Personalmente no he podido reproducirlo.

Sólo hay un caso de restablecimiento de los parámetros de entrada a los predeterminados. Al cambiar la composición de los parámetros de este EA

 
fxsaber:

¡Los precios en la historia de la Terminal no se han normalizado!

Los precios de MQ-Demo y MQ-Beta se han normalizado a partir del 12.12.2019.

 

Se utiliza una construcción de 2280. Toma un símbolo y un punto cuando no había comillas en él. En este caso se trata de la bolsa de valores, corredor Otkritie, símbolo UCAD-12.19, período 01.09.2019-03.09.2019. Se está ejecutando un simple Asesor Experto (abajo). Si lo corres una pasada a la vez, está bien, sólo dice que no hay historia, 0 barras y 0 ticks. Si ejecuto la optimización, no importa si es genética o completa, el registro contendrá un montón de errores

genetic pass (0, 504) tested with error "critical runtime error 517 in OnInit function (module Experts\test.ex5 exception 0xc0000005)" in 0:00:00.041
input int test=1;

double OnTester()
{
  return 0;
}

void Test(const MqlTick &Tick)
{
}

void OnInit()
{
  MqlTick OldTicks[];
  int OldTicksCount=CopyTicks(_Symbol,OldTicks,COPY_TICKS_ALL);
  while(OldTicksCount>=1000)
    OldTicksCount=CopyTicks(_Symbol,OldTicks,COPY_TICKS_ALL,OldTicks[OldTicksCount-500].time_msc);
  for(int i=0;i!=ArraySize(OldTicks);++i)
    Test(OldTicks[i]);
}

Parece ser una respuesta para acceder al arrayOldTicks, pero no sé por qué. Sustituir el resultado de la función por el tamaño del array no ayuda. Qué hacer al respecto, desconocido.

 

Construye 2280. ¿Por qué cuando se ejecuta una optimización, por ejemplo, una optimización genética, todos los campos de la pestaña Configuración aparecen en gris y no se pueden modificar, pero el campo que se está optimizando (como el Criterio Máximo Personalizado) permanece activo? ¿Se puede cambiar el criterio en medio de la optimización o es un error?

P.D. Hm, no parece que se repita siempre.

P.P.D. Descubrí cómo repetir. Inicialmente, después de ejecutar la prueba, el botón pasa a un estado de desactivación. Pero tengo la ventana de configuración inferior un poco comprimida en altura, como resultado hay un desplazamiento vertical. Si se desplaza hacia arriba que el criterio ya no es visible, y luego volver a desplazarse hacia abajo, se puede detectar de nuevo tiró hacia abajo.
Оптимизация стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
Оптимизация стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...