Download MetaTrader 5

Strange output of MACD

To add comments, please log in or register
AbdAllah Azeez
107
AbdAllah Azeez  
Hello , 
I'm making an Expert advisor including MACD
In the code I depend on the value of Signal and Main line ( Histogram) in MACD in the bar 0 and bar 1 .
it works perfect but sometime it comes out with strange values as -7.835123405921764e-05
 , I print out those values so you can see in the attachments . 
Signal >>> means the value of Signal line in bar 0
Main>> the value of Main line in bar 0
Signal Past >> the value of Signal line in bar 1
Main past >> the value of Main line in bar 1

I use variables for every entry in MACD 

extern ENUM_TIMEFRAMES MACD_Timefr1 ; // Time Frame

extern int Fast_Ema1 = 12 ; // Fast EMA

extern int Slow_Ema1 = 26 ; // Slow EMA

extern int Signal_Period1 = 9 ; // Signal Period

extern ENUM_APPLIED_PRICE Applied_Price1 ; //Applied Price

iMACD(NULL, MACD_Timefr1, Fast_Ema1, Slow_Ema1, Signal_Period1, Applied_Price1, MODE_SIGNAL, 1)

Files:
5.png 60 kb
AbdAllah Azeez
107
AbdAllah Azeez  

Any Help ??

Fernando Carreiro
2949
Fernando Carreiro  
AbdAllah Azeez: ... it works perfect but sometime it comes out with strange values as -7.835123405921764e-05

It is not a strange value. It is a perfectly normal value but expressed in scientific form/notation (E-notation) instead of general decimal form/notation.

-7.835123405921764e-05 is the same as -0.00007835123405921764

AbdAllah Azeez
107
AbdAllah Azeez  
Fernando Carreiro:

It is not a strange value. It is a perfectly normal value but expressed in scientific form/notation (E-notation) instead of general decimal form/notation.

-7.835123405921764e-05 is the same as -0.00007835123405921764


Yes , I just understand that , However I can't get rid of that , I just want the normal value as I make equation with > , <  and when one value is formed into e_notation but other one doesn't MT mess everything

Fernando Carreiro
2949
Fernando Carreiro  
AbdAllah Azeez: Yes , I just understand that , However I can't get rid of that , I just want the normal value as I make equation with > , <  and when one value is formed into e_notation but other one doesn't MT mess everything

Internally the value is stored in a binary format called "double", so internally in the calculations, equations or comparison ("<, >, <=, >="), it does not matter, because it works correctly!

But for outputting/printing, just use the DoubleToString() function to see normal general decimal format.

EDIT: Internally, there is no normal, nor scientific nor e-notation. That is just for us humans to read. So, MT is not "messing" it up. Your code is probably not done correctly and that is what is "messing" it up.

So show that part of your code so that we can correct it.

AbdAllah Azeez
107
AbdAllah Azeez  
Fernando Carreiro:

Internally the value is stored in a binary format called "double", so internally in the calculations, equations or comparison ("<, >, <=, >="), it does not matter, because it works correctly!

But for outputting/printing, just use the DoubleToString() function to see normal general decimal format.

EDIT: Internally, there is no normal, nor scientific nor e-notation. That is just for us humans to read. So, MT is not "messing" it up. Your code is probably not done correctly and that is what is "messing" it up.

So show that part of your code so that we can correct it.


I will check that again maybe something wrong , thanks alot for your help

btw I used both DoubleToString and NormalizeDouble but it keeps showing in e-notation even if the rounding was just 5 numbers after the decimal 

Fernando Carreiro
2949
Fernando Carreiro  
AbdAllah Azeez: I will check that again maybe something wrong , thanks alot for your help

btw I used both DoubleToString and NormalizeDouble but it keeps showing in e-notation even if the rounding was just 5 numbers after the decimal 

Don't use NormalizeDouble()!!! See the following link: https://www.mql5.com/en/forum/146370#comment_3693988

Show the code where you are using DoubleToString() and show the results in the log file that you are getting!

Trailing Bar Entry EA
Trailing Bar Entry EA
  • 2013.08.16
  • www.mql5.com
Hello, I have written an EA that trails one bar high or low and opens 2 positions. After that, it should halt and do nothing more...
AbdAllah Azeez
107
AbdAllah Azeez  

Yes it was a little mistake in the code and fixed it 
Thanks alot for your help :)

Fernando Carreiro
2949
Fernando Carreiro  
AbdAllah Azeez: Yes it was a little mistake in the code and fixed it. Thanks alot for your help :)
You are welcome!
To add comments, please log in or register