{ Downloaded From https://www.WiseStockTrader.com }
{ Normalized, lag-less, Sine-weighted
Mov Avg & MA Oscillator v1.0 }
{ Divergence signals between SWMA & Oscillator:
+1=Long, -1=Short }
{ ©Copyright 2004 Jose Silva }
{ http://users.bigpond.com/prominex/pegasus.htm } 
plot:=Input("[1]-SWMA Osc, [2]-SW Mov Avg, 
[3]-Divergences",1,3,1);
pds:=Input("normalizing periods (1=none)",
1,2520,252);

SD:=30 {180/12};
S1:=Sin(1*SD)*C;
S2:=Sin(2*SD)*Ref(C,-1);
S3:=Sin(3*SD)*Ref(C,-2);
S4:=Sin(4*SD)*Ref(C,-3);
S5:=Sin(5*SD)*Ref(C,-4);
S6:=Sin(6*SD)*Ref(C,-5);
S7:=Sin(7*SD)*Ref(C,-6);
S8:=Sin(8*SD)*Ref(C,-7);
S9:=Sin(9*SD)*Ref(C,-8);
S10:=Sin(10*SD)*Ref(C,-9);
S11:=Sin(11*SD)*Ref(C,-10);

den:=
Sin(SD)+Sin(2*SD)+Sin(3*SD)+Sin(4*SD)+Sin(5*SD);
SWMA:=(S1+S2+S3+S4+S5)/den;
den:=Sin(SD)+Sin(2*SD)+Sin(3*SD)+Sin(4*SD)
+Sin(5*SD)+Sin(6*SD)+Sin(7*SD)+Sin(8*SD)
+Sin(9*SD)+Sin(10*SD)+Sin(11*SD);
SWosc:=(S1+S2+S3+S4+S5+S6+S7+S8+S9+S10+S11)/den;
SWoscNorm:=(SWosc-LLV(SWosc,pds))
/(HHV(SWosc,pds)-LLV(SWosc,pds)+.000001)*100;
SWoscNorm:=If(pds<2,SWosc,SWoscNorm);
up:=SWoscNorm>Ref(SWoscNorm,-1)
AND SWMA<Ref(SWMA,-1);
dw:=SWoscNorm<Ref(SWoscNorm,-1)
AND SWMA>Ref(SWMA,-1);

If(plot=1,SWoscNorm,If(plot=2,SWMA,up+-dw))