Highest high for an indicator

To add comments, please log in or register
dclarke
81
dclarke  

I am trying to find out how to calculate the highest high and lowest low values for an indicator over a period in MQL4.

For example:

Using amibroker (similar sor metastock) the formula would be as below to calculate the highest high of the 30 day moving average over the last 10 periods.

Highest high = HHV(MA(Close,30),10 )

I have tried using ArrayMaximum() but this returns the position and not the value of the highest value.

Also Highest() does not work with indicators.

Any help will be much appreciated

raff1410
318
raff1410  

Hi...............................

Files:
hh_ll.mq4 3 kb
Linuxser
5921
Linuxser  
Michel
476
Michel  

Take a look at the dictionary :

int Highest( string symbol, int timeframe, int type, int count=WHOLE_ARRAY, int start=0)

Returns the shift of the maximum value over a specific number of periods depending on type.

Do not forget that this function return the index of the bar, not a value, so look at the sample :

Sample:

double val;

// calculating the highest value in the range from 5 element to 25 element

// indicator charts symbol and indicator charts time frame

val=High;

dclarke
81
dclarke  

Thanks for all the replies.

Michel,

I think the formula:

val=High;

Will return the highest high of the high price for that period but can not be used to return the highest high for an indicator like the moving average of the price.

This is because the series array identifier used is MODE_HIGH.

Please correct me if I am wrong.

raff1410
318
raff1410  
Files:
Linuxser
5921
Linuxser  
dclarke
81
dclarke  

Ok I have found a way to calculate the highest high or lowest low for an indicator over a specified period.

If you wanted to find the highest high or lowest low for an indicator like the simple moving average you have to declare an array and fill a "for" loop with the calculated values for each bar of the period you are testing.

Then you have to use ArrayMaximum and ArrayMinimum to find the position of the high or low in the array and then find the value of that position using iHigh() and iLow().

//calculate the highest high of the moving average

int malookback=5; //4+1 - the number of bars to calc the value of the ma

int madailyPERIOD = 30; //moving average period

double madaily[5];//declare an array

double dhhv,dllv;

for(int i = 0; i < malookback; i++)

{

madaily=iMA(NULL,PERIOD_D1,madailyPERIOD,0,MODE_SMA,PRICE_CLOSE,i);

dhhv=iHigh("EURUSD", PERIOD_D1,(ArrayMaximum(madaily,4, 1))) ;

//calculate the lowest low of the moving average

dllv=iLow("EURUSD", PERIOD_D1,(ArrayMinimum(madaily,4, 1))) ;

}

boris
220
boris  

i-HighLow Indicator

i-HighLow indicator draws the channel with borders correspond to highest high and lowest low values of the bar's shadows for the last N bars.

Indicators' parameters are:

extern int N = 20; - searching of highest/lowest bars for the last 20 bars

extern int N2 = 5; - drawing the borders with 5 points offset by price axis

Files:
hi_low1.gif 35 kb
hi_low2.gif 38 kb
yaniv_av
108
yaniv_av  

HH HL LH LL indicator

Hi all !

Do you know an indicator (or Expert advisor) that mark the HH/HL/LH/LL on the chart?

Thanks,

Yan

Sergey Golubev
Moderator
117540
Sergey Golubev  

I moved your post to this thread where you can find some coding decision and indicators.

Also you can look at those threads/posts:

Thread: https://www.mql5.com/en/forum/178337

Post: https://www.mql5.com/en/forum/173574/page32

Post: https://www.mql5.com/en/forum/173163/page2

To add comments, please log in or register