Errores, fallos, preguntas - página 320

 
stringo:
El código es fundamentalmente diferente.

Vaya... Estoy sorprendido...

¿Puede publicar algún fragmento de código simple x32 y x64 para comparar? Sólo para satisfacer su curiosidad, por así decirlo...

 
KffAlex:


Estimados señores. Es la tercera vez que me encuentro con este problema. La creación de una biblioteca externa en Windows7 x64 produce ciertos milagros:


Disculpe el retraso. Te respondí en privado.

Por favor, adjunte el código fuente. Si es posible, hágalo a través de servicedesk. Esto minimizará la probabilidad de que se produzcan estos retrasos.

Общайтесь с разработчиками через Сервисдеск!
Общайтесь с разработчиками через Сервисдеск!
  • www.mql5.com
Ваше сообщение сразу станет доступно нашим отделам тестирования, технической поддержки и разработчикам торговой платформы.
 
AlexSTAL:

Vaya... Estoy sorprendido...

¿Puede presentar un fragmento de código sencillo para comparar x32 y x64? Para calmar su curiosidad, por así decirlo...

No puedo darte el código de antemano, no tengo la característica a mano.

Las diferencias son las siguientes.

  • Los registros son de 64 bits - 32 bits. En consecuencia, la aritmética de 64 bits cabe en una instrucción (en 32 bits la división de dos enteros de 64 bits se realiza en 40 instrucciones de ensamblador)
  • Hay más registros de 64 bits. En consecuencia, el direccionamiento de los registros es diferente.
  • La convención de llamadas es diferente. Por ejemplo, en 64 bits los 4 primeros parámetros de una función se pasan en registros
 
Deberíamos añadir el tiempo de optimización a MT5. Estaba en MT4 y sería la solución correcta aquí)
 
Renat:

Los agentes locales permanecen en memoria con sus cachés levantados durante otros 5 minutos después de que se detenga la prueba, a la espera de que se realicen nuevas tareas. Si nadie los carga en 5 minutos, se descargan automáticamente con todos los recursos liberados.

Este mecanismo de espera permitió a los agentes aumentar la velocidad de respuesta en las tareas repetidas a costa de las infraestructuras listas/elevadas.

ps: esto se refiere a los agentes locales. los agentes remotos que se ejecutan como servicios no se descargan, sino que también liberan recursos tras un tiempo de inactividad.

Usando la construcción 404. Me refiero a los problemas de los agentes remotos. Incluso después de 10 horas de inactividad, la memoria no se libera.

Algunos problemas más:

1. casi constantemente cuando se ejecuta una prueba de estrategia, la primera pasada en cada procesador termina rápidamente y devuelve cero resultados.

Y si se para y se reinicia, estos ceros no se vuelven a calcular. Estoy ejecutando la prueba en un gran número de procesadores y 40-50 resultados con ceros y sin posibilidad de recalcular estos datos.

A veces uno de los procesadores pasa a fallar y empieza a devolver resultados nulos unas cuantas veces por segundo. Pero si lo detengo estos datos se recalculan de nuevo (campo naranja en la tabla).

3. Cuando se ejecutan agentes remotos en 16 procesadores, internet 1 megaplayer no permite un historial de descargas tan rápido, y es obvio que debido al tiempo de espera todos los procesadores fallan. Si activas un procesador a la vez suele funcionar. ¿Es posible utilizar un sistema con 16 procesadores para descargar el historial en el primer procesador y luego copiarlo en otros procesadores? O simplemente aumentar el tiempo de espera al cargar el historial.

 
a483483:

Usando la construcción 404. Me refiero a los problemas de los agentes remotos. Incluso después de 10 horas de inactividad, la memoria no se libera.

Algunos problemas más:

1. casi constantemente cuando se ejecuta la prueba de estrategia la primera pasada en cada procesador termina rápidamente y devuelve cero resultados.

Y si se para y se reinicia, estos ceros no se vuelven a calcular. Estoy ejecutando la prueba en un gran número de procesadores y 40-50 resultados con ceros y sin posibilidad de recalcular estos datos.

A veces uno de los procesadores pasa a fallar y empieza a devolver resultados nulos unas cuantas veces por segundo. Pero si lo detengo estos datos se recalculan de nuevo (campo naranja en la tabla).

3. Cuando se ejecutan agentes remotos en 16 procesadores, internet 1 megaplayer no permite un historial de descargas tan rápido, y es obvio que por el tiempo de espera todos los procesadores fallan. Si activas un procesador a la vez suele funcionar. ¿Es posible utilizar un sistema con 16 procesadores para descargar el historial en el primer procesador y luego copiarlo en otros procesadores? O simplemente aumentar el tiempo de espera al cargar el historial.


Necesito los registros del agente, la configuración, el símbolo, el servidor.

Puede EX5 experto, pero mejor, por supuesto, la fuente.

Preferiblemente en servicedesk.

 
KffAlex:
¡¡¡Este problema no existe si las funciones se trasladan al cuerpo del programa, y en Windows XP este problema simplemente no existe!!!
Parece ser una cuestión de bitness (64/32), en Windows XP se trabaja bajo 32 bit, por lo que el error no se reproduce.
Por favor, cree una solicitud a servicedesk con los archivos EX5 del problema adjuntos.(su enlace al Servicio de Atención al Cliente)
 

Ayuda, no puedo averiguar cómo comparar los dos números, han pasado 2 días

(fecha de hoy) > (fecha de ayer)

          datetime bark[1];
          CopyTime(Symbol1,NULL,0,1,bark);
          if(bark[0]<=order)

orden - (fecha de ayer)

¿O no es posible en absoluto?

 

Escribió esto:

       for (uint k=0; k<66; k++)
         {
          datetime order=(datetime)HistoryDealGetInteger(ticket,DEAL_TIME);
          datetime bark[1];
          CopyTime(Symbol1,NULL,k,1,bark);
          if(bark[0]<=order)
            {

el probador se atasca y eso es todo

 
alexluek:

Escribió esto:

Algo está en bucle en el probador y eso es todo.

El tiempo en el futuro es más largo que en el pasado, tu trozo de código no es ilustrativo, no está claro qué estás haciendo en el bloque if y qué quieres de él...

Aquí hay, en mi opinión, información exhaustiva sobre la comparación de tiempos :)

//+------------------------------------------------------------------+
//|                                                         test.mq5 |
//|                                                           mrProF |
//|                                                          http:// |
//+------------------------------------------------------------------+
#property copyright "mrProF"
#property link      "http://"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   datetime past=D'2010.12.1'; //Прошлое
   datetime future=D'2010.12.02'; //Будущее

   if(past<future)
     {
      Print(past," раньше чем: ",future);
     }

   datetime buffTime[1]; //Буфер для времени последнего бара
   CopyTime(_Symbol,_Period,0,1,buffTime); //Копируем время последнего бара

   if(buffTime[0]>past)
     {
      Print(past," раньше чем: ",buffTime[0]);
     }

  }
//+------------------------------------------------------------------+