Здравствуйте!
Подскажите пожалуйста, как я могу получить индекс первого бара после открытия сессии , чтобы в последствии использовать его при нахождении iLow этого бара?
Спасибо!

- www.mql5.com
простите, а если я не знаю время бара? моя программа должна высчитать сегодняшний первый бар , не могли бы вы поподробнее рассказать?
Здравствуйте!
Подскажите пожалуйста, как я могу получить индекс первого бара после открытия сессии , чтобы в последствии использовать его при нахождении iLow этого бара?
Спасибо!
что-то типа:
double low = iLow(_Symbol,_Period,iBarShift(_Symbol,_Period,60*60*24*(TimeCurrent()/(60*60*24))));
не проверял
Здравствуйте!
Подскажите пожалуйста, как я могу получить индекс первого бара после открытия сессии , чтобы в последствии использовать его при нахождении iLow этого бара?
Спасибо!

- 2023.02.12
- www.mql5.com
Похоже что под сессий топикстартер подразумевает начало торгового дня (судя по названию темы), но возможны варианты.
Хотя, строго говоря, для форекса сессий несколько в сутках.
Умение задать вопрос правильно - это наука. )))
конечно можно, но я предпочел бы мой вариант из-за более высокой производительности
Я не профи и никогда бы не подумал что 6 арифметических операций + вызов
TimeCurrent()
сработает быстрее чем вызов
iTime(_Symbol,PERIOD_D1,0)
Можно конечно проверить, но теоретически в чем причина?
Я не профи и никогда бы не подумал что 6 арифметических операций + вызов
сработает быстрее чем вызов
Можно конечно проверить, но теоретически в чем причина?
Во-первых, эти два выражения генерируют один и тот же код. Компилятор заменяет умножение нескольких констант на одну константу. Записал длинно для наглядности.
86400*(TimeCurrent()/86400) 60*60*24*(TimeCurrent()/(60*60*24))
Во-вторых, арифметические операции почти бесплатные в сравнению с функциями TimeCurrent() или iTime()
В-третьих функция TimeCurrent() намного быстрее функциям подобным iTime(). Думаю в раз 10-20.
Можете проверить. Мне лень, так как делал это уже много раз и просто это знаю.
ЗЫ
В-четвертых,
Если Вы находитесь не на D1 ТФ, то нет гарантии при первом вызове, что массив D1 уже сформирован, и поэтому Вы поймаете лаг на ровном месте, пока система не сформирует D1 массив

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Подскажите пожалуйста, как я могу получить индекс первого бара после открытия сессии , чтобы в последствии использовать его при нахождении iLow этого бара?
Спасибо!