// Downloaded From https://www.WiseStockTrader.com
_SECTION_BEGIN("@Ocean NDX");
NDX_period          = Param("NDX Period",75,40,375);
NDX_SmLen           = round(NDX_Period*20/40);




SumWght = 0;
SumDnom = 0;

    for(i = 1; i < NDX_period+1; i++)
      {
      DifAry = ln(Ref(Close,-i+1)) - ln(Ref(Close,-i));
      if(i == 1) 
		DnomAry = abs(DifAry); 
		else 
		DnomAry =DNomAry+ abs(DifAry);
	  FracAry =IIf(DNomAry==0, 0,(ln(Close) - ln(Ref(Close,-i))) / DnomAry);
      TimeAry = 1 / (i^( 0.5));
      WghtAry = FracAry * TimeAry;
      SumWght =SumWght+ WghtAry;
      SumDnom =SumDnom+ TimeAry;
      }
    RawNDX = 100 * SumWght / SumDnom;



    TemaNDX= TEMA(RawNDX,NDX_SmLen); 

Plot(TemaNDX,"NDX",colorRed,styleLine);


    

_SECTION_END();

_SECTION_BEGIN("@Ocean NXC");
NDX_period          = Param("NDX Period",75,40,375);
NDX_SmLen           = round(NDX_Period*20/40);

NST_period          = round(NDX_Period*20/40);
NST_SmLen           = round(NDX_Period*10/40);





SumWght = 0;
SumDnom = 0;

    for(i = 1; i < NDX_period+1; i++)
      {
      DifAry = ln(Ref(Close,-i+1)) - ln(Ref(Close,-i));
      if(i == 1) 
		DnomAry = abs(DifAry); 
		else 
		DnomAry =DNomAry+ abs(DifAry);
	  FracAry =IIf(DNomAry==0, 0,(ln(Close) - ln(Ref(Close,-i))) / DnomAry);
      TimeAry = 1 / (i^( 0.5));
      WghtAry = FracAry * TimeAry;
      SumWght =SumWght+ WghtAry;
      SumDnom =SumDnom+ TimeAry;
      }
    RawNDX = 100 * SumWght / SumDnom;

    TemaNDX= TEMA(RawNDX,NDX_SmLen); 

	 SumWgt = 0;
		 SumDnm = 0;
 
    for(i = 0; i <NST_period+1; i++)
      {
      if(i < 2) 
		{
		HghAry = High;
		LowAry = Low; 
		} 
		HghAry = HHV(High, i);
		LowAry=LLV(Low,i);
	
      RngAry = HghAry - LowAry;
     
	   FrcAry =IIf(RngAry==0, 0,(Close- LowAry) / RngAry);
      TmeAry = 1 / ((i+1)^(0.5));
      WgtAry = TmeAry * FrcAry;
      SumWgt =SumWgt+ WgtAry;
      SumDnm =SumDnm+ TmeAry;
      }
    RawNST = Nz((200 * SumWgt / SumDnm) - 100);

    TemaNST= TEMA(RawNST,NST_SmLen); 

 
      NAvg = (abs(TemaNDX) * TemaNST + abs(TemaNST) * TemaNDX) / 2;
	   Nsign= IIf(NAvg>0,1,IIf(NAVG<0,-1,0));
 
      NXC =round(Nsign * sqrt(abs(NAvg)));


Plot(NXC,"NXC",colorBlue,styleLine);
_SECTION_END();
Buy=Cross(NXC,TemaNDX);
Sell=Cross(TemaNDX,NXC);
Buy=ExRem(Buy,Sell);
Sell=ExRem(Sell,Buy);
PlotShapes(Buy*shapeUpTriangle,colorPaleGreen,0);
PlotShapes(Buy*shapeSmallUpTriangle,colorGreen,0);
PlotShapes(Sell*shapeDownTriangle,colorOrange,0);
PlotShapes(Sell*shapeSmallDownTriangle,colorBrown,0);