Un poco sorprendido :) Pensé en compartir y hacer una pregunta NO retórica. - página 6

 
hrenfx:

Digamos que tiene dos EAs idénticos en resultados en el Probador, uno en indicadores y el otro todo en uno. El segundo funciona un orden de magnitud más rápido.

No habrá un orden de magnitud de aumento de la velocidad, sólo un 10-30%. Comprobado. La gran ganancia de velocidad nos hace engorroso escribir dos Asesores Expertos, mientras que el "todo en uno" es prácticamente inútil para la depuración y sólo para luchar con los errores.

 
Integer:

Es evidente que tienes alguna antipatía personal hacia mí. Oh, me cago en la leche. ¿Qué soy yo, el centro de la tierra, para que exageres?

¿Por qué no te envío una foto mía para que te limpies con ella? Me importan un bledo tus arrebatos nerviosos. No pierdas tu tiempo y energía en ellos.

Os pido que seáis constructivos, sois adultos.

 
Integer:

No habrá un orden de magnitud en el aumento de la velocidad, sólo un 10-30%. Probado. Debido a esta gran ganancia de velocidad, vale la pena molestarse en escribir dos Asesores Expertos, mientras que el todo-en-uno es prácticamente inviable para la depuración, sólo para luchar con los errores.

La ganancia de velocidad depende en gran medida del caso. Nadie canceló la optimización algorítmica. Si es una especie de EMA primitiva, la ganancia es mínima. Pero si se trata de algo más complejo, podría ser un orden de magnitud. Depende de la habilidad de cada uno para la optimización algorítmica. Debe saber dónde pueden producirse recálculos, etc.

En este sentido, ayuda mucho escribir tu propio optimizador. Por ejemplo, sin optimización algorítmica, la variante "todo en uno" era 10 veces más rápida (debido al compilador del lenguaje de programación) en mi probador que la misma variante "todo en uno" en el probador de MT4. Tras la optimización algorítmica, la ventaja ha aumentado en otro orden de magnitud.

En este caso no me molestaría en hacerlo por un 10-30%.

 

hrenfx:

1. La ganancia de velocidad varía mucho de un caso a otro. La optimización algorítmica nunca ha sido cancelada. Si se trata de algún tipo de EMA primitivo, la ganancia será mínima. Pero si se trata de algo más complejo, podría ser un orden de magnitud. Depende de la habilidad de cada uno para la optimización algorítmica. Saber dónde puede haber cálculos repetidos, etc. 2.

2. Escribir tu propio optimizador ayuda mucho en este sentido. Por ejemplo, sin la optimización del algoritmo, la variante all-in-one fue unas 10 veces más rápida en mi probador que en el probador de MT4. Tras la optimización algorítmica, la ventaja ha aumentado en otro orden de magnitud.

En este caso no me molestaría en hacerlo por un 10-30%.

1) Depende de la habilidad de cada uno para escribir indicadores.

2. Si compara con precisión el rendimiento del probador de MT y su propia calculadora para una estrategia, se sorprenderá con la optimización del algoritmo del probador (incluido el proporcionado por Academician).

 
Integer:

2. Si es capaz de comparar correctamente el rendimiento del probador de MT y su propia calculadora para la misma estrategia, se sorprenderá mucho de la optimización del algoritmo del probador.

¿Qué quiere decir con correcto? Mi calculadora es >100 veces más rápida que el probador de MT4, y tiene un error <1%. ¿Está justificado o no?

MT4-tester tiene algoritmos normales, pero está diseñado para la universalidad y teniendo en cuenta un gran número de factores que hacen que mi calculadora tenga un error insignificante (para estimar los resultados).

Un ejemplo sencillo: si no considero el historial de pedidos en mi EA profundamente, ¿por qué lo necesito en el optimizador? ¿Por qué necesito la emulación de una barra de cero en el optimizador? No necesitamos todo eso, así que todo se reduce a un estúpido bucle for. El resultado son múltiples velocidades a costa de un error de <1%.

Estamos en el foro de MQL5, pero no estoy discutiendo el rendimiento del probador de MT5 en esta discusión. Me gustaría ver una comparación oficial de los dos probadores.

Эффективность многопотокового тестера стратегий MetaTrader 5 - MQL4 форум
  • www.mql5.com
Эффективность многопотокового тестера стратегий MetaTrader 5 - MQL4 форум
 
hrenfx:

1. ¿Qué quiere decir con correcto? Mi calculadora es >100 veces más rápida que el probador de MT4, con un error de <1%. ¿Está justificado o no?

MT4-tester tiene algoritmos normales, pero está diseñado para ser universal y tener en cuenta un gran número de factores, debido a lo cual mi calculadora da un error insignificante (para estimar los resultados).

2. Un simple ejemplo, si no miro profundamente el historial de órdenes en mi EA, ¿por qué lo necesito en el optimizador? ¿Por qué necesito la emulación de la barra cero en el optimizador? No necesitamos todo eso, así que todo se reduce a un estúpido bucle for. El resultado son múltiples velocidades a costa de un error de <1%.

Estamos en el foro de MQL5, pero no estoy discutiendo el rendimiento del probador de MT5 en esta discusión. Me gustaría ver una comparación oficial de dos probadores.

Quiero ver una comparación del rendimiento de los dos probadores para que podamos entender qué número mínimo de manipulaciones en el probador se utiliza para dividir todos los plazos en barras, para sincronizar diferentes símbolos y para ejecutar órdenes.

2. Espero que esto no sea en el contexto de "puedo escribir un probador de estrategias mejor que MQ".

 
Integer:

1. para que se pueda entender el número mínimo de manipulaciones en el probador para asegurar la división en barras de todos los plazos, la sincronización de los diferentes símbolos y la ejecución de las órdenes.

Estoy seguro de que los algoritmos del probador son excelentes. Los desarrolladores no pierden el tiempo optimizándolo al máximo, al 100%. Pero han hecho que todo sea universal, para todas las variantes. Todas las variantes no son necesarias cuando consideramos un caso particular de MTS. Esta es la razón por la que ganan por un orden de magnitud en sus cálculos sobre el tipo de DUPLEX para.

2. Espero que esto no sea en el contexto de "puedo escribir un probador de estrategias mejor que MQ".

Tienes una idea preconcebida de mí como si me cagara en todo el mundo. En este hilo estoy completamente del lado de los desarrolladores. Comprendo perfectamente los argumentos del iniciador del tema sobre la diferencia fundamental entre las tareas de un probador y un optimizador, pero no comparto sus afirmaciones contra los desarrolladores. Mi opinión - si es necesario, siempre se puede crear su propio probador-optimizador (no super-versátil, pero rápido) para usted.
 
Renat:

Un indicador parsimonioso correctamente escrito es mejor para ser usado internamente, en lugar de ponerlo en el código del Asesor Experto.

Transferirlo al código del Asesor Experto normalmente significa que se implementará un método extremadamente personalizado de optimización de los cálculos, cuando se descarta la cantidad principal de cálculos y se dejan 300 barras de historia (por ejemplo). En la mayoría de los casos, introducirá errores, pero el autor no suele prestarles atención. Inesperadamente, en el trabajo real puede resultar que el indicador base y su copia reducida en el Asesor Experto no coincidan.

Estoy de acuerdo con esto, pero hay un problema, que en algunos casos pone una cruz en negrita.

Es la ausencia de una realización normal de IndicatorCounted() - en cualquier momento se pone a cero, lo sabes muy bien.

He seguido otro camino - hice mi propio proveedor de datos (algoritmo bastante optimizado con el direccionamiento circular de los datos), hice mi función IndicatorCounted().

Este enfoque se ha justificado plenamente en condiciones reales.

Además, los indicadores se transfieren prácticamente 1:1, y no hay problemas con su depuración, etc.

Aplicación de los indicadores como clases en el ejemplo de Zigzag y ATR

Incluso hay una comparación de algoritmos y enfoques en el probador:

P.D. En cuanto al error, depende del algoritmo del indicador. En la mayoría de los casos basta con ignorar los primeros compases, y el resto coincidirá 1:1.

Específicamente escribí construcciones de cheques para este propósito.


P.S.2 Para ZigZag esto es simplemente una salida indispensable de la situación.

Lo llamo recalcular sólo cuando lo necesito, y puede devolver el resultado expandido, que sólo el último punto ha sido redibujado.

Permite optimizar otros algoritmos de un Asesor Experto.


P.D. 3 Respecto a la MT5, quiero decir que es una gran plataforma. Pero hay algunos errores graves:

- errores críticos (por supuesto, se solucionarán con el tiempo)

- enfoque cuestionable a TERMINALMaxBar (escribí sobre ello que la situación es un callejón sin salida)

- falta de una función adecuada de IndicatorCounted() (pero ahora no la necesito en absoluto)


P.S.4 No puedo decir nada sobre el probador, porque no juego a la "optimización".

 
AlexSTAL:

Estoy de acuerdo con eso, pero hay un pero que en algunos casos pone un final gordo.

...

¿Qué sentido tiene si según sus propias pruebas la clase incrustada en Expert Advisor es más lenta que la llamada a través de iCustom()?

Otra pregunta, ¿están dispuestos a reescribir todos los indicadores en este estilo?

 
Integer:

¿Qué sentido tiene si según sus pruebas la clase incorporada al Asesor Experto es más lenta que la llamada a través de iCustom()?

Otra pregunta, ¿están dispuestos a reescribir todos los indicadores en este estilo?

La cuestión no está en el probador, ¡otra vez! No en el probador, sino en condiciones reales, donde se descarga el historial y se producen fallos de conexión

Sobre todos los indicadores: ¿cuál es el problema?