Инициализацию массива необходимо производить только перед тотальным пересчётом. И то только в том случае, если вы заполняете массив выборочно, а не подряд элемент за элементом
Инициализацию массива необходимо производить только перед тотальным пересчётом. И то только в том случае, если вы заполняете массив выборочно, а не подряд элемент за элементом
eevviill: Это не работает ни в инит ни в деинит.
А зачем это нужно в деините? Да и зачем динамический массив индикатора инициализировать?
evillive: А зачем это нужно в деините? Да и зачем динамический массив индикатора инициализировать?
Потому что где то надо. В ините сказали нельзя.
Потому что обсчитывается только 0 бар. После закрытия терминала и открытия через пару свечей получается что 0 бар обсчитывается+ещё один с сдвигом на время которое был терминал закрыт.
Инициализацию массива необходимо производить только перед тотальным пересчётом. И то только в том случае, если вы заполняете массив выборочно, а не подряд элемент за элементом
Класно. Я заполняю только 0 елемент.
Если не понятна проблема, то могу ещё раз описать.
Потому что обсчитывается только 0 бар. После закрытия терминала и открытия через пару свечей получается что 0 бар обсчитывается+ещё один с сдвигом на время которое был терминал закрыт.
На самом деле был корректно расссчитан нулевой бар, но потом произошла загрузка истории. И рассчитан уже новый нулевой бар.
Запустился терминал спустя X времени после последнего запуска
Инициировалась закачка истории, которая отсутствует( терминал не работал X минут)
Вызывается OnCalculate индикатора на имеющуюся историю prevtime= последнее известное время истории, размер индикаторного буфера N баров
Пока подкачивается история с сервера приходит тик
Вызывается OnCalculate индикатора, где Time[0] время тика, индикатор его запоминает как prevtime, размер индикаторного буфера N+1 баров (между барами N и N+1 имеется дыра в истории)
После докачки истории опять вызывается OnCalculate индикатора, но в этот раз, дыры в истории нет, но вот prevtime имеет туже дату, что и Time[0] - нового бара нет (соответственно нет зануления буферов в индикаторе), при этом размер буфера индикатора N+X/Timeframe баров и IndBuffer[0] вовсе не тот, который был в п.5
ок. В деинит тоже не работает обнуление.
Вы так и не ответили на вопрос, что Вы имеете в виду под обнулением буферов?
Обнулением содержимого индикаторных буферов клиентский терминал не занимается. Обнуление должен предусмотреть программист
Уничтожение буферов производится автоматически при выгрузке индикатора
Вы так и не ответили на вопрос, что Вы имеете в виду под обнулением буферов?
Обнулением содержимого индикаторных буферов клиентский терминал не занимается. Обнуление должен предусмотреть программист
Уничтожение буферов производится автоматически при выгрузке индикатора
Это не работает ни в инит ни в деинит.
Это не работает ни в инит ни в деинит.
Ещё раз.
Инициализацию массива необходимо производить только перед тотальным пересчётом. И то только в том случае, если вы заполняете массив выборочно, а не подряд элемент за элементом
Ещё раз.
Инициализацию массива необходимо производить только перед тотальным пересчётом. И то только в том случае, если вы заполняете массив выборочно, а не подряд элемент за элементом
Это не работает ни в инит ни в деинит.
А зачем это нужно в деините? Да и зачем динамический массив индикатора инициализировать?
Вы читали проблему?
А зачем это нужно в деините? Да и зачем динамический массив индикатора инициализировать?
Потому что где то надо. В ините сказали нельзя.
Потому что обсчитывается только 0 бар. После закрытия терминала и открытия через пару свечей получается что 0 бар обсчитывается+ещё один с сдвигом на время которое был терминал закрыт.
Ещё раз.
Инициализацию массива необходимо производить только перед тотальным пересчётом. И то только в том случае, если вы заполняете массив выборочно, а не подряд элемент за элементом
Класно. Я заполняю только 0 елемент.
Если не понятна проблема, то могу ещё раз описать.
Потому что где то надо. В ините сказали нельзя.
Потому что обсчитывается только 0 бар. После закрытия терминала и открытия через пару свечей получается что 0 бар обсчитывается+ещё один с сдвигом на время которое был терминал закрыт.
На самом деле был корректно расссчитан нулевой бар, но потом произошла загрузка истории. И рассчитан уже новый нулевой бар.
Вот. Для этого я делаю обнуление буферов. В ините уже сказали что нельзя этого делать.
Я хочу в деинит. Но там тоже не работает. Почему?