If you spend any amount of time browsing solutions on the forum you will find the techniques used to create this are about as common as sand on beach. Although up until now no one has requested this solution directly. Most often these requests take the form of "how to trigger condition only once per day". And rather than being a generic solution such as a moving average crossover the solutions include some custom chart study the viewer is trying to modify.
I see you have requested a custom scan, so I moved this question out of the "Alerts and Notifications" topic and into the "Stock Scanner" topic. This solution will not work as a Study Alert because it requires the use of recursion to carry the previous value foward.
The following code should accomplish what you requested.
def newDay = GetDay() <> GetDay()[1];
rec trackCondition = if newDay then 0 else if Average(close, 9) crosses above Average(close, 50) then 1 else trackCondition[1];
plot signal = trackCondition and !trackCondition[1];