Indicator should always calculate on new bars, not incoming ticks

 
I've noticed that the indicator signals given in forward-testing in realtime are more frequent, and do not match up to the signals if the indicator is run over the same data historically (hope you understand what I mean). When an indicator is first added to a chart, I know it calculates a large number of historical bars up to Bar 0 (about 1000 bars?). Thereafter, every time a tick comes in the indicator start() function runs.

Would it be wrong to modify the indicator to always look at completed bars and not ticks. Also, since I'm using a zigzag based indicator, to make it recalculate maybe a third of historical bars. I'm using M15 timeframe for trading, so I do not think it would be computationally 'heavy' to recalculate 300 bars every 15 minutes.
What do you think?

 

Non-repainting indicators don't change previous values of previous bars when new bars come in. E.g. moving average only modifies bar zero values per tick.

Repainting indicators such as zigzag and cog may change previous values. That's why they look good in history but may not be useful as predictors, recalculating only completed bars will not change that.