Elite indicators :) - page 707

Mladen Rakic
151617
Mladen Rakic  

Swami arrow updated to avoid some compilation warnings in the new metatrader 4 : swami_aroon_oscillator_2_nmc.mq4

Still seems that the decision to make a "generic value" of the swami indicator was the only possible way that swami indicators can be used in some meaningful way

Mladen Rakic
151617
Mladen Rakic  

Updated Spearman rank (auto)correlation to be compatible with new metatrader 4 : spearman_rank_correlation__nmc.mq4

Original was posted here : https://www.mql5.com/en/forum/general

________________

PS; the example picture had multiple purpose - one is that I was asked how can multiple Spearman rank correlation indicators can be placed at the same sub-window, and the other is that new metatrader changed the way how dlls are handled and I was checking if the spearman.dll is working correctly according to these new metatrader rules. Luckily, spearman.dll is written from the start as re-entrant code and does not need any adjustment. So, the dll from the original post should be used in this version too

Solariz
382
Solariz  
mladen:
Updated Spearman rank (auto)correlation to be compatible with new metatrader 4 :

Original was posted here : https://www.mql5.com/en/forum/174385/page161

Mladen, we have a:

zero divide in 'Spearman Rank Correlation + nmc.mq4' (169,76) --- build 610

Mladen Rakic
151617
Mladen Rakic  
Gfuchs:
Mladen, we have a: zero divide in 'Spearman Rank Correlation + nmc.mq4' (169,76) --- build 610

Gfuchs

This is line 169 (where the zero divide error is shown) :

for (k=0; k<AveragePeriod; k++) avg += rank; avg /= AveragePeriod;

AveragePeriod is a parameter and it can cause zero divide error only if it is entered as 0 in the parameters value. There is no other way how it can cause zero divide error. Do not enter 0 in AveragePeriod and all will be OK (if you wish to avoid smoothing / averaging of the signal line set it to 1 : average with period of 1 is equal to no averaging).

panchovillas
89
panchovillas  

Please help me MLaden, how can I have multiple arrows from the same indicator with different time frames in same chart, let's say I have a mtf set to 60 then the same indicator on same chart set to 240 and again to D1, the problem is just the last one I touched shows the arrows, if i click in a different one then the arrows from the first bye bye...

I tried to set different name in the field uniq ID (but I don't know what I doing to be honest), then I try to to save indicator under different names on compiler like dtosc.60, dtosc240 etc... but it didn't help either...

Thank you

edit:

once again I manage it Mladen, it was so simple, just needed to change the arrows indentifier lol...

thanks anyway have a great week my friend

Solariz
382
Solariz  
mladen:
Gfuchs

This is line 169 (where the zero divide error is shown) :

for (k=0; k<AveragePeriod; k++) avg += rank; avg /= AveragePeriod;
AveragePeriod is a parameter and it can cause zero divide error only if it is entered as 0 in the parameters value. There is no other way how it can cause zero divide error. Do not enter 0 in AveragePeriod and all will be OK (if you wish to avoid smoothing / averaging of the signal line set it to 1 : average with period of 1 is equal to no averaging).

Ok, thanks. It works!

Mladen Rakic
151617
Mladen Rakic  

Guys, sorry

As CJA said on one of his posts : "after all we are talking about new metatrader 4", I should not draw conclusions of correctness of something lightly.

It turns out that if buffer is passed to a dll as an argument it is not passed the same way as it was passed in builds 509 and earlier builds. Updated the indicator at the original post to fix that change in new metatrader 4 and now it works correctly (the difference is only when a buffer is used as an argument, when an array is used as an argument then it is working correctly). Dll does not need to be changed, Only the mql file. I have no idea if they are going to correct that issue, but instead I am using arrays in this version and even if they change the way how buffers are treated, the indicator should not be affected.

_________________

PS: Gfuchs, now if you set the Average period to <= 0 signal line is not calculated at all

PPS: here is how it looks now (when correct values are calculated, and when a series of indicators are placed in the same sub-window)

Files:
William Snyder
9496
William Snyder  

WattahAttarExplosion of averages_mtf originally from here https://www.mql5.com/en/forum/general modified to be compatible with new mt4 builds.

William Snyder
9496
William Snyder  

dpwma & jma oscillator (mtf & alerts+divergence) originally from here https://www.mql5.com/en/forum/general modified to make it compatible with newer mt4 builds. And very good explanation here https://www.mql5.com/en/forum/general, with more similar indicators the post before that as well.

Mladen Rakic
151617
Mladen Rakic  
mladen:
I mentioned that Spearman rank correlation is "heavy on CPU" for long ranks and it was bugging me (hate when limitations are imposed just because some technicality) Here is a solution for those who want to play with longer ranks. Place the spearman.dll to libraries folder and allow dll imports in indicators properties. Some other changes made (visual manly) but the main change is the speed (they are hardly comparable - dll always beats by far mql as far as speed and efficiency is concerned)

Due to latest changes in new metatrader 4, this indicator too needed to be adjusted to be able to use the dll properly. This is the new metatrader 4 compatible version : spearman_rank_correlation_-_dll_nmc.mq4

PS: the spearman.dll from the original post should be used. It is staying the same as it was before