Errores, fallos, preguntas - página 2422

 

bild 2009

Los datos recibidos de los TF superiores en el gráfico en línea difieren de los datos recibidos en el probador. Este error hace imposible probar correctamente los Asesores Expertos utilizando datos de TFs superiores.

Reproduciendo ejemplos mínimos en el archivo adjunto, el script para el gráfico y el Asesor Experto para el probador escribe los datos en un archivo para su posterior comparación.

La captura de pantalla de los dos archivos correspondientes muestra diferencias significativas:

error

Archivos adjuntos:
 
Andrey Dik:

bild 2009

Los datos recibidos de las TFs superiores en el gráfico online difieren de los datos recibidos en el probador. Este error hace imposible probar correctamente los Asesores Expertos utilizando datos de TFs superiores.

Reproduciendo ejemplos mínimos en el archivo adjunto, el script para el gráfico y el Asesor Experto para el probador escribe los datos en un archivo para su posterior comparación.

La captura de pantalla de los dos archivos correspondientes muestra diferencias significativas:

Y, sí, este error se puede evitar construyendo independientemente TFs superiores a partir del historial de ticks, pero no significa que se pueda ignorar el funcionamiento incorrecto de las funciones i(o,h,l,c), iOpen, etc. en el probador.

 
Andrey Dik:

¿Has comprobado mis códigos? Si no te gustan mis pruebas, escribe tus propias pruebas, "correctamente". Cuando hayas hecho una prueba para el fallo que has expresado, infórmalo aquí. ¿No quiere tomarse la molestia de comprobarlo? - Mi informe de errores no es para ti, es para los desarrolladores.
Llevo usando MT5 desde las pruebas beta de la plataforma, y no es para que me des lecciones.

No es necesario ejecutar sus códigos. ¿Realmente no entiendes el problema?

El guión lee los estados de la barra para hoy. El Asesor Experto lee los estados de las barras a partir del tiempo de prueba actual.

 
Slava:

No es necesario ejecutar sus códigos. ¿De verdad no entiendes el problema?

En el guión se leen los estados de la barra a partir de hoy. El Asesor Experto lee los estados de las barras a partir del tiempo de prueba actual.

Slava, bajo la presión de tu autoridad dudé de mis acciones... Pero sólo por un momento porque recordé que estaba revisando el momento que me comentaste, mostrando el tiempo de los TFs más altos junto con sus precios.

Sin embargo, especialmente para ti, lo hice - ahora sale en una línea todo lo que necesitas para ver el problema.... ¿No quiere decir que iTime devuelve el tiempo correctamente, pero los precios iOpen, iHigh, iLow, iClose - incorrectos y esto es normal?

Además, preste especial atención a la línea:

int bar = iBarShift (NULL, tf, time, false);

en la función correspondiente, bar es un índice en el array, que se obtiene en función de la hora, tanto si se solicita para hoy, ayer o anteayer, el índice de bar se devuelve a partir de la hora solicitada en los parámetros de la función.

Los ejemplos adjuntos muestran el tiempo de los TFs, recomiendo encarecidamente que los ejecutes y te asegures de que tienes el problema por ti mismo, en lugar de escuchar a transeúntes al azar, que no se molestan en buscar en la problemática, mirar el código y ejecutarlo.

No entiendo la posición de la administración... Quería mostrar el problema, quería lo mejor, pero resulta como siempre...

Archivos adjuntos:
 
Pavel Nikiforov:

Me he encontrado con un problema de este tipo con el probador: la primera vez que se presiona el inicio de todo el proceso va bien, pulse inmediatamente después de que - nada, no hay errores o prueba. Lo curioso es que tras esperar unos minutos, el probador vuelve a funcionar, pero de nuevo por una vez.

Si se ejecuta la optimización en un número de carreras que da hacia fuera:

EO 2 15:51:28.514 Núcleo 1 pase genético (0, 0) probado con el error "algún error después del pase terminado" a las 0:00:00.052

PS 2 15:51:28.615 Núcleo 1 pase genético (0, 1) probado con error "tarea rechazada por el agente probador" en 0:00:00.000

Tal magia sólo con un EA, probablemente el problema con él y las nuevas actualizaciones, pero dónde buscarlo no está claro, antes todo funcionaba (dos meses sin tocarlo).

En general, lo he resuelto. Si a alguien le interesa, era Sleep(5000); no importa cuántos milisegundos pueda usar uno. En otras palabras, Sleep() no debería afectar a las pruebas y al mismo tiempo "reproduce" los ticks generados durante el tiempo especificado. Hasta ahora no he encontrado ninguna conexión entre Sleep() y un código específico del Asesor Experto. Este problema no existe en otros búhos pero aún así no ha ocurrido antes y si encuentras problemas similares deberías prestarle atención.

 
Andrey Dik:

Slava, bajo la presión de tu autoridad estaba dudando sobre mis acciones... Pero sólo por un momento, porque recordé que estaba comprobando el punto que mencionas al mostrar también el tiempo de los TFs más antiguos junto con sus precios.

Sin embargo, especialmente para ti, lo hice - ahora sale en una línea todo lo que necesitas para ver el problema.... ¿No quiere decir que iTime devuelve el tiempo correctamente, pero los precios iOpen, iHigh, iLow, iClose - incorrectos y esto es normal?

Además, preste especial atención a la línea:

en la función correspondiente, bar es un índice en el array, que se obtiene en función de la hora, tanto si se solicita para hoy, ayer o anteayer, el índice de bar se devuelve a partir de la hora solicitada en los parámetros de la función.

Los ejemplos adjuntos muestran el tiempo de los TFs, recomiendo encarecidamente que los ejecutes y te asegures de que tienes el problema por ti mismo, en lugar de escuchar a transeúntes al azar, que no se molestan en buscar en la problemática, mirar el código y ejecutarlo.

No entiendo la posición de la administración... Quería mostrarte que había un problema, quería lo mejor pero resultó lo mismo que siempre pasa...

Intenté utilizar CopyRates () en Expert Advisor, el resultado fue el mismo que en el caso de i(), el tiempo coincide pero los precios no.

 

En el siguiente ejemplo se produce un error al intentar copiar un objeto con un campo constante, a pesar de la presencia del operador sobrecargado =. Y el texto del mensaje de error ni siquiera se corresponde con la causa del error, porque la protección no tiene nada que ver.

class A
{
};

class B
{
  A _data;
 public:
  const A*const Data;
  
  B() : Data(&_data) { }
  
  void operator=(const B &other) { _data= other._data; }
};

struct  C
{
  B b;
};

void OnInit()
{
  B b;
  b=b; // Так работает
  C c;
  c=c; // '=' - not allowed for objects with protected members or inheritance
}
 
¿Cómo puedo descargar el código del ME ruso de la KB en inglés?
 
Andrey Dik:

Slava, bajo la presión de tu autoridad estaba dudando sobre mis acciones... Pero sólo por un momento, porque recordé que estaba comprobando el punto que mencionas al mostrar también el tiempo de los TFs más antiguos junto con sus precios.

Sin embargo, especialmente para ti, lo hice - ahora sale en una línea todo lo que necesitas para ver el problema.... ¿No quiere decir que iTime devuelve el tiempo correctamente, pero los precios iOpen, iHigh, iLow, iClose - incorrectos y esto es normal?

Además, preste especial atención a la línea:

en la función correspondiente, bar es un índice en el array, que se obtiene en función de la hora, tanto si se solicita para hoy, ayer o anteayer, el índice de bar se devuelve a partir de la hora solicitada en los parámetros de la función.

Los ejemplos adjuntos muestran el tiempo de los TFs, recomiendo encarecidamente que los ejecutes y te asegures de que tienes el problema por ti mismo, en lugar de escuchar a transeúntes al azar, que no se molestan en buscar en la problemática, mirar el código y ejecutarlo.

No entiendo la posición de la administración... Quería mostrar el problema, quería lo mejor, pero resulta como siempre...

Eso no le interesa a nadie. Lo principal es que el mercado y las señales funcionen.
 

Buenas tardes.

Construir 2007. El problema es el siguiente. Estoy ejecutando en el probador de estrategias un EA sobre un futuro (no pegado) con visualización. Obtengo el siguiente resultado

Ahora quito la casilla "Visualización" y obtengo resultados diferentes

Tomo otros periodos, incluyendo instrumentos. Tanto los parámetros de beneficios como el número de operaciones son diferentes. Además, después de una comparación detallada de los tratos, he descubierto que algunos tratos son imposibles sin la visualización a nivel de la lógica del asesor. Por lo tanto, los datos correctos sólo pueden obtenerse utilizando la visualización.

Camaradas miembros del Foro y desarrolladores, ¿qué es y cómo afrontarlo? Resulta costoso realizar las pruebas con visualización en periodos largos, ya que el proceso lleva más tiempo que sin la visualización.