// Downloaded From https://www.WiseStockTrader.com
_SECTION_BEGIN("EMAavg");
SetChartOptions(0,chartShowArrows|chartShowDates);
_N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 ) ) ));

z=H;
EMAavg=((21*EMA(z,2))+(13*EMA(z,3))+(8*EMA(z,5))+(5*EMA(z,8))+(3*EMA(z,13))+(2*EMA(z,21)))/(52);


function Normalize(array, arraylen)
// Figure 1.7 on p. 7
{
  MaxH = HHV(array, arraylen);
  MinL = LLV(array, arraylen);
  Value1[0] = array[0];  // Initialize as array

  for(i = 1; i < BarCount; i++)
  {
     Value1[i]=.5*2*((array[i]-MinL[i])/IIf(MaxH[i]-MinL[i]==0,1,MaxH[i]-MinL[i])-.5)+.5*Value1[i-1];
     if (Value1[i] > .999) Value1[i] = .999;
     if (Value1[i] < -.999) Value1[i] = -.999;
  }
   return Value1;
}

function Fisher(array)
// Figure 1.7 on p. 7
{
  F = array;
  F = .5 * log((1+ array)/(1 - array)) + .5 * Ref(F, -1)+0.6;
  return F;
}

Med = (H+L)/2;

// Fisher Transform
FisherXform = Fisher(Normalize(Med, 10));


Buy = C>EMAavg AND C>=EMA(C,10) AND fisherxform>=-0.0;
Sell =C<EMAavg AND C<EMA(C,10) AND fisherxform<-0.0;



Buy = ExRem( Buy, Sell );
Sell = ExRem( Sell, Buy ); 



Filter =  Buy OR Sell;
/* Exploration Parameters */
AddTextColumn( FullName(), "Company Name" );
AddColumn( Buy, "Buy", 1 );
AddColumn( Sell, "Sell", 1 );
AddColumn( C, "Close", 1.3 );


PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorGreen, 0, L, Offset=-40);
PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorLime, 0,L, Offset=-50);                      
PlotShapes(IIf(Buy, shapeUpArrow, shapeNone),colorWhite, 0,L, Offset=-45); 
PlotShapes(IIf(Sell, shapeSquare, shapeNone),colorRed, 0, H, Offset=40);
PlotShapes(IIf(Sell, shapeSquare, shapeNone),colorOrange, 0,H, Offset=50);                      
PlotShapes(IIf(Sell, shapeDownArrow, shapeNone),colorWhite, 0,H, Offset=-45);

Plot( C, "Close", ParamColor("Color", colorBlack ), styleNoTitle | ParamStyle("Style") | GetPriceStyle() ); 





_SECTION_END();