Does MQL4 allow its functions to call themselves (i.e. recursive calling)?

 
I have a need for a function to call itself and the number of times that it must do so cant be easily determined before the first function call is made.     Does MQL4 allow a function to call itself (this capability is known as recursive calling)???
 
Yes it does, but watch out, it might get pretty slow, plus may need to increase stack size.
 
I am just trying that now, started before few days much combinations, also had put counter how many loops it had done, increasing stack size, but it seems that does not help increasing much. I had came to conclusion that better is limited number of repeated loops and when reached the defined number to break the loop function. ex. for testing:
first.loop()
 {
 RefreshRates();
// counts first loop
 Count.first++;
// external function call
 second.loop();
// readable how many loops
 Print(Count.first,", ",Count.second);
 }
 
second.loop()
 {
 if ( Count.second > limit ) return(0);
 RefreshRates();
 Count.second++;
// break the function
 first.loop();
 }
Reason: