Errores, fallos, preguntas - página 1293

 
s2101:

MT5 está bien con esto, pero tiene otro problema: se come la memoria horriblemente. Si esto es aceptable para un programador, es totalmente inaceptable para un comerciante.

Por favor, proporcione pruebas y una descripción exacta del problema.

¿Cuál es su sistema operativo, la construcción, la tasa de bits?

 
alexl:

Aporte pruebas y una descripción exacta del problema.

¿Cuál es su sistema operativo, la construcción, la tasa de bits?

W-XP SP3 32bit MT5 build 1100
Todo empezó con la versión 1079. Antes de eso cargaba 4-5 terminales MT5 y funcionaba bien.

En el siguiente gráfico se puede ver el proceso de carga Una Terminal MT5, tengo 2006 Mb de memoria asignada, de los cuales 270 Mb son utilizados por el SO y los procesos activos. La MT5 se "come" la diferencia.

El sistema es de 8 TFs con 10 indicadores "fáciles" en cada uno. Hay 80 indicadores en total. No es el "peso" de los indicadores lo que se "come" la memoria, sino su cantidad. Lo conté en la página 1306 de este foro, - "se encontró una relación de potencia de ordenación - el número de milisegundos = 0,000005*n^2 donde n es el número de órdenes a procesar".

Lo mismo ocurre en MT5 y en el cálculo de indicadores.

El sistema y todos los procesos activos se muestran en el gráfico. El sistema genera señales de cambios futuros en los precios, que se pueden ejecutar de forma inequívoca.


A continuación puede ver lo que se descarga consecutivamenteCinco Terminal MT4 con 80 lo mismo que MT5, indicadores luminosos cada uno. No hay nada malo en la memoria.
Los indicadores del sistema de MQL5 a MQL4 se transfirieron cuando en MT5 las líneas de precio de compra, venta y último estaban en cualquier lugar menos donde deberían estar y era imposible trabajar en MT5.



 
s2101:
W-XP SP3 32bit MT5 build 1100
Todo empezó con la versión 1079. Antes de eso cargaba 4-5 terminales MT5 y funcionaba bien.

En la siguiente imagen se puede ver el proceso de carga Una En el terminal MT5, he asignado 2006 Mb de memoria, de los cuales 270 Mb son utilizados por el sistema operativo y los procesos activos. La MT5 se "come" la diferencia.

El sistema es de 8 TFs con 10 indicadores de "luz" en cada uno. Hay 80 indicadores en total. No es el "peso" de los indicadores lo que se "come" la memoria, sino su cantidad. Lo conté en la página 1306 de este foro, - "se encontró una relación de potencia de tipo - recuento de milisegundos = 0,000005*n^2 donde n es el número de órdenes a procesar".

Lo mismo ocurre en MT5 y en el cálculo de indicadores.

El sistema y todos los procesos activos se muestran en el gráfico. El sistema genera señales de cambios futuros en los precios, que se pueden ejecutar de forma inequívoca.


A continuación puede ver lo que se descarga consecutivamenteCinco Terminal MT4 con 80 lo mismo que MT5, indicadores luminosos cada uno. No hay nada malo en la memoria.
Los indicadores del sistema de MQL5 a MQL4 se transfirieron cuando en MT5 las líneas de precio de compra, venta y último estaban en cualquier lugar menos donde deberían estar y era imposible trabajar en MT5.



A veces los indicadores "fáciles" no lo son tanto, aquí hay que mirar su algoritmo y hacerlo más generoso, porque la mayoría de ellos se calculan por ticks, y algunos incluso recalculan todo el historial cada tick, pero en realidad todos son discretos y basta con calcular una vez por barra.

80 indicadores). Probablemente debería ser más modesto, ya que la máquina no tira más. Dividido por terminales.

Hay más ticks en MT5.

 
 

La cuestión es la siguiente. ¿Dónde está el límite de caracteres para la propiedad OBJPROP_TEXT?

bool  ObjectSetString(
   long    chart_id,          // идентификатор графика
   string  name,              // имя
   int     prop_id,           // свойство
   string  prop_value         // значение - какая длина строки???
   );
 
denkir:

He aquí una pregunta. ¿Dónde está el límite de caracteres para la propiedad OBJPROP_TEXT?

en el tipo
string
 

Llamar a un constructor antes de inicializar un miembro estático

class A;
//---
class B { public:
         B() { a = new A; } // здесь A::s не инициализирована на момент вызова
        ~B() { delete a; }
        A *a;
};
//---
class C { public:
        static B b;
};
B C::b;
//---
class A { public:
         A() : a( s ) {}
        static int s;
        int a;
};
int A::s = 1;
//---
void OnStart() { Print( C::b.a.a ); } //результат = 0, а должен быть 1
y si la descripción de la clase A se coloca en primer lugar, el resultado es 1. Obviamente, el resultado no debería depender del orden de declaración de la clase
 

Error de ejecución: archivo EX5 no válido (8)

class A { public:
        A() : text( NULL ) {} // или text( "произвольный" )
        void f() { ::Print( '0' << this.text ); }
        string text;
};
void OnStart()
{
        A a;
        a.f();
}
 
denkir:

La cuestión es la siguiente. ¿Dónde está el límite de caracteres para la propiedad OBJPROP_TEXT?

Creo que la longitud máxima para todas las propiedades de cadena es de 63 caracteres (64 si es con '\0');
 

Es la segunda semana que veo un fallo similar en el fin de semana.

En el gráfico de minutos, el viernes, después de que el mercado cierre durante otra hora, se dibujan barras cero-alta con un periodo de 2 minutos.

Esto parece haber llegado con la última actualización.