chpeller: I would prefer to have : CurFastMAAngle=-0.000007 wich is much more
readable. I can do this with "doubletostring" but it is only for printing on screen.
- 0.00007 equals 7e-06 There is no difference. You can't read doubles, only text.
- You used NormalizeDouble, It's use is usually
wrong, as it is in your case.
- Floating point has infinite number of decimals, it's your not understanding floating point and that some numbers can't be represented
exactly. (like 1/10.)
Double-precision floating-point format - Wikipedia, the free encyclopedia - Print out your values to the precision you want with DoubleToString - Conversion Functions - MQL4 Reference.
- SL/TP (stops) need to be normalized to tick size (not Point) — code fails on metals. (On 5Digit Broker Stops are only allowed to be placed on full pip values. How to find out in mql? - MQL4 programming forum) and abide by the limits Requirements and Limitations in Making Trades - Appendixes - MQL4 Tutorial and that requires understanding floating point equality Can price != price ? - MQL4 programming forum
- Open price for pending orders need to be adjusted. On Currencies, Point == TickSize, so you will get the same answer, but it won't work on Metals. So do it right: Trailing Bar Entry EA - MQL4 programming forum or Bid/Ask: (No Need) to use NormalizeDouble in OrderSend - MQL4 programming forum
- Lot size must also be adjusted to a multiple of LotStep and check against min and max. If that is not a power of 1/10 then NormalizeDouble is wrong. Do it right.
- MathRound() and NormalizeDouble() are rounding in a different way. Make it explicit.
MT4:NormalizeDouble - MQL5 programming forum
How to Normalize - Expert Advisors and Automated Trading - MQL5 programming forum - Prices you get from the terminal are already normalized.
- Floating point has infinite number of decimals, it's your not understanding floating point and that some numbers can't be represented
exactly. (like 1/10.)
William Roeder:
- 0.00007 equals 7e-06 There is no difference. You can't read doubles, only text.
- You used NormalizeDouble, It's use is usually
wrong, as it is in your case.
- Floating point has infinite number of decimals, it's your not understanding floating point and that some numbers can't be
represented exactly. (like 1/10.)
Double-precision floating-point format - Wikipedia, the free encyclopedia - Print out your values to the precision you want with DoubleToString - Conversion Functions - MQL4 Reference.
- SL/TP (stops) need to be normalized to tick size (not Point) — code fails on metals. (On 5Digit Broker Stops are only allowed to be placed on full pip values. How to find out in mql? - MQL4 programming forum) and abide by the limits Requirements and Limitations in Making Trades - Appendixes - MQL4 Tutorial and that requires understanding floating point equality Can price != price ? - MQL4 programming forum
- Open price for pending orders need to be adjusted. On Currencies, Point == TickSize, so you will get the same answer, but it won't work on Metals. So do it right: Trailing Bar Entry EA - MQL4 programming forum or Bid/Ask: (No Need) to use NormalizeDouble in OrderSend - MQL4 programming forum
- Lot size must also be adjusted to a multiple of LotStep and check against min and max. If that is not a power of 1/10 then NormalizeDouble is wrong. Do it right.
- MathRound() and NormalizeDouble() are rounding in a different way. Make it explicit.
MT4:NormalizeDouble - MQL5 programming forum
How to Normalize - Expert Advisors and Automated Trading - MQL5 programming forum - Prices you get from the terminal are already normalized.
- Floating point has infinite number of decimals, it's your not understanding floating point and that some numbers can't be
represented exactly. (like 1/10.)
Thank You for this
I forget to mention that i use MT5
You are missing trading opportunities:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register
Hi everybody,
I just want to make that seem to be a simple calculation to obtain the difference beween two MA decimal Values.
I want to substract like this : First Value - Second Value
Here is my code:
When i print the results in a "comment" function i have :
CurFastMAValue=1.101912
LastFastMAValue=1.101919
CurFastMAAngle=-7e-06I would prefer to have : CurFastMAAngle=-0.000007 wich is much more readable. I can do this with "doubletostring" but it is only for printing on screen.
And finaly I wonder if the current rating allows a comparison with a reference number like this :
if(CurFastMAAngle>-0.000010){......}
Can someone give me an answer please ?