Variable or function for iHigh?

 

Are the iHigh or iLow functions or variables?

I have charted the high minus the low for a currency using an array.

ExtMapBuffer1[i]=High[i]-Low[i];

What I am attempting to do is take the 5 minute high for the EUR_USD and subtract the 5 minute low for the JPY_usd.

With this in mind I have made the following:

ExtMapBuffer[i]=(iHigh(EUR_USD,M5,0) )-(iLow(USD_JPY,M5,0));

Obviously this is not right. Can someone tell me whether iHigh is a function or variable?

Do I have to create multiple buffers for each currency to compute this? Any help in a quick explanation to fix this would be much appreciated.

Thanks,

Eric

 

If you looked at the Documentation you would see it is a Function . . . https://docs.mql4.com/series/iHigh have you defined M5 or did you mean PERIOD_M5 ?

You do realise that the High and Low value of the 0 bar is likely to change ?

 

Yeah, sorry..I meant for [i].

Sorry, for some reason I have been trying to search for this on the mql4 website and in the forums and the search keeps timing out.

So thus,

ExtMapBuffer[i]=(iHigh(EUR_USD,PERIOD_M5,i) )-(iLow(USD_JPY,PERIOD_M5,i));

 

Yep, although check that you have the correct symbol names, these don't look right . . but they may be, depends on your broker . . EUR_USD, USD_JPY.

One minor thing, you don't need the outer sets of braces () . . . they won't hurt though.

ExtMapBuffer[i]=iHigh(EUR_USD,PERIOD_M5,i)-iLow(USD_JPY,PERIOD_M5,i);  //  will be fine, assuming the symbols are correct
 
RaptorUK:

Yep, although check that you have the correct symbol names, these don't look right . . but they may be, depends on your broker . . EUR_USD, USD_JPY.

One minor thing, you don't need the outer sets of braces () . . . they won't hurt though.


Thanks Raptor,

So, I guess to answer my original questions these are custom functions and not variables.

 
Boost:


Thanks Raptor,

So, I guess to answer my original questions these are custom functions and not variables.

I did answer your original question ;-) . . . but to repeat, yes they are functions, the braces give them away () variables that used braces would be square braces, [] and would be an array. e.g. https://docs.mql4.com/predefined/variables/high
 
RaptorUK:
Yep, although check that you have the correct symbol names, these don't look right . . but they may be, depends on your broker . . EUR_USD, USD_JPY.
  1. The form of a symbol is broker dependent, EURUSD, EUR_USD, EUR/USD, EURUSDfxf, EURUSDm are all possible.
  2. The first argument to iHigh/iLow is a string
    ExtMapBuffer[i] = iHigh("EUR_USD", PERIOD_M5, i) 
                    -  iLow("USD_JPY", PERIOD_M5, i);
 

Hello Boost,

for me, its not clear what your problem is.

your code-line is absolutely ok in the syntax, if your EUR_USD and USD_YPY are string constants defined as real Symbols such as "EURUSD", as mentioned by RaptorUK

But what do you mean with "Obviously this is not right" ? If you test the value of the single terms, they must have real quotes as content. So you can quickly find out, whether the term iHigh() is ok or not.

if the content is not a real value, or even 0, than you have no access th the history of your Symbol,whatever the reason is.

Reason: