Nuevo terminal de cliente MetaTrader 4 build 402

 

Terminal de cliente MetaTrader 4 build 402

  1. Terminal: Corrección de la zona horaria al cargar el historial en el Centro de Historias (tecla F2).
  2. Terminal: Fijación de la visualización de los gráficos en la escala 1-1 para los caracteres con 5 dígitos.
  3. Se han corregido los mensajes en el foro y en los kreshlogs.
Laactualización en directo estará disponible a través del sistema LiveUpdate
 

Segundo problema.

Esta es la función:

void MonitorTick()
{   
   string s;
   
   datetime dt=TimeCurrent();
   int y1=TimeYear(dt);
   int m1=TimeMonth(dt);
   int d1=TimeDay(dt);
   string fn=y1+"_"+m1+"_"+d1+"_Monitor_Tick_"+Symbol()+".mon";
         
   {
      handleM=FileOpen(fn,FILE_BIN|FILE_WRITE|FILE_READ);
      if (handleM<0) 
      {
         handleM=FileOpen(fn,FILE_BIN|FILE_WRITE);
      }
      else
      {
         s="Time;;Shift "+Symbol()+"\n";
         FileWriteString(handleM,s,StringLen(s));
      }
   }

   s=TimeToStr(TimeCurrent(),TIME_DATE|TIME_MINUTES|TIME_SECONDS)+";;";
   
   s=s+DoubleToStr((Bid-iOpen(NULL,PERIOD_D1,0))/Point,0)+"\n";
   
   {      
      FileSeek(handleM,0,SEEK_END);
      FileWriteString(handleM,s,StringLen(s));
   
      FileClose(handleM);
   }
      
}

Es decir, en cada tick escribe la diferencia entre el precio actual y el precio de apertura del día en un archivo.

En un momento dado empieza a escribir basura en el archivo. El contenido es el siguiente:

2011.05.12 15:40:50;;2
2011.05.12 15:40:50;;1
2011.05.12 15:40:51;;0
2011.05.12 15:40:51;;1
2011.05.12 15:40:52;;2
2011.05.12 15:40:53;;2
2011.05.12 15:40:55;;3
2011.05.12 15:53:54;;15692
2011.05.12 15:53:54;;15688
2011.05.12 15:54:05;;15692
2011.05.12 15:54:28;;15696
2011.05.12 15:54:42;;15694
2011.05.12 15:54:56;;15698
2011.05.12 15:55:40;;15697
2011.05.12 15:56:40;;15698
2011.05.12 15:56:47;;15696
2011.05.12 15:57:17;;15696
2011.05.12 15:57:34;;15699 

Cómo explicarlo????

Expert no hace nada más con esta función, el código es de tres líneas. está en 10 instrumentos, y periódicamente 5-7 de ellos dan esto. Sólo ayuda reiniciar el terminal. Por cierto, los indicadores (multidivisa) también empiezan a mostrar tonterías.

 
dimonsky:

Segundo problema.

Cómo explicarlo????


Cuando se utiliza una construcción como.

Bid-iOpen(NULL,PERIOD_D1,0))

es asegurarse de que hay una barra en el historial D1 y que corresponde a lo que se espera.

Es decir, si está utilizando el precio de apertura de la barra diaria actual, debe asegurarse de que está utilizando el precio de apertura de Exactamente la barra diaria actual.

P.D.

Sospecho que es lo mismo en sus códigos multidivisa.

 

Entonces, ¿no basta con ver los datos en la pantalla?

También, por favor, explique en qué se diferencia un tick de hace un segundo del actual, cuando el historial desaparece "de repente", así como inmediatamente después de un reinicio, cuando aparece "de repente" al segundo de encender el terminal y el tick se sigue escribiendo sin ningún fallo.

Lo mismo en los instrumentos multidivisa. Incluso en la barra cero, cuando hay historial para todos los pares - se abren especialmente en otras ventanas para tener un historial del 100%.

 
PapaYozh:


Es decir, si está utilizando el precio de apertura de la barra del día actual, debe asegurarse de que está utilizando el precio de apertura exactamente la barra diaria actual.

situación extraña. el gráfico está abierto, lo que naturalmente muestra el día actual. hace un segundo el precio de apertura estaba allí, y desapareció... y con la red desconectada, sin acceso a internet , un reinicio de repente ayuda al terminal a encontrar el historial?

y que día tiene que ser para que la diferencia sea de 15000 pips.... ?

 
dimonsky:
situación extraña. hay un gráfico abierto, que naturalmente muestra el día actual. hace un segundo había un precio de apertura, y luego desapareció?


No soy un desarrollador de terminales y sólo puedo adivinar la conexión entre las barras de las ventanas abiertas y el historial disponible.

Te he escrito cómo programar correctamente para evitar ambigüedades.

 
PapaYozh:


No soy un desarrollador de terminales y sólo puedo conjeturar sobre la conexión entre las barras de las ventanas abiertas y el historial disponible mediante programación.

Te he escrito cómo programar correctamente para evitar ambigüedades.


¿Qué ambigüedad puede haber al acceder al precio de apertura del día actual? ¿Qué otras comprobaciones necesito?

Para el par GBPCAD, 15000 pips significa que todo el historial ha desaparecido por días, incluyendo el de hoy.

 
para GBPCAD 15000 pips significa que el precio de oferta = 0 porque no refrescó las cotizaciones con RefreachRates(), o no utilizó MarketInfo(Symbol(),MODE_BID)
 
xrust:
para GBPCAD 15000 pips significa que el precio Bid = 0 porque no refrescaste las cotizaciones con RefreachRates(), o no usaste MarketInfo(Symbol(),MODE_BID)


No, porque en este caso, el valor obtenido sería negativo (véase la fórmula).

el problema es exactamente que la Oferta estaba allí, pero no había historia. y estoy averiguando la razón por la que no está disponible para el código del programa, aunque hubo un segundo antes de que la historia estuviera allí.

 

- Y yo, a día de hoy, (13-05-2011), no he tenido ninguna actualización. ¿Es que mi DC ignora la nueva construcción?

En cualquier caso, no hubo ningún aviso de actualización ni reinicio regular.

 
brici:

- Y yo, a día de hoy, (13-05-2011), no he tenido ninguna actualización. ¿Es que mi DC ignora la nueva construcción?

En cualquier caso, no hubo ningún aviso de actualización ni reinicio regular.

La actualización debería llegar mañana. Este es un anuncio preliminar.