Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 2496
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Если таймер уже прибит значит индикатор уже рассчитан и его не надо рассчитывать по новой.
В индикаторе есть условие, что при prev_calculate == 0 нужно инициализировать буферы?
В индикаторе есть условие, что при prev_calculate == 0 нужно инициализировать буферы?
Да какая разница?
Я вообще не могу представить ситуацию, чтоб ChartSetSymbolPeriod понадобился второй раз, после того как индикатор рассчитан.
К тому же индикатор не советник, в нём OnInit срабатывает при каждом чихе, а значит будет по новой включаться таймер.
Да какая разница?
Я вообще не могу представить ситуацию, чтоб ChartSetSymbolPeriod понадобился второй раз, после того как индикатор рассчитан.
К тому же индикатор не советник, в нём OnInit срабатывает при каждом чихе, а значит будет по новой включаться таймер.
Значит, Вы не контролировали что происходит в обработчиках и переменных в них. В выходные часто prev_calculated становится равным нулю. Откуда-то проскакивают тики пару-тройку раз, и индикатор просто стирает нарисованное - происходит его инициализация, а далее тика уже нету для прорисовки. В этом случае нужна эмуляция тика. Кроме, как в таймере этого не сделать.
Я, перед написанием статьи по мультисимвольным мультитаймфреймовым индикаторам, скрупулёзно наблюдал за их поведением. Особое внимание уделял выходным дням. Поэтому представляю о чём говорю.
UPD. Опять таки, если индикатору для расчёта необходимы данные с иного периода графика, то все нужные таймсерии необходимо удерживать - обращаться к ним не реже одного раза в две минуты. Тут тоже нужен таймер.Значит, Вы не контролировали что происходит в обработчиках и переменных в них. В выходные часто prev_calculated становится равным нулю. Откуда-то проскакивают тики пару-тройку раз, и индикатор просто стирает нарисованное - происходит его инициализация, а далее тика уже нету для прорисовки. В этом случае нужна эмуляция тика. Кроме, как в таймере этого не сделать.
Я, перед написанием статьи по мультисимвольным мультитаймфреймовым индикаторам, скрупулёзно наблюдал за их поведением. Особое внимание уделял выходным дням. Поэтому представляю о чём говорю.
Хорошо. Спасибо. Статью перечитывать некогда, хоть там наверняка есть красивое решение.
Для себя с учётом вами сказанного, исправил код так, перенёс запуск таймера из OnInit() в OnCalculate()
При переключении таймфреймов получаю вот
Ну оно и понятно, сегодня не выходные)))
ЗЫ. Отключил сетевуху и увидел недостатки этого решения. Получается хрень какая то если нет интернета при запуске индикатора.Если кому то интересно, то вот так работает вроде норм)
И с выключенным инетом и с включенным и в моменты включения/выключения.
Хорошо. Спасибо. Статью перечитывать некогда, хоть там наверняка есть красивое решение.
Там нет красивого решения. Обычный костыль, не дающий легко читать код, к сожалению. Смысл был пояснить как сделать так, чтобы более-менее работало.
Если кому то интересно, то вот так работает вроде норм)
И с выключенным инетом и с включенным и в моменты включения/выключения.
Для чего вот это?
Для чего вот это?
Да просто проверял как работает.
Когда инета нет и переключаешь между таймфреймами, то iBarShift может выдать -1, вот в этом случае принты показывают как работает весь этот код.
Вы делаете репорт об ошибке?
Или Вы пишете программу, где просите указать как обойти ошибки в iBarShift максимально просто без "костылей"?
По-моему, и судя по Вашим постам - второе.
Из полученных ответов думаю есть смысл сделать репорт об ошибке. Куда его нести?
Из полученных ответов думаю есть смысл сделать репорт об ошибке. Куда его нести?
В ветку по последней бете терминала.
Сделайте воспроизводящий проблему лаконичный код, где будет показана и легко воспроизводима описываемая Вами в том же посте ошибка.
Для примера, поглядите как делает репорты fxsaber