Errores, fallos, preguntas - página 2621

 

Me encontré con una confusión en un lugar aparentemente obvio. Este es el guión:

double Sigma = 1.0;
double Smax = 5.0;
double Step = 2;


void OnStart()
{
  int scount = 1;

  double s = Sigma;

  for( ; s < Smax; scount++)
  {
    s *= Step;
    Print(scount, " ", s);
  }
  
  Print(scount);
}

por alguna razón termina con scount igual a 4, aunque se supone que es 3. El bucle de incremento después de la comprobación exitosa debe ejecutarse sólo cuando s es 1.0, 2.0, 4.0. Entonces hay 8 en s, que es más que 5.

 
Stanislav Korotky:

Me encontré con una confusión en un lugar aparentemente obvio. Este es el guión:

por alguna razón termina con scount igual a 4, aunque se supone que es 3. El bucle de incremento después de la comprobación con éxito debe ejecutarse sólo cuando s es igual a 1,0, 2,0, 4,0. Entonces s contiene 8, que es mayor que 5.

en la sentencia for el incremento se realiza después del final del cuerpo del buclehttps://www.mql5.com/ru/docs/basis/operators/for

for(expresión1; expresión2; expresión3)operador;

выражение1;
while(выражение2)
  {
   оператор;
   выражение3;
  };

busque en google el primer artículo, por si no lo recuerdo - funciona igual en C++ https://en.cppreference.com/w/cpp/language/for

init_statement
while ( condition ) {
statement
iteration_expression ;
}
 
Igor Makanu:

En la sentencia for, el incremento se realiza tras el final del cuerpo del buclehttps://www.mql5.com/ru/docs/basis/operators/for

for(expresión1; expresión2; expresión3)

Exactamente. La variable del bucle debe pasar los valores 1, 2, 3. Porque después de la tercera multiplicación la condición no se cumple: 8 > 5 - esto se puede ver en la última impresión del bucle.

 
Stanislav Korotky:

Exactamente. La variable del bucle debe pasar los valores 1, 2, 3. Porque después de la tercera multiplicación no se cumple la condición: 8 > 5 - esto se puede ver en la última impresión del bucle.

sí, pero el cuerpo del bucle se ejecuta, ¿no? así que hay un incremento después del final del cuerpo "expresión3", entonces hay una comprobación - "expresión2"

 
Igor Makanu:

sí, pero el cuerpo del bucle está hecho, ¿no? así que hay un incremento después del final del cuerpo de "expresión3", entonces hay una comprobación - "expresión2"

El viernes es el último viernes del año :-/

 

1- Las ejecuciones de los resultados de las pruebas han dejado de ejecutarse. Hay espacio en el disco. Todo está ahí. Lo que estaba funcionando unos minutos antes, de repente se detuvo.

Presiono el botón de inicio, o hago clic en el resultado de la optimización y no pasa nada. Este es el tipo de cosas que simplemente aparecen:

2019.12.29 11:44:51.402 Probador pase único iniciado

Y una vez, aparece este mensaje:

2019.12.29 11:41:56.053 Probador versión de depuración de "Name.ex5" detectada

A pesar de que no está habilitada la depuración y este EA no se abre en el editor en absoluto y el editor está desactivado, nada fue compilado o cambiado.

Parámetros de la optimización a los ajustes, se transfiere con éxito y ahí es donde se detiene visualmente.


2- Y el botón de "parar" en el reenvío falla. Alternativamente, no cambia su color de rosa a verde, o el terminal sólo llega al estado intermedio, cuando no hace nada, pero no puedo seleccionar nada en la pestaña "ajustes", porque todo está desactivado allí.

Si se vuelve a pulsar el botón de parada, se inicia el recorrido. Y puedes detenerlo antes de avanzar y entonces está bien.


3- Y otro "truco" es que la optimización empieza a funcionar unas cuantas veces más lento. Sólo con el tiempo. Se cura reiniciando el terminal.... Algo se está acumulando en alguna parte... Borrar el registro y la caché no parece afectar a esta ralentización. Pero el reinicio tiene un gran efecto.
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...
 
Михаил:

Las ejecuciones de los resultados de las pruebas han dejado de ejecutarse. El espacio en disco está ahí. Todo está ahí. Lo que estaba funcionando unos minutos antes, de repente se detuvo.

Pulso el botón de inicio, o hago clic en el resultado de la optimización y no pasa nada. Este es el tipo de cosas que simplemente aparecen:

2019.12.29 11:44:51.402 Probador pase único iniciado

Y una vez, aparece este mensaje:

2019.12.29 11:41:56.053 Se ha detectado la versión de depuración del probador "Name.ex5"

A pesar de que no está habilitada la depuración y este EA no se abre en el editor en absoluto y el editor está desactivado, nada fue compilado o cambiado.

Guarda con éxito los parámetros de la optimización a los ajustes y se detiene visualmente en eso.


Y el botón de "parada" en el reenvío no funciona correctamente. A veces no cambia su color de rosa a verde, o el terminal sólo llega al estado intermedio en el que no hace nada pero no puede seleccionar nada en la pestaña de ajustes porque todo está desactivado allí.

Si se vuelve a pulsar el botón de parada, se inicia el recorrido. Y puedes detenerlo antes de avanzar y entonces está bien.


Y otro "truco" es que la optimización empieza a funcionar varias veces más lento. Sólo con el tiempo. Remedios reiniciando el terminal.... Algo se está acumulando en alguna parte... Borrar el registro y la caché no parece afectar a esta ralentización. Pero el reinicio tiene un gran efecto.

Tienes que compilar la versión de lanzamiento por F7. Has pulsado F5 y has compilado debug-version

 
Artyom Trishkin:

Tienes que compilar la versión de lanzamiento por F7. Has pulsado F5 y has compilado debug-version

No, yo compilo con el ratón y el botón "Compilar". Pero no se aplica al caso descrito, porque este EA fue compilado anteayer. Luego se optimizó con éxito y se ejecutó varias veces. Y entonces se estrelló. Reiniciar el terminal ayudó...

Así que parece que se acumulan errores en alguna parte. Lo que lleva a un mal funcionamiento y a los frenos. El restablecimiento (reinicio) cura...
 
Y otra cosa: cuanto más lejos (por fecha) esté la carrera de avance, de la fecha de inicio de la carrera de avance, más lento va. Al principio es rápido, y luego cada vez más lento. Y luego catastróficamente más lento. Es una buena idea arreglar eso)
 
Михаил:
Y otra cosa: cuanto más lejos (por fecha) esté la carrera de avance, de la fecha de inicio de la carrera de avance, más lento va. Al principio es rápido, y luego cada vez más lento. Y luego catastróficamente más lento. Estaría bien arreglarlo)

No hay código para jugar - no hay respuesta