Metatrader known bugs ... - page 23

 

For me on each update it always set that pictures are saved on their server

I always have top revert it after update. They are using any means they can to increase the traffic on their site

 

Something that can happen with this new metatrader 4 (watch the 10 minute history files) :

Files:
 

Interesting indeed

Sometimes I simply don't know what is going on - a twilight zone

 

When I try to "save as" a source that has more than one "." in the name, metateditor cuts the name if I do not retype the end of the name again. It is annoying - if I do not care, version numbers of some indicators simply get lost

 

Now, after some time, it is clear that the old ex4 file does nowt work the same in new build as in build 509

And cleaning up the boolean mess they caused with logical operators precedance is almost impossible in some cases without athours that knew exactly what did they intend to do. We would need some way to compare results of the boolean combinations otherwise big part of EAs are going to work erratically and unpredictably

 

Version 625 does no function parameter checking regarding the number of parameters in the called list with the function heading with either Strict on or off. This error occurs whether or not there are optional parameters. I tried with instance as optional as below and as required by eliminating the "=0". But it does cough out 21 memo errors for type conversions.

double iTema(double price, double period, int r, int instanceNo=0)

hi=iTema(iMA(NULL, Period(), Periods, 0, Mode-4, PRICE_HIGH, bar),bar,30,AlphaMa)-maup;

I wonder what happens to the additional parameters, are they ignored or put on the stack and never removed? This is another example why we are having so many problems. MQ is not equipped with knowledge and personnel necessary to properly define and implement a computer language. They are like an ant crawling up an elephant's leg with the intent to rape.

 

Debugger often completely freezes my terminal (build 628)

Do not use it while trading - all sorts of things can happen

 

I have found a serious problem using multi-time frame indicators in version 625 at least. When a higher time frame is called, there is a very serious impact on cpu performance which I believe is caused by the iCustom calls used to calculate the buffers in the higher time frame. For comparisons, I loaded 9 charts with only a three buffer MACD indicator, macd line, signal line and alert indicator. With a higher time frame, this caused my laptop to use around 12 - 15% of the cpu each time a tick arrived whereas with the current time frame, the cpu usage was negligible, 0 - 1%. When I removed the signal and alert custom calls, the usage dropped to 4%.

Since most indicator buffers are derived calculations based on the core buffer, the solution is to remove the derived iCustom calls and replace them by the actual calculations for the higher time frame. When I did this, my cpu usage dropped to under 6%; a 50% savings.

I suspect the problem is each iCustom call for a higher time frame gets completely reinitialized by re-calculating the results for all bars rather than using the results from the prior call and only calculating the current tick values. I did not test current time frame iCustom calls but would guess that the same problem occurs with them.

In general, avoid all iCustom calls and use internal calculations where ever possible.

 

Was checking some code today and this is what I found :

In previous builds of metatrader 4 (builds 509 or earlier) you could write something like this :

iClose(0,0,1)

and you would get a correct value. In new metatrader 4 you will always get 0 for such an expression. You must use

iClose(NULL,0,1)

PS: as usual, you do not get any compiler error (or warning) nor do you get any run time error (or warning) if you do not use strict. If you use strict all you will get is an "implicit conversion from number to string" warning which, more or less means nothing in this case. Also, you can not use "" (empty string) - in that case not even in strict mode there will be no warning but the result will always be 0

 
mladen:
Was checking some code today and this is what I found :

In previous builds of metatrader 4 (builds 509 or earlier) you could write something like this :

iClose(0,0,1)

and you would get a correct value. In new metatrader 4 you will always get 0 for such an expression. You must use

iClose(NULL,0,1)

PS: as usual, you do not get any compiler error (or warning) nor do you get any run time error (or warning) if you do not use strict. If you use strict all you will get is an "implicit conversion from number to string" warning which, more or less means nothing in this case. Also, you can not use "" (empty string) - in that case not even in strict mode there will be no warning but the result will always be 0

Yes, they have hard times with keywords, that have different interpretation in the old MQL4 and the MQL5 - like.

The NULL is now used either for an empty object reference (though the 'delete' command does not assign it automatically to the destroyed reference) and a substitute for a zero-length string "", while formerly it used to be a substitute for integer zero, which - casted to string - gave "0".

Reason: