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

 
hrenfx:

Estamos hablando de un optimizador, no de un montón de pruebas individuales. El concepto de optimizador es bastante diferente. Allí se consiguen importantes ganancias de velocidad a costa de pequeños errores en los resultados. El optimizador no necesita en absoluto modelos basados en ticks. Como mucho, se basan en los precios de apertura. Un optimizador no es un probador, es otra cosa totalmente distinta. Su enfoque es diferente, y también bastante lógico.

Haciendo un probador poco fiable (y no hay manera de que el margen de error allí sea del 1%), el desarrollador tendrá una mancha de por vida. Y la charla sobre "100 veces más rápido" parecerá poco impresionante comparada con "¿cómo se ha visto que un optimizador tiene derecho a cargar algo?

Por el contrario, luchamos por la máxima precisión y velocidad del optimizador debido a

  • algoritmos optimizados
  • maximizar el rendimiento y la funcionalidad del lenguaje MQL5
  • agentes multihilo, remotos y en la nube
  • Historial detallado de M1 con soporte de spreads
  • uso de versiones de 64 bits
La paralelización de la optimización de las estrategias ha supuesto inmediatamente un aumento lineal de la velocidad del número de núcleos de cálculo y MQL5 se ha convertido en un paso de gigante en comparación con MQL4.
 
Renat:

Al hacer un probador poco fiable (y no habrá un error del 1%), el desarrollador obtendrá una mancha de por vida.

Tengo la impresión de que hablamos idiomas diferentes. No te estoy reprochando nada. De hecho, dije que los desarrolladores tomaron el único camino correcto.

Pero no critiques todos los demás avances que no te conciernen. Mi Asesor Experto es 100 veces más rápido que MT4-tester y su error es <1% SOLO EN MI EA. No lo necesito para otros Asesores Expertos.

Verás, tenía que hacerlo, y lo he hecho por mí mismo, y no voy a imponer este camino a nadie. Sólo digo que, si es necesario, siempre es posible escribir una calculadora tonta no UNIVERSAL, pero muy rápida. Y después hay que pulir sus resultados en un probador de MT4-MT5 bien diseñado, que ni siquiera es tonto, sino un simulador de trading real.

Hay que ser idiota para criticar a los desarrolladores que el optimizador no es tan rápido como la calculadora. Y habría que ser muy terco para afirmar que una calculadora especialmente escrita para un caso particular no es más rápida que un probador universal en este caso concreto.

Una vez más, los promotores se nutren de sus clientes: las empresas de corretaje, representadas por un ejército de operadores. MTS proporciona alimentos a sus clientes: los mercados. Todo el mundo está haciendo su negocio. Pero no se critiquen unos a otros. Pueden tratarse con respeto y sin faltar al respeto.

El topikstarter casi empezó atacando a los desarrolladores. Varias veces dijo que no está permitido. Al final, los desarrolladores también empezaron a pasarse de la raya, diciendo lo suyo. Respetémonos mutuamente.

 

En resumen, lo que he hecho por mí es que el probador/optimizador de MT5 es un MUST, no importa que no sea aplicable para algunos casos especiales (tanto personales como aplicados), porque nada es perfecto. Tk.

Para mí, personalmente, el debate fue útil. Al menos me quedó claro que, desde el punto de vista de los desarrolladores, la solución que implementaron es la mejor. El hecho de que alguien pueda necesitar hacer miles de millones de carreras es otra cuestión. Puede hacerlo usted mismo. Eso es todo. No podemos cambiar el optimizador de MT5 en la dirección de aumentar el rendimiento (a valores exorbitantes), no es real. Han hecho mucho, casi todo lo posible en términos de rendimiento. Bien por ellos.

Así que tengo una respuesta a mi pregunta no retórica.


A hrenfx : ¿Qué respuesta quieres de Renat? Responde como debería hacerlo un promotor. En mi opinión, entiende todo lo que dices. Pero no le responde a usted personalmente, sino a todos los que lo leen. Así que siempre hay que leer las respuestas de los desarrolladores.


Nos quejamos de la vida, mientras ellos hacen software no para nosotros personalmente, sino para los consumidores. Al parecer, si les pagáramos millones, harían un software para nosotros personalmente.


Así que gracias. Respuesta recibida. :)

 
Academic:

A hrenfx : ¿qué respuesta quieres de Renat? Responde como debería hacerlo un desarrollador. En mi opinión, entiende muy bien todo lo que dices. Pero no le responde a usted personalmente, sino a todos los que lo leen. Así es como debes leer siempre las respuestas de los desarrolladores.

Todo el mundo se entiende. Las leyes de los negocios no han sido derogadas...
 
A la luz de este tema de la calidad y la velocidad de varios probadores universales, me olvidé de mencionar el verdadero competidor de MQL5 - Stock#.
StockSharp торговые роботы. Создание, обучение, разработка торговых роботов.
  • StockSharp
  • stocksharp.com
Библиотека для создания торговых роботов (HFT, Арбитраж и т.д.) Графическая платформа для торговых роботов. Создание и тестирование роботов
 
hrenfx:
A la luz del tema anterior de la calidad y la velocidad de varios probadores universales, me olvidé de mencionar el verdadero competidor de MQL5 - Stock#.

De hecho, crear un triturador de datos o un analizador sintáctico, como tú lo llamas, no es algo sencillo.

Como ya ha notado arriba - es razonable cambiar de los precios expresados en forma de números flotantes a los precios en forma de enteros, porque en primer lugar se reduce la capacidad de memoria al menos 4 veces, porque USHORT ocupa sólo dos bytes y tiene un rango de valores de 0 a 65535, que incluso para cinco dígitos en principio es suficiente. Así que resulta que 6553 puntos antiguos es más que suficiente, mientras que DOBLE toma 8 bytes.


Es decir, si tenemos 50 millones de ticks por ejemplo en un símbolo (teniendo en cuenta que también codificamos el tiempo en USHORT, obtenemos el tamaño del tick 3*2 = 6 bytes) Por lo tanto, 50 * 6 son aproximadamente 300 megabytes. Y en un caso si almacenamos el tick como DOBLE y aunque el tiempo sea USHORT, obtenemos 2 * 8 + 2 = 20 bytes, entonces 20 * 50 es al menos un gigabyte.

Bueno, si los caracteres digamos 7, es en una versión de 7 * 300 = 2,1 gigabytes y el segundo 7 giga. OP. Si tomamos como estándar 4 gigas de RAM para las máquinas de 64 bits, resulta que ya hemos pasado al 100% al swap.

Bueno, si no almacenas los ticks durante la optimización y los generas antes de una ejecución, seguramente ocupará menos espacio :)). Pero ya no será un robot digital.


Bien, vayamos más allá. Supongamos que somos inteligentes y hemos generado garrapatas. Y ocupan 2 gigas de memoria, pero si somos inteligentes y diligentes, pero carecemos de experiencia y sabemos poco de alto rendimiento - entonces crearemos nuestro propio "hilo" para cada ejecución desde el principio de la historia hasta el final, y se ejecutará. Pero sólo en la última "estupidez" perderemos unas cuatro veces la productividad. Piénsalo. Cuatro veces más... Estoy de acuerdo con la C, por supuesto. Así que si a más de uno le gustaría tener un optimizador de rendimiento (no un probador), estoy dispuesto a crear un programa de este tipo. Pero llevará tiempo y por eso quiero dinero. :)

Aquí acabo de contar una aceleración de SIETE veces.


Eso es alrededor de 150 millones de ticks en 12 segundos en DOBLE en números enteros incluso cuatro veces más rápido, es decir, 4 segundos ejecutar todos los ticks en tres caracteres desde 1999 hasta la actualidad.

Tengo un probador de este tipo (para el entorno MT4 incluso con soporte para el compilador con MT4 y C++ nativo) con multidivisa. Es fácil rehacerlo para el comercio neto. No voy a compilar con MT5, me da pereza. Por cierto, soporta la depuración de MT4 :)) Directamente en el estudio. Puedo adjuntar allí el procesamiento distribuido en máquinas vecinas, pero habrá ganancia de rendimiento, tendremos que ver.

Con gráficos, con contadores de rendimiento, con carga de cualquier historial propio... Así que no es pequeño: 10.000 líneas como mínimo. :)

 
Academic:

Si a los moderadores no les importa, publique aquí capturas de pantalla de ejemplos de su probador. Tome algún EA estándar, conviértalo en "todo en uno" (sin indicadores) y ejecútelo en diferentes optimizadores, incluyendo el suyo propio. Los resultados, al menos en forma de capturas de pantalla.

No tiene sentido que me muestre mi recuento (ya lo he dicho más arriba), porque no puede llamarse mejor que la palabra "recuento". Según tu declaración tienes casi (no lo sé todo) un optimizador completo. Los desarrolladores han presentado su optimizador (incluso dos de ellos - MT4 y MT5). Podemos discutirlo y criticarlo. Muéstranos algo tuyo. Puede haber compradores potenciales.

Quizás, incluso los desarrolladores se lo piensen mejor si su optimizador universal realmente calcula mucho más rápido y con un error aceptable.

También hay una cuestión de indicadores. Personalmente no los necesito para escribir EAs, pero el 99% de los Asesores Expertos los utilizan, por lo que la arquitectura de su probador-optimizador ha sido personalizada de acuerdo a las realidades de la mayoría. Por lo tanto, puede haber alguna pérdida de velocidad arquitectónica para el "todo en uno" (podría ser más rápido), pero hay una gran ventaja para las variantes con indicadores (de lo que podría ser).

P.D. Tus números son obviamente inexactos: no puedes tener una historia en INT que ocupe 2,1Gb y una historia en DOBLE que ocupe 7Gb. La diferencia debe ser siempre exactamente 2 (USHORT no es suficiente) veces. Pasar a la aritmética de enteros con los precios da una ventaja significativa cuando toda la lógica de un EA puede ser sustituida por la lógica de enteros. Esto no ocurre muy a menudo.

 
hrenfx:

Si a los moderadores no les importa, publique aquí capturas de pantalla de ejemplos de su probador. Tome algún EA estándar, conviértalo en "todo en uno" (sin indicadores) y ejecútelo en diferentes optimizadores, incluyendo el suyo propio. Los resultados, al menos en forma de capturas de pantalla.

No tiene sentido que me muestre mi recuento (ya lo he dicho más arriba), porque no puede llamarse mejor que la palabra "recuento". Según tus declaraciones tienes casi (no lo sé todo) un optimizador completo. Los desarrolladores han presentado su optimizador (incluso dos de ellos - MT4 y MT5). Podemos discutirlo y criticarlo. Muéstranos algo tuyo. Puede haber compradores potenciales.

Tal vez, incluso los desarrolladores se lo piensen mejor si su optimizador universal realmente calcula mucho más rápido y con un error aceptable.

También hay una cuestión de indicadores. Personalmente no los necesito para escribir EAs, pero el 99% de los Asesores Expertos los utilizan, por lo que la arquitectura de su probador-optimizador ha sido personalizada de acuerdo a las realidades de la mayoría. Por lo tanto, puede haber cierta pérdida de velocidad arquitectónica para el "todo en uno" (podría ser más rápido), pero hay una gran ventaja para las variantes con indicadores (de lo que podría ser).

P.D. Tus números son obviamente inexactos: no puedes tener la historia en INT ocupando 2,1Gb, y en DOBLE ocupando 7Gb. La diferencia debe ser siempre exactamente 2 (USHORT no es suficiente) veces. Pasar a la aritmética de enteros con los precios da una ventaja significativa cuando toda la lógica de un EA puede ser sustituida por la lógica de enteros. Esto no ocurre muy a menudo.

Bueno, si crees que USHORT no es suficiente, entonces sí. Pero creo que será suficiente. Además, no necesitas el doble: FLOAT es la mitad y más rápido.

Y qué pasa con las pieles - entonces :

Sí, está bien - te mostraré si tengo tiempo, pero no skins - ya que no es una aplicación con ventanas, pero mostraré algo como un video.

Compradores creo que no habrá. :) Y en verano, quizá llegue el momento, lo convertiré en red y lo pondré "a la venta". Haré una página web en inglés y la pondré. Creo que lo vende :) ( En realidad ya estoy riendo - aquí no he participado en la vida sharavara toloko) será para 30-50 libras. Pero es interesante - piénsalo: lo escribes en MT4 y lo depuras en el estudio :) :)


Si existe un indicador de este tipo en un símbolo con los mismos parámetros, no se recalcula. Pero para ser honesto no recuerdo qué es exactamente lo que no está, pero todo está ahí, que es necesario en MT4. Y los ticks provienen de cada símbolo del EA que se está probando, no sólo de ese símbolo sobre el que opera el EA, como en MT5 ahora.

Eso me recuerda que incluso hay bibliotecas y exportación... Bueno, hay de todo. :)

 
La conversión de precios a valores enteros no tiene ninguna ventaja especial. Sí, efectivamente disminuye los volúmenes, pero muchas veces pierde la velocidad debido a la inevitable recodificación en doble. Es inevitable, porque es imposible hacer que todo el sistema sea entero, la matemática computable todavía tiene que hacerse en doble (cuya precisión no es ni siquiera suficiente).

Los datos enteros (e incluso si son cortos) no pueden utilizarse en ninguna operación de división y multiplicación. ¿Dónde se almacenan los valores fraccionarios de 15 dígitos? Del mismo modo, es peligroso y suicida utilizar el flotador, que carece absolutamente de precisión. La cantidad de errores acumulados en el float es tal que nunca se debe utilizar para calcular indicadores.

Los desarrolladores principiantes no son conscientes de ello. Todavía no ven la magnitud de las complejidades.
 
Renat:
No hay ninguna ventaja especial en convertir los precios en números enteros. Sí, reduce efectivamente los volúmenes, pero muchas veces pierde velocidad debido a la inevitable conversión a doble. Es inevitable, porque no es posible hacer que todo el sistema sea entero, la matemática computable todavía tiene que hacerse en doble (cuya precisión no es ni siquiera suficiente).

Los datos enteros (e incluso si son cortos) no pueden utilizarse en ninguna operación de división y multiplicación. ¿Dónde se almacenan los valores fraccionarios de 15 dígitos? Del mismo modo, es peligroso y suicida utilizar el flotador, que carece totalmente de precisión. La cantidad de errores acumulados en el float es tal que nunca se debe utilizar para calcular indicadores.

Los desarrolladores principiantes no son conscientes de ello. No ven todo el alcance de las complicaciones.
En "ese" optimizador todo es igual que en tu caso - dubles. Pero lo que dices de la imposibilidad de uso... bueno, puede ser. Aunque... ? - Precio en pips, indicadores en pips, todo en pips ... Sólo lo que es igual a un PUNTO en cada caso puede ser diferente - es decir, tenemos un número que se asigna a un tipo particular ( vacas, kilómetros, etc.) y tiene sus propios puntos. Así que en números enteros todo está perfectamente resuelto. Aquí es donde te equivocas. :)