Попробуйте вместо PERIOD_CURRENT поставить Period()
А по сути можно воспользоваться функцией Bars()
В качестве примера есть индикатор, использующий стандартный iBarShift и решение отсюда: https://www.mql5.com/ru/code/1864
Проблема в том, что стандартное решение "iBarShift" не работает, а пользовательское "iBarShift_" решение не работает при выборе PERIOD_CURRENT.
Нужна помощь.
Для того, чтобы привлечь внимание разработчиков к "iBarShift", я добавила образец вышеупомянутого индикатора со стандартным решением и решением, предложенным Николаем Семко.
Стандартное решение "iBarShift" не работало по сравнению с решением Николая Семко. В этом легко убедиться, переключившись между двумя решениями.
Но, ведь, Николай Семко пишет, что iBarShift полностью рабочая.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Nikolai Semko, 2022.12.21 11:13
Научитесь пользоваться дебагом чтобы найти у себя ошибку. iBarShift полностью рабочая.Я могу только порекомендовать вам попробовать тестовый пример и убедиться в этом самостоятельно. Возможно есть разница в версии МТ5. В моем случае релиз 3552.
Это всего лишь пример для тестирования iBarShift, этот код ( Только уберите else Comment("") ... ) не имеет ничего общего с реальным индикатором.
( Вы хоть бы написали, что не так.) Поведение тестового кода https://failiem.lv/u/ye556xav2
Если без этой строчки произоводительность индикатора увеличивается более чем в 100 раз - имеет или не имеет?
Просто на MQ счете (где на unlimited bar M1 > 8000000) засеките время расчета с Comment("") и без него. Тогда увидите разницу.
На самом деле проблема существует. Пока не могу понять источник.
Проблема в том, что в данном индикаторе, если использовать штатный iBarShift, то prev_calculated постоянно обнуляется, хотя это должно происходить только при первом запуске.
Если использовать мой старый вариант fBarShift, то обнуления prev_calculated не происходит.
Пока не могу понять, почему так происходит. Возможно Лилита права и что-то реально поломалось.
Тем более я уже не однократно замечал какие-то странные мигания (перерисовывания) индикаторов в последнее время. Думаю, реально что-то поломали, но вряд ли проблема с iBarShift. Проблема сидит где-то в другом месте MT5.
На самом деле проблема существует. Пока не могу понять источник.
Проблема в том, что в данном индикаторе, если использовать штатный iBarShift, то prev_calculated постоянно обнуляется, хотя это должно происходить только при первом запуске.
Если использовать мой старый вариант fBarShift, то обнуления prev_calculated не происходит.
Пока не могу понять, почему так происходит. Возможно Лилита права и что-то реально поломалось.
Тем более я уже не однократно замечал какие-то странные мигания (перерисовывания) индикаторов в последнее время. Думаю, реально что-то поломали, но вряд ли проблема с iBarShift. Проблема сидит где-то в другом месте MT5.
немного поспешил с выводами.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Новая версия платформы MetaTrader 5 build 3550: улучшения и исправления
Nikolai Semko, 2022.12.21 20:01
но все равно проблема существует.
Почему в данном индикаторе стандартный iBarShift(NULL,_Period,time[rates_total-1]) возвращает -1, тогда как моя функция fBarShift возвращает 0, как и должно быть?
В другом индикаторе пока не могу это воспроизвести.
2022.12.21 14:08:21.545 ATRCustom (USDCHF,H1) PERIOD_H2 / BarShift: -1 2022.12.21 14:08:21.545 ATRCustom (USDCHF,H1) iBarShift(_Symbol,CustomPeriodTimeframe,time[rates_total-1]) = -1 2022.12.21 14:08:21.545 ATRCustom (USDCHF,H1) fBarShift(_Symbol,CustomPeriodTimeframe,time[rates_total-1]) = 0 2022.12.21 14:08:24.049 ATRCustom (USDCHF,H1) PERIOD_H2 / BarShift: -1 2022.12.21 14:08:24.049 ATRCustom (USDCHF,H1) iBarShift(_Symbol,CustomPeriodTimeframe,time[rates_total-1]) = -1 2022.12.21 14:08:24.049 ATRCustom (USDCHF,H1) fBarShift(_Symbol,CustomPeriodTimeframe,time[rates_total-1]) = 0 2022.12.21 14:08:24.157 ATRCustom (USDCHF,H1) PERIOD_H2 / BarShift: -1 2022.12.21 14:08:24.157 ATRCustom (USDCHF,H1) iBarShift(_Symbol,CustomPeriodTimeframe,time[rates_total-1]) = -1 2022.12.21 14:08:24.157 ATRCustom (USDCHF,H1) fBarShift(_Symbol,CustomPeriodTimeframe,time[rates_total-1]) = 0

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Исправлено: нет проблем с iBarShift.