Есть ли аналог BarsCalculated в MT4?

 

Задача: получить количество рассчитанных данных пользовательского индикатора из эксперта.

В MT5 есть функция BarsCalculated. Есть ли какой-то аналог в MT4?

Заранее благодарю!

 

А поиском пользоваться религия не позволяет?


 
Alexey Viktorov:

А поиском пользоваться религия не позволяет?


а Вы смотрели поиск в справке? )))


по сабжу нет такой функции в MQL4, если не ошибаюсь, то в MQL4 при вызове индикатора через iCustom() из эксперта всегда будут подготовлены все расчеты индикатора, т.к. индикатор будет работать в одном потоке с экспертом

вот нашел Справочник MQL4  / Программы MQL4 / Выполнение программ 

Если пользовательский индикатор вызван при помощи функции iCustom(), то этот индикатор работает в потоке вызвавшей его программы.

 т.е. пока iCustom() не вернет значение эксперт не будет продолжать свою работу

 
Igor Makanu:

а Вы смотрели поиск в справке? )))

Йа офигел. Но ведь вы не будете спорить что была такая в mql4?

 
Alexey Viktorov:

Йа офигел. Но ведь вы не будете спорить что была такая в mql4?

Ага... так офигел, что попутал с IndicatorCounted()
 
Alexey Viktorov:

Йа офигел. Но ведь вы не будете спорить что была такая в mql4?

не было, Вы наверное про IndicatorCounted()  - он сейчас не нужен, все есть в int OnCalculate(......)

 
Igor Makanu:

а Вы смотрели поиск в справке? )))


по сабжу нет такой функции в MQL4, если не ошибаюсь, то в MQL4 при вызове индикатора через iCustom() из эксперта всегда будут подготовлены все расчеты индикатора, т.к. индикатор будет работать в одном потоке с экспертом

вот нашел Справочник MQL4  / Программы MQL4 / Выполнение программ 

 т.е. пока iCustom() не вернет значение эксперт не будет продолжать свою работу

У меня эксперт несколько раз ловил случаи, что последний бар в индикаторе еще не рассчитан. Не помню точно, кажется это было когда таймфрейм индикатора отличался от таймфрейма графика. С тех пор всегда ставлю проверку в экспертах.

Кроме того, в общем случае, индикатор может по внутренним причинам решить, что он не посчитал какие-то бары (из OnCalculated вернуть число, отличающееся от rates_total).

 
Ilya Baranov:

У меня эксперт несколько раз ловил случаи, что последний бар в индикаторе еще не рассчитан. Не помню точно, кажется это было когда таймфрейм индикатора отличался от таймфрейма графика. С тех пор всегда ставлю проверку в экспертах.

для экспертов МТ4 это обычная ситуация - он не умеет определять готовность других ТФ, а в тестере будет работать как часы, я для таких экспертов в таймере каждые 50 секунд организую подкачку всех ТФ путем "подергивания ТФ" через iClose() или любой iXXX() 

Ilya Baranov:

Кроме того, в общем случае, индикатор может по внутренним причинам решить, что он не посчитал какие-то бары (из OnCalculated вернуть число, отличающееся от rates_total).

так речь идет как получить вот это prev_calculated из индикатора на MQL4 -  пока я считаю что никак, можно конечно в индикаторный буфер писать prev_calculated каждый тик, но по моему для МТ4 это не нужно - выше писал

 
Igor Makanu:

пока я считаю что никак, можно конечно в индикаторный буфер писать prev_calculated каждый тик

Так сейчас и делаю.

 
Ilya Baranov:

Кроме того, в общем случае, индикатор может по внутренним причинам решить, что он не посчитал какие-то бары (из OnCalculated вернуть число, отличающееся от rates_total).

У меня так и есть, т.к. индикатор может перерисовать несколько последних баров, а из OnCalculated возвращает число баров, которые точно не будут перерисованы.

 
Alexey Viktorov:

А поиском пользоваться религия не позволяет?


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

ОК.

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