Me he dado cuenta de que hay que reescribir todo para que funcione correctamente. Estoy a punto de hacerlo.
Y no puedo, porque esta mierda está sucediendo.
2018.01.2812:37:23.692 Tester EURUSD: preliminary downloading of history ticks started, it may take quite a long time
2018.01.2812:37:24.692 Tester EURUSD: preliminary downloading of history ticks completed, 89 bytes in0:00.998 (0.09 Kb/sec)
2018.01.2812:37:24.692 Tester EURUSD: ticks data begins from2017.09.0100:002018.01.2812:37:24.692 Core 1 agent process started
2018.01.2812:37:33.425 Core 1 connecting to 127.0.0.1:30002018.01.2812:37:50.450 Core 1 tester agent authorization error
2018.01.2812:37:50.456 Core 1 connection closed
En el modo de símbolo único, el "espía" es 2,5 veces más lento que el OnTick puro. ¡Es decir, el indicador vacío (construido sobre PERIOD_W1 para que el historial de barras sea mínimo) tiene una enorme sobrecarga en el Probador!
Dos símbolos son 3,5 veces más lentos que uno.
Pero tres símbolos son sólo 1,8 veces más lentos que dos. Es decir, el paso de dos a tres se debe a la escalabilidad. frente al punto 2.
En el modo de símbolo único, Spy es 2,5 veces más lento que el OnTick puro. ¡Es decir, el indicador vacío (construido sobre PERIOD_W1, por lo que el historial de barras es mínimo) tiene una enorme sobrecarga en el Probador!
Dos símbolos son 3,5 veces más lentos que uno.
Pero tres símbolos son sólo 1,8 veces más lentos que dos. Es decir, el paso de dos a tres se debe a la escalabilidad. a diferencia del punto 2.
Su resultado es 6, 25, 46. ¿Por qué no 6, 12 y 18?
Tienes que mirar la desaceleración relativa a un solo carácter. Entonces tres personajes son casi 8 veces más lentos que uno, no 3 como se esperaba.
La cuestión es exactamente ésta. ¿Por qué hay tanto resultado con la escalabilidad? Y si el resultado no puede mejorarse, se sugirió la opción de un nuevo modo de prueba. Esto solucionaría el problema de las pruebas largas cuando se utilizan varios caracteres.
¿Es posible crear un esquema de Asesor Experto multisímbolo de este tipo en MQL, para que la duración de las pruebas no aumente repetidamente al añadir símbolos a la prueba?
//---
Si esto no es posible, una de las opciones para los desarrolladores del terminal es añadir un modo más, en el que se pueda ejecutar la prueba símbolo a símbolo, en lugar de todos los símbolos a la vez. Esto produciría el tiempo de prueba esperado al final. La cuestión es que los EA multisímbolos se utilizan muy a menudo simplemente para aquellos casos en los que:
Se necesitan más datos para las pruebas.
Probar el algoritmo de negociación en una mayor variedad de comportamientos de precios, condiciones (spread, niveles de stop/límite), etc., con los mismos parámetros.
Para estos casos necesitamos un nuevo modo que nos permita reducir considerablemente la duración de las pruebas y optimizar los parámetros. Y ya para la prueba final para probar todos los símbolos simultáneamente.
Tienes un resultado de 6, 25, 46. ¿Por qué no 6, 12 y 18?
La desaceleración tiene que verse en relación con un símbolo.
Dos personajes con picos es un modo de prueba muy diferente al de un solo personaje. Por lo tanto, es lógico observar la escalabilidad en relación con dos.
Además, el indicador de la cabeza es tan salvaje que trabajar a través de los espías es una muleta. A la espera de los Servicios, donde la escalabilidad debería ser casi perfecta, en relación con un solo símbolo. Como en el caso del temporizador. Sólo que allí no habrá saltos de garrapata.
Dos personajes con espías es un modo de operación muy diferente para un probador que un solo personaje. Por lo tanto, es lógico mirar la escalabilidad en relación con dos.
Además, la sobrecarga de indicadores es tan salvaje que trabajar a través de espías es una muleta. A la espera de los Servicios, donde la escalabilidad debería ser casi perfecta, en relación con un solo símbolo. Como en el caso del temporizador. Sólo que allí no habrá saltos de garrapata.
fxsaber: Aceleración significativa
Un símbolo
Dos símbolos
Tres personajes
Cuatro personajes
Si miramos los resultados relativos a dos símbolos, entonces dividimos el resultado de dos símbolos por dos: 17 / 2 = 8,5
Luego, al añadir símbolos, multiplicamos este valor por el número de símbolos para obtener el tiempo de prueba previsto.
tres caracteres: 8,5 * 3 = 25, y el tiempo real es de35,462 s.
cuatro caracteres: 8,5 * 4 = 34, mientras que el tiempo real es de68,459 s.
Pero este es, en cualquier caso, el mejor resultado hasta ahora. Una variante interesante es utilizar el símbolo actual en OnTick, mientras que el resto en eventos personalizados.
Resulta que los Servicios tendrán casi todas las funciones de On: OnInit, OnDeinit, OnTick(string),OnTimer,OnTrade,OnTradeTransaction, OnTester, OnTesterInit, OnTesterPass, OnTesterDeinit, OnBookEvent, OnChartEvent(long ChartID, ...), OnCalculate, ...
Si no necesita los buffers de los indicadores y no quiere lidiar con las muletas de los indicadores/asesores, escriba en un nuevo tipo de programa -Servicios- que no tenga ninguna limitación (estiramiento de las versiones anteriores de MT).
Para iniciar sesión y usar el sitio web MQL5.com es necesario permitir el uso de Сookies.
Por favor, active este ajuste en su navegador, de lo contrario, no podrá iniciar sesión.
Ha iniciado sesión. La autenticación de dos factores se ha desactivado. Vuelva a configurarla y escanee un nuevo código QR, o continúe con la autenticación de dos factores desactivada.
Se comprueba el parámetro largo (lparam). Contiene el identificador del evento de tick.
El identificador del evento de usuario (int id) es igual a cero.
Se puede escribir así para que quede más claro:
Entiendo que hay que reescribir todo para que funcione correctamente. Te lo mostraré ahora.
Me he dado cuenta de que hay que reescribir todo para que funcione correctamente. Estoy a punto de hacerlo.
Y no puedo, porque esta mierda está sucediendo.
y no puedo hacer que el probador se ejecute.Indicador
Asesor experto
EURUSD M1 MetaQuotes-Demo, Hedge, USD, sin lag, sólo Core1-agent, ticks reales 01.09.2017 - 28.01.2018.
Un símbolo
Dos símbolos
Tres símbolos
Anatoly, te sugiero que muevas el tema a Expertos en Forex, Robots de Comercio y Asesores Expertos y lo fijes en la parte superior allí.
Así estará siempre a la vista. Ya hay muchos temas publicados aquí
Anatoly, te sugiero que muevas el tema a Expertos en Forex, Robots de Comercio y Asesores Expertos y lo fijes en la parte superior allí.
Así estará siempre a la vista. Ya hay muchos temas publicados aquí
...
Su resultado es 6, 25, 46. ¿Por qué no 6, 12 y 18?
Tienes que mirar la desaceleración relativa a un solo carácter. Entonces tres personajes son casi 8 veces más lentos que uno, no 3 como se esperaba.
La cuestión es exactamente ésta. ¿Por qué hay tanto resultado con la escalabilidad? Y si el resultado no puede mejorarse, se sugirió la opción de un nuevo modo de prueba. Esto solucionaría el problema de las pruebas largas cuando se utilizan varios caracteres.
Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading
Análisis de Pruebas y Optimización en MetaTrader 5 Strategy Tester
Anatoli Kazharski, 2018.01.27 20:15
Pregunta:
¿Es posible crear un esquema de Asesor Experto multisímbolo de este tipo en MQL, para que la duración de las pruebas no aumente repetidamente al añadir símbolos a la prueba?
//---
Si esto no es posible, una de las opciones para los desarrolladores del terminal es añadir un modo más, en el que se pueda ejecutar la prueba símbolo a símbolo, en lugar de todos los símbolos a la vez. Esto produciría el tiempo de prueba esperado al final. La cuestión es que los EA multisímbolos se utilizan muy a menudo simplemente para aquellos casos en los que:
Para estos casos necesitamos un nuevo modo que nos permita reducir considerablemente la duración de las pruebas y optimizar los parámetros. Y ya para la prueba final para probar todos los símbolos simultáneamente.
Tienes un resultado de 6, 25, 46. ¿Por qué no 6, 12 y 18?
La desaceleración tiene que verse en relación con un símbolo.
Dos personajes con picos es un modo de prueba muy diferente al de un solo personaje. Por lo tanto, es lógico observar la escalabilidad en relación con dos.
Además, el indicador de la cabeza es tan salvaje que trabajar a través de los espías es una muleta. A la espera de los Servicios, donde la escalabilidad debería ser casi perfecta, en relación con un solo símbolo. Como en el caso del temporizador. Sólo que allí no habrá saltos de garrapata.
Un símbolo
Dos dígitos
Tres símbolos
Cuatro símbolos
Dos personajes con espías es un modo de operación muy diferente para un probador que un solo personaje. Por lo tanto, es lógico mirar la escalabilidad en relación con dos.
Además, la sobrecarga de indicadores es tan salvaje que trabajar a través de espías es una muleta. A la espera de los Servicios, donde la escalabilidad debería ser casi perfecta, en relación con un solo símbolo. Como en el caso del temporizador. Sólo que allí no habrá saltos de garrapata.
Aceleración significativa
Un símbolo
Dos símbolos
Tres personajes
Cuatro personajes
Si miramos los resultados relativos a dos símbolos, entonces dividimos el resultado de dos símbolos por dos: 17 / 2 = 8,5
Luego, al añadir símbolos, multiplicamos este valor por el número de símbolos para obtener el tiempo de prueba previsto.
Pero este es, en cualquier caso, el mejor resultado hasta ahora. Una variante interesante es utilizar el símbolo actual en OnTick, mientras que el resto en eventos personalizados.
Puede utilizarlo mientras no haya servicios.
Este es un foro para el comercio, los sistemas de comercio automatizados y las pruebas de estrategia.
Secuencia de ejecución de Init() y DeInit()
Slava, 2017.04.14 10:18
Los servicios, entre otras cosas, tendrán funciones comerciales y la capacidad de gestionar objetos. Y gráficos.
El proveedor de datos de mercado es sólo una posibilidad.
Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading
Secuencia de ejecución de Init() y DeInit()
Slava, 2017.04.14 10:21
Los servicios tendrán OnTick(símbolo de cadena). Pero los ticks de un símbolo en particular tendrán que ser suscritos aForo sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading
Secuencia de ejecución de Init() y DeInit()
fxsaber, 2017.04.14 10:46
Resulta que los Servicios tendrán casi todas las funciones de On: OnInit, OnDeinit, OnTick(string),OnTimer,OnTrade,OnTradeTransaction, OnTester, OnTesterInit, OnTesterPass, OnTesterDeinit, OnBookEvent, OnChartEvent(long ChartID, ...), OnCalculate, ...
Si no necesita los buffers de los indicadores y no quiere lidiar con las muletas de los indicadores/asesores, escriba en un nuevo tipo de programa -Servicios- que no tenga ninguna limitación (estiramiento de las versiones anteriores de MT).
Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading
Secuencia de ejecución de Init() y DeInit()
Slava, 2017.04.14 10:56
Exactamente.
No habrá OnCalculate.
Todavía no hay solución con OnChartEvent.