Before all, i am sorry for the late reply and i must say that this can be an interesting thread with the contribution of other members, especially experienced coders.
What i noticed is that indicators, that are set on a timeframe which is higher than the current one, always repaint.
For example, if you take a multi TF MACD indicator and you put it on a 15 min chart, but you set it ( in its settings ) on a 1H TF, this MACD will follow the 1H data movement ( not the 15 min data ), and every time you refresh, you may get a different output of the MACD on exactly each 4 of the 15 min candles ( 15min x 4 = 60min = 1H).
To conclude, the indicators that repaints may, in a part, be set on a higher timeframe in their original source code, as far as i know.
I know it's a bit complicated, but i hope the information i gave is exact and clear.