As requested by @andyj on the M-Oscillator page (https://www.prorealcode.com/prorealtime-indicators/m-oscillator/ ) I coded this crossover screener:
Period = 14 //Number of Periods
ct = close //Today's close
S = 0
FOR i = 1 TO Period
cp = close [ i]
r = (ct - cp) > 0 //R = Today's CLOSE - Previous Day's CLOSE, 1 = today > yesterday
IF r = 0 THEN
r = ((ct - cp) < 0 ) * - 1 //R = Today's CLOSE - Previous Day's CLOSE, -1 = today < yesterday
ENDIF
s = s + r //Sum up all r's
NEXT
Ema5 = ExponentialAverage [ 5 ] (s) //Histogram
Ema3 = ExponentialAverage [ 3 ] (Ema5)//M-Oscillator
//Ema3b = ExponentialAverage[3](Ema3)//Signal Line
Result = Ema3 CROSSES OVER 0
SCREENER [ Result] (close AS "Price" )