Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 2228

 
Vitaly Muzichenko #:

не проверял, но логично, что  Open (мт4) - заранее подготовленный массив и работает быстрее, а вот iOpen нужно запросить

Зависит от задачи, сколько нужно получить элементов (мт5), если более одного, то использовать CopyOpen вместо iOpen с запросом нужного количества

P.S. Если нужны не только цены открытия, то использовать CopyRates - можно одним вызовом получить необходимое количество всех цен

КопиОпен это честно, массив копируется с самого старого элемента, и без разницы заданное направление, его потом переворачивать надо, или считать индексы массива))) Правила понятны, но логику разрабов не догоняю, или только наполовину понимаю, зачем эти копирования, да удобно иногда, Но массивы уже есть, почему не реализовать доступ... Лан брюзжу)))

(Глупый вопрос, но что бы точно не сомневаться) Правильно ли понимаю, что копировать нужно на каждой новой свече, так вроде написано в доках)

Копирование структуры массивов это копирование нескольких массивов. к тому же запись обращения к ним удлиняется на имя структуры))) Функция копирования короче конечно)

Зы спросил Клауд 2, нормально так разъянил что делает тот код.

Этот код определяет классы и функции для работы с временными рядами (time series) в MQL4, по аналогии с тем как это реализовано в MT4.

Основные моменты:

  1. Макрос DEFINE_TIMESERIE позволяет определить класс и функции для конкретного типа временного ряда (Open, High, Low и т.д.)
  2. Класс содержит статический метод Get, который возвращает значение временного ряда для заданного символа, таймфрейма и смещения.
  3. Оператор [] позволяет получить значение как элемент массива, по индексу.
  4. Функция iИмя (например, iOpen) является оберткой для метода Get класса.
  5. Таким образом, мы можем использовать синтаксис:

Open[10] или iOpen(_Symbol, PERIOD_M5, 10)

что аналогично работе в MT4.

  1. В конце определяются конкретные классы и функции для Open, High, Low, Close, Time и Volume.

Таким образом достигается удобный и привычный для MT4 способ работы с временными рядами в MQL4.

 
Всем доброго врнмени суток.
Подскажите можно ли передать в индикатор массив.
 
Sergey Li #:
Всем доброго врнмени суток.
Подскажите можно ли передать в индикатор массив.

Может в функцию? по ссылке. Если про инпут, то как это представляется? Можно в файл записать и потом считать, а название файла в инпут.

 
Valeriy Yastremskiy #:

Может в функцию? по ссылке. Если про инпут, то как это представляется? Можно в файл записать и потом считать, а название файла в инпут.

Нет именно в индикатор. Индикатор используется в мультивалютном советнике, для отслеживания уровней цен по валютным парам.
Или если есть другое решение подскажите?
Пока нашел только так.
 
Подскажите. пожалуйста, как сделать так, чтобы индикатор появился при визуальном тестировании. Он почему-то появляется только после окончания тестирования. МТ4. 
 
Ivan Butko #:
Подскажите. пожалуйста, как сделать так, чтобы индикатор появился при визуальном тестировании. Он почему-то появляется только после окончания тестирования. МТ4. 

Сохранить шаблон с индикатором и советником на графике как Tester.tpl. Либо Имя_советника.tpl. В первом случае в тестер по умолчанию всегда будет загружаться сохранённый шаблон, во втором случае будет загружаться такой шаблон только при запуске этого советника в тестере.

 
Artyom Trishkin #:

Сохранить шаблон с индикатором и советником на графике как Tester.tpl. Либо Имя_советника.tpl. В первом случае в тестер по умолчанию всегда будет загружаться сохранённый шаблон, во втором случае будет загружаться такой шаблон только при запуске этого советника в тестере.

Благодарю Вас! 

 
Sergey Li #:
Нет именно в индикатор. Индикатор используется в мультивалютном советнике, для отслеживания уровней цен по валютным парам.
Или если есть другое решение подскажите?
Пока нашел только так.

Вы не написали что нашли и что не устраивает. И что и откуда передавать. Откуда берется массив? Вручную или чем то другим формируется?

 
Valeriy Yastremskiy #:

Вы не написали что нашли и что не устраивает. И что и откуда передавать. Откуда берется массив? Вручную или чем то другим формируется?

Нужно из советника передать массив, уровни цены, в индикатор в котором производится слежение какого уровня достигла цена.

какой уровень цены достиг возвращается в советник.

 
Sergey Li #:

Нужно из советника передать массив, уровни цены, в индикатор в котором производится слежение какого уровня достигла цена.

какой уровень цены достиг возвращается в советник.

Из советника передаёте в индикатор массив, в котором индикатор следит за уровнем, какого достигла цена, а потом опять отправляете этот уровень в советник?

Здесь одно звено лишнее. Прямо очень лишнее.

Причина обращения: