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

 
Si estás depurando un script o un EA y te desplazas por la pila, aparecerá una flecha verde en la parte izquierda del código fuente, mostrando en qué línea te encuentras. Si se recorre la pila de colas en diferentes archivos, por ejemplo, muchos inludios diferentes, de hecho cada pestaña abierta con su propio archivo tendrá una flecha verde diferente. Pero cuando dejo de depurar, no desaparecen, sino que se quedan ahí. ¿Bicho o bicho?
 
No sé si esto ya se ha mencionado en este hilo o no. ¿Quizá por fin harán que se pueda acceder a todos los bares disponibles desde el probador? ¡Estoy realmente harto de trabajar en 5 minutos para cargar TFs más antiguos durante varios años a través de muletas!
 
traveller00:

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

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

Para reproducir y arreglar este error necesitamos un experto en forma de ex5 y condiciones de optimización.

Si no es un problema para ti, por favor envíamelo en un mensaje privado. El experto será irremediablemente eliminado después de la investigación

 
Slava:

Para reproducir y corregir este error, necesitamos un experto en la forma de ex5 y las condiciones de optimización.

Si no es mucha molestia para ti, dámelo en un mensaje privado. Después de la investigación, el experto se borrará irremediablemente

El código fuente del Asesor Experto se da en el mismo post. Por si acaso, lo he vuelto a publicar a continuación.

El símbolo y el punto, cuando no había comillas en él. En mi caso es bolsa, broker Otkritie, símbolo UCAD-12.19, periodo 01.09.2019-03.09.2019.

La optimización genética o el rebasamiento total, no importa. Por una prueba de una sola variable, más pases, poner de 0 a 1000000.

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]);
}
 
traveller00:

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

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

Gracias por el mensaje.

El problema ha sido encontrado y solucionado.

 
Anton:

Gracias por su mensaje.

El problema ha sido encontrado y solucionado.

Gracias.

 
No había ningún historial descargado. Empezó con todos los personajes.
2019.12.16 16:41:50.787 Tester  Experts\fxsaber\Research\Research03.ex5 on EURGBP,H1 from 2015.01.01 00:00 to 2019.12.16 00:00
2019.12.16 16:41:50.787 Tester  optimization on all MarketWatch symbols started
2019.12.16 16:41:50.790 Core 1  agent process started on 127.0.0.1:3000
2019.12.16 16:41:50.791 Core 2  agent process started on 127.0.0.1:3001
2019.12.16 16:41:50.792 Core 3  agent process started on 127.0.0.1:3002
2019.12.16 16:41:50.793 Core 4  agent process started on 127.0.0.1:3003
2019.12.16 16:41:50.794 Core 5  agent process started on 127.0.0.1:3004
2019.12.16 16:41:50.795 Core 6  agent process started on 127.0.0.1:3005
2019.12.16 16:41:51.145 Core 4  connecting to 127.0.0.1:3003
2019.12.16 16:41:51.145 Core 4  connected
2019.12.16 16:41:51.155 Core 2  connecting to 127.0.0.1:3001
2019.12.16 16:41:51.155 Core 2  connected
2019.12.16 16:41:51.162 Core 4  authorized (agent build 2280)
2019.12.16 16:41:51.162 Core 1  connecting to 127.0.0.1:3000
2019.12.16 16:41:51.162 Core 1  connected
2019.12.16 16:41:51.162 Core 3  connecting to 127.0.0.1:3002
2019.12.16 16:41:51.163 Core 3  connected
2019.12.16 16:41:51.163 Tester  EURGBP: history data begins from 2003.02.06 00:00
2019.12.16 16:41:51.163 Core 4  pass 0 started on EURGBP
2019.12.16 16:41:51.167 Core 4  common synchronization completed
2019.12.16 16:41:51.171 Core 2  authorized (agent build 2280)
2019.12.16 16:41:51.178 Core 3  authorized (agent build 2280)
2019.12.16 16:41:51.178 Core 1  authorized (agent build 2280)
2019.12.16 16:41:51.276 Tester  EURUSD: history data begins from 1971.01.04 00:00
2019.12.16 16:41:51.276 Core 2  pass 1 started on EURUSD
2019.12.16 16:41:51.280 Core 2  common synchronization completed
2019.12.16 16:41:51.476 Core 3  GBPUSD: preliminary downloading of M1 history started
2019.12.16 16:41:51.694 Core 2  EURUSD: history for 2014 year synchronized
2019.12.16 16:41:52.009 Core 2  EURUSD: history for 2015 year synchronized
2019.12.16 16:41:52.351 Core 2  EURUSD: history for 2016 year synchronized
2019.12.16 16:41:52.663 Core 2  EURUSD: history for 2017 year synchronized
2019.12.16 16:41:52.958 Core 2  EURUSD: history for 2018 year synchronized
2019.12.16 16:41:53.080 Core 2  EURUSD: history for 2019 year synchronized
2019.12.16 16:41:53.080 Core 2  EURUSD: history synchronization completed [13567 Kb]
2019.12.16 16:41:53.080 Core 2  EURUSD: 13.25 Mb of history processed in 0:01.778
2019.12.16 16:41:56.077 Core 4  pass 0 on EURGBP returned result 100000.00 in 0:00:04.862
2019.12.16 16:41:57.077 Core 2  pass 1 on EURUSD returned result 100000.00 in 0:00:03.961
2019.12.16 16:42:05.052 Core 3  pass 2 started on GBPUSD
2019.12.16 16:42:05.059 Core 3  common synchronization completed
2019.12.16 16:42:05.276 Core 3  GBPUSD: history synchronization started
2019.12.16 16:42:06.143 Core 4  pass 3 started on AUDCAD
2019.12.16 16:42:06.143 Core 5  connecting to 127.0.0.1:3004
2019.12.16 16:42:06.144 Core 6  connecting to 127.0.0.1:3005
2019.12.16 16:42:06.144 Core 5  connected
2019.12.16 16:42:06.144 Tester  testing on MarketWatch symbols finished, total passes 2
2019.12.16 16:42:06.144 Statistics      optimization done in 0 minutes 16 seconds
2019.12.16 16:42:06.144 Statistics      local 2 tasks (100%), remote 0 tasks (0%)
2019.12.16 16:42:06.144 Core 6  connected
2019.12.16 16:42:06.167 Tester  2 new records saved to cache file 'tester\cache\Research03.all_symbols.H1.20150101.20191216.22.FBC21040E327AF5F62DDA1A545DE091D.opt'
2019.12.16 16:42:06.168 Core 1  connection closed
2019.12.16 16:42:06.168 Core 2  connection closed
2019.12.16 16:42:06.168 Core 3  connection closed
2019.12.16 16:42:06.172 Core 6  authorized (agent build 2280)
2019.12.16 16:42:06.177 Core 5  authorized (agent build 2280)
2019.12.16 16:42:06.349 Core 4  AUDCAD: history synchronization started
2019.12.16 16:42:11.777 Core 3  GBPUSD: history downloading completed
2019.12.16 16:42:11.777 Core 3  GBPUSD: history synchronization interrupted
2019.12.16 16:42:11.777 Core 4  connection closed
2019.12.16 16:42:24.794 Core 4  AUDCAD: history downloading completed
2019.12.16 16:42:24.794 Core 4  AUDCAD: history synchronization interrupted
2019.12.16 16:42:24.794 Core 5  connection closed
2019.12.16 16:42:24.794 Core 6  connection closed
2019.12.16 16:42:24.794 Tester  stopped by user
Después de la línea resaltada, pulse Stop. El terminal entró en modo "No responde". Se colgó después de 27 segundos (a juzgar por el registro).
 
¿Cómo se calcula el número de todos los errores de una sola ejecución EX5? Por ejemplo, lote equivocado o falta de margen.
 
Bild 2280. Toma un símbolo y un punto cuando no había citas en él. En este caso se trata de una bolsa de valores, broker Otkritie, símbolo 1MFR-1.20, periodo 01.09.2019-01.12.2019. Ejecuta cualquier Asesor Experto, por ejemplo, de Examples\Moving Average\Moving Average.ex5. La optimización genética se establece (aunque sospecho que otros tienen este error también), el criterio no hace ninguna diferencia (no hay garrapatas de todos modos), cada garrapata basada en garrapatas reales, el beneficio en pips. Lo optimizamos y obtenemos esencialmente un conjunto de pases cero. ¿Por qué el profit_factor y el margin_level se llenan de basura en cada pasada? ¿No se inicializan las variables con cero en alguna parte? En la pestaña de backtest sólo se ve un espacio vacío, no sale nada. Si analizamos el archivo opt a mano, los valores son profit_factor = 1,797693134862316e+308 y margin_level = 1,797693134862316e+308.
 
traveller00:
factor_de_ganancia = 1,797693134862316e+308 y nivel_de_margen = 1,797693134862316e+308.

DBL_MAX