Передача переменных библиотечной функции.
по ссылке изменяются только переменные, переданные в "свою" функцию, то есть функцию, определённую в том же модуле (или включённую на этапе компиляции). если Вы хотите получать изменённые значения, то используйте для этого массив, хотя бы из одного элемента, который передавайте по ссылке. таково ограничение реализации
Массивы передаваемые по ссылке библиотечной функции нормально изменяются.
Например:
в индикаторе
в exmapl.mq4
int max(double & arr[], double & m) { int n = ArraySize(arr); int num=0; m = arr[0]; for (int i=0; i<n; i++) { if (arr[i] > m) { m = arr[i]; num = i; } } return(num); }и в индикаторе сделать вызов
double a[5] = {5.5,2.05,65,2,-22.3}; double mm=0; int k=0; k=max(a, mm);то в переменной mm так и останется 0. Но если закинуть эту функцию прямо в индикатор то всё нормально считается и изменяется. Может я что-нибудь делаю неправильно?