Okay some updates are due before my brain falls out of my nose and I cease to be able to even have a beer
So I got a few things 'improved' on the indi.
It now stops running away from price and only moves in the direction of proce when price is moving away from it (ie pulling up the ADR as price eats it

)
However I noticed when I dropped it on a chart that some days in history it seems to do it's thing and other days it doesn't move at all (like the ADR was hit immediately as the day has started). Now that just doesn't seem right.
So I dropped it on a crappertester chart to see what it did....and...it surprised me. The whole darned thing repaints!? By the very nature of this indi, it should not repaint its past. The present day, sure. That's expected but not days that have completed. How can an ADR for past days change?
Which leads me to think two things:
1) That the indi uses ATR which may repaint some based on future values. This seems unlikley as it is only an ADR of 1 on D1. So once the day completes, this value shouldn't change right?
2)There is something out of sync in my loops and every time a new bar paints, each point on the lines gets a new value. The only solution I see to this is to use IndicatorCounted() to aviod recalculating the past
This seems like an obvious solution however I avoided using it as from what I understand IndicatorCounted counts left to right whilst bar indexing counts right to left. This (I think) has inherit problems in syncronizing IndicatatorCounted() with iADR.
ANyways, I'm making tortoise like progress and am still open to anyone to take a look at this ( in fact I'm almost begging

).
Attached below is the latest monstrosity to be birthed from my keyboard.
Take care,
BobbyT
Edit: I haven't managed to make any progress on the actual range itself yet. One of the more frustrating problems

You do not have the required permissions to view the files attached to this post.