if(!SetIndexBuffer(0,Ema) && !SetIndexBuffer(1,EmaOfEma) && !SetIndexBuffer(2,Dema)) Print("cannot set indicator buffers!");
should be
if(!(SetIndexBuffer(0,Ema) && SetIndexBuffer(1,EmaOfEma) && SetIndexBuffer(2,Dema))) Print("cannot set indicator buffers!");
should be
Thanks so very much Uwe.
This tiny, seemingly insignificant correction did the trick. Now,all three lines are showing.
I am curious, did you guess what the problem was? I.e., is it a common problem? Or did you have to debug?
Best regards and thank you again
In fact I had to debug because I could not recognize it by reading and got curious...
I have the feeling that handling of the && operator changed and it skips the other evaluations if it is false one the first element.
i am not sure if this was always the case.
Uwe
In fact I had to debug because I could not recognize it by reading and got curious...
I have the feeling that handling of the && operator changed and it skips the other evaluations if it is false one the first element.
i am not sure if this was always the case.
Uwe
I think your speculation is correct. In any case, I now know what to look for when debugging these kinds of errors.
Much obliged for your help.
/Omar
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
You agree to website policy and terms of use
Hi,
Could anyone please help me find what is the problem with this indicator that I downloaded from the internet? The code is supposed to calculate the double exponential moving average, DEMA, using the iMAonArray function instead of calculating it from scratch which makes the code much more elegant and easy to understand. The indicator is supposed to draw three different averages: the Ema, EmaOfEma and the Dema. However, only the Ema indicator is drawn. Since the source code is from 2006, I presumed that it has to do with some newer version of MT4 that does not work well with the indicator code.
After many hours of debugging, I found that the other two buffers, EmaOfEma and Dema are not filled at all due to "out of range" error. Therefore, I changed the declaration of those two buffers to: "double EmaOfEma[10000]" and "double Dema[10000]". The debugging showed that these two buffers are now filled with the (seemingly) correct values. However, they are still not drawn in MT4. The only line printed is Ema as before.
Appreciate any pointers and help. Thanks in advance
The code: