// Downloaded From https://www.WiseStockTrader.com
_SECTION_BEGIN("PROJECTION OSCILLATOR");                                             
SetChartBkColor(colorBlack);
pp = Param(" Period", 14, 1, 150, 1);                               
xx= Cum(1)*Cum(1);
yy=(Sum(Cum(1),pp))*(Sum(Cum(1),pp));
SHIGH=((pp*(Sum(Cum(1)*High,pp)))-(Sum(Cum(1),pp)*(Sum(High,pp))))/((pp*(Sum(xx,pp))-yy));
SLOW=((pp*(Sum(Cum(1)*Low,pp)))-(Sum(Cum(1),pp)*(Sum(Low,pp))))/((pp*(Sum(xx,pp))-yy));
UPPBAND=Max(High,
Max( Ref(High,-1) + 1 * SHIGH,
Max( Ref(High,-2) + 2 * SHIGH,
Max( Ref(High,-3) + 3 * SHIGH,
Max( Ref(High,-4) + 4 * SHIGH,
Max( Ref(High,-5) + 5 * SHIGH,
Max( Ref(High,-6) + 6 * SHIGH,
Max( Ref(High,-7) + 7 * SHIGH,
Max( Ref(High,-8) + 8 * SHIGH ,
Max( Ref(High,-9) + 9 * SHIGH,
Max( Ref(High,-10) + 10 * SHIGH,
Max( Ref(High,-11) + 11 * SHIGH,
Max( Ref(High,-12) + 12 * SHIGH,
Ref(High,-13) + 13 *SHIGH)))))))))))));
LPBAND=Min(Low,
Min( Ref(Low,-1) + 1 * SLOW,
Min( Ref(Low,-2) + 2 * SLOW,
Min( Ref(Low,-3) + 3 * SLOW,
Min( Ref(Low,-4) + 4 * SLOW,
Min( Ref(Low,-5) + 5 * SLOW,
Min( Ref(Low,-6) + 6 * SLOW ,
Min( Ref(Low,-7) + 7 * SLOW,
Min( Ref(Low,-8) + 8 * SLOW,
Min( Ref(Low,-9) + 9 * SLOW,
Min( Ref(Low,-10) + 10 * SLOW,
Min( Ref(Low,-11) + 11 * SLOW,
Min( Ref(Low,-12) + 12 * SLOW,
Ref(Low,-13) + 13 * SLOW)))))))))))));
PO=100*(Close-LPBAND)/(UPPBAND-LPBAND);
Plot(PO,"",colorYellow,styleLine);
Plot(20,"",colorRed,styleDashed);
Plot(50,"",colorYellow,styleDashed);
Plot(80,"",colorRed,styleDashed);
_SECTION_END();