New MetaTrader 5 Platform Build 5260: Enhancements in Algo Forge, extended OpenBLAS support, and new inheritance rules in MQL5 - page 10

 
amrali #:
1. Consistency across the terminal: seeing two different strings for the same number in the debugger (watchlist and a wrong tooltip) and a third different one in the expert log is not a nice thing.
2. Determine why logical comparisons can fail for apparently equal amounts (e.g., comparing the price to some price level or a value that was reached to via two different calculation pathways)
3. Knowing when rounding of prices or lots are necessary (for chopping round-off errors at the far right).

Alain, I think we're off-topic, there’s no point in continuing this discussion.

It's not off-topic. You reported what you think is a bug in the Watchlist/Tooltip (@Ilyas will maybe answer about it, after your explanations you seem to be right, thanks as I had misunderstood the RYU algorithm).

Now, my opinion is : most users using the Watchlist doesn't care about these details, when I have a variable supposed to contain 0.3 (whatever the way 0.3 was obtained), I would like to see 0.3 and my guess is :it is so for most MQL coders.

So my request is, for all output (Watchlist, Print without format, etc...) please MetaQuotes show the "decimal" representation by default and BE CONSISTENT (here I perfectly agree with amrali).

double x1=0.1+0.2;
double x2=0.3;
Print("x1=",x1);
Print("x2=",x2);
  • Watchlist (the tooltip for both is 0.3):

My proposal (I know it will not be followed but it doesn't matter, it's for the record) :  display 0.3 for both by default in the Value column and the (consistent) precise IEEE-754 representation as tooltip (or even better as an additional column).

  • Experts log :

Should be 0.3 in both cases in my opinion. Yes I know this contradict your point 2, but coders who don't know that "apparently equal amounts" can differ when represented as double will not print the values or not understand these 2 different values anyway. Coders who knows and need it to see the real "double" can easily see them with printf.

  • Inputs as an example :

When you have an input 0.3, you don't want to see 0.299999999999999989 in your log or the Watchlist, you want to see 0.3 !



 
Alain Verleyen #:

It's not off-topic. You reported what you think is a bug in the Watchlist/Tooltip

Perfect.
RYU algorithm is simple :
1. If i see 0.3 then everything is ok (my input was 0.3 and I see 0.3) 👍
2. If two many digits like 0.3000....004: oh no?! something is wrong (a round-off from calculation).


The display warns that some action (rounding or other procedure) is necessary, I feel comfortable seeing why simple comparisons like 0.3 == 0.2 + 0.1 had failed.

RYU tries to simplify decimal fractions for display (emit the least possible number of decimal digits) while maintaining round-trip accuracy.

If all strings are displayed 0.3 like you suggest, then we get back to square one before build 3210 with all its problems. You cannot tell if what you see is a floating-point normal (bizarre!) behavior or the terminal cannot handle the display correctly, which will increase the confusion about accuracy of some calculations.

The issue is not for 0.3 only, consider this:
1.123 * 0.67, then how we're supposed to emit the string of full result (in debugger, or Print())? 5 decimal places, 6, 7,....,17 ?!!!
Simple! Let RYU pick the shortest (and accurate) one for you.

 
As far as I am concerned, a Debugger should never mangle with values and content, only display what is actually in memory. (Maybe provide memory editing for the user)

Also, a debug build of a program should be as blank as possible, with as little mangling with the code, no optimizations, no changing of execution orders. (I will come back to this one later, as I had exactly that "problem" a few days ago)
 
Dominik Egert #:
only display what is actually in memory.
Yes, show the hex representation of doubles in the tooltip.
 

amrali #:

The issue is not for 0.3 only, consider this:

1.123 * 0.67, then how we're supposed to emit the string of full result (in debugger, or Print())? 5 decimal places, 6, 7,....,17 ?!!!
Simple! Let RYU pick the shortest (and accurate) one for you.

0.75241

I want to see the real value, that's it. Not (only) a value coming from an internal representation for the computer (0.752410000000000023).

I am not suggesting to hide anything, but either to show all "values" directly (a tooltip is not very practical), or to let the coder choose what he wants to see.

 
Thanks for the update, this new build looks very useful 👍.
 
simon.metivier #:
Good day to all, it seems the toolbar issue on undocked charts has still not been fixed. Hiding toolbar at every MT5 start is taking quite some time.

Indeed, detached chart toolbars still come back after program restart after being disabled.

https://www.youtube.com/watch?v=Xmlb_Z7FUhk

MetaTrader 5 toolbar bug still not fixed since dark mode was implemented (Build 5283 19 Sep 2025)
MetaTrader 5 toolbar bug still not fixed since dark mode was implemented (Build 5283 19 Sep 2025)
  • 2025.09.23
  • www.youtube.com
Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.