Errores, fallos, preguntas - página 659

 
antt:
¿Qué punto de acceso?
Chipre.
 

La situación es la siguiente. Por ejemplo, hay puestos abiertos el viernes. Establecemos Stop Loss y Take Profit. Sin esperar a que termine la sesión de negociación, dejamos estas posiciones, desactivamos la comunicación y ponemos el ordenador a dormir (modo Hibernación). Nos encendemos al día siguiente. Se establece la conexión a Internet. Hay conexión con el servidor. El sábado. El mercado está cerrado. Podemos ver que las posiciones han sido cerradas, algunas por Stop Loss y otras por Take Profit. Estas operaciones pueden verse en la pestaña "Historial" del terminal de operaciones:

Solicitamos el historial de las tres últimas operaciones:

   datetime Start=0;
//---
   if(!HistorySelect(Start,TimeCurrent())) // Загрузим историю сделок
     {
      Print("Ошибка при загрузке истории!"); return;
     }
   else
     {
      ulong ticket=0;
      datetime time=0;
      string symbol="",comment="";
      //---
      int total_deals=HistoryDealsTotal();
      //---
      for(int d=total_deals-1; d>=total_deals-3; d--)
        {
         if((ticket=HistoryDealGetTicket(d))>0) // Если сделка выбрана
           {
            symbol=HistoryDealGetString(ticket,DEAL_SYMBOL);
            comment=HistoryDealGetString(ticket,DEAL_COMMENT);
            time=(datetime)HistoryDealGetInteger(ticket,DEAL_TIME);
            //---
            Print("<-- symbol: ",symbol,"; comment: ",comment,"; time: ",time," -->");
           }
        }
     }

Y vemos que la historia no coincide. Es decir, podemos verlo en el terminal, pero no podemos obtenerlo programáticamente.

//---

¿Es un error o así se diseñó y ahora estas ofertas se pueden conseguir de forma programada sólo cuando se abre el mercado?

P.D. También probé de esta manera, no ayuda:

#define Milliseconds_Ahead 200
//---
datetime TimeCurrentAhead()
  {
   return(TimeCurrent()+Milliseconds_Ahead);
  }
 

tol64:

...

P.D. Yo también lo he intentado y no funciona:

Encontré una salida. En la ventana de observación del mercado puede ver la hora de salida. Es decir, la última vez que hubo una conexión con el servidor y llegó el tick (última hora del tick):

Es decir, en mi caso 18:43:30.

Resulta que aún utilizando esta función..:

#define Milliseconds_Ahead 10000
//---
datetime TimeCurrentAhead()
  {
   return(TimeCurrent()+Milliseconds_Ahead);
  }

...puedes resolver la situación, pero tienes que hacer la petición con un margen importante. O se puede prescindir de esta muleta y olvidarse de ella para siempre y utilizar la función TimeLocal() al hacer las peticiones de historial, si se utiliza en tiempo real. En el probador, utilice TimeCurrent() o TimeCurrentAhead(). Algo así:

datetime ChoiceTimeFunction()
  {
   if(NotTest())
     { return(TimeLocal()); }
   else
     { return(TimeCurrent()+Milliseconds_Ahead); }
//---
   return(TimeLocal());
  }

Entonces este punto debería estar cubierto en la ayuda o algo así...

 

Es posible recuperar los gráficos borrados en el terminal:

Abrir eliminado

Abre un submenú de cartas borradas para restaurar. Los gráficos borrados se guardan si se marca la opción "Guardar las ventanas borradas para volver a abrirlas" en la configuración del terminal. Todas las plantillas de las cartas borradas se guardanen el directorio/Profiles/Deleted. Cuando se ejecuta este comando, se accede a estas plantillas y se abre el gráfico correspondiente. Cualquiera de las plantillas de gráficos eliminadas puede borrarse mediante el comando correspondiente de este menú.

La situación es la siguiente. El Asesor Experto se cuelga en el gráfico y se muestran sus paneles de información. En la función OnDeinit(), especifico que si el gráfico se cierra, se borren los paneles de información, para guardar la plantilla para restaurar sin objetos. Cierro el gráfico. Usando la opción de Abrir Borrados, lo restauro, pero se restaura con objetos, y de forma incorrecta (algunos están, otros no). El Asesor Experto restablece todo después de la inicialización. Deja un residuo desagradable y una sensación de trabajo mal hecho. Lo estimo desde el punto de vista de los usuarios del Asesor Experto, no del terminal. En cualquier otro evento de desinicialización todo funciona correctamente. Entiendo que el guardado de la plantilla ocurre antes de la desinicialización, porque durante la desinicialización los objetos se siguen borrando, pero tienen tiempo de guardarse en la plantilla.

 

Este es el problema...

Por lo que sé, el terminal "nota" el historial adicional en el servidor y una especie de "huecos" en el historial local y empieza a bombearlo frenéticamente de forma automática para rellenar esos huecos. Todo esto es genial, por supuesto, pero...

Existe un fenómeno como el de los plazos no estándar, cuyo historial parece no descargarse de ninguna parte, sino que el terminal lo construye automáticamente "en la mente". Y esto es lo que he notado. Si todo está bien con la anotación de las "lagunas" en el historial y la autodescarga, la situación con la reconstrucción del historial construido y luego dañado (ya sea en el disco o en la memoria) de plazos no estándar está realmente fuera de lugar. Pues bien, mi terminal ha descargado todo el historial, luego he saltado todos los plazos y he descubierto que alguien ha robado todo un segmento del historial reciente en H2 y H3 que el terminal no ha descargado ni reconstruido localmente. Se ayudó a descargar el terminal y eliminar manualmente los archivos de los marcos de tiempo apropiados de C:\ ~ Archivos de programa\ ~ MetaTrader 5\ ~ Bases\ ~ MetaQuotes-Demo\ ~ historia\ ~ NZDUSD\ ~ caché con el lanzamiento posterior de la terminal, pasar aH2 y H3 y esperar hasta que reconstruye su historia desde cero correctamente.

Evidentemente, nos gustaría tener un terminal más inteligente que "sintiera" estos segmentos mordidos en cualquier momento, incluidos los no estándar, y tratara inmediatamente de rellenarlos.

---------------

Adenda: aunque, para ser sinceros, el terminal no ve nada en absoluto. He estado sentado durante un año con una curva de la historia de los minutos, que en realidad comienza con MetaQuotes de 1999, mientras que mi marco de tiempo fue en 2009 por alguna razón - y ¿qué? ¿Dónde están esas descargas automáticas? Tenía espacio suficiente para descargarlas, pero no había descargas hasta hoy, hasta que desinstalé y volví a instalar todo (hice lo mismo antes, pero no tuvo efecto). Por supuesto, ni siquiera se trata de reanudar, se trata de la descarga completa de todo el historial desde cero por el terminal. Bueno, al menos ese es el pan de cada día.

En este sentido, quiero dar a todos los programadores de MQL, que depuran sus programas y dependen del consumo de sus productos de software por parte de otros usuarios, una advertencia importante: estén atentos a la disponibilidad del historial, para el que se calcula su producto: durante las pruebas con el historial incompleto o sustituido por el de mayor duración, la velocidad de procesamiento será buena, pero puede ocurrir que usted o los usuarios de sus programas rujan del 100% de la carga de la CPU en los ordenadores modernos y de los mensajes de error "interminables".

 

'f0_34' - expresión de comparación esperada

¿Puede decirme qué significa esta advertencia?

 

De nuevo, un error de este tipo ha salido a la luz:

Se ha identificado el área del problema. Descripción detallada en el Service Desk.

//---

P.D. Completado una solicitud existente, con un problema similar una vez resuelto. Al cabo de un rato vi una notificación cerca de mi perfil. He entrado en el Service Desk y la solicitud ha desaparecido por completo. ¿Tengo que hacerlo todo de nuevo? )))

 
tol64:

De nuevo, un error de este tipo ha salido a la luz:

Se ha identificado el área del problema. Descripción detallada en el Service Desk.

//---

P.D. Completado una solicitud existente, con un problema similar una vez resuelto. Al cabo de un rato vi una notificación cerca de mi perfil. He entrado en el Service Desk y la solicitud ha desaparecido por completo. ¿Tengo que hacerlo todo de nuevo? )))

La aplicación y los comentarios están en su lugar, pero por alguna razón no es visible en el perfil.

Definitivamente nos ocuparemos de ello.

 
MetaQuotes:

La solicitud junto con los comentarios están en su lugar, pero por alguna razón no son visibles en el perfil.

Nos aseguraremos de investigarlo.

Por favor, solucionadlo, ya que algunas de mis solicitudes también han desaparecido por completo. ni en las abiertas ni en las cerradas.
 
MetaQuotes:

La solicitud junto con los comentarios están en su lugar, pero por alguna razón no son visibles en el perfil.

Nos aseguraremos de investigarlo.

Gracias. Espero que haya aclaraciones al respecto. El problema no acaba de empezar a aparecer en el lugar que he indicado. La zona de ocurrencia es ahora omnipresente.