Errores, fallos, preguntas - página 1118

 
Zeleniy:
Ya lo resolví, tenía el archivo de instalación desde hace más de un mes, ahora descargué uno nuevo y ya funciona, no creí que el archivo de instalación estuviera cambiando porque después está descargando los archivos correctos.
Por el contrario... si el antiguo no mostraba la tabla por qué iba a empezar a mostrarla... eso es raro...
 
micle:
por el contrario... el antiguo, si no mostraba la placa, por qué iba a empezar a mostrarla... eso es raro...
No sé, pero el nuevo se comportó como siempre sin ninguna tableta y empezó a descargar los archivos de instalación.
 
Zeleniy:
No sé, pero el nuevo se comportó como siempre sin ninguna señal y empezó a descargar los archivos de instalación.
mística...
 
Zeleniy:
No sé, pero el nuevo se comportó como siempre, sin pestañas, y empezó a descargar los archivos de instalación.

Me he encontrado con que la aparición de dicha ventana durante el proceso de instalación podría estar relacionada con la protección del ordenador (aparentemente, debido a alguna actualización periódica) y la posterior manifestación peculiar de ésta.

No importaba si era un archivo de instalación anterior o recién descargado.

Ahora tomaré nota, para el futuro, por si acaso, de esta nueva dependencia para mí (no estoy experimentando ahora).

Pero me alegro de que tu problema esté resuelto.

Como sugerencia: Por lo que recuerdo, hubo una actualización del terminal MT5 recientemente. Tal vez en este caso hay alguna conexión entre el prompt del proxy, la versión obsoleta del archivo de instalación y el proceso de instalación en línea.
 

De la lista de cambios de la nueva build de MT5 de 2014.04.04 10:14:"3. Terminal: Se ha corregido un error que provocaba que los objetos gráficos no se dibujaran en el gráfico en algunas condiciones. "No sé si los desarrolladores han satisfecho mi petición en el SD #966979 o si se trata de otro tipo de arreglo, o incluso de un efecto secundario de alguna mejora en la próxima compilación, pero en cualquier caso ya me parece bien. La lista de cambios dice que era un error, pero en correspondencia con la SD me dijeron inequívocamente que"no es un error, es una limitación para ahorrar recursos"."

Ahora puedes ver cómodamente las construcciones de AT en cualquier TF como antes.

Gracias, cierro la solicitud.

 

La constancia de los métodos puede anularse en una clase derivada (compilación 917)

class A {
public:
        virtual void f() const {}
        int x;
};
class B : public A {
public:
        virtual void f() /*не const*/ { x = 2; }
};
void g( const A* a ) { a.f(); }
void OnStart()
{
        A *a = new B();
        a.x = 1;
	Print( a.x ); //результат = 1
        g( a );
        Print( a.x ); //результат = 2, а обещали, что g( const A* ) не может менять объект
        delete( a );
}

Otro ejemplo

class A {
public:
        virtual void f() const { Print( "1" ); }
};
class B : public A {
public:
        virtual void f()       { Print( "2" ); }
};
void g( const A* a ) { a.f(); }
void OnStart()
{
        A *a = new B();
        g( a );
        delete( a );
}

Resultado= 2, pero en C++ resultado = 1

El error no está en que en una clase derivada no se pueda declarar un método con el mismo nombre que en la clase base (lo cual es permisible), sino que C++ los considera diferentes y MQL considera que B::f() anula a A::f() const

 

La función Print( ) da salida a los no-números de la señal float como no-signos, lo que es ilógico, porque double da salida a ambos normalmente.

Float debe: 1) eliminar el prefijo Q de los números que no son de señal y entonces los números de señal y los que no son de señal se imprimirán de forma idéntica, o 2) emitir los números de señal con el prefijo S. Si me equivoco, por favor, dame un ejemplo de señal flotante no numérica que se imprimiría con la función Print() sin el prefijo Q

Por ejemplo, tomo una señal doble no numérica, la convierto en float y doy salida a ambas mediante Print(). En el primer caso imprime SNAN, en el segundo QNAN

 

En el proceso de hurgar en las formas de escribir datos en el archivo desde el probador, aquí hay un error (acortado, porque no cabía):

2014.04.08 01:47:30.531 2013.07.01 02:10:00   00: 0x000000013FD1F038
2014.04.08 01:47:30.531 2013.07.01 02:10:00                 000000013 FD1F04D 498 BCD            mov        rcx, r13
2014.04.08 01:47:30.531 2013.07.01 02:10:00                 000000013 FD1F04A 41 B001            mov        r8b, 0x1
2014.04.08 01:47:30.531 2013.07.01 02:10:00                 000000013 FD1F043 80 BD3804000000    cmp        byte [rbp+0x438], 0x0
2014.04.08 01:47:30.531 2013.07.01 02:10:00                 000000013 FD1F040 83 C202            add        edx, 0x2
2014.04.08 01:47:30.531 2013.07.01 02:10:00                 000000013 FD1F03D 418 BD4            mov        edx, r12d
2014.04.08 01:47:30.531 2013.07.01 02:10:00   
2014.04.08 01:47:30.531 2013.07.01 02:10:00                 000000013 FD1F03B EB03              jmp        0x13fd1f040
2014.04.08 01:47:30.531 2013.07.01 02:10:00      crash -->  000000013 FD1F038 8 B50FC            mov        edx, [rax-0x4]
2014.04.08 01:47:30.531 2013.07.01 02:10:00   
2014.04.08 01:47:30.531 2013.07.01 02:10:00                 000000013 FD1F033 4885 C0            test       rax, rax
[cut]
2014.04.08 01:47:30.531 2013.07.01 02:10:00                 000000013 FD1EE6E 55                push       rbp
2014.04.08 01:47:30.531 2013.07.01 02:10:00                 000000013 FD1EE67 4 C894018          mov        [rax+0x18], r8
2014.04.08 01:47:30.531 2013.07.01 02:10:00                 000000013 FD1EE63 48895808          mov        [rax+0x8], rbx
2014.04.08 01:47:30.531 2013.07.01 02:10:00                 000000013 FD1EE60 488 BC4            mov        rax, rsp
2014.04.08 01:47:30.531 2013.07.01 02:10:00   Access violation at 0x000000013FD1F038 read to 0x00000003FFFFFFFF

Es decir, por supuesto, entiendo que este error es un resultado natural de mi torpeza. Y en cualquier caso se solucionó rápidamente (el problema estaba en un intento de pasar datos que no fueran cadenas a FileWrite a través de una tercera función, si fuera necesario - puedo describirlo con más detalles). Pero el error no parece muy claro y da un poco de miedo :) y el compilador no insinúa en ningún sitio que sea esperado. Tal vez deberíamos añadir al menos algún tipo de deformación o algo así...

 
Lone_Irbis:

En el proceso de hurgar en las formas de escribir datos en el archivo desde el probador, aquí hay un error (acortado, porque no cabía):

Es decir, por supuesto, entiendo que este error es un resultado natural de mi torpeza. Y en cualquier caso se solucionó rápidamente (el problema estaba en un intento de pasar datos que no fueran cadenas a FileWrite a través de una tercera función, si fuera necesario - puedo describirlo con más detalles). Pero el error no parece muy claro y da un poco de miedo :) y el compilador no insinúa en ningún sitio que sea esperado. Tal vez deberíamos añadir al menos algún tipo de deformación o algo así...

Sí, descríbalo con más detalle.

Interesado en la construcción, el sistema operativo, la tasa de bits, la configuración del probador. Por favor, adjunte el código para su reproducción.

Gracias.

 

Bien, lo intentaré. He podido retroceder al momento correcto y reproducirlo, pero no puedo aislar el fallo y reproducirlo por separado...

Build: MetaTester 5 x64 build 910 (07 Mar 2014) https://dl.dropboxusercontent.com/u/61587787/bugreport/build.png

Escritorio Win7 x64 https://dl.dropboxusercontent.com/u/61587787/bugreport/system.png

copiado de la ventana del probador: https://dl.dropboxusercontent.com/u/61587787/bugreport/log.txt

capturas de pantalla del probador (bueno, nunca se sabe):https://dl.dropboxusercontent.com/u/61587787/bugreport/tester1.pnghttps://dl.dropboxusercontent.com/u/61587787/bugreport/tester2.png

configuración del probador (no sé si sé lo que quiero decir):https://dl.dropboxusercontent.com/u/61587787/bugreport/config.png

Fragmento de código:

   int idx = 133;
   WriteCSV("test.csv",idx);
   
class Core { 
public:  
   void     WriteCSV(string FileName, string s1, string s2, string s3, string s4, string s5, string s6);
};

void Core::WriteCSV(string FileName, string s1, string s2="", string s3="", string s4="", string s5="", string s6=""){
   int handle = FileOpen(FileName,FILE_CSV|FILE_WRITE|FILE_SHARE_WRITE|FILE_UNICODE|FILE_COMMON,"~");
   if(handle == INVALID_HANDLE) Print("error");
   else FileWrite(handle,s1,s2,s3,s4,s5,s6);
   FileClose(handle);
}

Si se sustituye porWriteCSV("test.csv",(string)idx); - el error desaparece. Otras variables que no son de cadena no hacen nada aquí. Sin embargo, no parece importar a qué equivale idx (es sólo el número de serie de la noticia en el array). Se reproduce en cualquier noticia al intentar guardar el resultado. De los avisos, sólo se muestrala conversión implícita de 'número' a 'cadena', pero de nuevo, sólo en este caso se convierte en un fallo.

Realmente no quiero publicar el código completo y .set a él aquí, pero puedo enviarlo en algún lugar.