- Статьи по разработке торговых приложений
- Отладка кода - Разработка программ
- Тестер стратегий в торговой платформе MetaTrader 5
Собственно вопрос такой, в функции onCalculate получаем массивы close и т.д, но они замкнуты внутри этой функции, передавать их параметрами во внутрь вызываемых функций будет слишком долго и нудно, поэтому хотелось бы просто "расшарить" их через указатели, но толком как это сделать в документации найти не получилось. Если "на пальцах": из функции OnCalculate вызывается другая функция, которая в свою очередь вызывает 3 и так далее, так вот и хотелось бы без передачи через параметры 2 использовать массив close в 3...
перед именем передаваемого массива в параметрах функции ставьте &
перед именем передаваемого массива в параметрах функции ставьте &
Вы вопрос читали? БЕЗ передачи через параметры, такой способ всем и давно известен. По вашему каждая функция на входе будет иметь по 4 доп параметра: const double &open[],const double &high[],const double &low[],const double &close[], но во второй функции мне эти параметры (массивы) не нужны, а нужны в 4-той из дерева...
Вот вопрос и заключается как РАСШАРИТЬ массив, к примеру через указатель или подобным образом и если не трудно с кратким примером: "шара" + обращение.
Вы вопрос читали? БЕЗ передачи через параметры, такой способ всем и давно известен. По вашему каждая функция на входе будет иметь по 4 доп параметра: const double &open[],const double &high[],const double &low[],const double &close[], но во второй функции мне эти параметры (массивы) не нужны, а нужны в 4-той из дерева...
Вот вопрос и заключается как РАСШАРИТЬ массив, к примеру через указатель или подобным образом и если не трудно с кратким примером: "шара" + обращение.
Вы вопрос читали?
нет конечно, взял и сходу написал самый используемый вариант работы с массивами/
копирование массива подойдёт?
ЗЫ: ох да, ещё же структуры есть
К сожалению, MQL не поддерживает указатели на массивы.
Я уже давно грущу по этому поводу... Сделали бы хотя бы функцию OnCalculate(), в которую будут передаваться указатели на таймсерии Стандартной Библиотеки типа CiOpen и подобные... Насколько было бы проще с передачей данных по таймсериям... Сохранил указатели в классе, и когда надо - используешь их на любом уровне вложенности...
Но сейчас - увы... Так что - только передача дополнительных параметров.
Ну или на каждом OnCalculate сперва копировать таймсери в свой массив, который потом использовать
К сожалению, MQL не поддерживает указатели на массивы.
Я уже давно грущу по этому поводу... Сделали бы хотя бы функцию OnCalculate(), в которую будут передаваться указатели на таймсерии Стандартной Библиотеки типа CiOpen и подобные... Насколько было бы проще с передачей данных по таймсериям... Сохранил указатели в классе, и когда надо - используешь их на любом уровне вложенности...
Но сейчас - увы... Так что - только передача дополнительных параметров.
Ну или на каждом OnCalculate сперва копировать таймсери в свой массив, который потом использовать
нет конечно, взял и сходу написал самый используемый вариант работы с массивами/
копирование массива подойдёт?
ЗЫ: ох да, ещё же структуры есть
Какой в этом смысл? Тогда уж проще через параметры, при копировании и память лишняя тратится и время дополнительное, зачем? Я искал вариант именно через указатели...
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования