I can provide the code for the chart study but I do not have time to provide the scan. I only get 15 minutes for each free solution I provide in the Q&A Forum and creating the code below used up all of that time.
Important note! The chart must be set to exclude extended trading session or this will not work as designed. It is possible to provide a solution that works when extended trading session is included on the chart but that adds to the complexity and would far exceed the 15 minutes I allow for each free solution in the Q&A Forum.
def newDay = GetDay() <> GetDay()[1];
rec highOfDay = if newDay then high else if high > highOfDay[1] then high else highOfDay[1];
rec lowOfDay = if newDay then low else if low > 0 and low < lowOfDay[1] then low else lowOfDay[1];
rec previousDayHigh = if newDay then highOfDay[1] else previousDayHigh[1];
rec previousDayLow = if newDay then lowOfDay[1] else previousDayLow[1];
plot targetHigh = previousDayHigh;
targetHigh.SetPaintingStrategy(PaintingStrategy.DASHES);
targetHigh.SetDefaultColor(Color.DARK_GREEN);
plot targetLow = previousDayLow;
targetLow.SetPaintingStrategy(PaintingStrategy.DASHES);
targetLow.SetDefaultColor(Color.DARK_RED);
plot crossAboveHigh = close[1] < previousDayHigh[1] and close > previousDayHigh;
crossAboveHigh.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_UP);
crossAboveHigh.SetDefaultColor(Color.CYAN);
plot crossBelowHigh = close[1] > previousDayHigh[1] and close < previousDayHigh[1]; crossBelowHigh.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_DOWN); crossBelowHigh.SetDefaultColor(Color.MAGENTA); plot crossBelowLow = close[1] > previousDayLow[1] and close < previousDayLow[1];
crossBelowLow.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_DOWN);
crossBelowLow.SetDefaultColor(Color.MAGENTA);
plot crossAboveLow = close[1] < previousDayLow[1] and close > previousDayLow[1];
crossAboveLow.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_UP);
crossAboveLow.SetDefaultColor(Color.CYAN);