// Downloaded From https://www.WiseStockTrader.com
_SECTION_BEGIN("Price");

SetChartOptions(0,chartShowArrows|chartShowDates);
SetChartBkColor(ParamColor("bkcolor",ColorRGB(0,0, 0)));
//SetTradeDelays(1,1,1,1);
SetPositionSize(100,spsShares);
_SECTION_END();

NDays=Param("Number of Days",10,1,50,1); 
DayC=TimeFrameGetPrice("C",inDaily,-1);
NDaysDHLAvg=0;
for(i=1;i<=NDays;i++)
{
	DayH=TimeFrameGetPrice("H",inDaily,-i);
	DayL=TimeFrameGetPrice("L",inDaily,-i);
	NDaysDHLAvg=NDaysDHLAvg+(DayH-DayL);
}
NDaysDHLAvg=NDaysDHLAvg/NDays;

ADM= NDaysDHLAvg;   // Average Day Moment

// Dynamic Levels//----------Majer Support Resistent Zones---------------------------------------------------

DayH = 	TimeFrameGetPrice("H", inDaily, -1);	   		DayHI = LastValue (DayH,1); 		// yesterdays high
DayL = 	TimeFrameGetPrice("L", inDaily, -1);	 		DayLI = LastValue (DayL,1);			// yesterdays low
DayC = 	TimeFrameGetPrice("C", inDaily, -1);	 		DayCI = LastValue (DayC,1);			// yesterdays close
DayO = 	TimeFrameGetPrice("O", inDaily);				DayOI = LastValue (DayO,1);			// current day open
WeekH= 	TimeFrameGetPrice("H", inWeekly, 0);     		WeekHI = LastValue (WeekH,1); 		// This Week  high
WeekL= 	TimeFrameGetPrice("L", inWeekly, 0);     		WeekLI = LastValue (WeekL,1); 		// This Week  low
MonthH= 	TimeFrameGetPrice("H", inMonthly, 0);   		MonthHI = LastValue (MonthH,1); 	// This Month  high
MonthL= 	TimeFrameGetPrice("L", inMonthly, 0);  		MonthLI = LastValue (MonthL,1); 	// This Month  low
LWeekH= 	TimeFrameGetPrice("H", inWeekly, -1);   		LWeekHI = LastValue (LWeekH,1);  	// One Week before high
LWeekL= 	TimeFrameGetPrice("L", inWeekly, -1);   		LWeekLI = LastValue (LWeekL,1);  	// One Week before low
LMonthH= 	TimeFrameGetPrice("H", inMonthly, -1); 		LMonthHI = LastValue (LMonthH,1); 	// One Month before high
LMonthL= 	TimeFrameGetPrice("L", inMonthly, -1); 		LMonthLI = LastValue (LMonthL,1); 	// One Month before low
L1WeekH= 	TimeFrameGetPrice("H", inWeekly, -2);  		L1WeekHI = LastValue (L1WeekH,1); 	// Two Week before high
L1WeekL= 	TimeFrameGetPrice("L", inWeekly, -2);  		L1WeekLI = LastValue (L1WeekL,1); 	// Two Week before low
L1MonthH= 	TimeFrameGetPrice("H", inMonthly, -2);		L1MonthHI = LastValue (L1MonthH,1);	// Two Month before high
L1MonthL= 	TimeFrameGetPrice("L", inMonthly, -2); 		L1MonthLI = LastValue (L1MonthL,1);	// Two Month before low
L2WeekH= 	TimeFrameGetPrice("H", inWeekly, -3);   		L2WeekHI = LastValue (L2WeekH,1);  	// Three Week before high
L2WeekL= 	TimeFrameGetPrice("L", inWeekly, -3);   		L2WeekLI = LastValue (L2WeekL,1);  	// Three Week before low
L2MonthH= 	TimeFrameGetPrice("H", inMonthly, -3); 		L2MonthHI = LastValue (L2MonthH,1);	// Three Month before high
L2MonthL= 	TimeFrameGetPrice("L", inMonthly, -3); 		L2MonthLI = LastValue (L2MonthL,1);  	// Three Month before low
L3MonthH= 	TimeFrameGetPrice("H", inMonthly, -4); 		L3MonthHI = LastValue (L3MonthH,1);  	// Four Month before high
L3MonthL= 	TimeFrameGetPrice("L", inMonthly, -4);  		L3MonthLI = LastValue (L3MonthL,1); 	// Four Month before low
L4MonthH= 	TimeFrameGetPrice("H", inMonthly, -5);  		L4MonthHI = LastValue (L4MonthH,1); 	// Five Month before high
L4MonthL= 	TimeFrameGetPrice("L", inMonthly, -5);  		L4MonthLI = LastValue (L4MonthL,1); 	// Five Month before low
L3WeekH= 	TimeFrameGetPrice("H", inWeekly, -4);    		L3WeekHI = LastValue (L3WeekH,1); 	// Four Week before high
L3WeekL= 	TimeFrameGetPrice("L", inWeekly, -4);   		L3WeekLI = LastValue (L3WeekL,1); 	// Four Week before low
//----------------------------------------------------------------------------------------------------------------------


Buy= C>((DayC)+((.382)*(ADM)));
Sell= C<((DayC)-((.382)*(ADM)));

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

Short=Sell;
Cover=Buy;

BuyPrice=ValueWhen(Buy,C);
SellPrice=ValueWhen(Sell,C);
ShortPrice=ValueWhen(Short,C);
CoverPrice=ValueWhen(Cover,C);

BuyTarget1= (0.45*ADM)+BuyPrice;
BuyTarget2= (0.95*ADM)+BuyPrice;
BuyTarget3= (1.95*ADM)+BuyPrice;
SellTarget1= SellPrice-(0.45*ADM);
SellTarget2= SellPrice-(0.95*ADM);
SellTarget3= SellPrice-(1.95*ADM);

//------------------------------------------------------------------------------------------------

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(Short, shapeSquare, shapeNone),colorRed, 0, H, Offset=40);
PlotShapes(IIf(Short, shapeSquare, shapeNone),colorOrange, 0,H, Offset=50);                      
PlotShapes(IIf(Short, shapeDownArrow, shapeNone),colorWhite, 0,H, Offset=-45);

Long=Flip(Buy,Sell); 
Shrt=Flip(Sell,Buy); 

BuyPrice=ValueWhen(Buy,C);
SellPrice=ValueWhen(Sell,C);

Bdc=(
WriteIf (Buy AND Ref(shrt,-1), " BUY@ "+C+"  ","")+ 
WriteIf(Buy  , "LastTrade Profit="+(SellPrice-C)+"","")
);

Sdc=(
WriteIf (Sell AND Ref(Long,-1), " SEll@ "+C+"  ","")+
WriteIf(Sell , "LastTrade Profit="+(C-BuyPrice)+"","")
);

Ndc=(
WriteIf(Long AND NOT Buy, "Long@"+WriteVal((BuyPrice))+" /Profit="+WriteVal((C-BuyPrice))+"","")+
WriteIf(Shrt AND NOT Sell, "Short@"+WriteVal((SellPrice))+" /Profit="+WriteVal((SellPrice-C))+"","")
);

BTdc=(
WriteIf(Long AND NOT Buy, "Target1(1/2ADM)"+WriteVal((BuyTarget1))+
"::\nTarget2(One ADM)"+WriteVal((BuyTarget2))+
"::\nTarget3(Two ADM)"+WriteVal((BuyTarget3))+"","")
);

STdc=(
WriteIf(Shrt AND NOT Sell, "Target1(1/2ADM)"+WriteVal((SellTarget1))+
"::\nTarget2(One ADM)"+WriteVal((SellTarget2))+
"::\nTarget3(Two ADM)"+WriteVal((SellTarget3))+"","")
);

_SECTION_END();

trendup = IIf(C>((DayC)+((.382)*(ADM))), colorBlue, colorWhite);
trendcolor = IIf(C<((DayC)-((.382)*(ADM))), colorRed, trendup);
Plot( C, "Close", trendcolor, styleCandle | styleThick );

numbars = LastValue(Cum(Status("barvisible")));
hts  = -33.5;

// Volatility Levels //
DC =    DayC;                               DCI = LastValue (DC,1);     // Yesterday Close
BY  =  ((DayC)+((.382)*(ADM)));       BYI = LastValue (BY,1);     // Buy Entry Line
BT1  =  ((DayC)+((.618)*(ADM)));      BT1I = LastValue (BT1,1);   // Buy Target Line 1
BT2  =  ((DayC)+((.786)*(ADM)));      BT2I = LastValue (BT2,1);   // Buy Target Line 2
BT3  =  ((DayC)+(ADM));               BT3I = LastValue (BT3,1);   // Buy Target Line 3
SH  =  ((DayC)-((.382)*(ADM)));       SHI = LastValue (SH,1);   // Sell Entry Line
ST1  =  ((DayC)-((.618)*(ADM)));      ST1I = LastValue (ST1,1);   // Sell Target Line 1
ST2  =  ((DayC)-((.786)*(ADM)));      ST2I = LastValue (ST2,1);   // Sell Target Line 2
ST3 =  ((DayC)-(ADM));                ST3I = LastValue (ST3,1);   // Sell Target Line 3

vvl = ParamToggle("Intraday Target Levels","Hide|Show",1);
if(vvl==1)  {
  Plot(DC, "DC",colorWhite,styleDots|styleLine|styleNoRescale|styleNoTitle);
  Plot(BY, "BY",colorLime,styleDots|styleLine|styleNoRescale|styleNoTitle);
  Plot(BT1, "BT1",colorGreen,styleDots|styleLine|styleNoRescale|styleNoTitle);
  Plot(BT2, "BT2",colorGreen,styleDots|styleLine|styleNoRescale|styleNoTitle);
  Plot(BT3, "BT3",colorGreen,styleDots|styleLine|styleNoRescale|styleNoTitle);
  Plot(SH, "SH",colorRed,styleDots|styleLine|styleNoRescale|styleNoTitle);
  Plot(ST1, "ST1",colorBrown,styleDots|styleLine|styleNoRescale|styleNoTitle);
  Plot(ST2, "ST2",colorBrown,styleDots|styleLine|styleNoRescale|styleNoTitle);
  Plot(ST3, "ST3",colorBrown,styleDots|styleLine|styleNoRescale|styleNoTitle);

  PlotText(" DC ",  LastValue(BarIndex())-(numbars/Hts), DCI, colorDarkGrey);
  PlotText(" Buy " ,    LastValue(BarIndex())-(numbars/Hts), BYI, colorLime);
  PlotText(" Target1 " ,    LastValue(BarIndex())-(numbars/Hts), BT1I, colorGreen);
  PlotText(" Target2 " ,    LastValue(BarIndex())-(numbars/Hts), BT2I, colorGreen);
  PlotText(" Target3 " ,    LastValue(BarIndex())-(numbars/Hts), BT3I, colorGreen);
  PlotText(" Sell " ,    LastValue(BarIndex())-(numbars/Hts), SHI, colorRed);
  PlotText(" Target1 " ,    LastValue(BarIndex())-(numbars/Hts), ST1I, colorBrown);
  PlotText(" Target2 " ,    LastValue(BarIndex())-(numbars/Hts), ST2I, colorBrown);
  PlotText(" Target3 " ,    LastValue(BarIndex())-(numbars/Hts), ST3I, colorBrown);
}

mmwwl = ParamToggle(" MOnthly, Weekly Levels","Hide|Show",0);
if(mmwwl==1)  {
  Plot(DayH, "PDH",colorBlue,styleLine|styleNoRescale|styleNoTitle);
  Plot(WeekH, "CWH",colorBlue,styleLine|styleNoRescale|styleNoTitle);
  Plot(LWeekH, "LWH",colorBlue,styleLine|styleNoRescale|styleNoTitle);
  Plot(L1WeekH, "2WH",colorBlue,styleLine|styleNoRescale|styleNoTitle);
  Plot(L2WeekH, "3WH",colorBlue,styleLine|styleNoRescale|styleNoTitle);
  Plot(L3WeekH, "4WH",colorBlue,styleLine|styleNoRescale|styleNoTitle);
  Plot(MonthH, "CMH",colorBlue,styleLine|styleNoRescale|styleNoTitle);
  Plot(LMonthH, "LMH",colorBlue,styleLine|styleNoRescale|styleNoTitle);
  Plot(L1MonthH, "2MH",colorBlue,styleLine|styleNoRescale|styleNoTitle);
  Plot(L2MonthH, "3MH",colorBlue,styleLine|styleNoRescale|styleNoTitle);
  Plot(L3MonthH, "4MH",colorBlue,styleLine|styleNoRescale|styleNoTitle);
  Plot(L4MonthH, "5MH",colorBlue,styleLine|styleNoRescale|styleNoTitle);

  Plot(DayL, "PDL",colorViolet,styleLine|styleNoRescale|styleNoTitle);
  Plot(WeekL, "CWL",colorViolet,styleLine|styleNoRescale|styleNoTitle);
  Plot(LWeekL, "LWL",colorViolet,styleLine|styleNoRescale|styleNoTitle);
  Plot(L1WeekL, "2WL",colorViolet,styleLine|styleNoRescale|styleNoTitle);
  Plot(L2WeekL, "3WL",colorViolet,styleLine|styleNoRescale|styleNoTitle);
  Plot(L3WeekL, "4WL",colorViolet,styleLine|styleNoRescale|styleNoTitle);
  Plot(MonthL, "CML",colorViolet,styleLine|styleNoRescale|styleNoTitle);
  Plot(LMonthL, "LML",colorViolet,styleLine|styleNoRescale|styleNoTitle);
  Plot(L1MonthL, "2ML",colorViolet,styleLine|styleNoRescale|styleNoTitle);
  Plot(L2MonthL, "3ML",colorViolet,styleLine|styleNoRescale|styleNoTitle);
  Plot(L3MonthL, "4ML",colorViolet,styleLine|styleNoRescale|styleNoTitle);
  Plot(L4MonthL, "5ML",colorViolet,styleLine|styleNoRescale|styleNoTitle);

  PlotText(" PDH ",  	LastValue(BarIndex())-(numbars/Hts), DayHI, colorBlue);
  PlotText(" CWH " ,    LastValue(BarIndex())-(numbars/Hts), WeekHI, colorBlue);
  PlotText(" LWH " ,    LastValue(BarIndex())-(numbars/Hts), LWeekHI, colorBlue);
  PlotText(" 2WH " ,    LastValue(BarIndex())-(numbars/Hts), L1WeekHI, colorBlue);
  PlotText(" 3WH " ,    LastValue(BarIndex())-(numbars/Hts), L2WeekHI, colorBlue);
  PlotText(" 4WH " ,    LastValue(BarIndex())-(numbars/Hts), L3WeekHI, colorBlue);
  PlotText(" CMH " ,    LastValue(BarIndex())-(numbars/Hts), MonthHI, colorBlue);
  PlotText(" LMH " ,    LastValue(BarIndex())-(numbars/Hts), LMonthHI, colorBlue);
  PlotText(" 2MH " ,    LastValue(BarIndex())-(numbars/Hts), L1MonthHI, colorBlue);
  PlotText(" 3MH ",  	LastValue(BarIndex())-(numbars/Hts), L2MonthHI, colorBlue);
  PlotText(" 4MH " ,    LastValue(BarIndex())-(numbars/Hts), L3MonthHI, colorBlue);
  PlotText(" 5MH " ,    LastValue(BarIndex())-(numbars/Hts), L4MonthHI, colorBlue);
  
  PlotText(" PDL " ,    LastValue(BarIndex())-(numbars/Hts), DayLI, colorViolet);
  PlotText(" CWL " ,    LastValue(BarIndex())-(numbars/Hts), WeekLI, colorViolet);
  PlotText(" LWL " ,    LastValue(BarIndex())-(numbars/Hts), LWeekLI, colorViolet);
  PlotText(" 2WL " ,    LastValue(BarIndex())-(numbars/Hts), L1WeekLI, colorViolet);
  PlotText(" 3WL " ,    LastValue(BarIndex())-(numbars/Hts), L2WeekLI, colorViolet);
  PlotText(" 4WL " ,    LastValue(BarIndex())-(numbars/Hts), L3WeekLI, colorViolet);
  PlotText(" CML " ,    LastValue(BarIndex())-(numbars/Hts), MonthLI, colorViolet);
  PlotText(" LML " ,    LastValue(BarIndex())-(numbars/Hts), LMonthLI, colorViolet);
  PlotText(" 2ML " ,    LastValue(BarIndex())-(numbars/Hts), L1MonthLI, colorViolet);
  PlotText(" 3ML ",  	LastValue(BarIndex())-(numbars/Hts), L2MonthLI, colorViolet);
  PlotText(" 4ML " ,    LastValue(BarIndex())-(numbars/Hts), L3MonthLI, colorViolet);
  PlotText(" 5ML " ,    LastValue(BarIndex())-(numbars/Hts), L4MonthLI, colorViolet);

}