Metatrader 4 build 418 ... - page 6

 

...

I guess that they haven't heard the one that goes something like this : "Gaining someones confidence is hard, loosing it is easy". With some things done, it is not hard to see the direction the whole thing is going to ...

 

Yep business is very competitive place ,easy come easy go. Nowadays almost everyone can make or copy anything.

 

...

I would like to say that we are already used to it and that it will be OK

But frankly, the logic of "more and more errors with each and every new upgrade" is something that I fail to understand at all. There are platform with far longer life and they haven't had similar issues (the hell, take an .eld from 10 years ago and place it in newest tradestation, and guess what, it will work as happily as it was when it was made) And now I am not even referring to metatrader 5. What would be wrong to learn from good examples like the one I mentioned?

Somehow I have a feeling that the uncertainty that is going on regarding metatrader right now is a direct result of things like these.

 

Another Tick Test

mladen,

Your results stunned me.

I set a second version of '_test' to check if 2 or more ticks were missed. That's the bottom one compared to your original. I used >2.1 instead of >2 just to eliminate any possibility it was reading on minor decimal errors.

(Also tried 1.1 and 1.9 in the original - no difference.)

So why don't we see any double (or 2 tick) lines in the original _test results? The closest lines skip a number.

Big Be

Files:
 

Interesting, very interesting!

The problems identified on this thread are not surprising to me. Metatrader wants nothing to do with MT4 and they are probably quite embarrassed by its continuing popularity over the low acceptance of MT5 . They are only doing the minimal effort to satisfy governmental regulations and very little else. As a software developer, I am certain they probably put their least experienced programmers on MT4 projects to minimize any impact on MT5. Consequently, it is not surprising that we have the large number of bugs as identified in this thread if they are using less experienced personnel; more errors and a lower understanding of the programs which leads to even more errors.

That said, I used the latest _Test which doesn't show up in my Navigator, I had to rename it !$_Test to see it.I ran it simultaneously on Forex.Com and FXCM and saw 20 or more times the pip loss with FXCM over Forex.Com in the same time period. While we are condemning Metatrader and perhaps rightfully so, I want to point out that Metatrader is every brokers stepchild and this may not be Metatrader's problem. Metatrader is bridged sequentially to at least one if not more primary systems for the broker and then out to the ECN and then back again. It is possible that the broker's Bridges have contention problems which drops the ticks and MetaTrader is just reporting what the Bridge tells it. My very limited test seems to indicate this; else why would there be such a great variation in dropped pips between two brokers.

As usual, MLaden has developed a good tool for us. I only hope Metatrader and many brokers review this thread and use it to find out what is really happening and fix it (eventually)

The top attachment is Forex.Com and the lower is FXCM.

Files:
forex_com.gif  19 kb
fxcm.gif  28 kb
 

...

The indicator works in the following manner :

It records what is the state of the Volume in an array and then waits for a new tick. When a new tick comes it compares the new value in the Volume filed and if that value differs for more than 1, it means that there were tick(s) that terminal did not receive. I think that it is the answer to your question too : in cases when 2 or more ticks are missing it simply can indicate that they are missing and nothing else (it does not draw 2 klines there since just marks a position where tick(s) are missing) : indicators are called only when a new tick comes in (not even forcing it to work would change that since the history is updated only on a new tick)

But Tzumans test stunned me again : see the first example of his. So, if it is possible, then the question about visual back test tick misses becomes even more interesting

Big Be:
mladen,

Your results stunned me.

I set a second version of '_test' to check if 2 or more ticks were missed. That's the bottom one compared to your original. I used >2.1 instead of >2 just to eliminate any possibility it was reading on minor decimal errors.

(Also tried 1.1 and 1.9 in the original - no difference.)

So why don't we see any double (or 2 tick) lines in the original _test results? The closest lines skip a number.

Big Be

 

There is another problem with the backtester taht may not have been discussed.

It has been there and least since build 208 maybe earlier.

When I run a test on Daily timeframe using every tick mode there are errors showing high or low price not met on lower timeframes.

When I check the data the values are met and always during the NY session.

I added a time indicator to run during the back test.

Everything is fine until NY session. About 1 or 2 hours in the backtester runs extremely fast.

Quite often a stoploss is met and a trade closes even though the close price is above the not met high or below the not met low.

Ther have been other errors in the past that may or may not be fixed.

The following boolean use to fail when one was false.

if (a && b && c && d && e) do_something();

I had to change the code to use

if (!a) return(false);

if (!b) return(false);

.

.

.

if (!e) return(false);

do_something();

The following use to fail when all were false.

if (a || b || c || d || e) do_something_else();

I had to make similar changes to this line of code.

BTW if there are only 4 compares it worked, 5 or more it failed.

I also have noticed problems with MathMod and values returned when a function is passed as a parameter to another function.

I use to write compilers so I do understand what might cause such problems.

I wonder why the MT4 team did not just start with a know bug free compiler and add their stuff to it.

I now code using the simplest methods to make sure I do not get compiler bugs.

Robert

 

Built 418

MrPip:
There is another problem with the backtester taht may not have been discussed.

It has been there and least since build 208 maybe earlier.

When I run a test on Daily timeframe using every tick mode there are errors showing high or low price not met on lower timeframes.

When I check the data the values are met and always during the NY session.

I added a time indicator to run during the back test.

Everything is fine until NY session. About 1 or 2 hours in the backtester runs extremely fast.

Quite often a stoploss is met and a trade closes even though the close price is above the not met high or below the not met low.

Ther have been other errors in the past that may or may not be fixed.

The following boolean use to fail when one was false.

if (a && b && c && d && e) do_something();

I had to change the code to use

if (!a) return(false);

if (!b) return(false);

.

.

.

if (!e) return(false);

do_something();

The following use to fail when all were false.

if (a || b || c || d || e) do_something_else();

I had to make similar changes to this line of code.

BTW if there are only 4 compares it worked, 5 or more it failed.

I also have noticed problems with MathMod and values returned when a function is passed as a parameter to another function.

I use to write compilers so I do understand what might cause such problems.

I wonder why the MT4 team did not just start with a know bug free compiler and add their stuff to it.

I now code using the simplest methods to make sure I do not get compiler bugs.

Robert

Hello Mr Pip,

That is very interesting.

Thanks very much for your time and for this post.

' will help me to be more efficient in coding.

Any automatic tool to get rid of compiler bugs ? Any document that could help?

Thanks a lot.

Have a good WE

Tomcat.

 

another problem with mt4 re memory allocation

There is another problem with MT4 thta many may not be aware of.

I have a testing system where I collect data from the trade server.

At least once per month I start the system, start MT4 and go through the list of pairs opening a chart for each timeframe.

I start with 1 minute then click on each timeframe as each chart is completed. These are empty charts with no indicators.

After 4 or 5 pairs have retrieved the data from the server I get an error Unable to allocate memory for a very large amount of ram, at least multiple megabytes.

I have a 16 gig ram system. I know MT4 only uses a piece of that amount.

This tells me there is a major memory leak in MT4. You programmers would know that there is calloc without the associated free for the memory used. These are the function calls in C that are used to allocate and deallocate memory.

I also notice that available memory is slowly reduced over time even though nothing else is running.

So there is probably another memory leak somewhere.

For this reason I shut down MT4 every weekend and restart before the open of the market.

BTW, is there a thread or place to report such bugs? Or does metaquotes even care?

The last time I reported the boolean bug at the forum.mql4.com I got no response. This was at least 5 years ago.

Robert

 

...

MrPip:
....

BTW, is there a thread or place to report such bugs? Or does metaquotes even care?

The last time I reported the boolean bug at the forum.mql4.com I got no response. This was at least 5 years ago.

Robert

:):)

Linuxser was trying to show them that their ADX does not work as it should for more than a year and nothing happened

I had some similar cases. We know of some people banned for good from metaquote site for pointing out some errors. I don't think that a thread about it would be too interesting for them, but it sure would help metatrader users in less "head scratching", so it might be a good idea to open one ... it would help us