The simplest solution requires that you turn off extended hours trading session on your charts. The following code plots the values you requested. The time frame can be set to any intraday time-based aggregation period.
def newDay = GetDay() <> GetDay()[1];
rec firstOpen = if newDay then open else firstOpen[1];
rec firstHigh = if newDay then high else firstHigh[1];
rec firstLow = if newDay then low else firstLow[1];
rec firstClose = if newDay then close else firstClose[1];
plot priceOpen = firstOpen;
plot priceHigh = firstHigh;
plot priceLow = firstLow;
plot priceClose = firstClose;