prev_calculated - страница 8

 
Alexander Puzanov:

Ах батенька, чем, по-вашему, баг отличается от аксиомы? Посыпать мозги словами здесь не требуется - всё сформулированное в 3х пунктах легко видно в моём 1м посте. Если всё не так - вы же программист а не плотник, покажите в коде как вы голым prev_calculated без доп костылей порешите по отдельности перечисленные в 3х пунктах простые задачи: покажете сколько баров обсчитано на предыдущем тике, определите первый вызов OnCalculate и определите что история (контрольная сумма) изменена. Ничего додумывать за пользователя, подгонять под ваши аксиомы не надо - задачи сформулированы, очень просты и однозначны как полпальца

Рецепт Вам такоц: Внимательно читаем документацию, выкорчёвываем из лексикона слово "костыль", случаем то, что Вам ранее говорили.
 
Alexey Kozitsyn:
С этим вопросом нужно не к Владимиру (он лишь защищает позицию разработчиков), а к самим разработчикам, которые (в лице Slawa) так и сказали, что при prev_calculated = 0 - заново все пересчитать. Они ведь не всегда могут просчитать все варианты использования индикатора. Если сейчас назрела проблема, то бесполезно мучить модератора, нужно в сервисдеск с подробным описанием.

Смысла нет - у MQ есть магистральный список приоритетов разработки, а хотелки пассажиров машиниста не колышут. Оптимальное решение для пассажиров - завести себе мопед. Как это было с самопальными функциями удаления объектов по префиксу, пока приоритеты MQ до этого не дозрели. Вот я и предлагаю Владимиру, как глав.энтузиасту пятёрки - сделать красивую функцию, которая бы фасовала мух с котлетами отдельно, а он упорно уворачивается. Если функция/структура будет показывать сколько баров было обсчитано на пред вызове, плюс 2 флага - 1й запуск OnCalculate и изменение контрольной суммы, пользователь сам порешит как жить - когда инициализировать, пересчитывать или поспать. А голый prev_calculated как он есть решает частную комбинацию из 3х "если" - это грабли для пользователя
 
Alexander Puzanov:

Смысла нет - у MQ есть магистральный список приоритетов разработки, а хотелки пассажиров машиниста не колышут. Оптимальное решение для пассажиров - завести себе мопед. Как это было с самопальными функциями удаления объектов по префиксу, пока приоритеты MQ до этого не дозрели. Вот я и предлагаю Владимиру, как глав.энтузиасту пятёрки - сделать красивую функцию, которая бы фасовала мух с котлетами отдельно, а он упорно уворачивается. Если функция/структура будет показывать сколько баров было обсчитано на пред вызове, плюс 2 флага - 1й запуск OnInit и изменение контрольной суммы, пользователь сам порешит как жить - когда инициализировать, пересчитывать или поспать. А голый prev_calculated как он есть решает частную комбинацию из 3х "если" - это грабли для пользователя

Смысл есть, хотя бы обозначить проблему "письменно". Если оценят, хотя бы поставят в список.

А пока, Вы предложили ведь нормальное решение, возможно, не очень красивое, но и задачи, которые Вы решаете, не совсем стандартные. 

 
Alexander Puzanov:

Смысла нет - у MQ есть магистральный список приоритетов разработки, а хотелки пассажиров машиниста не колышут. Оптимальное решение для пассажиров - завести себе мопед. Как это было с самопальными функциями удаления объектов по префиксу, пока приоритеты MQ до этого не дозрели. Вот я и предлагаю Владимиру, как глав.энтузиасту пятёрки - сделать красивую функцию, которая бы фасовала мух с котлетами отдельно, а он упорно уворачивается. Если функция/структура будет показывать сколько баров было обсчитано на пред вызове, плюс 2 флага - 1й запуск OnInit и изменение контрольной суммы, пользователь сам порешит как жить - когда инициализировать, пересчитывать или поспать. А голый prev_calculated как он есть решает частную комбинацию из 3х "если" - это грабли для пользователя
Нужно подумать... Попозже перефразирую для выделения точной мысли, уберу "воду"...
 
Alexey Kozitsyn:

К вопросу про инициализацию буферов при инициализации. Рассудите логически. В OnInit() нет доступа к rates_total, так? Если в OnInit() нет доступа к rates_total, то и размеры буферов индикатора еще не известны ( =0 можете проверить сами). А раз размер буферов индикатора = 0, то что Вы собираетесь обнулять? 

Это-то понятно. Ахинея это то, что со слов Владимира, обнулять индикаторный буфер нужно в цикле по всем элементам массива...
 
Alexey Kozitsyn:
С этим вопросом нужно не к Владимиру (он лишь защищает позицию разработчиков), а к самим разработчикам, которые (в лице Slawa) так и сказали, что при prev_calculated = 0 - заново все пересчитать. Они ведь не всегда могут просчитать все варианты использования индикатора. Если сейчас назрела проблема, то бесполезно мучить модератора, нужно в сервисдеск с подробным описанием.

Да если-бы он не пытался давать неуклюжие советы его никто не мучил-бы.

Нет ответа прикидывается ... да ещё и людей пытается такими-же выставить...

 
Karputov Vladimir:

1. Снова поток мысли, но сути я так и не увидел.

2. На вопрос Вы так и не ответили, что говорит о том, что Вы никогда не задумывались над тем, что храниться в переменной после её объявления.

Не прикидывайся... Всё понятно, но специально для вас картинка



Комп работал не выключаясь, график не закрывался, индикатор не снимался с графика...

Вопрос: Куда пропали 2 минутных бара???

 
Alexey Viktorov:
Это-то понятно. Ахинея это то, что со слов Владимира, обнулять индикаторный буфер нужно в цикле по всем элементам массива...
Да, про цикл, пожалуй, перебор. А вот если при prev_calculated = 0 (при ранее заполненном буфере) сбрасываются какие-то значения в этом буфере, пожалуй, это ошибка. Сейчас проверим...
 
Alexey Viktorov:

Не прикидывайся... Всё понятно, но специально для вас картинка



Комп работал не выключаясь, график не закрывался, индикатор не снимался с графика...

Вопрос: Куда пропали 2 минутных бара???

Код в студию. Посмеемся и объясним.
 
И для тех кто в танке, prev_calculated уже давно возвращает не только 0, а иногда и действительно последний посчитанный бар.