// Downloaded From https://www.WiseStockTrader.com

_SECTION_BEGIN("AUTO LIVE TRADE");
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 ) ) ));

if( Status("action") == actionIndicator ) 
(
Title = EncodeColor(colorGold)+ "AUTO TRADE" + EncodeColor(colorRose)+" (" +  Name() + ") " + EncodeColor(colorGold)+ Interval(2) + 
 "  " + Date() +" " +" Open "+WriteVal(O,1.2)+"Hi "+WriteVal(H,1.2)+"Lo "+WriteVal(L,1.2)+
"Close "+WriteVal(C,1.2)+" "+WriteVal(C-Ref(C,-1),1,0)//+ WriteIf(Col_action==colorGreen, EncodeColor(colorGreen)+"stay LONG","")+ WriteIf(Col_action==colorRed, EncodeColor(colorRed)+"stay SHORT","")+  WriteIf(Col_action==colorBlack, EncodeColor(colorYellow)+"No Trend","")+"\n"
+ "Vol= "+ WriteVal(V) +WriteIf ( V > MA(V,26) ,EncodeColor(colorGreen)+"  UP "+ (V/MA(V,26))*100 + " %", EncodeColor(colorRed)+"  DOWN "+ (V/MA(V,26))*100 + " %"));
//
_SECTION_BEGIN("Time Left");
function GetSecondNum()
{
Time = Now( 4 );
Seconds = int( Time % 100 );
Minutes = int( Time / 100 % 100 );
Hours = int( Time / 10000 % 100 );
SecondNum = int( Hours * 60 * 60 + Minutes * 60 + Seconds );
return SecondNum;
}
RequestTimedRefresh( 1 );
TimeFrame = Interval();
SecNumber = GetSecondNum();
Newperiod = SecNumber % TimeFrame == 0;
SecsLeft = SecNumber - int( SecNumber / TimeFrame ) * TimeFrame;
SecsToGo = TimeFrame - SecsLeft;

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

GfxSelectSolidBrush( ColorRGB( 230, 230, 230 ) );
GfxSelectPen( ColorRGB( 230, 230, 230 ), 2 );
if ( NewPeriod )
{
GfxSelectSolidBrush( colorYellow );
GfxSelectPen( colorYellow, 2 );
Say( "New period" );
}
//GfxRoundRect( x+45, y+40, x-3, y-2, 0, 0 );
//GfxSetBkMode(colorWhite );
GfxSetBkMode( colorWhite );
GfxSelectFont( "Times New Roman", 14, 700,True );
GfxSetTextColor( colorWhite );
GfxTextOut( "Time Left :"+SecsToGo+"", x, y );
_SECTION_END();
messageboard = ParamToggle("Message Board","Show|Hide",0);
showsl = ParamToggle("Stop Loss Line", "Show|Hide", 0);
no=25;
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);
s5d=IIf(avn==1,sup,res);
exitshort=Cross(C,s5d);
exitlong=Cross(s5d,C);

BarColors = 
IIf(BarsSince(exitshort) < BarsSince(exitlong) 
AND BarsSince(exitshort)!=0, ColorRGB(20,242,83),
IIf(BarsSince(exitlong) < BarsSince(exitshort)
AND BarsSince(exitlong)!=0,  colorRed, colorGold));


Plot(C, "Close", BarColors,  styleNoTitle | ParamStyle("Style") | GetPriceStyle() ) ;
if (showsl == 0)
{Plot(s5d,"",colorCustom10,styleLine);}
exitlong = Cross(s5d, C);
PlotShapes(exitlong * shapeSquare, colorRed,0,H,40);
PlotShapes(exitlong * shapeSquare, colorOrange,0,H,50);
PlotShapes(exitlong * shapeDownArrow, colorWhite,0,H,-45);

exitshort = Cross(C, s5d);
PlotShapes(exitshort * shapeSquare, colorBlue,0,L,-40);
PlotShapes(exitshort * shapeSquare, colorLime,0,L,-50);
PlotShapes(exitshort * shapeUpArrow, colorWhite,0,L,-45);




_SECTION_BEGIN("vaibhav");

//
Length=Param("Length",17, 2); // Bollinger Bands Period
Deviation=Param("Deviation",2);
// Deviation was 3
MoneyRisk=Param("Money Risk", 1);

LineStyle=ParamToggle("Display line mode", "No|Yes", 0);  // Display line mode: 0-no,1-yes  
cUpTrendLine = ParamColor("UpTrendLine", colorGreen);
cDnTrendLine = ParamColor("DownTrendLine", colorRed);





// Offset Factor
TurnedUp=Nz(StaticVarGet("TurnedUp"));
TurnedDown=Nz(StaticVarGet("TurnedDown"));
SoundON = ParamToggle("Sound","Off|On",1);


procedure CalcTrend_proc(bbtop,bbbot,Length,MoneyRisk,SoundON,TurnedUp,TurnedDown)
{
global UpTrendLine;
global DownTrendLine;
global smax;
global smin;

	UpTrendLine=Null;
	DownTrendLine=Null;
	smax=Null;
	smin=Null;
	trend=0;


	for (i=Length+1; i<BarCount; i++)	
  { 
		smax[i]=bbtop[i];
		smin[i]=bbbot[i];
		if (C[i]>smax[i-1]) trend=1;
		if (C[i]<smin[i-1]) trend=-1;
		if(trend>0 && smin[i]<smin[i-1]) smin[i]=smin[i-1];
		if(trend<0 && smax[i]>smax[i-1]) smax[i]=smax[i-1];
		bsmax[i]=smax[i]+0.5*(MoneyRisk-1)*(smax[i]-smin[i]);
		bsmin[i]=smin[i]-0.5*(MoneyRisk-1)*(smax[i]-smin[i]);
		if(trend>0 && bsmin[i]<bsmin[i-1]) bsmin[i]=bsmin[i-1];
		if(trend<0 && bsmax[i]>bsmax[i-1]) bsmax[i]=bsmax[i-1];
		if (trend>0) 
		{ 
			UpTrendLine[i]=bsmin[i];
			if (SoundON==True && !TurnedUp && i==BarCount-1 && IsEmpty(UpTrendLine[i-1])) 
			{ 
				Say("Hello, Attention please, Market Going, UP");
				TurnedUp=StaticVarSet("TurnedUp",1);
				TurnedDown=StaticVarSet("TurnedDown",0);

			} 
		} 
	
   	if (trend<0) 
		{ 
			DownTrendLine[i]=bsmax[i];
			if (SoundON==True && !TurnedDown && i==BarCount-1 && IsEmpty(DownTrendLine[i-1])) 
			{
				Say("Hello, Attention please, Market Going, DOWN");
				TurnedUp=StaticVarSet("TurnedUp",0);
				TurnedDown=StaticVarSet("TurnedDown",1);
			} 
		} //if (trend<0) 
	} //for
} //procedure

	bbtop=BBandTop(C,Length,Deviation);
	bbbot=BBandBot(C,Length,Deviation);

	CalcTrend_proc(bbtop,bbbot,Length,MoneyRisk,SoundON,TurnedUp,TurnedDown);
	UpTrendSigNal=UpTrendLine AND IsEmpty(Ref(UpTrendLine,-1));
	DownTrendSigNal=DownTrendLine AND IsEmpty(Ref(DownTrendLine,-1));

  DisplayStyle = styleNoLabel|styleDots|styleNoTitle;
  if(LineStyle == 0) DisplayStyle |= styleNoLine; 


	Plot(UpTrendLine,"UPTRENDLINE",cUpTrendLine,DisplayStyle);
	Plot(DownTrendLine,"DOWNTRENDLINE",cDnTrendLine,DisplayStyle) ;

	PlotShapes(IIf(UpTrendSignal,shapeStar,shapeNone),cUpTrendLine,0,bbbot,0);
	PlotShapes(IIf(DownTrendSignal,shapeStar,shapeNone),cDnTrendLine,0,bbtop,0);
_SECTION_END();






Buy = exitshort;
Sell = exitlong;
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 );

for(i=BarCount-1;i>1;i--)
{
if(Buy[i] == 1)
{
entry = C[i];
sig = "BUY";
sl = s5d[i];
tar1 = entry + (entry * .0035);
tar2 = entry + (entry * .0085);
tar3 = entry + (entry * .0150);
bars = i;
i = 0;
}
if(Sell[i] == 1)
{
sig = "SELL";
entry = C[i];
sl = s5d[i];
tar1 = entry - (entry * .0035);
tar2 = entry - (entry * .0085);
tar3 = entry - (entry * .0150);
bars = i;
i = 0;
}
}
Offset = 20;
Clr = IIf(sig == "BUY", colorGreen, colorRed);
ssl = IIf(bars == BarCount-1, s5d[BarCount-1], Ref(s5d, -1));
sl = ssl[BarCount-1];

Plot(LineArray(bars-Offset, tar1, BarCount, tar1,1), "", Clr, styleLine|styleDots, Null, Null, Offset);
Plot(LineArray(bars-Offset, tar2, BarCount, tar2,1), "", Clr, styleLine|styleDots, Null, Null, Offset);
Plot(LineArray(bars-Offset, tar3, BarCount, tar3,1), "", Clr, styleLine|styleDots, Null, Null, Offset);

for (i=bars; i <BarCount;i++)
{
PlotText("" + sig + " @ " + entry, BarCount+3, entry, Null, colorBlue);
PlotText("Target 1 : " + tar1, BarCount+3, tar1, Null, Clr);
PlotText("Target 2 : @ " + tar2, BarCount+3, tar2, Null, Clr);
PlotText("Target 3 : @ " + tar3, BarCount+3, tar3, Null, Clr);
PlotText("Trailing SL @ " + sl, BarCount+3, sl, Null, colorBlack);
}
//Plot(sl, "", colorCustom10, styleLine);
printf("Last " + sig + " Signal came " + (BarCount-bars) + " bars ago");
printf("\n" + sig + " @ : " + entry + "\nStop Loss : " + sl + " (" + WriteVal(IIf(sig == "SELL",entry-sl,sl-entry), 2.2) + ")"+ "\nTarget_1 : " + tar1 + "\nTarget_2 : " + tar2 + "\nTarget_3 : " + tar3);
printf("\nCurrent P/L : " + WriteVal(IIf(sig == "BUY",(C-entry),(entry-C)),2.2));

if (messageboard == 0 )
{
GfxSelectFont( "Tahoma", 13, 100 );
GfxSetBkMode( 1 );
GfxSetTextColor( colorWhite );

if ( sig =="BUY")
{
GfxSelectSolidBrush( colorGreen ); // this is the box background color
}
else
{
GfxSelectSolidBrush( colorRed ); // this is the box background color
}
pxHeight = Status( "pxchartheight" ) ;
xx = Status( "pxchartwidth");
Left = 1100;
width = 310;
x = 2;
x2 = 290;

y = pxHeight;

GfxSelectPen( colorLightBlue, 1); // broader color
GfxRoundRect( x, y - 163, x2, y , 7, 7 ) ;

GfxTextOut( ("AUTO LIVE TRADE"),27,y-160);
GfxTextOut( ("Last " + sig + " Signal came " + (BarCount-bars-1) * Interval()/60 + " mins ago"), 13, y-140) ; // The text format location
GfxTextOut( ("" + WriteIf(sig =="BUY",sig + " @ ",sig + " @") + " : " + entry), 13, y-120);
GfxTextOut( ("Trailing SL : " + sl + " (" + WriteVal(IIf(sig == "SELL",entry-sl,sl-entry), 2.2) + ")"), 13, y-100);
GfxTextOut( ("Target:1 : " + tar1), 13, y -80);
GfxTextOut( ("Target:2 : " + tar2), 13,y-60);
GfxTextOut( ("Target:3 : " + tar3), 13,y-40);
GfxTextOut( ("Current P/L : " + WriteVal(IIf(sig == "BUY",(C-entry),(entry-C)),2.2)), 13, y-22);;

x = 290;
x2 = 570;
GfxSelectSolidBrush( colorTurquoise );
GfxSetTextColor( colorBlack);
GfxSelectFont( "Tahoma", 14, 100 );
GfxSetBkMode( 1 );

GfxSelectFont( "Tahoma", 10, 400 );

}
//

function PlotDT()
{
displacement = Param("Displacement Value", 12, 1, 100, 1);
slmode = ParamToggle("Stop Loss", "Auto|Manual", 1);
width = ParamToggle("Width", "HL|OC", 1);
Count = Param("No. of DTL", 4, 4, 20, 1);
NewDay = Day()!= Ref(Day(), -1);

for (i=BarCount-1;i > 1; i--)
{
if(NewDay[i] == 1)
{
printf("High : " + i);
if(width == 1)
{
DL = IIf(O[i] < C[i], O[i], C[i]);
DH = IIf(O[i] > C[i], O[i], C[i]);
}
else
{
DL = L[i];
DH = H[i];
}
Bars = i;
i = -1;
}
}

if(slmode==1)
{
distance = displacement;
}
else
{
distance = ((DH+DL)/2) * .01;
}

Plot(LineArray(BarCount - (BarCount-Bars+20), DH, BarCount+35, DH, 1), "", colorLime, styleLine|styleThick|styleDots, Null, Null, 20);
PlotText("Buy Above " + DH + "; Stop Loss = " + DL, BarCount + 0, DH, colorBlack, colorLime);
Plot(LineArray(BarCount - (BarCount-Bars+20), (DH+ distance), BarCount+35, (DH+ distance), 1), "", colorLime, styleLine|styleThick|styleDots, Null, Null, 20);
PlotText("Target = " + (DH+ distance), BarCount + 0, (DH+ distance), colorBlack, colorLime);
Plot(LineArray(BarCount - (BarCount-Bars+20), DL, BarCount+35, DL, 1), "", colorOrange, styleLine|styleThick|styleDots, Null, Null, 20);
PlotText("Sell Below " + DL + "; Stop Loss = " + DH, BarCount + 0, DL, colorBlack, colorOrange);
Plot(LineArray(BarCount - (BarCount-Bars+20), (DL-distance), BarCount+35, (DL-distance), 1), "", colorOrange, styleLine|styleThick|styleDots, Null, Null, 20);
PlotText("Target = " + (DL-distance), BarCount + 0, (DL-distance), colorBlack, colorOrange);
}
function PlotIndicators()
{

SetChartOptions(0,chartShowArrows|chartShowDates);
/* Standard Error Bands */
Periods = Param("Standard Error", 80, 3, 200, 1);
Smooth = Param("Smooth",14,2,100,1);


LRCurve = LinearReg( C, periods );
MALRCurve = MA(LRCurve, Smooth);
SEValue = StdErr( C, periods );
SErrorAvg = MA(SEValue, Smooth);

LowerBand = MALRCurve - SErrorAvg ;
UpperBand = MALRCurve + SErrorAvg ;

Plot( MALRCurve , "MidBand", ParamColor("ColorMB",colorIndigo) , styleDashed|styleNoTitle);
Plot( LowerBand , "LowerBand", ParamColor("ColorLo",colorOrange) , styleLine|styleThick|styleNoTitle);
Plot( UpperBand , "UpperBand", ParamColor("ColorUp",colorGreen) , styleLine|styleThick|styleNoTitle);

Ch = TimeFrameGetPrice("C", in1Minute/60);
clr = IIf(Ch[BarCount-2] > Ch[BarCount-1],colorRed,colorLime);

Plot(LineArray(0,C[BarCount-1],BarCount-1,C[BarCount-1],15), "", Clr, styleLine|styleNoLabel, Null, Null, 30);
PlotText("CMP:" + C[BarCount-1], BarCount+5, C[BarCount-1],colorBlack,Clr);

LRPeriods = Param("Length", 40, 3, 200, 1);
LRCurve = LinearReg( C, LRPeriods );

PlotLR = IIf(LRCurve < LowerBand, (LRCurve + LowerBand)/2, IIf(LRCurve > UpperBand, (LRCurve + UpperBand)/2, LRCurve));
PlotLR = (PlotLR + SwingLine)/2;
//Plot( PlotLR , "Stop Loss |", ParamColor("SLColor",colorBlue), 4+8+32+2048);
//Plot( SwingLine, "SwingLine", ParamColor( "SWColor", colorBlue ), ParamStyle("StyleSW",style=styleThick|styleNoLabel , mask=maskDefault) );

bc1 = (Cross(C, MALRCurve) OR Cross(C, UpperBand) OR Cross(C, LowerBand)) AND (C > SwingLine);
bc2 = Cross(C, SwingLine) AND (C > MALRCurve OR C > UpperBand OR C > LowerBand);

sc1 = (Cross(MALRCurve, C) OR Cross(UpperBand, C) OR Cross(LowerBand, C)) AND (C < SwingLine);
sc2 = Cross(SwingLine, C) AND (C < MALRCurve OR C < UpperBand OR C < LowerBand);
Buy = bc1 OR bc2;
Sell = sc1 OR sc2;
Buy = ExRem(Buy, Sell);
Sell = ExRem(Sell, Buy);
//PlotShapes(shapeCircle*Buy + shapeCircle *Sell, IIf(Buy, colorBlue, colorRed), 0, IIf(Buy, L, H), IIf(Buy, -12, 12));

}
//PlotDT();


icol = IIf ( MA (Close,25) > Ref (MA (Close,25),-1),colorGreen,colorRed);

Plot( MA( High, 25 ),"", icol, styleThick);


Color_buy = IIf(Close > EMA(Close,89) AND Close > EMA(High,25),colorBlue,IIf(Close < EMA(Close,89) AND Close < EMA(Low,25),colorRed,colorYellow));

PlotOHLC( Open, High, Low, Close, "", Color_buy, styleCandle );

SetChartBkGradientFill( ParamColor("BgTop", colorBlack),
ParamColor("BgBottom", ColorRGB( 50,47,45 )),ParamColor("titleblock",colorBlack));
SetChartOptions(0,chartShowArrows|chartShowDates);






// Paste the code below to your price chart somewhere and green ribbon means both
// both MACD and ADX trending up so if the red ribbon shows up the MACD and the ADX 
// are both trending down.


uptrend=PDI()>MDI()AND Signal()<MACD();
downtrend=MDI()>PDI()AND Signal()>MACD();


Plot( 2, /* defines the height of the ribbon in percent of pane width */"ribbon",
IIf( uptrend, colorGreen, IIf( downtrend, colorRed, 0 )), /* choose color */
styleOwnScale|styleArea|styleNoLabel, -0.5, 100 );

_SECTION_END();

_SECTION_BEGIN("Volume");
Plot( Volume, _DEFAULT_NAME(), ParamColor("Color", ColorRGB(20,20,20) ), styleNoTitle | ParamStyle( "Style", styleHistogram | styleOwnScale | styleThick | styleNoLabel, maskHistogram ), 2 );
_SECTION_END();

_SECTION_BEGIN("Name");
GfxSetOverlayMode(0); 
GfxSelectFont("Arial Black", Status("pxheight")/35); 
GfxSetTextAlign( 6 );// center alignment 
GfxSetTextColor( colorRose ); 
GfxSetBkMode(0); // transparent 
GfxTextOut( Name(), Status("pxwidth")/8, Status("pxheight")/20 );
_SECTION_END();


//============== TITLE ==============

//Magfied Market Price
FS=Param("Font Size",20,11,100,1);
GfxSelectFont("Arial", 18, 700, True ); 
GfxSetBkMode( colorWhite );  
GfxSetTextColor( ParamColor("Color",colorWhite) ); 
Hor=Param("Horizontal Position",590,1,1200,1);
Ver=Param("Vertical Position",12,1,830,1); 
GfxTextOut(""+C, Hor , Ver );
YC=TimeFrameGetPrice("C",inDaily,-1);
DD=Prec(C-YC,2);
_SECTION_END();

DayH = SelectedValue(TimeFrameGetPrice("H", inDaily));// yesterdays high 
DayL = SelectedValue(TimeFrameGetPrice("L", inDaily));//low 
DayH1 = SelectedValue(TimeFrameGetPrice("H", inDaily, -1));// yesterdays high 
DayL1 = SelectedValue(TimeFrameGetPrice("L", inDaily, -1));//low 
DayH2 = SelectedValue(TimeFrameGetPrice("H", inDaily, -2));// yesterdays high 
DayL2 = SelectedValue(TimeFrameGetPrice("L", inDaily, -2));//low 

Range = ((DayH +DayH1  +DayH2)/3 - (DayL+DayL1+DayL2)/3);
sr3= (Range *0.702)+DayL;
sr4= DayH-(Range *0.655);

style = styleLine | styleNoRescale|styleLine; 
Plot(sr3, "SR3",colorGreen  , styleDashed|styleNoRescale|styleThick);
Plot(sr4, "SR4",colorRed ,styleDashed|styleNoRescale|styleThick);

A = DEMA (H,65);
B = EMA (H,39);
G = DEMA (L,65);
I = EMA(L,39);
D = Min (G,I);
E = Max (A,B);
/* Buy or Sell Condition */
Buy =Cover= Cross(Close,E);
Sell = Short=Cross(D,Close);
Buy = ExRem(Buy,Sell);
Sell = ExRem(Sell,Buy);
SellPrice=ValueWhen(Sell,C,1);
BuyPrice=ValueWhen(Buy,C,1);

Filter = Buy OR Sell;


_SECTION_END();