Análisis de los resultados de las pruebas y optimización en el probador de estrategias de MetaTrader 5 - página 5

 
Anatoli Kazharski:

Lo mismo que se está haciendo ahora. Cargue los símbolos durante el proceso de prueba.

O bien, inmediatamente antes del inicio de la prueba, definir y añadir a los símbolos seleccionados para la prueba en la lista, si ésta existiera. Alternativamente, si se determina que los símbolos que están en la caché ya no son necesarios, entonces no los utilice en la prueba.

No puedo tener una respuesta definitiva en ningún caso, sino sólo a nivel de suposiciones y sugerencias de opciones.

Bien.

El experto no comercia. Pero como parece que se comprueba la posibilidad de entrar en el mercado, se carga un par más, además del principal, para calcular los requisitos de margen. Los datos de dos pares se almacenan en caché para no perder tiempo en desempaquetar y preparar los datos durante la siguiente prueba.

El Asesor Experto comienza a operar. El segundo par que falta se carga para calcular el beneficio. Estos datos se vuelven a almacenar en la caché, de modo que no se pierde tiempo en descomprimir y preparar los datos durante la siguiente prueba.

Personalmente, no le gusta perder el tiempo en la aplicación "innecesaria" de ticks al historial. A otros les disgustará mucho perder más tiempo en la reextracción y preparación de los datos.

Bien, contesta tú. ¿Por qué no, siempre que no se solicite, aplicar ticks de herramientas "superfluas"? "Buena pregunta" (ts) Y para este momento, el de la solicitud, hay que construir la historia, (y además tener ticks, porque alguien puede solicitarlos también). La pérdida de tiempo será aún mayor que si construimos gradualmente la historia (como la estamos construyendo ahora).

No hay ninguna garantía de que un experto que utilice una historia concreta no vaya a utilizar esa historia en otros pases. 99% de posibilidades de que la historia en los pases posteriores sea la misma que la utilizada en los pases anteriores

 
Estoy de acuerdo con Slava: el ejemplo es esférico.
 
Slava:

Bien.

El Asesor Experto no comercia. Pero debido al hecho de que parece comprobar la posibilidad de entrar en el mercado, se carga un par más, además del par principal, para calcular los requisitos de margen. Los datos de dos pares se almacenan en la caché para no perder tiempo en desempaquetar y preparar los datos durante la siguiente prueba.

El Asesor Experto comienza a operar. El segundo par que falta se carga para calcular el beneficio. Estos datos se vuelven a almacenar en la caché, de modo que no se pierde tiempo en descomprimir y preparar los datos durante la siguiente prueba.

Personalmente, no le gusta perder el tiempo en la aplicación "innecesaria" de ticks al historial. A otros les disgustará mucho perder más tiempo en la reextracción y preparación de los datos.

Bien, contesta tú. ¿Por qué no, siempre que no se solicite, aplicar ticks de herramientas "superfluas"? "Buena pregunta" (ts) Y para este momento, el de la solicitud, hay que construir la historia, (y además tener ticks, porque alguien puede solicitarlos también). La pérdida de tiempo será aún mayor que si construimos gradualmente la historia (como la estamos construyendo ahora).

No se puede predecir de forma fiable que el Asesor Experto que utiliza un historial no utilizará el mismo historial en otros pases. 99% de posibilidades de que el historial utilizado en las siguientes pasadas de prueba sea el mismo que el utilizado en las pasadas anteriores

Realmente no insisto. Podrías haber empezado de inmediato con esta aclaración. Si sabe con certeza que su opción es la mejor, puede ahorrar tiempo sin perderlo discutiendo. Pero es necesaria una aclaración, si se me permite, ya que no estoy seguro de que se me haya entendido.

¿Toda esta aclaración sobre el proceso de optimización?

¿Y si sólo se trata del proceso de la prueba única? ¿Por qué los ticks de GBPUSD y AUDUSD de pruebas anteriores cuando sólo se está probando EURUSD?

Simplemente no veo en qué caso podemos necesitar ticks de otros símbolos (GBPUSD y AUDUSD), cuando sólo se necesita un símbolo (EURUSD). Necesito algunos ejemplos y cifras concretas.

¿Y si ya he probado 20 símbolos a la vez? ¿Por qué necesito ticks de todos estos símbolos si sólo necesito probar uno? Al fin y al cabo, puedo cambiar a pruebas de caracteres de un grupo de caracteres completamente diferente. Y ahora mismo no necesito los datos del grupo de personajes anterior para nada.

¿Y de qué tiempo estamos hablando (desempaquetar/preparar)? ¿Cuánto tiempo se tarda en desempaquetar y preparar los datos? ¿Y cuánto tiempo aumenta para una prueba simple después de una prueba multisímbolo?

Haré las pruebas ahora y te mostraré los resultados. Necesito una aclaración sobre un ejemplo concreto.

 
Anatoli Kazharski:
Falta la casilla "Restablecer cachés".
 

1 símbolo: EURUSD

2018.01.29 19:30:33.875 Core 1  EURUSD,M5: 26169180 ticks, 74266 bars generated. Environment synchronized in 0:00:00.078. Test passed in 0:00:27.266 (including ticks preprocessing 0:00:01.282).
2018.01.29 19:30:33.875 Core 1  EURUSD,M5: total time from login to stop testing 0:00:27.344 (including 0:00:00.078 for history data synchronization)
2018.01.29 19:30:33.875 Core 1  837 Mb memory used including 8 Mb of history data, 512 Mb of tick data

//---

5 símbolos: EURUSD,GBPUSD,USDJPY,AUDUSD,USDCAD

2018.01.29 19:59:39.750 Core 1  EURUSD,M5: 26169180 ticks, 74266 bars generated. Environment synchronized in 0:00:00.078. Test passed in 0:11:52.156.
2018.01.29 19:59:39.750 Core 1  EURUSD,M5: total time from login to stop testing 0:11:52.234 (including 0:00:00.078 for history data synchronization)
2018.01.29 19:59:39.750 Core 1  130637614 total ticks for all symbols
2018.01.29 19:59:39.750 Core 1  AUDUSD: passed to tester 20717720 ticks
2018.01.29 19:59:39.750 Core 1  EURUSD: passed to tester 26169180 ticks
2018.01.29 19:59:39.750 Core 1  GBPUSD: passed to tester 27742039 ticks
2018.01.29 19:59:39.750 Core 1  USDCAD: passed to tester 23409978 ticks
2018.01.29 19:59:39.750 Core 1  USDJPY: passed to tester 32598697 ticks
2018.01.29 19:59:39.750 Core 1  1574 Mb memory used including 44 Mb of history data, 1088 Mb of cached tick data (total memory for tick data 2495 Mb)

//---

Ahora tenemos que volver a probar con un solo símbolo.

1 símbolo: EURUSD

2018.01.29 20:04:25.737 Core 1  EURUSD,M5: 26169180 ticks, 74266 bars generated. Environment synchronized in 0:00:00.078. Test passed in 0:01:34.203.
2018.01.29 20:04:25.737 Core 1  EURUSD,M5: total time from login to stop testing 0:01:34.281 (including 0:00:00.078 for history data synchronization)
2018.01.29 20:04:25.737 Core 1  130637614 total ticks for all symbols
2018.01.29 20:04:25.737 Core 1  AUDUSD: passed to tester 20717720 ticks
2018.01.29 20:04:25.737 Core 1  EURUSD: passed to tester 26169180 ticks
2018.01.29 20:04:25.737 Core 1  GBPUSD: passed to tester 27742039 ticks
2018.01.29 20:04:25.737 Core 1  USDCAD: passed to tester 23409978 ticks
2018.01.29 20:04:25.737 Core 1  USDJPY: passed to tester 32598697 ticks
2018.01.29 20:04:25.737 Core 1  1288 Mb memory used including 44 Mb of history data, 1024 Mb of cached tick data (total memory for tick data 2495 Mb)

//---

En este caso, ¿por qué necesitamos las marcas de estos símbolos? Debido a esta carga adicional, el tiempo de prueba de un símbolo ha aumentado más de 3 veces. El intervalo de tiempo es de un año. ¿Y si tuviera que hacer una prueba de 5 años?

 
fxsaber:
Falta la casilla "Restablecer cachés".
Es posible prescindir por completo de la casilla de verificación. Sólo hay que encontrarlo.
 
fxsaber:
Falta la casilla "Restablecer cachés".

Tuvimos una garrapata (similar) en cuatro. Lo quitamos. Porque hubo un malentendido por parte del grueso de los usuarios y muchas preguntas.

 
Slava:

Tuvimos una garrapata (similar) en cuatro. Lo quitamos. Como había un malentendido entre el grueso de los usuarios y muchas preguntas.

Siempre está el terminal.ini:)
 

A continuación, se publicarán tres puestos:

  1. ¿Cuánto dura una prueba de EA en el probador de estrategias?
  2. ¿Cuánto tiempo se tarda en optimizar los parámetros en un ordenador?
  3. ¿Cuánto tiempo se tarda en optimizar los parámetros en la nube?

Utilizaré mi propio Asesor Experto para las pruebas. Puede realizar la misma serie de pruebas y presentar sus resultados. En mi caso, recibo varias decenas de miles de ofertas durante un año.


1. ¿Cuánto dura una prueba de un Asesor Experto en el probador de estrategias?

Veamos como ejemplo los resultados de la prueba en el modo deprecio abierto solamente. Marco temporalM5(datos de cinco minutos). Cuenta tipoHedge. Plazo de un año(2017.01.01-2018.01.01).

Símbolo: EURUSD

EURUSD,M5: 281877 ticks, 74300 bars generated. Test passed in 0:00:01.453.
282883 total ticks for all symbols
EURUSD: passed to tester 282883 ticks
466 Mb memory used including 8 Mb of history data, 64 Mb of tick data

Según los resultados de la prueba anterior, podemos ver que la prueba de un símbolo dura1-1,5 segundos durante un período de un año.

Ahora vamos a probar un par de divisas sin moneda de la cuenta. Por ejemplo, si su cuenta está en USD, entonces para la prueba tomemos un símbolo que no tenga USD. Por ejemplo, el EURCHF. La razón es que para calcular correctamente los requisitos de margen y los beneficios en este caso la prueba utilizará los símbolos EURUSD y USDCHF, y esto a su vez aumenta el tiempo de la prueba.

Símbolo: EURCHF

EURCHF,M5: 281063 ticks, 74273 bars generated. Test passed in 0:00:01.860.
846826 total ticks for all symbols
EURCHF: passed to tester 282468 ticks
EURUSD: passed to tester 282883 ticks
USDCHF: passed to tester 281475 ticks
467 Mb memory used including 8 Mb of history data, 64 Mb of tick data

Como podemos ver, la prueba de las tasas cruzadas será aproximadamente el doble de larga. En este caso, la prueba duróentre 1,5 y 2 segundos. Ahora vamos a probarlo con varios símbolos.

Símbolos: EURUSD,GBPUSD,USDJPY

EURUSD,M5: 282881 ticks, 74300 bars generated. Environment synchronized in 0:00:00.031. Test passed in 0:00:07.172.
EURUSD,M5: total time from login to stop testing 0:00:07.203 (including 0:00:00.031 for history data synchronization)
853054 total ticks for all symbols
EURUSD: passed to tester 282883 ticks
GBPUSD: passed to tester 285067 ticks
USDJPY: passed to tester 285104 ticks
628 Mb memory used including 26 Mb of history data, 64 Mb of tick data

Símbolos: EURCHF,AUDCAD,AUDNZD

EURCHF,M5: 282465 ticks, 74273 bars generated. Environment synchronized in 0:00:00.031. Test passed in 0:00:12.109.
EURCHF,M5: total time from login to stop testing 0:00:12.140 (including 0:00:00.031 for history data synchronization)
2264405 total ticks for all symbols
AUDCAD: passed to tester 284995 ticks
AUDNZD: passed to tester 285398 ticks
AUDUSD: passed to tester 282069 ticks
EURCHF: passed to tester 282468 ticks
EURUSD: passed to tester 282883 ticks
NZDUSD: passed to tester 282153 ticks
USDCAD: passed to tester 282964 ticks
USDCHF: passed to tester 281475 ticks
854 Mb memory used including 26 Mb of history data, 192 Mb of tick data

Cuando se prueban varios símbolos, la velocidad de la prueba disminuye. Lamentablemente, ahora no es posible hacerlo de otra manera, sin perder la precisión de las pruebas. Pero, como ya se ha mencionado, en las próximas actualizaciones, los desarrolladores del terminal ampliarán las capacidades de MQL5, añadiendo la posibilidad de realizar pruebas multisímbolo mucho más rápido.

Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...
 

2. ¿Cuánto tiempo se tarda en optimizar los parámetros de mi ordenador?

Como ejemplo, tratemos de optimizar los parámetros en los datos del brokerAlpari en diferentes símbolos en modoOpen price only. Marco temporalM5(datos de cinco minutos). Tipo de cuenta decobertura. Plazo de un año(2017.01.01-2018.01. 01).

Símbolo: EURUSD

result cache used 7953 times
genetic optimization finished on pass 15616 (of 504330836375520000)
optimization done in 28 minutes 56 seconds
local 7663 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)

Símbolo: EURCHF

result cache used 2507 times
genetic optimization finished on pass 8704 (of 504330836375520000)
optimization done in 32 minutes 50 seconds
local 6197 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)

Símbolos: EURUSD,GBPUSD,USDJPY

result cache used 9892 times
genetic optimization finished on pass 18176 (of 504330836375520000)
optimization done in 2 hours 15 minutes 03 seconds
local 8284 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)

Símbolos: EURCHF,AUDCAD,AUDNZD

result cache used 7281 times
genetic optimization finished on pass 13312 (of 504330836375520000)
optimization done in 3 hours 13 minutes 37 seconds
local 6031 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)

En un futuro próximo, el terminalMetaTrader 5 se actualizará, y la velocidad de las pruebas y la optimización será mucho más rápida. Tal vez entonces sea posible realizar la optimización incluso en el modoTodos los ticks. Además, el uso del servicioMQL5 Cloud Network será más rentable, ya que la velocidad de optimización aumentará.

Распределенные вычисления в сети MQL5 Cloud Network
Распределенные вычисления в сети MQL5 Cloud Network
  • cloud.mql5.com
Большую часть времени современные компьютеры простаивают и не используют всех возможностей процессора. Мы предлагаем задействовать их с пользой. Вы можете сдавать мощности вашего компьютера другим участникам нашей сети для выполнения разнообразных...
Razón de la queja: