Errores, fallos, preguntas - página 1279

 

Al obtener el historial de ticks con CopyTicks(), se devuelven los ticks de la sesión de trabajo anterior del terminal, lo que contradice la descripción de la función:

MQL5: Добавлена функция работы с тиковой историей CopyTicks. Функция позволяет получить массив тиков, накопленных терминалом за текущую рабочую сессию. Глубина получаемых тиков ограничена последними 2 000.

Pregunta a los desarrolladores. ¿Se arreglará? ¿Y es posible hacer que el terminal transfiera los últimos N ticks del servidor MQ (o del broker) cuando se inicie, para que no tenga que esperar el historial acumulado? Es poco probable que alguien necesite un historial de garrapatas por alguna garrapata N desconocida en el pasado. Servicedesk#1162481

 

Tengo la casilla de "nuevas capturas de pantalla" eliminada en mi configuración de privacidad, es decir, no debería haber entradas en mi feed cuando se publican.

Efectivamente, mi feed no contiene este mensaje. Sin embargo, el mensaje sobre la publicación de nuevas capturas de pantalla aparece en las noticias de mis amigos.

ZS: si debe ser así, entonces resulta que esta configuración no tiene nada que ver con la privacidad en absoluto )

 
sanyooooook:

Tengo la casilla de "nuevas capturas de pantalla" eliminada en mi configuración de privacidad, es decir, no debería haber entradas en mi feed cuando se publican.

Efectivamente, mi feed no contiene este mensaje. Sin embargo, el mensaje sobre la publicación de nuevas capturas de pantalla aparece en las noticias de mis amigos.

ZS: si es así, entonces resulta que esta configuración no tiene nada que ver con la privacidad en absoluto )

Gracias por el mensaje,

Las publicaciones sobre tus capturas de pantalla no deberían estar en tu feed de amigos. El error se solucionará en breve.

 
Abrí cuatro terminales MT5 y empezaron a actualizarse a b.1079. Cargué la actualización normalmente, fui a reiniciar normalmente. Sólo la mitad de ellos consiguieron salir del reinicio, y eso fue por accidente.
La razón fue esta misma actualización. A continuación se muestra un gráfico del proceso de actualización de un terminal MT5 con un sistema de comercio, archivo de intercambio antes y después de la actualización.

Al actualizar a b.1085 todo siguió igual.

¿Qué tuviste que hacer con el terminal para que un terminal ensuciara el archivo de intercambio de 2 Gb?

No hay indicadores "pesados" en el sistema. El más "pesado" tarda sólo 7 µseg en cargarse, dos, - 5, uno, - 4, los demás, - 1 µseg o menos.

Para comparar, el indicador JMA de CodeBase requiere 110 µseg en mi ordenador, pero no se utiliza en el sistema.


Así que la actualización de MT5 enterró instantáneamente mi sistema de trading, - imposible de trabajar incluso en un terminal, - y lo enterré en consecuencia.

Cuando la MT5 tiene una piscina, una tienda y una letrina en una sola botella, se veía venir.

La monsterización de la buena MT5 comenzó hace mucho tiempo. Cuando la cantidad de basura en las versiones anteriores de MT5 se acercó a 1 Gb, me preocupé y simultáneamente cambié el sistema completamente a la plataforma MT4. Resultó no ser en vano.

El sistema analiza simultáneamente 8 TFs, tres de los cuales pueden verse en el gráfico. Las señales comerciales principales del sistema se generan a partir de mediciones instrumentales de

relación oferta/demanda, por lo que son objetivos.

Abajo - 5 terminales MT4 están abiertos simultáneamente (para diferentes pares de divisas) con el mismo sistema de comercio y no hay problemas, como se ha visto hasta ahora.



 
s2101:
Abrí cuatro terminales MT5 y empezaron a actualizarse a b.1079. Cargué la actualización normalmente, fui a reiniciar normalmente. Sólo la mitad de ellos consiguieron salir del reinicio, y eso fue por accidente.
La razón fue esta misma actualización. El siguiente gráfico muestra el proceso de actualización de un terminal MT5 con un sistema de comercio, archivo de intercambio antes y después de la actualización.

¿Por qué has ocultado la memoria física de la captura de pantalla pero no te has olvidado del archivo de intercambio?

Además, al abordar una cuestión tan importante, se te ha olvidado adjuntar una captura de pantalla de la sección de procesos, donde se puede ver tanto el consumo real de memoria de cada proceso como el número de hilos en ejecución.

 

Por lo que he entendido, MT5 1085 tiene una condición de carrera para establecer un comentario (Comment).

El significado es el siguiente: hay un indicador en una ventana separada con un código:

int OnInit(){
   Comment("AAAAAAAAAAAAAAAAAAAAAAAAA");
}

void OnDeinit(const int reason) {
   Comment("");
}

Si ejecutamos 2 instancias del indicador en el mismo gráfico y cambiamos el TF, ¿qué vemos enComment?
Al 90% será "". (si diferentes colas en diferentes hilos con diferente prioridad para establecerComentario de bajoOnInit yOnDeinit....)

 

Error de compilación

template<typename T>
string ETS( T t ) { return ( typename( t ) == "int" ? "OK" : ::EnumToString( t ) ); }
enum ENUM {     ENUM__ };
void OnStart()
{
        ENUM i1 = ENUM__;       Print( ETS( i1 )); //нормально
        int  i2 = 0;            Print( ETS( i2 )); //ошибка компиляции
}
¿Por qué calcular ::EnumToString( int ) en el segundo caso si el tipo se conoce en tiempo de compilación?
 
ALXIMIKS:

Al 90% será "".

¿Qué se esperaba? Uno escribe, el otro borra.
 
A100:
¿Qué se esperaba? Uno escribe, el otro borra.
Te olvidaste del segundo escribe.

Hay dos escrituras y dos borrados. Lo más probable es que sean asíncronos.
El borrado debería estar antes de la escritura, pero por desgracia no es así...
 

El compilador no detecta el error (que sí lo hace - al menos falta el segundo #endif), lo que hace que no se detecten errores más significativos

#property library
#define __MQL5
#ifdef  __MQL5
#ifndef __MQL5
#else
#else
#endif