Errors, bugs, questions - page 1118

 
Zeleniy:
I figured it out, I had the installation file for over a month, now I downloaded a new one and it's working, I didn't think the installation file was changing because it's downloading the right files afterwards.
On the contrary... if the old one wasn't displaying the table why would it start displaying it... that's weird...
 
micle:
on the contrary... the old one, if it didn't display the sign, why would it start displaying it... that's weird...
I don't know, but the new one behaved as usual without any tablets and started downloading the installation files.
 
Zeleniy:
I don't know, but the new one behaved as usual without any signs and started downloading installation files.
mystique...
 
Zeleniy:
I don't know, but the new one behaved as usual without any tabs and started downloading installation files.

I've seen it before, that the appearance of such a window during the installation process could be related to the protection on the computer (apparently, due to some regular update) and the subsequent peculiar manifestation like this.

Didn't matter if it was a previous or just downloaded installation file.

Now I'll take a note, for the future, just in case, this new dependence for me (I'm not experimenting now).

But I'm glad that your problem is solved.

As a suggestion: As far as I remember, there was an update to the MT5 terminal recently. Maybe in this case there is some connection between proxy prompt, outdated version of installation file and on-line installation process.
 

From the list of changes to the new MT5 build of 2014.04.04 10:14:"3. Terminal: Fixed a bug that caused graphic objects not to be drawn on the chart in some conditions. " I don't know if the developers have satisfied my request in SD #966979 or if this is another kind of fix, or even a side effect of some improvement in the next build, but either way I'm fine with it now. The change list says it was a bug, but in correspondence to the SD I was unequivocally told"It's not a bug, it's a limitation to save resources."

You can now comfortably watch TA builds on any TF as before.

Thank you, I am closing the application.

 

Method constancy can be overridden in a derived class (build 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 );
}

Another example

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 );
}

Result= 2, but in C++ result = 1

The error is not in the fact that in a derived class you may not declare a method with the same name as in the base class (which is permissible), but that C++ considers them different and MQL considers that B::f() overrides A::f() const

 

The Print() function outputs float signal non-numbers as non-signals, which is illogical, because double outputs both of them normally.

Float must either: 1) remove prefix Q from non-signals and then signal and non-signal will be printed the same way, or 2) output signal with prefix S. If I am wrong, please give me an example of signal float non-number which would be printed by Print() function without prefix Q

For example, I take a signal double non-number, convert it to float and output both via Print(). In the first case it prints SNAN, in the second QNAN

 

In the process of poking around the ways of writing data to the file from the tester, here's the error (shortened, because it didn't fit):

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

That is, of course, I understand that this error is a natural result of my clumsiness. And in any case it was quickly fixed (the problem was in an attempt to pass non string data into FileWrite via third function, if necessary - I can describe it in more details). But the error looks not very clear and a little frightening :) and the compiler does not hint anywhere that it is expected. Maybe we should at least add some sort of warping or something...

 
Lone_Irbis:

In the process of poking around the ways of writing data to the file from the tester, here's an error (shortened, because it didn't fit):

That is, of course, I understand that this error is a natural result of my clumsiness. And in any case it was quickly fixed (the problem was in an attempt to pass non string data into FileWrite via third function, if necessary - I can describe it in more details). But the error looks not very clear and a little frightening :) and the compiler does not hint anywhere that it is expected. Maybe we should at least add some sort of warping or something...

Yes, please describe it in more detail.

Interested in build, OS, bit rate, tester settings. Please attach the code for reproduction.

Thank you.

 

OK, I'll try. I was able to roll it back to the right moment and reproduce it, but I can't isolate the bug and reproduce it separately...

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

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

copied from tester window: https://dl.dropboxusercontent.com/u/61587787/bugreport/log.txt

screenshots from the tester (well, you never know):https://dl.dropboxusercontent.com/u/61587787/bugreport/tester1.pnghttps://dl.dropboxusercontent.com/u/61587787/bugreport/tester2.png

tester settings (I don't know if I know what I mean):https://dl.dropboxusercontent.com/u/61587787/bugreport/config.png

Code snippet:

   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);
}

If replace withWriteCSV("test.csv",(string)idx); - the error disappears. Other non string variables don't do anything here. Doesn't seem to make a difference what idx equals, though (it's just the serial number of the news in the array). Reproduced on any news when trying to save the result. Onlyimplicit conversion from 'number' to 'string' is shown as a warning,but again, only in this case it crashes.

I don't really want to post complete code and .set to it here, but I may send it somewhere.

Reason: