Midpoint Moving Average Indicator


input anchorTime = 0930;
def postAnchorTime =SecondsFromTime(anchorTime) >= 0;
def highprice = if high>highprice[1] then high else highprice[1];
def lowprice = if low<lowprice[1] then low else lowprice[1];
plot midpoint = totalsum(if postanchortime then Highprice + Lowprice else 0) / 2;


I'm trying to create a indicator that tells me the average price of the day based on the highest high and lowest low for the day.
I have the above code so far but it is not working.
It doesn't show the moving average and instead shows a single line at the start of the day.
How can I fix this?

plot midpoint = totalsum(if postanchortime then highest(high,postanchortime) + lowest(low,postanchortime) else 0) / 2;

I've tried to use this formula for the plot because it is most logical but postanchortime is a increasing number as time moves along and HIGHEST or LOWEST requires a constant for the length of time.
Last edited:



def newDay = GetDay() <> GetDay()[1];
def newHigh = if newDay then high else if high > newHigh[1] then high else newHigh[1];
def newLow = if newDay then low else if low < newLow[1] then low else newLow[1];
plot midPoint = (newHigh + newLow) / 2;


@OBW GetDay() <> GetDay()[1];
absolute genius. i've been scratching my head for 4 hours before giving up and posting here and here is the simplest most beautiful script to get the day's bars.
I've tested GetDay() > GetDay()[1]; and it gives the same result. Is there a reason to use <(less than yesterday) which only gives midpoint from yesterday end of day to beginning of chart?

I'm tinkering with the code to see if I can anchor the time from 0930 and not include extended when extended shown.

when i use <input time=0930> then <secondsfromtime(time)> it fixes the data onto that time point. is there a better way?

Similar threads