Есть два основных типа передачи переменных в функцию: по значению и по ссылке.
При передаче значения по ссылке, передается не само значение переменной, а ее адрес. Значение, переданное по ссылке, может быть изменено внутри самой функции.
Для передачи ссылок в EasyLanguage существуют следующие типы объявлений:
* StringRef
* StringArrayRef
* NumericRef
* NumericArrayRef
* TrueFalseRef
* TrueFalseArrayRef
Вот, например, объявление массива в программе, из которой мы будем обращаться к функции с передачей этого массива в качестве параметра:
Arrays: State[10,1000](0);
Объявление этого же массива в качестве параметра в коде самой функции:
Inputs: RefArray[Xsize,Ysize](NumericArrayRef);
Где Xsize, Ysize - получают значение размера передаваемого массива. Эти обозначения (Xsize, Ysize) можно использовать в коде функции для того, чтобы получить размер передаваемого в качестве параметра массива.
Пример вызова функции (из индикатора, стратегии или иной функции):
x = Function(State);
При этом в функцию может буть передано сколько угодно значений в теле этого массива State, и возвращено любое количество значений, которое ограничивается только самим размером массива.
В подготовке материала принял участие Герман Брюханов (Leader).