Здесь происходит обращение к индикатору и расчет его значений внутри OnCalculate. Ждать можно бесконечно, пересчета не происходит. Запускать на графике периода D1
Здесь происходит обращение к индикатору и расчет его значений внутри OnCalculate. Ждать можно бесконечно, пересчета не происходит. Запускать на графике периода D1
Прошу объяснить, почему показания Ишимоку не рассчитываются.
Нельзя зацикливать ожидание в коде индикатора никогда. В скриптах и экспертах можно, а в индикаторах категорически нельзя.
То есть, стратегия расчетов и запросов чужих данных в индикаторах должна быть такой: если запрос данных не удался, то сразу выходим, откладывая расчеты на следующий тик. В следующем тике/вызове еще раз попробуем запросить нужное.
Нельзя зацикливать ожидание в коде индикатора никогда. В скриптах и экспертах можно, а в индикаторах категорически нельзя.
То есть, стратегия расчетов и запросов чужих данных в индикаторах должна быть такой: если запрос данных не удался, то сразу выходим, откладывая расчеты на следующий тик. В следующем тике/вызове еще раз попробуем запросить нужное.
Ок, а если нужно за один запуск рассчитать показания индикатора, не дожидаясь следующих тиков? Например, если выходные или просто малоликвидное время, когда выходит тик в минуту? Использовать OnTimer вместо OnCalculate?
После нажатия на "обновить" все рассчиталось. Все таки в качестве пожелания - удобнее если бы данные индикаторов, созданных в ините рассчитывались до первого вызова OnCalculate/OnTimer etc.
Или чтобы была возможность после инита программно дождаться их просчета в цикле внутри индикатора.
Чтобы рассчитать индикатор пользователю придется несколько раз жать "обновить" на графике. Надо ли ему это. Он вспомнит старый добрый МТ4 и останется на нем, не смотря на некоторые преимущества МТ5.
После нажатия на "обновить" все рассчиталось. Все таки в качестве пожелания - удобнее если бы данные индикаторов, созданных в ините рассчитывались до первого вызова OnCalculate/OnTimer etc.
Или чтобы была возможность после инита программно дождаться их просчета в цикле внутри индикатора.
Чтобы рассчитать индикатор пользователю придется несколько раз жать "обновить" на графике. Надо ли ему это. Он вспомнит старый добрый МТ4 и останется на нем, не смотря на некоторые преимущества МТ5.
Любые расчёты в индикаторах НУЖНО делать только в OnCalculate().
Karputov Vladimir: Любые расчёты в индикаторах НУЖНО делать только в OnCalculate().
Я говорю о показаниях индикатора Ишимоку в данном случае. Речь о показаниях индикаторов, которые используются в текущем, то есть в OnCalculate. Чтобы они рассчитывались до вызова OnCalculate, как это было в МТ4. Или чтобы можно было в OnCalculate дождаться их расчета. Иначе пользователям придется несколько раз нажимать на Обновить чтобы построить индикатор. Так как не все индикаторы строятся на всей истории за 1 секунду, бывают сложные индикаторы которые рассчитываются дольше. Все это время пользователю нужно будет куковать над кнопкой "Обновить", а в МТ4 нужно было просто ждать отрисовки.
Здесь происходит обращение к индикатору и расчет его значений внутри OnCalculate. Ждать можно бесконечно, пересчета не происходит. Запускать на графике периода D1
Прошу объяснить, почему показания Ишимоку не рассчитываются.
Здесь происходит обращение к индикатору и расчет его значений внутри OnCalculate. Ждать можно бесконечно, пересчета не происходит. Запускать на графике периода D1
Прошу объяснить, почему показания Ишимоку не рассчитываются.
А если так:
?Нельзя зацикливать ожидание в коде индикатора никогда. В скриптах и экспертах можно, а в индикаторах категорически нельзя.
То есть, стратегия расчетов и запросов чужих данных в индикаторах должна быть такой: если запрос данных не удался, то сразу выходим, откладывая расчеты на следующий тик. В следующем тике/вызове еще раз попробуем запросить нужное.
А если так:
?Нельзя зацикливать ожидание в коде индикатора никогда. В скриптах и экспертах можно, а в индикаторах категорически нельзя.
То есть, стратегия расчетов и запросов чужих данных в индикаторах должна быть такой: если запрос данных не удался, то сразу выходим, откладывая расчеты на следующий тик. В следующем тике/вызове еще раз попробуем запросить нужное.
Выводит "0" (поскольку сегодня воскресенье, повторного запуска OnCalculate не происходит)
После нажатия на "обновить" все рассчиталось. Все таки в качестве пожелания - удобнее если бы данные индикаторов, созданных в ините рассчитывались до первого вызова OnCalculate/OnTimer etc.
Или чтобы была возможность после инита программно дождаться их просчета в цикле внутри индикатора.
Чтобы рассчитать индикатор пользователю придется несколько раз жать "обновить" на графике. Надо ли ему это. Он вспомнит старый добрый МТ4 и останется на нем, не смотря на некоторые преимущества МТ5.
После нажатия на "обновить" все рассчиталось. Все таки в качестве пожелания - удобнее если бы данные индикаторов, созданных в ините рассчитывались до первого вызова OnCalculate/OnTimer etc.
Или чтобы была возможность после инита программно дождаться их просчета в цикле внутри индикатора.
Чтобы рассчитать индикатор пользователю придется несколько раз жать "обновить" на графике. Надо ли ему это. Он вспомнит старый добрый МТ4 и останется на нем, не смотря на некоторые преимущества МТ5.
Любые расчёты в индикаторах НУЖНО делать только в OnCalculate().