Have to pass array as reference, but it's a variable I cannot pass as reference?
I'm not sure if I understand your problem, but you can easily pass volume array to a custom function in this way:
//+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { //--- example(volume); //--- } void example(const long &volume[]) { }
Hi,
It compiles and I get no errors. Maybe reboot your system.
I don't understand what you mean - can you provide the code that works and that with the error?
I'm not sure if I understand your problem, but you can easily pass volume array to a custom function in this way:
That's what I'm doing right now, to no avail. I just get the error I mentioned.
Here's the abridged version...
double CustomFunction(int steps, long &volume[]) { (...) } int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { (...) Buffer[i] = CustomFnction(11, volume); // 'volume' - constant variable cannot be passed as reference } return(rates_total); }
If I drop the & in CustomFunction, I get the "arrays are passed by reference only" error on top of the other one.
I think that you must define CustomFunction with "const":
double CustomFunction(int steps, const long &volume[])
I think that you must define CustomFunction with "const":
Help me get out of this conundrum:
In OnCalculate, I wish to pass the volume[] array to a custom function. However, I get the comical situation above; the custom function asks for arrays to be passed as reference, and yet OnCalculate doesn't allow me to pass volume[] as reference because it's a constant (and I can't change that). Anyone has an idea?