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

 
YarTrade:

Это я читал. Хотел убедиться, что я правильно понял написанное.

Господа, я правильно понимаю, что iVolume  возвращает объем совершенных сделок за один тик?

Нет, не правильно. iVolume возвращает тиковый объём указанного бара. То-есть количество изменений цен Ask и Bid.

Наблюдая за предложенным индикатором это очень хорошо видно.

 

Доброго времени суток, досих пор пытаюсь подправить код из кастомного индикатора в советник, начал разбирать по запчастям и обнаружил функцию IndicatorCounted(),чем её можно заменить в коде советника?

Кроме этой функции индикаториспользует таймсерии High и Low, и в индикаторе и в советнике код компилируется и запускается, но в советнике при первом тике вылетает критикал еррор, судя по всему выход за пределы массива.....

Почитал про индикаторы, как отследить этот нулевой бар?без этой функции?, включать таймер и по таймфрейму закрывать бары?

 
ijonhson:

Доброго времени суток, досих пор пытаюсь подправить код из кастомного индикатора в советник, начал разбирать по запчастям и обнаружил функцию IndicatorCounted(),чем её можно заменить в коде советника?

Кроме этой функции индикаториспользует таймсерии High и Low, и в индикаторе и в советнике код компилируется и запускается, но в советнике при первом тике вылетает критикал еррор, судя по всему выход за пределы массива.....

Ничем её менять не надо. Это функция определяющая количество уже посчитанных баров. Если есть неудержимое желание сделать через ... можно конечно и пересчёт состояния рынка перенести в советник, но тогда надо считать исключительно по последнему бару, а все бары истории игнорировать.

 
ijonhson:

пытаюсь подправить код из кастомного индикатора в советник


 Как это понять?  Может речь идет о переносе кода из индикатора в советник?

IndicatorCounted(),чем её можно заменить в коде советника?

 Вы знаете чем индикатор отличается от советника ? Если да, то зачем вам в советнике эта функция ну и собственно зачем вы переносите код индикатора в советник ?


Почитал про индикаторы, как отследить этот нулевой бар?без этой функции?, включать таймер и по таймфрейму закрывать бары?

 По-моему тут вопрос причинно следственной связи.. Вы поставили задачу некорректно, лучше объясните что вы хотите добиться, а вам подскажут верное направление действий. 

 
Alexey Viktorov:

Ничем её менять не надо. Это функция определяющая количество уже посчитанных баров. Если есть неудержимое желание сделать через ... можно конечно и пересчёт состояния рынка перенести в советник, но тогда надо считать исключительно по последнему бару, а все бары истории игнорировать.


"Ничем её менять не надо"- то-есть с onTick в эксперте она работает также корректно как и с onCalculate в индикаторе?

 
Nikolay Ivanov:

 Как это понять?  Может речь идет о переносе кода из индикатора в советник?

 Вы знаете чем индикатор отличается от советника ? Если да, то зачем вам в советнике эта функция ну и собственно зачем вы переносите код индикатора в советник ?


Да ,перенос кода,все верно.

Мне нужен массив вершин индикатора для анализа на каждом тике желательно

 
ijonhson:

Да ,перенос кода,все верно.

Мне нужен массив вершин индикатора для анализа на каждом тике желательно


Если вам нужны значения индикатора в советнике, то копировать код индикатора в советник не нужно, вам даже код индикатора не нужен. А нужно запросить из советника значения индикатора, это делается этой функцией https://docs.mql4.com/ru/indicators/icustom 

iCustom - Технические индикаторы - Справочник MQL4
iCustom - Технические индикаторы - Справочник MQL4
  • docs.mql4.com
[in] input-параметры пользовательского индикатора, разделенные запятыми. Тип и порядок следования параметров должен соответствовать. Если параметры не указаны, то будут использованы значения по умолчанию.
 
Nikolay Ivanov:

Если вам нужны значения индикатора в советнике, то копировать код индикатора в советник не нужно, вам даже код индикатора не нужен. А нужно запросить из советника значения индикатора, это делается этой функцией https://docs.mql4.com/ru/indicators/icustom 


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

И к тому-же потом вручную искать вершины

 
ijonhson:

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


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

 
Nikolay Ivanov:

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


Вопрос в другом , за один тик просчитывать код индикатора 900 раз (3 таймфрейма по 300 баров к примеру), или 3 раза, понятно что с icustom меньше возни, закинул в цикл и делов, как вариант видел с помощью dll передается адрес массива значений индикатора, в советник,но не хочется тягать за собой индикатор в комплекте

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