Подскажите пожалуйста, как можно сделать локальный массив close доступным глобально.

 
Собственно вопрос такой, в функции onCalculate получаем массивы close и т.д, но они замкнуты внутри этой функции, передавать их параметрами во внутрь вызываемых функций будет слишком долго и нудно, поэтому хотелось бы просто "расшарить" их через указатели, но толком как это сделать в документации найти не получилось. Если "на пальцах": из функции OnCalculate вызывается другая функция, которая в свою очередь вызывает 3 и так далее, так вот и хотелось бы без передачи через параметры 2 использовать массив close в 3...
 
T-S-V:
Собственно вопрос такой, в функции onCalculate получаем массивы close и т.д, но они замкнуты внутри этой функции, передавать их параметрами во внутрь вызываемых функций будет слишком долго и нудно, поэтому хотелось бы просто "расшарить" их через указатели, но толком как это сделать в документации найти не получилось. Если "на пальцах": из функции OnCalculate вызывается другая функция, которая в свою очередь вызывает 3 и так далее, так вот и хотелось бы без передачи через параметры 2 использовать массив close в 3...

перед именем передаваемого массива в параметрах функции ставьте &

 
Alexandr Bryzgalov:

перед именем передаваемого массива в параметрах функции ставьте &

Вы вопрос читали? БЕЗ передачи через параметры, такой способ всем и давно известен. По вашему каждая функция на входе будет иметь по 4 доп параметра: const double &open[],const double &high[],const double &low[],const double &close[], но во второй функции мне эти параметры (массивы) не нужны, а нужны в 4-той из дерева...

Вот вопрос и заключается как РАСШАРИТЬ массив, к примеру через указатель или подобным образом и если не трудно с кратким примером: "шара" + обращение.

 
T-S-V:

Вы вопрос читали? БЕЗ передачи через параметры, такой способ всем и давно известен. По вашему каждая функция на входе будет иметь по 4 доп параметра: const double &open[],const double &high[],const double &low[],const double &close[], но во второй функции мне эти параметры (массивы) не нужны, а нужны в 4-той из дерева...

Вот вопрос и заключается как РАСШАРИТЬ массив, к примеру через указатель или подобным образом и если не трудно с кратким примером: "шара" + обращение.

Почитайте про MqlRates, может это оно и есть.
 
T-S-V:

Вы вопрос читали?

нет конечно, взял и сходу написал самый используемый вариант работы с массивами/

копирование массива подойдёт?

ЗЫ: ох да, ещё же структуры есть

 

К сожалению, MQL не поддерживает указатели на массивы.

Я уже давно грущу по этому поводу... Сделали бы хотя бы функцию OnCalculate(), в которую будут передаваться указатели на таймсерии Стандартной Библиотеки типа CiOpen и подобные... Насколько было бы проще с передачей данных по таймсериям... Сохранил указатели в классе, и когда надо - используешь их на любом уровне вложенности...

Но сейчас - увы... Так что - только передача дополнительных параметров.

Ну или на каждом OnCalculate сперва копировать таймсери в свой массив, который потом использовать

 
George Merts:

К сожалению, MQL не поддерживает указатели на массивы.

Я уже давно грущу по этому поводу... Сделали бы хотя бы функцию OnCalculate(), в которую будут передаваться указатели на таймсерии Стандартной Библиотеки типа CiOpen и подобные... Насколько было бы проще с передачей данных по таймсериям... Сохранил указатели в классе, и когда надо - используешь их на любом уровне вложенности...

Но сейчас - увы... Так что - только передача дополнительных параметров.

Ну или на каждом OnCalculate сперва копировать таймсери в свой массив, который потом использовать

Спасибо, ответ исчерпывающий, значит придётся по старинке через параметры.
 
Alexandr Bryzgalov:

нет конечно, взял и сходу написал самый используемый вариант работы с массивами/

копирование массива подойдёт?

ЗЫ: ох да, ещё же структуры есть

Какой в этом смысл? Тогда уж проще через параметры, при копировании и память лишняя тратится и время дополнительное, зачем? Я искал вариант именно через указатели...
 
T-S-V:
Какой в этом смысл? Тогда уж проще через параметры, при копировании и память лишняя тратится и время дополнительное, зачем? Я искал вариант именно через указатели...
ну нет такого )