// Downloaded From https://www.WiseStockTrader.com
_SECTION_BEGIN("Price");
PCa=TimeFrameGetPrice( "C", inDaily, -1 );
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
//----------------------------------------------------------------------------------------------------------------------
sigwd=ParamToggle("sigchange","weekly|daily",1);
//HBS mean histogram buy sell and LHBS mean low buy high sell
field= ParamToggle("field","fieldd|fieldw",1);
font = ParamToggle("font","Show|Hide",1);
messageboard = ParamToggle("Message Board","Show|Hide",0);
prexplore= ParamToggle("perce/buysell","pers|buysell",1);
 
plus= Param("plus", 1,0,52,1);
Minus = Param("Minus", -1,-15,-0,-20);
prch = (C- TimeFrameGetPrice( "C", inDaily, -1 ))/ TimeFrameGetPrice( "C", inDaily, -1 )*100 ;

col=IIf ((Volume > 1.25 * EMA( Volume, 34 )),colorRed,colorLime);
Filter = prch > plus OR prch  < Minus  ;

Buy=Cover=Cross(C,pca) AND prch>plus;//(btp3,aa);
Sell=Short=Cross(pca,C)AND prch<Minus;//(aa,stp3);
//Buy=Cover=Cross(C,Ref(L,-1)) AND prch>plus;//(btp3,aa);
//Sell=Short=Cross(Ref(H,-1),C)AND prch<Minus;//(aa,stp3);
AddColumn(prch,"daily", 1.2,colorDefault, Col);
_SECTION_BEGIN("Flower");
Show_color = ParamToggle("Display CandleColor", "No|Yes", 1);
r1 = Param( "ColorFast avg", 5, 2, 200, 1 );
r2 = Param( "ColorSlow avg", 10, 2, 200, 1 );
r3 = Param( "ColorSignal avg", 5, 2, 200, 1 );

Prd1=Param("ATR Period",4,1,20,1);
Prd2=Param("Look Back",7,1,20,1);
green = HHV(LLV(L,Prd1)+ATR(Prd1),Prd2);
red = LLV(HHV(H,Prd1)-ATR(Prd1),Prd2);
flowerClose = EMA((Open+High+Low+Close)/4,3) ;
flowerOpen = EMA((Ref(Open,-1) + Ref(flowerClose,-1))/2,3);
Temp = Max(High, flowerOpen);
flowerHigh = EMA(Max(Temp, flowerClose),3);
Temp = Min(Low,flowerOpen);
flowerLow = EMA(Min(Temp, flowerClose),3);



m1=MACD(r1,r2);
s1=Signal(r1,r2,r3);
mycolor=IIf(m1<0 AND m1>s1, colorYellow,IIf(m1>0 AND m1>s1,colorGreen,IIf(m1>0 AND m1<s1,colorCustom12,colorRed)));
if(Show_color)
{
ColorHighliter = myColor;
SetBarFillColor( ColorHighliter );


}

barColor=IIf(C>Green ,colorBrightGreen,IIf(C < RED,colorRed,colorWhite));


//PlotOHLC( IIf(flowerOpen<flowerClose, flowerOpen, flowerClose),flowerHigh,flowerLow,IIf(flowerOpen<flowerClose, flowerClose, flowerOpen), "Close", barColor, styleNoTitle | styleCandle);



_SECTION_END();
py = Param("pc", 9, 0, 100,1 );
HaClose = (EMA(O,py)+EMA(H,py)+EMA(L,py)+EMA(C,py))/4; 
HaOpen = AMA( Ref( HaClose, -1 ), 0.5 ); 
HaHigh = Max( H, Max( HaClose, HaOpen ) ); 
HaLow = Min( L, Min( HaClose, HaOpen ) ); 
xDiff = (HaHigh - Halow) * IIf(StrFind(Name(),"JPY"),100,10000);
barcolor = IIf(HaClose >= HaOpen,colorBrightGreen,colorRed);
PlotOHLC( HaOpen, Haopen, Haclose, HaClose, "", barcolor, styleCandle ); 
acc = Param("Acceleration", 0.150, 0, 1, 0.001 );
accm = Param("Max. acceleration", 0.1, 0, 1, 0.001 );
myColor = IIf (Avg > SAR( acc, accm ) , colorBlue , colorRed);
Plot( SAR( acc, accm ), _DEFAULT_NAME(), myColor , ParamStyle("Style", styleDots | styleNoLine, maskDefault | styleDots | styleNoLine ) );
Buy1=Cover2=Cross(Avg,SAR( acc, accm ));
Sell2=Short2=Cross(SAR( acc, accm ),Avg);
PlotShapes( Buy1 * shapeStar + Sell2 * shapeStar, IIf( Buy1, colorWhite, colorYellow ));
_SECTION_BEGIN("Price Line");
dp= Param("dps",3,0,1000,1);
PriceLineColor=ParamColor("PriceLineColor",ColorRGB(82,82,82));
PriceLevel = ParamField("PriceField", field = 3 ); 
PriceLeve2 = ParamField("PriceField", field = dp );
Daysback    = Param("Bars Back",1,10,500,1); 
FirstBar    = BarCount - DaysBack; 
YY          = IIf(BarIndex() >= Firstbar,EndValue(PriceLevel),Null); 

Plot(YY,"Current Price",PriceLineColor,ParamStyle("LineStyle",styleLine|styleDashed|styleNoTitle|styleNoLabel|styleThick,maskAll)); 

PC=TimeFrameGetPrice( "C", inDaily, -3 ); 
Plot(pc,"Current Price",PriceLineColor,ParamStyle("LineStyle",styleLine|styleDashed|styleNoTitle|styleNoLabel|styleThick,maskAll)); 

side = Param("side",1,0,1000,1);

dist = 0; 

for( i = 0; i < BarCount; i++ ) 
{ 
 if(i+side== BarCount) PlotText( "\n    " + PriceLevel[ i ], i, YY[ i ]-dist[i], colorLightBlue );
if(i+side== BarCount) PlotText( "\n    " + Pc[ i ], i, pc[ i ]-dist[i], colorLightBlue ); 
} 



_SECTION_END();
_SECTION_BEGIN("Flower");
si=Param("Zoom/In Out",5,-50,100,1);
GraphXSpace=si;  
 
r1 = Param( "ColorFast avg", 5, 2, 200, 1 );
r2 = Param( "ColorSlow avg", 10, 2, 200, 1 );
r3 = Param( "ColorSignal avg", 5, 2, 200, 1 );
 r4 = Param( " avg1", 12, 2, 200, 1 );
r5 = Param( " avg2", 12, 2, 200, 1 );
r6 = Param( " avg3", 12, 2, 200, 1 );
m1=MACD(r1,r2);
s1=Signal(r1,r2,r3);
mycolor=IIf(m1<0 AND m1>s1, ColorRGB(155,155,155),IIf(m1>0 AND m1>s1,ColorRGB(0,125,0),IIf(m1>0 AND m1<s1,ColorRGB(180,30,160),ColorRGB(100,0,0))));
 
Prd1=Param("ATR Period",4,1,20,1);
Prd2=Param("Look Back",7,1,20,1);
green = HHV(LLV(L,Prd1)+ATR(Prd1),Prd2);
red = LLV(HHV(H,Prd1)-ATR(Prd1),Prd2);
flowerClose = EMA((Open+High+Low+Close)/4,3) ;
flowerOpen = EMA((Ref(Open,-1) + Ref(flowerClose,-1))/2,3);
Temp = Max(High, flowerOpen);
flowerHigh = EMA(Max(Temp, flowerClose),3);
Temp = Min(Low,flowerOpen);
flowerLow = EMA(Min(Temp, flowerClose),3);


ad=WMA(flowerHigh,r4);
dr=WMA(flowerlow,r5);
sr=(ad+dr)/2;

flowerOpen = EMA((Ref(Open,-1) + Ref(flowerClose,-1))/2,3);
Temp = Max(High, flowerOpen);
flowerHigh = EMA(Max(Temp, flowerClose),3);
Temp = Min(Low,flowerOpen);
flowerLow = EMA(Min(Temp, flowerClose),3);
barColor=IIf(Close>Open,ColorRGB(0,245,0),ColorRGB(255,0,0));
 

total = 0;
for( i = 0; i < BarCount; i++ ) 
{
 
    if( total[i] >= 5 )
        Color[i] = colorLime;
    else if(  total[i] <= -5 )
        Color[i] = colorRed;
    else
        Color[i] = colorWhite;
} 
 
Candle=ParamList("Candle","Modified Candlestick,Modified Heikin Ashi,Normal Candlestick",1);
if(Candle=="Modified Candlestick")
{
ColorHighliter = myColor;
SetBarFillColor( ColorHighliter );
Plot (Close,"- Modified Candlestick", Color,ParamStyle( "Style", styleCandle|styleLine | styleThick, maskAll)); 
PlotOHLC( IIf(flowerOpen<flowerClose, flowerOpen, flowerClose),flowerHigh,flowerLow,IIf(flowerOpen<flowerClose, flowerClose, flowerOpen), "Modified Heikin Ashi", Color, styleCandle);

}
if(Candle=="Modified Heikin Ashi")
{
CloudResColor=ParamColor("CloudResColor",colorTeal);

ColorHighliter = myColor;
SetBarFillColor( ColorHighliter );
PlotOHLC( IIf(flowerOpen<flowerClose, flowerOpen, flowerClose),flowerHigh,flowerLow,IIf(flowerOpen<flowerClose, flowerClose, flowerOpen), "Modified Heikin Ashi", color, styleLine|styleLine);


}
if(Candle=="Normal Candlestick")
{
//ColorHighliter = myColor;
//SetBarFillColor( ColorHighliter );
PlotOHLC(O,H,L,C,"Normal Candlestick",barcolor,styleCandle|styleLine);
}
sr1=(MA(flowerOpen,3)+MA(flowerClose,3))/2;
 ad=WMA(flowerHigh,12);
dr=WMA(flowerlow,12);
sr=(ad+dr)/2;
_SECTION_END();
Factor=Param("Factor",1.5,1,10,0.1);
Pd=Param("ATR Periods",3,1,100,1);
Up=(ad+dr)/2+(Factor*ATR(Pd));
Dn=(ad+dr)/2-(Factor*ATR(Pd));
iATR=ATR(Pd);
TrendUp=TrendDown=Null;
trend[0]=1;
changeOfTrend=0;
flag=flagh=0;

for (i = 1; i <BarCount-1; i++) {
      TrendUp[i] = Null;
      TrendDown[i] = Null;
     
      trend[i]=1;
   
      
      if (flowerClose[i]>Up[i-1]) {
         trend[i]=1;
         if (trend[i-1] == -1) changeOfTrend = 1;
         
      }
      else if (flowerClose[i]<Dn[i-1]) {
         trend[i]=-1;
         if (trend[i-1] == 1) changeOfTrend = 1;
      }
      else if (trend[i-1]==1) {
         trend[i]=1;
         changeOfTrend = 0;       
      }
      else if (trend[i-1]==-1) {
         trend[i]=-1;
         changeOfTrend = 0;
      }

      if (trend[i]<0 && trend[i-1]>0) {
         flag=1;
      }
      else {
         flag=0;
      }
      
      if (trend[i]>0 && trend[i-1]<0) {
         flagh=1;
      }
      else {
         flagh=0;
      }
      
      if (trend[i]>0 && Dn[i]<Dn[i-1]){
         Dn[i]=Dn[i-1];
		}
      
      if (trend[i]<0 && Up[i]>Up[i-1])
        { Up[i]=Up[i-1];
		}
      
      if (flag==1)
       {  Up[i]=(H[i]+L[i])/2+(Factor*iATR[i]);;
        } 
      if (flagh==1)
        { Dn[i]=(ad[i]+dr[i])/2-(Factor*iATR[i]);;
         }
      if (trend[i]==1) {
         TrendUp[i]=Dn[i];
         if (changeOfTrend == 1) {
            TrendUp[i-1] = TrendDown[i-1];
            changeOfTrend = 0;
         }
      }
      else if (trend[i]==-1) {
         TrendDown[i]=Up[i];
         if (changeOfTrend == 1) {
            TrendDown[i-1] = TrendUp[i-1];
            changeOfTrend = 0;
         }
      }
   } 

Plot(TrendUp,"Trend",colorGreen);
Plot(TrendDown,"Down",colorRed);

Plot(ad-9,"Normal 1",barcolor,styleLine);
Plot(dr-9,"Normal 1",barcolor,styleLine);
Plot(sr-9,"Normal 1",barcolor,styleLine);
PlotOHLC( ad-9, ad-9, dr-9,dr-9, "Band", colorViolet, styleCloud | styleNoLabel|styleNoTitle);
sb=O+C+H+L/4;
   BTP3 = sb+H*1.035;
STP3 = sb+L*0.988; 
//Plot(btp3,"Normal 1",barcolor,styleLine);
//Plot(stp3,"Normal 1",barcolor,styleLine);
sb=O+C+H+L/4;
   BTP3 = sb+H*0.5;
STP3 = sb+L*0.5;
STP4 = sb+C*0.5;
aa=EMA(stp4,4);
//PC=TimeFrameGetPrice( "C", inDaily, -1 )+L; 
//PC1=TimeFrameGetPrice( "C", inDaily, -1 )+H; 
//barColor=IIf(C>EMA(Avg,3) ,colorBrightGreen,IIf(C < EMA(Avg,3),colorRed,colorWhite));
 
//Plot(btp3,"Normal 1",barcolor,styleLine);
//Plot(stp3,"Normal 1",barcolor,styleLine);
//Plot(aa,"Normal 1",barcolor,styleLine);

PlotShapes(IIf(Buy,shapeUpArrow,shapeNone),colorGreen);
PlotShapes(IIf(Buy,shapeHollowUpArrow,shapeNone),colorWhite);
//PlotShapes(IIf(Buy,shapeHollowSmallCircle,shapeNone),colorWhite);
 
PlotShapes(IIf(Sell,shapeDownArrow,shapeNone),colorRed);
PlotShapes(IIf(Sell,shapeHollowDownArrow,shapeNone),colorWhite);
//PlotShapes(IIf(Sell,shapeHollowSmallCircle,shapeNone),colorWhite);
 
PlotShapes(IIf(Short,shapeDownTriangle,shapeNone),colorYellow);
PlotShapes(IIf(Short,shapeHollowDownTriangle,shapeNone),colorWhite);
//PlotShapes(IIf(Short,shapeHollowCircle,shapeNone),colorWhite);
 
PlotShapes(IIf(Cover,shapeUpTriangle,shapeNone),colorLightBlue);
PlotShapes(IIf(Cover,shapeHollowUpTriangle,shapeNone),colorWhite);
//Buy = trend==1;
//Sell=trend==-1;
//Buy = Cross(MA(Avg,4),sr1);
//Sell = Cross(sr1,MA(Avg,4));
Short = Sell;
Cover = Buy;
Buy = ExRem(Buy,Sell);
Sell = ExRem(Sell,Buy);
Short = ExRem(Short, Cover);
Cover = ExRem(Cover, Short);
AlertIf( Buy, "", "BUY @ " + C, 1 );
AlertIf( Sell, "", "SELL @ " + C, 2 );

//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 "+dci,  LastValue(BarIndex())-(numbars/Hts), DCI, colorDarkGrey);
  PlotText(" Buy "+byI ,    LastValue(BarIndex())-(numbars/Hts), BYI, colorLime);
  PlotText(" T1 " +bt1I,    LastValue(BarIndex())-(numbars/Hts), BT1I, colorGreen);
  PlotText(" T2 " +bt2I,    LastValue(BarIndex())-(numbars/Hts), BT2I, colorGreen);
  PlotText(" T3 "+bt3I ,    LastValue(BarIndex())-(numbars/Hts), BT3I, colorGreen);
  PlotText(" Sell " +shI,    LastValue(BarIndex())-(numbars/Hts), SHI, colorRed);
  PlotText(" T1 "+st1I ,    LastValue(BarIndex())-(numbars/Hts), ST1I, colorBrown);
  PlotText(" T2 "+st2I ,    LastValue(BarIndex())-(numbars/Hts), ST2I, colorBrown);
  PlotText(" T3 "+st3I ,    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);

}

_SECTION_BEGIN("Background text");
C11=ParamColor("up panel",colorBlack );
C12=ParamColor("dn panel",colorBlack );
C13=Param("fonts",20,10,30,1 );
C14=Param("left-right",2.1,1.0,5.0,0.1 );
C15=Param("up-down",8,1,30,1 );
Miny = Status("axisminy");
Maxy = Status("axismaxy");
lvb = Status("lastvisiblebar");
fvb = Status("firstvisiblebar");
pxwidth = Status("pxwidth");
pxheight = Status("pxheight");
GfxSetBkMode( 0 ); 
GfxSelectFont("Tahoma", 12, 500, False, False, 0);
GfxSetTextColor(colorCustom12); 
GfxSetTextAlign( 6 );
GfxTextOut( "ADM (Average Day Moment) "+WriteVal(ADM,1.2), Status("pxwidth")/C14, Status("pxheight")/C15*1.5);
GfxSelectFont("Tahoma", 15, 600, False, False, 0);
GfxSetTextColor(colorWhite); 
GfxSetTextAlign( 6 );
GfxTextOut( "LTP "+WriteVal(C,1.2), Status("pxwidth")/C14, Status("pxheight")/C15);
GfxSelectFont("Tahoma", 12, 400, False, False, 0);
GfxSetTextColor(colorBrightGreen);
GfxTextOut(""+Bdc+"", Status("pxwidth")/C14, Status("pxheight")/C15*2.0);
GfxSelectFont("Tahoma", 12, 400, False, False, 0);
GfxSetTextColor(colorRed);
GfxTextOut(""+Sdc+"", Status("pxwidth")/C14, Status("pxheight")/C15*2.0);
GfxSelectFont("Tahoma", 12, 400, False, False, 0);
GfxSetTextColor(colorYellow);
GfxTextOut(""+Ndc+"", Status("pxwidth")/C14, Status("pxheight")/C15*2.0);
GfxSelectFont("Tahoma", 12, 400, False, False, 0);
GfxSetTextColor(colorGreen);
//GfxTextOut(""+BTdc+"", Status("pxwidth")/C14, Status("pxheight")/C15*2.5);
GfxSelectFont("Tahoma", 12, 400, False, False, 0);
GfxSetTextColor(colorGreen);
//GfxTextOut(""+STdc+"", Status("pxwidth")/C14, Status("pxheight")/C15*2.5);


pricechange=(C-Ref(C,-1))*100/Ref(C,-1);
changeponit=C-Ref(C,-1);
Vlp=Param("Volume lookback period",15,10,300,10);
Vrg=MA(V,Vlp);
St = StDev(Vrg,Vlp); 
Vp3 = Vrg + 3*st; 
Vp2 = Vrg + 2*st;;
Vp1 = Vrg + 1*st;;
Vn1 = Vrg -1*st; 
Vn2 = Vrg -2*st; 

x=Param("xposn",1,0,1000,1);
y=Param("yposn",1,0,1000,1);

GfxGradientRect( 1, 1, 1400, 40, colorGrey50, colorDarkGrey);
GfxSetBkMode(0);
GfxSelectFont( "Georgia", 18, 800, False );
GfxSetTextColor( colorWhite );
GfxTextOut( "ULTIMATE VOLATILITY EXPERT ", x+600, y+10 );
GfxSelectFont( "Tahoma", 16, 800, False );
GfxSetTextColor( colorGold );
GfxTextOut( Name(), x+100, y+10 );
GfxSelectFont( "Century Gothic", 15, 100, False );
GfxSetTextColor( colorWhite );
GfxTextOut( Date(), x+1000, y+10 );
GfxSelectFont( "Comic Sans MS", 15, 500, False );
GfxSetTextColor( colorYellow );
GfxTextOut( Interval(2), x+275, y+10 );
//------------------------------------------------------------ H, L, O, C----------------------
GfxGradientRect( 1, 40, 1400, 55, colorGrey50, colorDarkGrey );
GfxSetBkMode(0);
GfxSelectFont( "Areal", 9, 200, False );
GfxSetTextColor( colorWhite );
GfxTextOut( "High:"+WriteVal(H,1.2), x+100, y+40 );
GfxSelectFont( "Areal", 9, 200, False );
GfxSetTextColor( colorWhite );
GfxTextOut( "Low:"+WriteVal(L,1.2), x+200, y+40 );
GfxSelectFont( "Areal", 9, 200, False );
GfxSetTextColor( colorWhite );
GfxTextOut( "Open:"+WriteVal(O,1.2), x+300, y+40 );
GfxSelectFont( "Areal", 9, 200, False );
GfxSetTextColor( colorWhite );
GfxTextOut( "Close:"+WriteVal(C,1.2), x+400, y+40 );
GfxSelectFont( "Script MT Bold", 12, 100, False );
GfxSetTextColor( colorWhite );
GfxTextOut( "Created By Murali Krishna ", x+1000, y+39 );
//-----------------------------------------------------------Valume-------------------------------
GfxSelectFont( "Tahoma", 9, 200, False );
GfxSetTextColor( colorWhite );
GfxTextOut( "Volume="+WriteVal(V,1.2), x+500, y+40 );
GfxSelectFont( "Tahoma", 9, 200, False );
GfxSetTextColor( colorLime );
GfxTextOut( WriteIf(V>Vp2,"Very High",""), x+600, y+40 );
GfxSelectFont( "Tahoma", 9, 200, False );
GfxSetTextColor( colorLime );
GfxTextOut( WriteIf(V>Vp1," High",""), x+600, y+40 );
GfxSelectFont( "Tahoma", 9, 200, False );
GfxSetTextColor( colorLime );
GfxTextOut( WriteIf(V>Vrg,"Above Average",""), x+600, y+40 );
GfxSelectFont( "Tahoma", 9, 200, False );
GfxSetTextColor( colorRed );
GfxTextOut( WriteIf(V<Vrg AND V>Vn1,"Less than Average",""), x+600, y+40 );
GfxSelectFont( "Tahoma", 9, 200, False );
GfxSetTextColor( colorRed );
GfxTextOut( WriteIf(V<Vn1,"Low",""), x+600, y+40 );
//----------------------------------------------------------------Leveles----------------------------

GfxGradientRect( 1, 185, 90, 200, colorGrey50,colorDarkGrey );
GfxSetBkMode(0);
GfxSelectFont( "Tahoma", 10, 300, False );
GfxSetTextColor( colorOrange );
GfxTextOut( "Levels ", x+45, y+185 );

GfxGradientRect( 1, 200, 90, 215, colorDarkGrey,colorDarkRed );
GfxSetBkMode(0);
GfxSelectFont( "Tahoma", 10, 300, False );
GfxSetTextColor( colorWhite );
GfxTextOut( WriteIf (L4MonthH>C, " 5MH "+WriteVal(L4MonthH,1.2)+"  ",""), x+50, y+200 );

GfxGradientRect( 1, 215, 90, 230, colorDarkGrey, colorDarkRed );
GfxSetBkMode(0);
GfxSelectFont( "Tahoma", 10, 300, False );
GfxSetTextColor( colorWhite );
GfxTextOut( WriteIf (L3MonthH>C, " 4MH "+WriteVal(L3MonthH,1.2)+"  ",""), x+50, y+215 );

GfxGradientRect( 1, 230, 90, 245, colorDarkGrey, colorDarkRed );
GfxSetBkMode(0);
GfxSelectFont( "Tahoma", 10, 300, False );
GfxSetTextColor( colorWhite );
GfxTextOut( WriteIf (L2MonthH>C, " 3MH "+WriteVal(L2MonthH,1.2)+"  ",""), x+50, y+230 );

GfxGradientRect( 1, 245, 90, 260, colorDarkGrey, colorDarkRed );
GfxSetBkMode(0);
GfxSelectFont( "Tahoma", 10, 300, False );
GfxSetTextColor( colorWhite );
GfxTextOut( WriteIf (L1MonthH>C, " 2MH "+WriteVal(L1MonthH,1.2)+"  ",""), x+50, y+245 );

GfxGradientRect( 1, 260, 90, 275, colorDarkGrey, colorDarkRed );
GfxSetBkMode(0);
GfxSelectFont( "Tahoma", 10, 300, False );
GfxSetTextColor( colorWhite );
GfxTextOut( WriteIf (LMonthH>C, " LMH "+WriteVal(LMonthH,1.2)+"  ",""), x+50, y+260 );

GfxGradientRect( 1, 275, 90, 290, colorDarkGrey, colorDarkRed );
GfxSetBkMode(0);
GfxSelectFont( "Tahoma", 10, 300, False );
GfxSetTextColor( colorWhite );
GfxTextOut( WriteIf (MonthH>C, " CMH "+WriteVal(MonthH,1.2)+"  ",""), x+50, y+275 );

GfxGradientRect( 1, 290, 90, 305, colorDarkGrey, colorDarkRed );
GfxSetBkMode(0);
GfxSelectFont( "Tahoma", 10, 300, False );
GfxSetTextColor( colorWhite );
GfxTextOut( WriteIf (L3WeekH>C, " 4WH "+WriteVal(L3WeekH,1.2)+"  ",""),x+50, y+290 );

GfxGradientRect( 1, 305, 90, 320, colorDarkGrey, colorDarkRed );
GfxSetBkMode(0);
GfxSelectFont( "Tahoma", 10, 300, False );
GfxSetTextColor( colorWhite );
GfxTextOut( WriteIf (L2WeekH>C, " 3WH "+WriteVal(L2WeekH,1.2)+"  ",""), x+50, y+305 );

GfxGradientRect( 1, 320, 90, 335, colorDarkGrey, colorDarkRed );
GfxSetBkMode(0);
GfxSelectFont( "Tahoma", 10, 300, False );
GfxSetTextColor( colorWhite );
GfxTextOut( WriteIf (L1WeekH>C, " 2WH "+WriteVal(L1WeekH,1.2)+"  ",""), x+50, y+320 );

GfxGradientRect( 1, 335, 90, 350, colorDarkGrey, colorDarkRed );
GfxSetBkMode(0);
GfxSelectFont( "Tahoma", 10, 300, False );
GfxSetTextColor( colorWhite );
GfxTextOut( WriteIf (LWeekH>C, " 1WH "+WriteVal(LWeekH,1.2)+"  ","") , x+50, y+335 );

GfxGradientRect( 1, 350, 90, 365, colorDarkGrey, colorDarkRed );
GfxSetBkMode(0);
GfxSelectFont( "Tahoma", 10, 300, False );
GfxSetTextColor( colorWhite );
GfxTextOut( WriteIf (WeekH>C, " CWH "+WriteVal(WeekH,1.2)+"  ",""), x+50, y+350 );

GfxGradientRect( 1, 365, 90, 380, colorDarkGrey, colorDarkRed );
GfxSetBkMode(0);
GfxSelectFont( "Tahoma", 10, 300, False );
GfxSetTextColor( colorWhite );
GfxTextOut( WriteIf (DayH>C, " PDH "+WriteVal(DayH,1.2)+"  ",""), x+50, y+365 );

GfxGradientRect( 1, 380, 90, 395, colorLightBlue , colorBlue );
GfxSetBkMode(0);
GfxSelectFont( "Tahoma", 10, 300, False );
GfxSetTextColor( colorCustom12);
GfxTextOut( WriteIf (C, " LTP "+WriteVal(C,1.2)+"  ",""), x+50, y+380 );

GfxGradientRect( 1, 395, 90, 410, colorDarkGrey,colorDarkGreen);
GfxSetBkMode(0);
GfxSelectFont( "Tahoma", 10, 300, False );
GfxSetTextColor( colorWhite );
GfxTextOut( WriteIf (DayL<C, " PDL "+WriteVal(DayL,1.2)+"  ",""), x+50, y+395 );

GfxGradientRect( 1, 410, 90, 425, colorDarkGrey, colorDarkGreen );
GfxSetBkMode(0);
GfxSelectFont( "Tahoma", 10, 300, False );
GfxSetTextColor( colorWhite );
GfxTextOut( WriteIf (WeekL<C, " CWL "+WriteVal(WeekL,1.2)+"  ",""), x+50, y+410 );

GfxGradientRect( 1, 425, 90, 440, colorDarkGrey, colorDarkGreen );
GfxSetBkMode(0);
GfxSelectFont( "Tahoma", 10, 300, False );
GfxSetTextColor( colorWhite );
GfxTextOut( WriteIf (LWeekL<C, " 1WL "+WriteVal(LWeekL,1.2)+"  ",""), x+50, y+425 );

GfxGradientRect( 1, 440, 90, 455, colorDarkGrey, colorDarkGreen );
GfxSetBkMode(0);
GfxSelectFont( "Tahoma", 9, 300, False );
GfxSetTextColor( colorWhite );
GfxTextOut( WriteIf (L1WeekL<C, " 2WL "+WriteVal(L1WeekL,1.2)+"  ",""), x+50, y+440);

GfxGradientRect( 1, 455, 90, 470, colorDarkGrey, colorDarkGreen );
GfxSetBkMode(0);
GfxSelectFont( "Tahoma", 10, 300, False );
GfxSetTextColor( colorWhite );
GfxTextOut( WriteIf (L2WeekL<C, " 3WL "+WriteVal(L2WeekL,1.2)+"  ",""), x+50, y+455);

GfxGradientRect( 1, 470, 90, 485, colorDarkGrey, colorDarkGreen );
GfxSetBkMode(0);
GfxSelectFont( "Tahoma", 10, 300, False );
GfxSetTextColor( colorWhite );
GfxTextOut( WriteIf (L3WeekL<C, " 4WL "+WriteVal(L3WeekL,1.2)+"  ",""), x+50, y+470);

GfxGradientRect( 1, 485, 90, 500, colorDarkGrey, colorDarkGreen );
GfxSetBkMode(0);
GfxSelectFont( "Tahoma", 10, 300, False );
GfxSetTextColor( colorWhite );
GfxTextOut( WriteIf (MonthL<C, " CML "+WriteVal(MonthL,1.2)+"  ",""), x+50, y+485);

GfxGradientRect( 1, 500, 90, 515, colorDarkGrey, colorDarkGreen );
GfxSetBkMode(0);
GfxSelectFont( "Tahoma", 10, 300, False );
GfxSetTextColor( colorWhite );
GfxTextOut( WriteIf (LMonthL<C, " 1ML "+WriteVal(LMonthL,1.2)+"  ",""), x+50, y+500);

GfxGradientRect( 1, 515, 90, 530, colorDarkGrey, colorDarkGreen );
GfxSetBkMode(0);
GfxSelectFont( "Tahoma", 10, 300, False );
GfxSetTextColor( colorWhite );
GfxTextOut( WriteIf (L1MonthL<C, " 2ML "+WriteVal(L1MonthL,1.2)+"  ",""), x+50, y+515);

GfxGradientRect( 1, 530, 90, 545, colorDarkGrey, colorDarkGreen );
GfxSetBkMode(0);
GfxSelectFont( "Tahoma", 10, 300, False );
GfxSetTextColor( colorWhite );
GfxTextOut( WriteIf (L2MonthL<C, " 3ML "+WriteVal(L2MonthL,1.2)+"  ",""), x+50, y+530);

GfxGradientRect( 1, 545, 90, 560, colorDarkGrey, colorDarkGreen );
GfxSetBkMode(0);
GfxSelectFont( "Tahoma", 10, 300, False );
GfxSetTextColor( colorWhite );
GfxTextOut( WriteIf (L3MonthL<C, " 4ML "+WriteVal(L3MonthL,1.2)+"  ",""), x+50, y+545);

GfxGradientRect( 1, 560, 90, 575, colorDarkGrey, colorDarkGreen );
GfxSetBkMode(0);
GfxSelectFont( "Tahoma", 10, 300, False );
GfxSetTextColor( colorWhite );
GfxTextOut( WriteIf (L4MonthL<C, " 5ML "+WriteVal(L4MonthL,1.2)+"  ",""), x+50, y+560);

no=Param( "Swing", 8, 1, 55 );
tsl_col=ParamColor( "Color", colorLightGrey );
res=HHV(H,no);
sup=LLV(L,no);
avd=IIf(C>Ref(res,-1),1,IIf(C<Ref(sup,-1),-1,0));
avn=ValueWhen(avd!=0,avd,1);
tsl=IIf(avn==1,sup,res);

no =  Optimize("TSL",Param("A (Change To Optimise)",10, 1, 55 ,1),1, 55 ,1);

tsl_col=ParamColor( "Color", colorLightGrey );
res=HHV(H,no);
sup=LLV(L,no);
avd=IIf(C>Ref(res,-1),1,IIf(C<Ref(sup,-1),-1,0));
avn=ValueWhen(avd!=0,avd,1);
dtsl=IIf(avn==1,sup,res);
SellPrice=ValueWhen(Short,C,1);
BuyPrice=ValueWhen(Buy,C,1);
Long=Flip(Buy,Sell);
Shrt=Flip(Short,Cover);
Relax = NOT Long AND NOT Buy AND NOT shrt AND NOT Sell AND NOT Sell AND NOT Cover;
SellSL=ValueWhen(Short,DTSL,1);
BuySL=ValueWhen(Buy,DTSL,1);
BuyDifference= BuyPrice - BuySL;
SellDifference = SellSL - SellPrice;

tar1 = IIf(Buy OR Long AND NOT Relax AND NOT Sell AND NOT Cover, (BuyPrice + BuyDifference), (SellPrice - SellDifference));
tar2 = IIf(Buy OR Long AND NOT Relax AND NOT Sell AND NOT Cover, (BuyPrice + (2*BuyDifference)), (SellPrice - (2*SellDifference)));
tar3 = IIf(Buy OR Long AND NOT Relax AND NOT Sell AND NOT Cover, (BuyPrice + (4*BuyDifference)), (SellPrice - (4*SellDifference)));


CloseAtEnd = ParamToggle("Close Positions EOD", "No|Yes");
stopreverse =ParamToggle("Switch To Stop And Reverse","No|Yes",0);
Trend = ATR(21) < StDev (C,21);
Range = ATR(21) > StDev (C,21);
no=10;
C13=20;
C14=2.1;
C15=12;

tsl_col=ParamColor( "Color", colorLightGrey );
res=HHV(H,no);
sup=LLV(L,no);
avd=IIf(C>Ref(res,-1),1,IIf(C<Ref(sup,-1),-1,0));
avn=ValueWhen(avd!=0,avd,1);
dtsl=IIf(avd==1,sup,res);

SellPrice=ValueWhen(Short,C,1);
BuyPrice=ValueWhen(Buy,C,1);
Long=Flip(Buy,Sell);
Shrt=Flip(Short,Cover);
Relax = NOT Long AND NOT Buy AND NOT shrt AND NOT Sell AND NOT Sell AND NOT Cover;
SellSL=ValueWhen(Short,DTSL,1);
BuySL=ValueWhen(Buy,DTSL,1);
BuyDifference= BuyPrice - BuySL;
SellDifference = SellSL - SellPrice;

//tar1 = IIf(Buy OR Long AND NOT Relax AND NOT Sell AND NOT Cover, (BuyPrice + BuyDifference), (SellPrice - SellDifference));
//tar2 = IIf(Buy OR Long AND NOT Relax AND NOT Sell AND NOT Cover, (BuyPrice + (2*BuyDifference)), (SellPrice - (2*SellDifference)));
//tar3 = IIf(Buy OR Long AND NOT Relax AND NOT Sell AND NOT Cover, (BuyPrice + (4*BuyDifference)), (SellPrice - (4*SellDifference)));
buyach1 = IIf((Buy OR Long AND NOT Relax AND NOT Cover AND NOT Short AND NOT Shrt), H > tar1, 0);
buyach2 = IIf((Buy OR Long AND NOT Relax AND NOT Cover AND NOT Short AND NOT Shrt), H > tar2 , 0);
buyach3 = IIf((Buy OR Long AND NOT Relax AND NOT Cover AND NOT Short AND NOT Shrt), H > tar3, 0);
 
sellach1 = IIf((Short OR Shrt AND NOT Relax AND NOT Sell AND NOT Buy AND NOT Long), L < tar1 , 0);
sellach2 = IIf((Short OR Shrt AND NOT Relax AND NOT Sell AND NOT Buy AND NOT Long), L < tar2, 0);
sellach3 = IIf((Short OR Shrt AND NOT Relax AND NOT Sell AND NOT Buy AND NOT Long), L < tar3, 0);


// User-defined parameter for EMA periods

EMA_Type		= Param("EMA-1, TEMA-2, JMA-3", 2, 1, 3, 1);
EMA_prds 		= Param("EMA_periods", 7, 1, 30, 1);
Std_MACD		= Param("Standard MACD? No-0, Yes-1", 1, 0, 1, 1);
Plot_fashion	= Param("Bar+Arrows-1, Impulse  Bars-2", 2, 1, 2, 1);


// Allow user to define Weekly and Monthly Ribbon Location and Height
WR_P1 = Param("Weekly Ribbon Location", -10.5, -1000, 1000, 0.1);
WR_P2 = Param("Weekly Ribbon Height", 366.5, -0.001, 500, 0.1);

MR_P1 = Param("Monthly Ribbon Location", 5.2, -1000, 1000, 0.1);
MR_P2 = Param("Monthly Ribbon Height", 199, -0.001, 500, 0.1);


// Compute EMA and MACD Histogram
if(EMA_Type == 1)
{
	DayEMA	= EMA(Close, EMA_prds);
}
if (EMA_Type == 2)
{
	DayEMA	= TEMA(Close, EMA_prds);
}

if(EMA_Type == 3)
{
	// Line below to be used with Jurik JMA
	// DayEMA = JurikJMA(C, EMA_Prds);
}

Histogram	= MACD() - Signal();

// Determine if we have an Impulse UP, DOWN or None
Impulse_Up		=	DayEMA > Ref(DayEMA, -1) AND Histogram > Ref(Histogram, -1);
Impulse_Down	=	DayEMA < Ref(DayEMA, -1) AND Histogram < Ref(Histogram, -1);   
Impulse_None		=	(NOT Impulse_UP) AND (NOT Impulse_Down);

// Compute Weekly MACD and determine whether rising or falling
// Note: uses "non-standard"  parameters!
TimeFrameSet(inWeekly);

if (Std_MACD == 0)
{
MACD_val		=	MACD(5, 8);
Signal_val		=	Signal(5, 8, 5);
}
else
{
MACD_val		=	MACD(12, 26);
Signal_val		=	Signal(12, 26, 9);
}

Hist_in_w		=	MACD_val - Signal_val;

wh_rising = Hist_in_w > Ref(Hist_in_w, -1);
wh_falling = Hist_in_w < Ref(Hist_in_w, -1);

TimeFrameRestore();

// Now get Monthly MACD Histogram....
TimeFrameSet(inMonthly);
MACD_val		=	MACD(5, 8);
Signal_val		=	Signal(5, 8, 5);
Hist_in_m		=	MACD_val - Signal_val;

mh_rising = Hist_in_m > Ref(Hist_in_m, -1);
mh_falling = Hist_in_m < Ref(Hist_in_m, -1);

TimeFrameRestore();

wh_rising 		= TimeFrameExpand( wh_rising, inWeekly, expandLast ); 
wh_falling 		= TimeFrameExpand( wh_falling, inWeekly, expandLast); 
mh_rising 	= TimeFrameExpand(mh_rising, inMonthly, expandLast);
mh_falling 	= TimeFrameExpand(mh_falling, inMonthly, expandLast);

kol 	= IIf( wh_rising, colorGreen,  IIf(wh_falling, colorRed,
colorLightGrey));
mkol 	= IIf( mh_rising, colorBlue,  IIf(mh_falling, colorYellow,
colorLightGrey));

// Plot them all!
if (Plot_fashion == 1)
{
	Plot(Close, "Close", colorTeal, styleBar);
	PlotShapes(shapeUpArrow * Impulse_Up, colorBlue, 0, Low, -12);
	PlotShapes(shapeDownArrow * Impulse_Down, colorRed, 0, High, -12);
	PlotShapes(shapeSmallCircle * Impulse_None, colorWhite, 0, High, 5);
}
else
{
	bar_kol	=	IIf(impulse_UP, colorBlue, IIf(impulse_Down, colorRed,
colorWhite));
	//Plot(C, "Close", bar_kol, styleBar);
}

Plot(10, "ribbon", kol, styleOwnScale|styleArea|styleNoLabel, WR_P1, WR_P2);//Weekly trend

Plot(10, "ribbon", mkol, styleOwnScale|styleArea|styleNoLabel, MR_P1,
MR_P2);	// Monthly Trend

// Explorer Section
// Determine if Impulse status is bullish, neutral or bearish.  Display as Text Column.

Impulse_State		=	WriteIf(Impulse_Up, "Bul", WriteIf(Impulse_Down,
"Bear", "Neut"));

// Set the background color for Impulse Status Column
Impulse_Col		=	IIf(Impulse_Up, colorGreen, IIf(Impulse_Down, colorRed,
colorLightGrey));

// Determine Weekly Trend. Display as Text Column
Weekly_Trend		=	WriteIf(wh_rising, "Rising", WriteIf(wh_falling, "Falling",
"Flat!"));
Weekly_Col		=	IIf(wh_rising, colorGreen, IIf(wh_falling, colorRed,
colorLightGrey));

// Determine Monthly Trend. Display as Text Column
Monthly_Trend	=	WriteIf(mh_rising, "Rising", WriteIf(mh_falling, "Falling",
"Flat!"));
Monthly_Col		=	IIf(mh_rising, colorGreen, IIf(mh_falling, colorRed,
colorLightGrey));

// Determine how many bars has the current state existed
bars_in_bull	=	Min(BarsSince(impulse_none), BarsSince(impulse_down));
bars_in_bear	=	Min(BarsSince(impulse_up), BarsSince(impulse_none));
bars_in_neut	=	Min(BarsSince(impulse_down), BarsSince(impulse_up));

// Set a single variable to show number of bars in current state depending upon

// actual Impulse Status - Bullish, Bearish or Neutral
bars_in_state	=	IIf(Impulse_Up,bars_in_bull, IIf(Impulse_down, bars_in_bear,bars_in_neut));
//AddColumn(Close,"Close",1.2);
// Columns for display in Explorer 
//AddTextColumn(Impulse_State, "Status", 1, colorWhite, Impulse_Col);
//AddColumn(bars_in_state, "Bars", 1, colorWhite, Impulse_col);
//Action = WriteIf(Buy, "BUY", WriteIf(Sell, "SELL", "   "));
//i=0;
//bars_in_statee	=	IIf(Buy, BarCount[i], IIf(Sell, BarCount[i],bars_in_neut));
//bars=BarsSince(IIf(Buy+BarCount+1),OR( Sell-BarCount+1));

//plus= Param("plus", 0.8,0,52,1);
//Minus = Param("Minus", -0.8,-15,-0,-20);
prch = (C- TimeFrameGetPrice( "C", inDaily, -1 ))/ TimeFrameGetPrice( "C", inDaily, -1 )*100 ;
prcha= (C-Ref(C,-6))/Ref(C,-6)*100;
prche= (C-Ref(C,-2))/Ref(C,-1)*100;
prchjk= (C-Ref(C,-2))+Ref(C,-1)*10/1;
//prchjka=(prchjk)/10;

prchjka = (C+ TimeFrameGetPrice( "C", inDaily, -1 ))- Close;

//Date()
//prchjk= (Date()-Ref(Date(),-1))+Ref(Date(),-1);
prch5=(prche-prch);
prch6= (C-Ref(C,-5))/Ref(C,-5)*100;
prch7= (C-Ref(C,-29))/Ref(C,-29)*100;
prch8= (C-Ref(C,-87))/Ref(C,-87)*100;
prch9= (C-Ref(C,-150))/Ref(C,-150)*100;
prch10= (C-Ref(C,-254))/Ref(C,-252)*100;
prch11= (C-Ref(C,-490))/Ref(C,-490)*100;
prch12= (C-Ref(C,-735))/Ref(C,-735)*100;
prch13= (C-Ref(C,-1283))/Ref(C,-1283)*100;


col=IIf ((Volume > 1.25 * EMA( Volume, 34 )),colorRed,colorLime);
//Col=IIf(( Buy, 66 , 83 ),  formatChar, colorDefault, IIf( plus , colorGreen, colorRed ));

//Filter = prch6 <3 OR prch6  <-3 ;
if(prexplore==0)
{Filter = prch > plus OR prch  < Minus  ;
AddColumn(prchjka ,"prvClose",colorDefault,Col,colorPlum);
AddColumn(Close,"Close",1.2,colorDefault, Col);
AddColumn(prch5,"prviday", 1.2,colorDefault, Col);	
AddColumn(prch,"daily", 1.2,colorDefault, Col); 
//Filter=0;
AddColumn( IIf( Buy, 66 , 83 ), "Signal", formatChar, colorDefault, IIf( Buy , colorGreen, colorRed ) );

AddColumn(Volume,"Volume",1.0, colorDefault, IIf ((Volume > 1.25 * EMA( Volume, 34 )),colorCustom12,colorLime));
AddColumn(prch6,"weekly", 1.2,colorDefault, Col);
AddColumn(prch7,"monthly", 1.2,colorDefault, Col);
AddColumn(prch8,"qutrly", 1.2,colorDefault, Col);
AddColumn(prch9,"halfyly", 1.2,colorDefault, Col);
AddColumn(prch10,"yearly", 1.2,colorDefault, Col); 
AddColumn(prch11,"twoyrly", 1.2,colorDefault, Col); 
AddColumn(prch12,"thirdyrly", 1.2,colorDefault, Col); 
AddColumn(prch13,"fiveyrly", 1.2,colorDefault, Col); 

}
else
{

//Filter =  Sell>-2 AND i<-3 OR Buy>2 AND i<3 ;
AddColumn(ROC(V,1),"RVol ",1.2, IIf(ROC(V,1) > 0,colorDefault,colorYellow),Impulse_col);

AddColumn(bars_in_state ,"Bars", 1, colorWhite, Impulse_col);
prchjka = (C+ TimeFrameGetPrice( "C", inDaily, -1 ))- Close;

//AddColumn(C + C +1 ,"Close",1.2,colorDefault, Col)/2;
AddColumn(prchjka ,"prvClose",colorDefault,colorWhite, colorBlue);
//AddTextColumn(Weekly_Trend, "W Trend", 1, colorWhite, Weekly_Col);
//AddTextColumn(Monthly_Trend, "M Trend", 1, colorWhite, Monthly_Col);

//Filter = 1;

_SECTION_END();
//Settings for exploration

H1 = SelectedValue( TimeFrameGetPrice( "H", inDaily, -1 ) );
L1 = SelectedValue( TimeFrameGetPrice( "L", inDaily, -1 ) );
C1 = SelectedValue( TimeFrameGetPrice( "C", inDaily, -1 ) );
H2 = SelectedValue( TimeFrameGetPrice( "H", inDaily, 0 ) );
L2 = SelectedValue( TimeFrameGetPrice( "L", inDaily, 0 ) );
O1 = SelectedValue( TimeFrameGetPrice( "open", inDaily, 0 ) );
F4 = 0;
D1 = ( H1 - L1 );
D2 = ( H2 - L2 );
F1 = D1 * 0.433;
F2 = D1 * 0.766;
F3 = D1 * 1.35;
if ( D2 <= F1 )
    F4 = F1;
else
    if ( D2 <= F2  )
        F4 = F2;
    else
        F4 = F3;

S_P = ( O1 - F4 );

B_P = ( O1 + F4 );

BP = ( L2 + F4 );

BPTGT = ( BP + ( BP * .0065 ) );//.0015 brokerage

BPSTPLS = ( BP - ( BP * .0085 ) );

SP = ( H2 - F4 );

SPTGT = ( SP - ( SP * .0065 ) );

SPSTPLS = ( SP + ( SP * .0085 ) );


p = ( H1 + L1 + C1 ) / 3;

s1 = ( H1 );

r1 = ( L1 );

r2 = SelectedValue( L2 );

s2 = SelectedValue( H2 );

//CONDITION

if (ParamToggle("Tooltip shows", "All Values|Only Prices"))
{
  ToolTip = StrFormat("Open: %g\nHigh:  %g\nLow:   %g\nClose:  %g (%.1f%%) \nVolume: " + NumToStr(V, 1), O, H, L, C, SelectedValue(ROC(C, 1)));
}

//space = Param("Space on Chart", 20,  - 15, 50, 1);
//GraphXSpace = space;
//SetChartBkColor(ParamColor("Background Color", colorBlack));

// ================= Rasheed's original code (with Lookback and Shift default set to his specs) =================

H0 = H;
L0 = L;
C0 = C;
O0 = O;

Lookback = Param("LookBack", 10, 10, 50, 1); // Default for interday commodity currency trading
shift = Param("Shift", 5, 1, 50, 1); // ?
x0 = LastValue(Cum(1));
x1 = x0 - shift;
H = Ref(H,  - shift + 1);
L = Ref(L,  - shift + 1);
H1 = LastValue(Ref(HHV(H, Lookback),  - 1));
L1 = LastValue(Ref(LLV(L, Lookback),  - 1));

//Plot(H1, "H1", colorYellow);
//Plot(L1, "L1", colorYellow);

H = H0;
L = L0;
C = C0;
O = O0;

up = Cross(H, H1)AND Cum(1) > x1;
dn = Cross(L1, L)AND Cum(1) > x1;

//Plot(C, "Close", IIf(Cum(1) > x1 - Lookback AND Cum(1) <= x1, colorBlue, IIf(Up, colorBrightGreen, IIf(Dn, colorRed, IIf(C > O, colorGreen, colorRed)))), 64);
//PlotShapes(shapeDownArrow *(Cum(1) == x1 + 1), colorBlue);

// ======================= Exploration and Signal Code =================
TRIGGER = ParamToggle("Trigger ", "CLOSE|HIGH OR LOW");


XH1 = Cross(C, H1);
XL1 = Cross(L1, C);
XH2 = Cross(H, H1);
XL2 = Cross(L1, L);

if (TRIGGER == 0)
{
  //Buy = XH1;
  //Sell = XL1;
}

else
{
  //Buy = XH2;
  //Sell = XL2;
}


//TradeDisplay = ParamToggle("Remove Extra Trades?", "No|Yes");

//if(TradeDisplay != 0){
	//Buy = ExRem(Buy, Sell);
  	//Sell = ExRem(Sell, Buy); // THIS WILL REMOVE EXESS SIGNALS ON A CHART OR IN AN EXPLORATION 
//}

//Filter =  Buy >2 <3 == BarCount+1 OR Sell >-3<-3 == BarCount+1;
Action = WriteIf(Buy, "BUY", WriteIf(Sell, "SELL", "   "));

//AddTextColumn(IndustryID(1), "Industry Sector  ", 30.0, colorBlue, colorYellow);
AddColumn(C, "Entry ", 2.2, colorWhite, colorBlue);
AddTextColumn(Action, "Action", 8.0, IIf(xh1, colorDarkGreen, colorDarkRed), colorYellow);
AddColumn(IIf(XH1, H1, L1), "BREAKOUT LEVEL", 3.2, colorYellow, IIf(XH1, colorDarkGreen, colorDarkRed));

// -----------------------------------------------------------------------------------  Arrow signals --- FOR TRADES  ----------------------------------------------------------
//PlotShapes(Buy *shapeUpArrow, colorBrightGreen, 0, L /* ENTRY_TRAILARRAY */,  - 30);
//PlotShapes(Sell *shapeDownArrow, colorLightYellow, 0, H,  - 30);
_SECTION_END();


_SECTION_BEGIN("Volume At Price");
PlotVAPOverlay(Param("Lines", 1000, 100, 1000, 10), Param("Width", 15, 1, 100, 1), ParamColor("Color", colorBlue), ParamToggle("Side", "Left|Right", 1) | 4 *ParamToggle("Z-order", "On top|Behind", 1));

_SECTION_END();
//Filter =  Buy OR Sell;

//AddColumn( IIf( Buy, 66, 1 ), "Buy", formatChar, 1, bkcolor = IIf( Buy, 43, 33 ) );

//AddColumn( IIf( Sell, 83, 1 ), "Sell", formatChar, 1, bkcolor = IIf( Sell, 25, 32 ) );



//AddColumn( C, "CMP", 1.2, colorDefault, colorLightBlue );

//AddColumn( BP, "SELL PRICE", 1.2, colorDefault, colorGreen );

//AddColumn( BPTGT, "TGT PRICE", 1.2, colorDefault, colorBrown );

//AddColumn( BPSTPLS, "STPLS BUY", 1.2, colorDefault, colorRed );

AddColumn( p, "PIVOT", 1.2, colorDefault, colorYellow );

//AddColumn( SPSTPLS, "STPLS SELL", 1.2, colorDefault, colorRed );

//AddColumn( SP, "SELL PRICE", 1.2, colorDefault, colorGreen );

//AddColumn( SPTGT, "TGT PRICE", 1.2, colorDefault, colorBrown );





//Settings for exploration

Filter=Buy OR Sell AND Cover OR Short;
AddColumn( IIf( Buy, 66 , 83 ), "Signal", formatChar, colorDefault, IIf( Buy , colorGreen, colorRed ) );

//AddColumn(Close,"Entry Price",1.4, colorDefault, IIf( Buy , colorGreen, colorRed ));
//AddColumn(dtsl,"Stop Loss",1.4, colorDefault, IIf( Buy , colorGreen, colorRed ));
//AddColumn(tar1,"Target 1",1.4, colorDefault, IIf( Buy , colorGreen, colorRed ));
//AddColumn(tar2,"Target 2",1.4, colorDefault, IIf( Buy , colorGreen, colorRed ));
//AddColumn(tar3,"Target 3",1.4, colorDefault, IIf( Buy , colorGreen, colorRed ));
AddColumn(Volume,"Volume",1.0, colorDefault, IIf ((Volume > 1.25 * EMA( Volume, 34 )),colorBlue,colorYellow));
AddColumn( H1, "PRE-HIGH" );

AddColumn( L1, "PRE-LOW" );

AddColumn( D1, "PRE-DIFF" );

AddColumn( F1, "0.433" );

AddColumn( F2, "0.766" );

AddColumn( F3, "1.35" );

AddColumn( H2, "D-HIGH" );

AddColumn( L2, "D-LOW" );

AddColumn( D2, "D-DIFF" );

AddColumn( F4, "SELECT FACT" );

AlertIf( Buy , "SOUND C:\\Windows\\Media\\chimes.wav", "Audio alert", 2 ); 
AlertIf( Sell , "SOUND C:\\Windows\\Media\\alert.wav", "Audio alert", 2 );

}