This forum is in read-only mode now. You may discuss your questions on forums of MQL4.community and MQL5.community
User Defined FunctionsBack to topics list |
|
dwt5
2005.09.27 22:44
I'm "still learning" how to program and wanted to create and use a User Defined Function, however I guess I don't understand how to do this. I am modifying an indicator which uses the following code mulitple times. I thought it best to create a function and call it rather than duplicate these lines of code 5 or 6 times..
RangeLimit = High[i]; for ( j = i - 7 ; j < i + 7 ; j++) { if (High[j] > RangeLimit) { RangeLimit = High[j]; } } I tired to create a function like this but keep getting "function definition unexpected".. int FindRange( int x) { RangeLimit = High[x]; for ( j = x - 7 ; j < x + 7 ; j++) { if (High[j] > RangeLimit) { RangeLimit = High[j]; } } return(RangeLimit); } would someone mind teaching a newbie how to do this correctly... thanks in advance david |
|
Shimodax
2005.09.27 22:58
You probably put the function inside another or accidentally left out one of the curly brackets in the function above. However, I see a couple of things. The return value RangeLimit should be defined inside the function, not as a global variable. Also it should be a double, not an int.
Something like this:
int start()
{
....
RangeLimit= FindRange(i);
...
}
double FindRange( int x)
{
double rl; // define variables used in a function inside that
int j; // function so they don't mix with the rest of the program
rl= High[x];
for ( j = x - 7 ; j < x + 7 ; j++)
{
if (High[j] > rl)
{
rl= High[j];
}
}
return(rl);
}
double FindRange(int x)
{
double rl= 0; // 0 won't be able to remain max value with prices
for (int j = x - 7 ; j < x + 7 ; j++)
{
rl= MathMax(rl, High[x]);
}
return rl;
}
|
|
dwt5
2005.09.27 23:30
Markus,
thanks for the input.. Great catch about returning double, I don't know why, but I was thinking I'd return the bar when I should have been returning the price...Silly me... Anyway, I tried what you suggested, but I guess I'm still not gettting it as I got the same error message.. Would you mind if I sent you the indicator and let you modify it.. Thanks in advance.. d |
|
Shimodax
2005.09.27 23:44
David, just mail it to m.schmidt@emtec.com Markus |
Download MetaTrader 5 (450 Kb, web installer) — a new terminal for financial markets
