Combining Trend-VWAP-Ranges - Pratap's method

Blackhole

Well-Known Member
#71
Yes that is fine

Period and noise I keep 30 and 5 only
thats good pratapji!


how do u trade this noise? do u use multi time frame?

is this strategy compatible in bot nf and bnf(as bnf is more volatile and wild)?


thanks for ur time and patience, really appreciate your work! :)
 

pratapvb

Well-Known Member
#72
thats good pratapji!


how do u trade this noise? do u use multi time frame?

is this strategy compatible in bot nf and bnf(as bnf is more volatile and wild)?


thanks for ur time and patience, really appreciate your work! :)
pvt above and below band is what I do.... I think it will work for bnf also or you could check out a lower tf band as bnf is higher beta....not studied
 

eku

Well-Known Member
#74
I re-arranged the sequence and it got solved.. :)



these 3 afl's r so powerful that it gave new dimension to my trading..

Even in 2days expiry day,tight market I made a very good profit today.Hope someday I'll trade 200 lots NF with ur grace :)

:thanx: Huge Thanks Pratap Sir. :thanx:
 

vijkris

Learner and Follower
#75
these 3 afl's r so powerful that it gave new dimension to my trading..

Even in 2days expiry day,tight market I made a very good profit today.Hope someday I'll trade 200 lots NF with ur grace :)

:thanx: Huge Thanks Pratap Sir. :thanx:
same here...
pratap sir pls accept my gratitude also :thumb:
 

pratapvb

Well-Known Member
#76
For afl...most afl's have a layer parameter like -1 -2 etc.

Can adjust that... What is drawn on the same layer comes one below the other.... But if layer is different then according to that
 

pratapvb

Well-Known Member
#77
resharing 2day vwap ... there are a lot of parameters (hopefully self explanatory) to adjust the view and colors the way you want

Code:
SetChartOptions(2,chartWrapTitle);
SetChartBkColor(ParamColor("Background", colorLightGrey)) ;
// Author: Pratap Balakrishnan
// Copyright: All rights reserved. Not to be circulated or shared or posted on websites without the author's written permission.
// email id: [email][email protected][/email]
//
/*
The VWAP for a stock is calculated by adding the dollars traded for every
transaction in that stock ("price" x "number of 
      shares traded") and dividing the total shares traded. A VWAP is computed
from the Open of the market to the market Close, AND is 
      calculated by Volume weighting all transactions during this time period

*/
Layer = Param("Layer", 0, -5, 5, 1) ;
showprice = ParamToggle("Show Price", "No|Yes", 0) ;
if (showprice)
{
_N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} " + EncodeColor( colorGreen ) + " Open %g," + EncodeColor( colorBlue ) + " Hi %g,  " + EncodeColor( colorRed ) + " Lo %g,  " + EncodeColor( colorBlack ) + " Close %g (%.1f%%) {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 ) ) ));
Plot( C, "Close",  colorBlack, styleNoTitle | styleCandle,0,0,0,Layer ); 
//Peaking Volumes
HiVolume = IIf(V > (2 * MA(V,10)), True, False); 
PlotShapes(shapeSmallCircle * HiVolume, IIf(C > O, colorBlack, colorWhite), 0, (O+C)/2, 0);
ToolTip = "Open = " + O + "\nHigh = " + H + "\nLow = " + L + "\nClose = " + C ;
}

farback = Param("Far Back", 500, 1, 10000, 1) ;
SetChartBkColor(colorLightGrey) ;
useforeign = ParamToggle("Set Foreign", "No|Yes", 0) ;
//List = GetCategorySymbols(categoryMarket, 0) ;
//forscript = ParamList("Scrip", List, 0) ;
forscript = ParamStr("Scrip", "NIFTY_F1") ;
if (useforeign)
	SetForeign(forscript); 

ndays = Param("N Days", 2, 0, 10000, 1) ;
period = Param("Period", 39, 1, 10000, 1) ;
showhalfsd = ParamToggle("Show half SD", "No|Yes", 0) ;
turnvwapoff = ParamToggle("VWAP All OFF", "No|Yes", 0) ;
showintitle = ParamToggle("Show in Title", "No|Yes", 0) ;
nodraw = ParamToggle("No Draw", "No|Yes", 0) ;
showtradearr = ParamToggle("Trade Arrow", "No|Yes", 0) ;
Filterdaych = ParamToggle("Filter Day Change Connections", "No|Yes", 1) ;

Vwapmode = ParamList("VWAP mode", "As Per Param|Only VWAP|VWAP+SD|VWAP+2SD", 0) ;
showvwap = ParamToggle("Show VWAP", "No|Yes", 1) ;
showvwap1sd = ParamToggle("Show VWAP 1SD", "No|Yes", 1) ;
showvwap2sd = ParamToggle("Show VWAP 2SD", "No|Yes", 1) ;
showvwap3sd = ParamToggle("Show VWAP 3SD", "No|Yes", 0) ;
showvwapband = ParamToggle("Show VWAP Trend Bands", "No|Yes", 1) ;
showvwapswband = ParamToggle("Show VWAP Sideways Bands", "No|Yes", 0) ;
showprevdayvals = ParamToggle("Show Prev Day Values", "No|Yes", 1) ;
showprev2dayvals = ParamToggle("Show Prev 2 Day Values", "No|Yes", 1) ;
showprevdayband = ParamToggle("Show Prev Day Bands", "No|Yes", 0) ;
showextprevday = ParamToggle("Show Extension", "No|Yes", 1)  ;
showextbandprevday = ParamToggle("Show Extension Band", "No|Yes", 1)  ;
extend = Param("Extend", 15, 0, 100, 1) ;

showextvwap = ParamToggle("Show VWAP Extension", "No|Yes", 1)  ;
vwapextend = Param("VWAP Extend", 15, 0, 100, 1) ;
showexttrndband = ParamToggle("Show Trend Band Extension", "No|Yes", 1)  ;
trndbandextend = Param("Trend Band Extend", 10, 0, 100, 1) ;
showextswband = ParamToggle("Show Sidewways Band Extension", "No|Yes", 0)  ;
swbandextend = Param("Sideways Band Extend", 10, 0, 100, 1) ;
showlvltext = ParamToggle("Show Level Text", "No|Yes", 1) ;

Vwaplayer = Param("VWAP Layer", -3, -5, 5, 1) ;
extlayer = Param("Extend Layer", -2, -5, 5, 1) ;

MAwidthper = Param("MA Width %", 0.005, 0, 10, 1) ;
MAwidth = SelectedValue(C) * MAwidthper /100 ;
SDwidthper = Param("SD Width %", 0.01, 0, 10, 1) ;
SDwidth = SelectedValue(C) * SDwidthper /100 ;
SD2widthper = Param("SD2 Width %", 0.005, 0, 10, 1) ;
SD2width = SelectedValue(C) * SD2widthper /100 ;

showcomm = ParamToggle("Show Commentary", "No|Yes", 0) ;
showtext = ParamToggle("Show Text", "No|Yes", 1) ;
Clrtext = ParamColor("Color Text", colorBlack) ;
showvahvaltext = ParamToggle("Show VAH-VAL Text", "No|Yes", 1) ;

Onlyvwap = False ;
withsd = False ;
with2sd = False ;

switch (Vwapmode)
{
	case "As Per Param":
		break ;
	case "Only VWAP" :
		Onlyvwap = True ;
		break ;
	case "VWAP+SD" :
		Onlyvwap = True ;
		withsd = True;
		break ;
	case "VWAP+2SD" :
		Onlyvwap = True ;
		withsd = True;
		with2sd = True;
		break ;
}

if (Onlyvwap)
{	
	if (withsd)
		showvwap1sd = True;
	else
		showvwap1sd = False ;
	if (with2sd)
		showvwap2sd = True;
	else
		showvwap2sd = False ;
	showvwap3sd = False ;
//	showvwapband = False ;
//	showvwapswband = False ;
//	showprevdayvals = False ;
//	showprev2dayvals = False ;
//	showprevdayband = False ;

//	showtradearr = False ;
	showcomm = False ;
	showtext = withsd ;
}

stylelabel = 0 ;
if (showtext)
	stylelabel = styleNoLabel ;

styletitle = 0 ;
if (NOT showintitle)
	styletitle = styleNoTitle ;

styledata = 0 ;
if (nodraw)
{
	styledata = styleNoDraw ;
//showtradearr = False ;
}
//SetBarsRequired(int(farback*1.1)) ;

if (NOT turnvwapoff)
{
P = (H + L + C) / 3;
nd = Day() != Ref(Day(),-1) ;
Bars_so_far_today = 1 + BarsSince( nd);
if (ndays == 0)
	Bars_so_far_today = IIf(Bars_so_far_today < period, Bars_so_far_today, period) ;
else if (ndays > 1)
{
	bi = BarIndex() ;
/*
	bivwap0 = ValueWhen(nd, bi, ndays) ;
	bivwap1 = ValueWhen(nd, bi, ndays+1) ;

	dttn = DateTime() ;
	tnhr = DateTimeConvert(5, dttn) ;
	
	bivwap = IIf(tnhr < 12, bivwap1, bivwap0) ;
	Bars_so_far_today	 = 1 + (bi - bivwap) ;
*/
	bivwap = ValueWhen(nd, bi, ndays) ;
	nbar = (bi - bivwap) ;

	Bars_so_far_today	 = ValueWhen(nd, nbar, 1) *ndays ;
//	Bars_so_far_today	 = 375*ndays ;

}

//StartBar = ValueWhen(TimeNum() == 091600, BarIndex());
TodayVolume = Sum(V,Bars_so_far_today);
//IIf (BarIndex() >= StartBar, VWAP = Sum (C * V, Bars_so_far_today  ) / TodayVolume,0);
//Plot (VWAP,"VWAP",colorBlack, styleThick);

	CumV = Sum(V,Bars_so_far_today);
	CumVWP = Sum (P * V, Bars_so_far_today  );
   VWAP = CumVWP / CumV;
//	S = Sum(Ref(CumV, 0) * V * (P - Ref(VWAP, 0))^2,Bars_so_far_today) / CumV;
	VWAPsd = IIf(Ref(nd, 1), 0, VWAP);
	CumVsd = IIf(Ref(nd, 1), 0, CumV);

	S = Sum(Ref(CumVsd, -1) * V * (P - Ref(VWAPsd, -1))^2 / CumV,Bars_so_far_today);
	Variance = S / CumV;
	 SD = sqrt(Variance);
//	 VWAP = IIf(InRange,  VWAP, Null);
	Vwapm1 = VWAP - SD ;
	Vwapp1 = VWAP + SD ;
	Vwapm2 = VWAP -2*SD ;
	Vwapp2 = VWAP +2*SD ;
	Vwapm3 = VWAP -3*SD ;
	Vwapp3 = VWAP +3*SD ;

	Vwapm05 = VWAP - 0.5*SD ;
	Vwapp05 = VWAP + 0.5*SD ;
	Vwapm15 = VWAP -1.5*SD ;
	Vwapp15 = VWAP +1.5*SD ;
	Vwapm25 = VWAP -2.5*SD ;
	Vwapp25 = VWAP +2.5*SD ;

	showoncrb = ParamToggle("Show On CRB", "No|Yes", 0) ;
	Refo = ParamField("CRB Open", 7+0) ;
	Refh = ParamField("CRB High", 7+1) ;
	Refl = ParamField("CRB Low", 7+2) ;
	Refc = ParamField("CRB Close", 7+3) ;
	Refbi = ParamField("CRB BI", 7+4) ;
	Refcrbbars = ParamField("CRB Bars", 7+5) ;
	Refnbars = ParamField("TF Bars", 7+6) ;
	Refdt = ParamField("CRB DT", 7+7) ;

	if (showoncrb)
		dt = Refdt ;
	else
		dt = DateTime() ;

	dtnum = DateTimeConvert(0, dt) ;
	newdt = dtnum != Ref(dtnum, -1) ;

	Lastbar = H-H ;
	if (Filterdaych)
		Lastbar = dtnum != Ref(dtnum, 1) ;

	if (showoncrb)
	{
		diffbars = Refnbars -Refcrbbars -1 ;
		Crbst = BarCount - LastValue(Refcrbbars) -1;
		// convert to crb
		RefVWAP = Ref(VWAP, -diffbars) ;
		RefVwapm1 = Ref(Vwapm1, -diffbars) ;
		RefVwapp1 = Ref(Vwapp1, -diffbars) ;
		RefVwapm2 = Ref(Vwapm2, -diffbars) ;
		RefVwapp2 = Ref(Vwapp2, -diffbars) ;
		RefVwapm3 = Ref(Vwapm3, -diffbars) ;
		RefVwapp3 = Ref(Vwapp3, -diffbars) ;

		k = 0 ;
		for ( i = Crbst ; i < BarCount ; i++)
		{
			Refbar = Refbi[i];

			RefVWAP[i] = VWAP[Refbar] ;
			RefVwapm1[i] = Vwapm1[Refbar] ;
			RefVwapp1[i] = Vwapp1[Refbar] ;
			RefVwapm2[i] = Vwapm2[Refbar] ;
			RefVwapp2[i] = Vwapp2[Refbar] ;
			RefVwapm3[i] = Vwapm3[Refbar] ;
			RefVwapp3[i] = Vwapp3[Refbar] ;

			RefVwapm05[i] = Vwapm05[Refbar] ;
			RefVwapp05[i] = Vwapp05[Refbar] ;
			RefVwapm15[i] = Vwapm15[Refbar] ;
			RefVwapp15[i] = Vwapp15[Refbar] ;
			RefVwapm25[i] = Vwapm25[Refbar] ;
			RefVwapp25[i] = Vwapp25[Refbar] ;
			k++;
		}
	}
	else
	{
			RefVWAP = VWAP;
			RefVwapm1 = Vwapm1;
			RefVwapp1 = Vwapp1 ;
			RefVwapm2 = Vwapm2;
			RefVwapp2 = Vwapp2;
			RefVwapm3 = Vwapm3;
			RefVwapp3 = Vwapp3;

			RefVwapm05 = Vwapm05;
			RefVwapp05 = Vwapp05 ;
			RefVwapm15 = Vwapm15;
			RefVwapp15 = Vwapp15;
			RefVwapm25 = Vwapm25;
			RefVwapp25 = Vwapp25;
	}

	Clrvwap =  ParamColor("Color VWAP",colorBlue) ;
	Clrvwapm1 = ParamColor("Color VWAP -1SD", colorViolet) ;
	Clrvwapp1 = ParamColor("Color VWAP +1SD", colorViolet) ;

	strnday = NumToStr(ndays, 1.0)+"day";

		styleshow = IIf(showvwap, 0, styleNoDraw) ;
//		Vwapstyle = 0 ;
//		if (ndays > 1)
			Vwapstyle = styleNoRescale ;
		Plot(IIf(Lastbar, Null, RefVWAP), "VWAP"+strnday, Clrvwap , styleThick|stylelabel|Vwapstyle|styledata|styleshow, Null, Null, 0, 1);
		if (MAwidth > 0)
			PlotOHLC(IIf(Lastbar, Null, RefVWAP+MAwidth), IIf(Lastbar, Null, RefVWAP+MAwidth), IIf(Lastbar, Null, RefVWAP-MAwidth), IIf(Lastbar, Null, RefVWAP-MAwidth), "",Clrvwap, styleCloud|styleNoLabel|styleNoRescale|styledata|styleshow, 0, 0, 0, 1 ) ;

	Plot(SD, "SD", colorBlack, styleNoDraw|styleNoLabel|styleNoRescale) ;

		styleshow = IIf(showvwap1sd, 0, styleNoDraw) ;
		Plot(IIf(Lastbar, Null, RefVwapm1), "-1SD"+strnday, Clrvwapm1,  styleThick  + styleTitle + stylelabel+styleNoRescale|styledata|styleshow, Null, Null, 0, 1);
		Plot(IIf(Lastbar, Null, RefVwapp1), "+1SD"+strnday, Clrvwapp1, styleThick  + styleTitle + stylelabel+styleNoRescale|styledata|styleshow, Null, Null, 0, 1);
		if (SDwidth > 0)
			PlotOHLC(IIf(Lastbar, Null, RefVWAPm1+SDwidth), IIf(Lastbar, Null, RefVWAPm1+SDwidth), IIf(Lastbar, Null, RefVWAPm1-SDwidth), IIf(Lastbar, Null, RefVWAPm1-SDwidth), "",Clrvwapm1, styleCloud|styleNoLabel|styleNoRescale|styledata|styleshow, 0, 0, 0, 0 ) ;

		if (SDwidth > 0)
			PlotOHLC(IIf(Lastbar, Null, RefVWAPp1+SDwidth), IIf(Lastbar, Null, RefVWAPp1+SDwidth), IIf(Lastbar, Null, RefVWAPp1-SDwidth), IIf(Lastbar, Null, RefVWAPp1-SDwidth), "",Clrvwapp1, styleCloud|styleNoLabel|styleNoRescale|styledata|styleshow, 0, 0, 0, 0 ) ;


		styleshow = IIf(showvwap2sd, 0, styleNoDraw) ;
		Plot(IIf(Lastbar, Null, RefVwapm2), "-2SD"+strnday, ParamColor("Color VWAP -2SD", colorViolet), styleThick  + styleTitle + stylelabel+styleNoRescale|styledata|styleshow, Null, Null, 0, 1);
		Plot(IIf(Lastbar, Null, RefVwapp2), "+2SD"+strnday, ParamColor("Color VWAP +2SD", colorViolet), styleThick  + styleTitle + stylelabel+styleNoRescale|styledata|styleshow, Null, Null, 0, 1);
		if (SD2width > 0)
			PlotOHLC(IIf(Lastbar, Null, RefVWAPm2+SD2width), IIf(Lastbar, Null, RefVWAPm2+SD2width), IIf(Lastbar, Null, RefVWAPm2-SD2width), IIf(Lastbar, Null, RefVWAPm2-SD2width), "",ParamColor("Color VWAP -2SD", colorViolet), styleCloud|styleNoLabel|styleNoRescale|styledata|styleshow, 0, 0, 0, 0 ) ;

		if (SD2width > 0)
			PlotOHLC(IIf(Lastbar, Null, RefVWAPp2+SD2width), IIf(Lastbar, Null, RefVWAPp2+SD2width), IIf(Lastbar, Null, RefVWAPp2-SD2width), IIf(Lastbar, Null, RefVWAPp2-SD2width), "",ParamColor("Color VWAP +2SD", colorViolet), styleCloud|styleNoLabel|styleNoRescale|styledata|styleshow, 0, 0, 0, 0 ) ;

		styleshow = IIf(showvwap3sd, 0, styleNoDraw) ;
		Plot(IIf(Lastbar, Null, RefVwapm3), "-3SD"+strnday, ParamColor("Color VWAP -3SD", colorViolet), styleThick  + styleNoTitle + stylelabel+styleNoRescale|styledata|styleshow, Null, Null, 0, 1);
		Plot(IIf(Lastbar, Null, RefVwapp3), "+3SD"+strnday, ParamColor("Color VWAP +3SD", colorViolet), styleThick  + styleNoTitle + stylelabel+styleNoRescale|styledata|styleshow, Null, Null, 0, 1);

		styleshow = IIf(showhalfsd, 0, styleNoDraw) ;
		Plot(IIf(Lastbar, Null, RefVwapm05), "-0.5SD"+strnday, Clrvwapm1,  styleThick|styleDashed  + styleTitle + stylelabel+styleNoRescale|styledata|styleshow, Null, Null, 0, 1);
		Plot(IIf(Lastbar, Null, RefVwapp05), "+0.5SD"+strnday, Clrvwapp1, styleThick|styleDashed  + styleTitle + stylelabel+styleNoRescale|styledata|styleshow, Null, Null, 0, 1);
		Plot(IIf(Lastbar, Null, RefVwapm15), "-1.5SD"+strnday, Clrvwapm1,  styleThick|styleDashed  + styleTitle + stylelabel+styleNoRescale|styledata|styleshow, Null, Null, 0, 1);
		Plot(IIf(Lastbar, Null, RefVwapp15), "+1.5SD"+strnday, Clrvwapp1, styleThick|styleDashed  + styleTitle + stylelabel+styleNoRescale|styledata|styleshow, Null, Null, 0, 1);
		Plot(IIf(Lastbar, Null, RefVwapm25), "-2.5SD"+strnday, Clrvwapm1,  styleThick|styleDashed  + styleTitle + stylelabel+styleNoRescale|styledata|styleshow, Null, Null, 0, 1);
		Plot(IIf(Lastbar, Null, RefVwapp25), "+2.5SD"+strnday, Clrvwapp1, styleThick|styleDashed  + styleTitle + stylelabel+styleNoRescale|styledata|styleshow, Null, Null, 0, 1);



		styleshow = IIf(showvwapband, 0, styleNoDraw) ;
		dnclr = ParamColor("Down Trend", colorPink) ;
		upclr = ParamColor("Up Trend", colorSkyblue) ;
		PlotOHLC(IIf(Lastbar, Null, RefVwapm1), IIf(Lastbar, Null, RefVwapm1), IIf(Lastbar, Null, RefVwapm2), IIf(Lastbar, Null, RefVwapm2), "",ParamColor("Down Trend", colorPink), styleCloud|styleNoLabel|styleNoRescale|styledata|styleshow, 0, 0, 0, Vwaplayer ) ;
		PlotOHLC(IIf(Lastbar, Null, RefVwapp1), IIf(Lastbar, Null, RefVwapp1), IIf(Lastbar, Null, RefVwapp2), IIf(Lastbar, Null, RefVwapp2), "",ParamColor("Up Trend", colorPaleTurquoise), styleCloud|styleNoLabel|styleNoRescale|styledata|styleshow, 0, 0, 0, Vwaplayer ) ;
		if (showexttrndband)
		{
			styleshow = IIf(showexttrndband, 0, styleNoDraw) ;
			x0 = BarCount - (trndbandextend +1)+1 ;
			x1 = BarCount -1 ;

			Hdlast = SelectedValue(RefVwapp2) ;
			Ldlast = SelectedValue(RefVwapp1) ;

			Hplot = LineArray(x0, Hdlast, x1, Hdlast) ;
//			Plot(Hplot, "VAHext"+strnday, colorOrange, styleLine|styleNoLabel|styleNoTitle|styleNoRescale|styledata|styleshow, 0,0,extend, extlayer) ;
			LPlot = LineArray(x0, Ldlast, x1, Ldlast) ;
//			Plot(LPlot, "VALext"+strnday, colorGreen, styleLine|styleNoLabel|styleNoTitle|styleNoRescale|styledata|styleshow, 0,0,extend, extlayer) ;

			styleshow = IIf(showexttrndband, 0, styleNoDraw) ;
			PlotOHLC(HPlot, HPlot, LPlot, LPlot, "", upclr , styleCloud|styleNoLabel|styleNoTitle|styleNoRescale|styledata|styleshow, 0,0,trndbandextend ,extlayer ) ;

			Hdlast = SelectedValue(RefVwapm1) ;
			Ldlast = SelectedValue(RefVwapm2) ;

			Hplot = LineArray(x0, Hdlast, x1, Hdlast) ;
//			Plot(Hplot, "VAHext"+strnday, colorOrange, styleLine|styleNoLabel|styleNoTitle|styleNoRescale|styledata|styleshow, 0,0,extend, extlayer) ;
			LPlot = LineArray(x0, Ldlast, x1, Ldlast) ;

			PlotOHLC(HPlot, HPlot, LPlot, LPlot, "", dnclr , styleCloud|styleNoLabel|styleNoTitle|styleNoRescale|styledata|styleshow, 0,0,trndbandextend ,extlayer ) ;
		}


		styleshow = IIf(showextvwap, 0, styleNoDraw) ;
		x0 = BarCount - (vwapextend+1)+1 ;
		x1 = BarCount -1 ;

		vwaplast = SelectedValue(RefVWAP) ;
		p1last = SelectedValue(RefVwapp1) ;
		m1last = SelectedValue(RefVwapm1) ;
		p2last = SelectedValue(RefVwapp2) ;
		m2last = SelectedValue(RefVwapm2) ;
showlvls = True ;
		vwapextPlot = LineArray(x0, vwaplast , x1, vwaplast ) ;
		Plot(vwapextPlot , "", Clrvwap, styleLine|styleNoLabel|styleNoTitle|styleNoRescale|styledata|styleshow, 0,0,vwapextend, extlayer) ;
		if (MAwidth > 0)
			PlotOHLC(vwapextPlot +MAwidth, vwapextPlot +MAwidth, vwapextPlot -MAwidth, vwapextPlot -MAwidth, "",Clrvwap, styleCloud|styleNoLabel|styleNoRescale|styledata|styleshow, 0, 0, vwapextend, 0 ) ;
		if (showlvltext)
			PlotText(NumToStr(vwaplast , 8.1), BarCount+Vwapextend-3, vwaplast , colorBlack) ;

		p1extPlot = LineArray(x0, p1last , x1, p1last ) ;
		Plot(p1extPlot , "", Clrvwapp1, styleLine|styleNoLabel|styleNoTitle|styleNoRescale|styledata|styleshow, 0,0,vwapextend, extlayer) ;
		if (SDwidth > 0)
			PlotOHLC(p1extPlot +SDwidth , p1extPlot +SDwidth , p1extPlot -SDwidth , p1extPlot -SDwidth , "",Clrvwapp1, styleCloud|styleNoLabel|styleNoRescale|styledata|styleshow, 0, 0, vwapextend, 0 ) ;
		if (showlvltext)
			PlotText(NumToStr(p1last , 8.1), BarCount+Vwapextend-3, p1last , colorBlack) ;

		m1extPlot = LineArray(x0, m1last , x1, m1last ) ;
		Plot(m1extPlot , "", Clrvwapm1, styleLine|styleNoLabel|styleNoTitle|styleNoRescale|styledata|styleshow, 0,0,vwapextend, extlayer) ;
		if (SDwidth > 0)
			PlotOHLC(m1extPlot +SDwidth , m1extPlot +SDwidth , m1extPlot -SDwidth , m1extPlot -SDwidth , "",Clrvwapm1, styleCloud|styleNoLabel|styleNoRescale|styledata|styleshow, 0, 0, vwapextend, 0 ) ;
		if (showlvltext)
			PlotText(NumToStr(m1last , 8.1), BarCount+Vwapextend-3, m1last , colorBlack) ;

		p2extPlot = LineArray(x0, p2last , x1, p2last ) ;
		Plot(p2extPlot , "", Clrvwapp1, styleLine|styleNoLabel|styleNoTitle|styleNoRescale|styledata|styleshow, 0,0,vwapextend, extlayer) ;
		if (SD2width > 0)
			PlotOHLC(p2extPlot +SD2width , p2extPlot +SD2width , p2extPlot -SD2width , p2extPlot -SD2width , "",Clrvwapp1, styleCloud|styleNoLabel|styleNoRescale|styledata|styleshow, 0, 0, vwapextend, 0 ) ;
		if (showlvltext)
			PlotText(NumToStr(p2last , 8.1), BarCount+Vwapextend-3, p2last , colorBlack) ;

		m2extPlot = LineArray(x0, m2last , x1, m2last ) ;
		Plot(m2extPlot , "", Clrvwapm1, styleLine|styleNoLabel|styleNoTitle|styleNoRescale|styledata|styleshow, 0,0,vwapextend, extlayer) ;
		if (SD2width > 0)
			PlotOHLC(m2extPlot +SD2width , m2extPlot +SD2width , m2extPlot -SD2width , m2extPlot -SD2width , "",Clrvwapm1, styleCloud|styleNoLabel|styleNoRescale|styledata|styleshow, 0, 0, vwapextend, 0 ) ;
		if (showlvltext)
			PlotText(NumToStr(m2last , 8.1), BarCount+Vwapextend-3, m2last, colorBlack) ;

		styleshow = IIf(showhalfsd, 0, styleNoDraw) ;
		p05last = SelectedValue(RefVwapp05) ;
		m05last = SelectedValue(RefVwapm05) ;
		p15last = SelectedValue(RefVwapp15) ;
		m15last = SelectedValue(RefVwapm15) ;
		p25last = SelectedValue(RefVwapp25) ;
		m25last = SelectedValue(RefVwapm25) ;

		m05extPlot = LineArray(x0, m05last , x1, m05last ) ;
		Plot(m05extPlot , "", Clrvwapm1, styleLine|styleNoLabel|styleNoTitle|styleNoRescale|styledata|styleshow, 0,0,vwapextend, extlayer) ;
		p05extPlot = LineArray(x0, p05last , x1, p05last ) ;
		Plot(p05extPlot , "", Clrvwapm1, styleLine|styleNoLabel|styleNoTitle|styleNoRescale|styledata|styleshow, 0,0,vwapextend, extlayer) ;
		m15extPlot = LineArray(x0, m15last , x1, m15last ) ;
		Plot(m15extPlot , "", Clrvwapm1, styleLine|styleNoLabel|styleNoTitle|styleNoRescale|styledata|styleshow, 0,0,vwapextend, extlayer) ;
		p15extPlot = LineArray(x0, p15last , x1, p15last ) ;
		Plot(p15extPlot , "", Clrvwapm1, styleLine|styleNoLabel|styleNoTitle|styleNoRescale|styledata|styleshow, 0,0,vwapextend, extlayer) ;
		m25extPlot = LineArray(x0, m25last , x1, m25last ) ;
		Plot(m25extPlot , "", Clrvwapm1, styleLine|styleNoLabel|styleNoTitle|styleNoRescale|styledata|styleshow, 0,0,vwapextend, extlayer) ;
		p25extPlot = LineArray(x0, p25last , x1, p25last ) ;
		Plot(p25extPlot , "", Clrvwapm1, styleLine|styleNoLabel|styleNoTitle|styleNoRescale|styledata|styleshow, 0,0,vwapextend, extlayer) ;

		if (showlvltext)
		{
		PlotText(NumToStr(m05last , 8.1), BarCount+Vwapextend-3, m05last , colorBlack) ;
		PlotText(NumToStr(p05last , 8.1), BarCount+Vwapextend-3, p05last , colorBlack) ;

		PlotText(NumToStr(m15last , 8.1), BarCount+Vwapextend-3, m15last , colorBlack) ;
		PlotText(NumToStr(p15last , 8.1), BarCount+Vwapextend-3, p15last , colorBlack) ;

		PlotText(NumToStr(m25last , 8.1), BarCount+Vwapextend-3, m25last , colorBlack) ;
		PlotText(NumToStr(p25last , 8.1), BarCount+Vwapextend-3, p25last , colorBlack) ;
		}

		if (showoncrb)
		{
			Ht = Refh ;
			Lt = Refl ;
			Ct = Refc ;
		}
		else
		{
			Ht = H ;
			Lt = L ;
			Ct = C ;
		}

		Avgp = (Ht+Lt+Ct)/3 ;

	if (showtradearr)
	{

		Buy = Avgp >= Refvwapp1 ;
		Short = Avgp <= Refvwapm1 ;

		Sell =  Avgp <= Refvwapp1 ;
		Cover = Avgp >= Refvwapm1 ;

		Buy = ExRem(Buy, Short OR Sell) ;
		Short = ExRem(Short, Buy OR Cover) ;

		sdp1touch = False ; // Ht >= Refvwapp1 ;
		sdm1touch = False ; //Lt >= Refvwapm1 ;

		Sell = ExRem(Sell, Buy OR sdp1touch ) ;
		Cover = ExRem(Cover, Short OR sdm1touch ) ;

		PlotShapes(Cover*shapeUpArrow, colorViolet, 0, Ht, 12) ;
		PlotShapes(Sell*shapeDownArrow, colorViolet, 0, Lt, 12) ;

		PlotShapes(Buy*shapeUpArrow, colorViolet, 0, Ht, 12) ;
		PlotShapes(Short*shapeDownArrow, colorViolet, 0, Lt, 12) ;

	}

	shift = Param("Shift", 0, -1, 0, 1) ;

	prevdayvalue = prevdayvwap = ValueWhen(Ref(newdt,1), RefVWAP, 1) ;
	prevdayvaluelow = prevdayvwapm1 = ValueWhen(Ref(newdt,1), RefVwapm1, 1) ;
	prevdayvaluehigh = prevdayvwapp1 = ValueWhen(Ref(newdt,1), RefVwapp1, 1) ;
	prevdayvwapm2 = ValueWhen(Ref(newdt,1), RefVwapm2, 1) ;

		styleshow = IIf(showvwapswband, 0, styleNoDraw) ;
		swclr = ParamColor("Sideways Color", colorLavender) ;
		upclr =  ParamColor("Bull Bias Color", colorSkyblue) ;
		dnclr =  ParamColor("Bear Bias Color", colorRose) ;

		if (ndays >= 1)
		{

			bandclr = IIf(Refvwap < prevdayvaluelow, dnclr, IIf(Refvwap > prevdayvaluehigh, upclr, swclr)) ;

			
		PlotOHLC(IIf(Lastbar, Null, RefVwapp1), IIf(Lastbar, Null, RefVwapp1), IIf(Lastbar, Null, RefVwap), IIf(Lastbar, Null, RefVwap), "",bandclr, styleCloud|styleNoLabel|styleNoRescale|styledata|styleshow, 0, 0, 0, Vwaplayer ) ;
		PlotOHLC(IIf(Lastbar, Null, RefVwap), IIf(Lastbar, Null, RefVwap), IIf(Lastbar, Null, RefVwapm1), IIf(Lastbar, Null, RefVwapm1), "",bandclr, styleCloud|styleNoLabel|styleNoRescale|styledata|styleshow, 0, 0, 0, Vwaplayer ) ;
			
		if (showextswband)
		{
			styleshow = IIf(showextprevday, 0, styleNoDraw) ;
			x0 = BarCount - (swbandextend +1)+1 ;
			x1 = BarCount -1 ;

			Hdlast = SelectedValue(RefVwapp1) ;
			Ldlast = SelectedValue(RefVwapm1) ;

			Hplot = LineArray(x0, Hdlast, x1, Hdlast) ;
//			Plot(Hplot, "VAHext"+strnday, colorOrange, styleLine|styleNoLabel|styleNoTitle|styleNoRescale|styledata|styleshow, 0,0,extend, extlayer) ;
			LPlot = LineArray(x0, Ldlast, x1, Ldlast) ;
//			Plot(LPlot, "VALext"+strnday, colorGreen, styleLine|styleNoLabel|styleNoTitle|styleNoRescale|styledata|styleshow, 0,0,extend, extlayer) ;

			styleshow = IIf(showextswband, 0, styleNoDraw) ;
			PlotOHLC(HPlot, HPlot, LPlot, LPlot, "", bandclr , styleCloud|styleNoLabel|styleNoTitle|styleNoRescale|styledata|styleshow, 0,0,swbandextend ,extlayer ) ;

		}


		}
		else
				PlotOHLC(IIf(Lastbar, Null, RefVwapm1), IIf(Lastbar, Null, RefVwapm1), IIf(Lastbar, Null, RefVwapp1), IIf(Lastbar, Null, RefVwapp1), "",swclr, styleCloud|styleNoLabel|styleNoRescale|styledata|styleshow, 0, 0, 0, Vwaplayer ) ;


		if (shift == -1)
		{
			prevdayvaluehigh = prevdayvwap;
			prevdayvalue = prevdayvwapm1 ;
			prevdayvaluelow = prevdayvwapm2 ;
		}

		styleshow = IIf(showprevdayvals, 0, styleNoDraw) ;
		Plot(IIf(Lastbar, Null, prevdayvalue), "Prev VWAP", Clrvwap, styleDots|styleNoRescale+stylelabel|styleNoTitle|styledata|styleshow) ;
		Plot(IIf(Lastbar, Null, prevdayvaluelow), "VAL"+strnday, Clrvwapm1, styleDots|styleNoRescale+stylelabel+styleNoTitle|styledata|styleshow) ;
		Plot(IIf(Lastbar, Null, prevdayvaluehigh), "VAH"+strnday, Clrvwapp1, styleDots|styleNoRescale+stylelabel+styleNoTitle|styledata|styleshow) ;

		Clrprevdayband = ParamColor("Prev Day Band Color", colorRose);
			styleshow = IIf(showprevdayband, 0, styleNoDraw) ;
			PlotOHLC(IIf(Lastbar, Null, prevdayvaluelow), IIf(Lastbar, Null, prevdayvaluelow), IIf(Lastbar, Null, prevdayvaluehigh), IIf(Lastbar, Null, prevdayvaluehigh), "",Clrprevdayband, styleCloud|styleNoLabel|styleNoRescale|styledata|styleshow, 0, 0, 0, Vwaplayer ) ;


			styleshow = IIf(showprev2dayvals, 0, styleNoDraw) ;
			prev2dayvalue = prev2dayvwap = ValueWhen(Ref(newdt,1), RefVWAP, 2) ;
			prev2dayvaluelow = prev2dayvwapm1 = ValueWhen(Ref(newdt,1), RefVwapm1, 2) ;
			prev2dayvaluehigh = prev2dayvwapp1 = ValueWhen(Ref(newdt,1), RefVwapp1, 2) ;
			prev2dayvwapm2 = ValueWhen(Ref(newdt,1), RefVwapm2, 2) ;

			Plot(IIf(Lastbar, Null, prev2dayvalue), "2day prev VWAP"+strnday, Clrvwap, styleStaircase|styleThick|stylelabel|styleNoRescale+styleNoTitle|styledata|styleshow) ;
			Plot(IIf(Lastbar, Null, prev2dayvaluelow), "2day VAL"+strnday, Clrvwapm1, styleStaircase|styleThick|stylelabel|styleNoRescale+styleNoTitle|styledata|styleshow) ;
			Plot(IIf(Lastbar, Null, prev2dayvaluehigh), "2day VAH"+strnday, Clrvwapp1, styleStaircase|styleThick|stylelabel|styleNoRescale+styleNoTitle|styledata|styleshow) ;


		styleshow = IIf(showextprevday, 0, styleNoDraw) ;
		x0 = BarCount - (extend+1)+1 ;
		x1 = BarCount -1 ;

		Hdlast = SelectedValue(prevdayvaluehigh ) ;
		Ldlast = SelectedValue(prevdayvaluelow ) ;

		Hplot = LineArray(x0, Hdlast, x1, Hdlast) ;
		Plot(Hplot, "VAHext"+strnday, colorViolet, styleLine|styleNoLabel|styleNoTitle|styleNoRescale|styledata|styleshow, 0,0,extend, extlayer) ;
		LPlot = LineArray(x0, Ldlast, x1, Ldlast) ;
		Plot(LPlot, "VALext"+strnday, colorViolet, styleLine|styleNoLabel|styleNoTitle|styleNoRescale|styledata|styleshow, 0,0,extend, extlayer) ;

			styleshow = IIf(showextbandprevday, 0, styleNoDraw) ;
			PlotOHLC(HPlot, HPlot, LPlot, LPlot, "", Clrprevdayband, styleCloud|styleNoLabel|styleNoTitle|styleNoRescale|styledata|styleshow, 0,0,extend,extlayer ) ;


		showvwaptrend = ParamToggle("Show VWAP Trend", "No|Yes", 0) ;
		styleshow = IIf(showvwaptrend, 0, styleNoDraw) ;
		up = RefVwapp1 >= Ref(RefVwapp1, -1) AND RefVwapm1 >= Ref(RefVwapm1, -1);
		down = RefVwapp1 <= Ref(RefVwapp1, -1) AND RefVwapm1 <= Ref(RefVwapm1, -1) ;
		expand = RefVwapp1 >= Ref(RefVwapp1, -1) AND RefVwapm1 <= Ref(RefVwapm1, -1);


		Clr = IIf(up AND down, colorLavender, IIf(up, colorBlue, IIf(down, colorRed, IIf(expand, IIf(Ct > RefVwap, colorGreen, colorLightOrange), colorLavender)))) ;

		Plot(4, "", Clr, styleArea|styleNoLabel|styleOwnScale|styledata|styleshow, 0, 100,-1) ;


	
	if (showcomm AND NOT nodraw)
	{
		tdayvalue = RefVWAP ;
		tdayvaluehigh = Refvwapp1 ;
		tdayvaluelow = Refvwapm1 ;

		prevdayscore = IIf(Avgp > prevdayvaluehigh, 1,
							IIf(Avgp > prevdayvaluelow, 0,
								-1)) ;

		tdayscore = IIf(Avgp > tdayvaluehigh, 2,
							IIf(Avgp > tdayvalue, 1,
							IIf(Avgp > tdayvaluelow, -1,
								-2))) ;

		totalscore = prevdayscore+tdayscore ;

		switch (SelectedValue(prevdayscore))
		{
			case 1: 
				strprevday = "Above Prev Day Value High " + NumToStr(SelectedValue(prevdayvaluehigh), 1.1);
				Clrprevday = colorBlue ;
				break ;
			case 0: 
				strprevday = "In Prev Day Value Range " + NumToStr(SelectedValue(prevdayvaluelow), 1.1) + " - " +  NumToStr(SelectedValue(prevdayvaluehigh), 1.1);
				Clrprevday = colorLavender ;
				break ;			
			case -1: 
				strprevday = "Below Prev Day Value Low " + NumToStr(SelectedValue(prevdayvaluelow), 1.1);
				Clrprevday = colorRed ;
				break ;
		}

		switch (SelectedValue(tdayscore))
		{
			case 2: 
				strtday = "Above Day Value High " + NumToStr(SelectedValue(tdayvaluehigh), 1.1);
				Clrtday = colorBlue ;
				break ;
			case 1: 
				strtday = "Above Day VWAP " + NumToStr(SelectedValue(tdayvalue), 1.1);
				Clrtday = colorSkyblue ;
				break ;			
			case 0: 
				strtday = "VWAP " + NumToStr(SelectedValue(tdayvalue), 1.1);
				Clrtday = colorLavender ;
				break ;
			case -1: 
				strtday = "Below Day VWAP " + NumToStr(SelectedValue(tdayvalue), 1.1);
				Clrtday = colorRose ;
				break ;
			case -2: 
				strtday = "Below Day Value Low " + NumToStr(SelectedValue(tdayvaluelow), 1.1);
				Clrtday = colorRed ;
				break ;
		}

	fontsz = Param("Font Size", 14, 0, 1000, 1);
	GfxSelectFont( "Tahoma", fontsz, 100 );
	GfxSetBkMode( 1 );
	pxHeight = Status( "pxchartheight" ) ;
	pxWidth = Status( "pxchartwidth");
	dt_flag = 16 /*wordbreak*/;
	textht = 75;
	textwidth = 150 ;
	x = pxWidth - Param("from right edge", 250, 0, 1000, 1) ;
	y = Param("From Top", 50, 0, 1000, 1) ;

	GfxSetTextColor( Clrprevday );
	GfxDrawText(strprevday,  x,y, x+textwidth, y+textht , dt_flag) ;

	y = y + textht ;
	GfxSetTextColor( Clrtday );
	GfxDrawText(strtday,  x,y, x+textwidth, y+textht , dt_flag) ;

	y = y ; //+ textht ;
	xbar = x + 150 ;
	Colwidth = 40 ;
	Colht = 75 ;
	tscore = SelectedValue(totalscore) ;

		switch (tscore)
		{
			case 3: 
				strnet = "Strong Bull" ;
				Clrnet = colorBlue ;
				break ;
			case 2: 
				strnet = "Mild Bull" ;
				Clrnet = colorBlue ;
				break ;
			case 1: 
				strnet = "Bull Bias" ;
				Clrnet = colorSkyblue ;
				break ;			
			case 0: 
				strnet = "Neutral" ;
				Clrnet = colorLavender ;
				break ;			
			case -1: 
				strnet = "Bear Bias" ;
				Clrnet = colorRose ;
				break ;
			case -2: 
				strnet = "Mild Bear" ;
				Clrnet = colorRed ;
				break ;
			case -3: 
				strnet = "Strong Bear" ;
				Clrnet = colorRed ;
				break ;
		}

		if (tscore > 0)
		{
			
			GfxSelectSolidBrush(colorBlue) ;
			GfxSelectPen(colorBlue) ;
			GfxRectangle(xbar, y, xbar+Colwidth, y+Colht*tscore) ;
			GfxSelectSolidBrush(colorLightGrey) ;
			GfxRectangle(xbar, y+Colht*tscore, xbar+Colwidth, y+Colht*3) ;
		}
		else if (tscore == 0)
		{
			
			GfxSelectSolidBrush(colorLavender) ;
			GfxSelectPen(colorLavender) ;
			GfxRectangle(xbar, y, xbar+Colwidth, y+Colht*3) ;

		}
		else
		{
			
			GfxSelectSolidBrush(colorRed) ;
			GfxSelectPen(colorRed) ;
			GfxRectangle(xbar, y, xbar+Colwidth, y+Colht*abs(tscore)) ;
			GfxSelectSolidBrush(colorLightGrey) ;
			GfxRectangle(xbar, y+Colht*abs(tscore), xbar+Colwidth, y+Colht*3) ;

		}

		y = y + textht ;
		GfxSetTextColor( Clrnet );
		GfxDrawText(strnet,  x,y, x+textwidth, y+textht , dt_flag) ;

	}

	if (showtext AND NOT nodraw AND NOT showlvls)
	{
		PlotText(NumToStr(RefVwapp1[BarCount-1], 1.1), BarCount+1, RefVwapp1[BarCount-1],Clrtext) ;
		PlotText(NumToStr(RefVwapm1[BarCount-1], 1.1), BarCount+1, RefVwapm1[BarCount-1],Clrtext) ;
		PlotText(NumToStr(RefVwap[BarCount-1], 1.1), BarCount+1, RefVwap[BarCount-1],Clrtext) ;
		PlotText(NumToStr(RefVwapp2[BarCount-1], 1.1), BarCount+1, RefVwapp2[BarCount-1],Clrtext) ;
		PlotText(NumToStr(RefVwapm2[BarCount-1], 1.1), BarCount+1, RefVwapm2[BarCount-1],Clrtext) ;

		if (showhalfsd)
		{
			PlotText(NumToStr(RefVwapp05[BarCount-1], 1.1), BarCount+1, RefVwapp05[BarCount-1],Clrtext) ;
			PlotText(NumToStr(RefVwapm05[BarCount-1], 1.1), BarCount+1, RefVwapm05[BarCount-1],Clrtext) ;
			PlotText(NumToStr(RefVwapp15[BarCount-1], 1.1), BarCount+1, RefVwapp15[BarCount-1],Clrtext) ;
			PlotText(NumToStr(RefVwapm15[BarCount-1], 1.1), BarCount+1, RefVwapm15[BarCount-1],Clrtext) ;
			PlotText(NumToStr(RefVwapp25[BarCount-1], 1.1), BarCount+1, RefVwapp25[BarCount-1],Clrtext) ;
			PlotText(NumToStr(RefVwapm25[BarCount-1], 1.1), BarCount+1, RefVwapm25[BarCount-1],Clrtext) ;
		}
	}

	if (showvahvaltext AND NOT nodraw)
	{
		PlotText(NumToStr(prevdayvalue[BarCount-1], 1.1), BarCount+1, prevdayvalue[BarCount-1],Clrtext) ;
		PlotText(NumToStr(prevdayvaluelow[BarCount-1], 1.1), BarCount+1, prevdayvaluelow[BarCount-1],Clrtext) ;
		PlotText(NumToStr(prevdayvaluehigh[BarCount-1], 1.1), BarCount+1, prevdayvaluehigh[BarCount-1],Clrtext) ;
	}

	scalefactor = 0 ;
	if (scalefactor > 0 AND nDays <= 1)
	{
		Plot(SelectedValue(Ct)+scalefactor*SD, "", colorBlack, styleNoDraw) ;
		Plot(SelectedValue(Ct)-scalefactor*SD, "", colorBlack, styleNoDraw) ;
	}
}
 

pratapvb

Well-Known Member
#78
resharing 5day vwap ... there are a lot of parameters (hopefully self explanatory) to adjust the view and colors the way you want

Code:
SetChartOptions(2,chartWrapTitle);
SetChartBkColor(ParamColor("Background", colorLightGrey)) ;
// Author: Pratap Balakrishnan
// Copyright: All rights reserved. Not to be circulated or shared or posted on websites without the author's written permission.
// email id: [email protected]
//
/*
The VWAP for a stock is calculated by adding the dollars traded for every
transaction in that stock ("price" x "number of 
      shares traded") and dividing the total shares traded. A VWAP is computed
from the Open of the market to the market Close, AND is 
      calculated by Volume weighting all transactions during this time period

*/
Layer = Param("Layer", 0, -5, 5, 1) ;
showprice = ParamToggle("Show Price", "No|Yes", 0) ;
if (showprice)
{
_N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} " + EncodeColor( colorGreen ) + " Open %g," + EncodeColor( colorBlue ) + " Hi %g,  " + EncodeColor( colorRed ) + " Lo %g,  " + EncodeColor( colorBlack ) + " Close %g (%.1f%%) {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 ) ) ));
Plot( C, "Close",  colorBlack, styleNoTitle | styleCandle,0,0,0,Layer ); 
//Peaking Volumes
HiVolume = IIf(V > (2 * MA(V,10)), True, False); 
PlotShapes(shapeSmallCircle * HiVolume, IIf(C > O, colorBlack, colorWhite), 0, (O+C)/2, 0);
ToolTip = "Open = " + O + "\nHigh = " + H + "\nLow = " + L + "\nClose = " + C ;
}

farback = Param("Far Back", 500, 1, 10000, 1) ;
SetChartBkColor(colorLightGrey) ;
useforeign = ParamToggle("Set Foreign", "No|Yes", 0) ;
//List = GetCategorySymbols(categoryMarket, 0) ;
//forscript = ParamList("Scrip", List, 0) ;
forscript = ParamStr("Scrip", "NIFTY_F1") ;
if (useforeign)
	SetForeign(forscript); 

ndays = Param("N Days", 5, 0, 10000, 1) ;
period = Param("Period", 39, 1, 10000, 1) ;
showhalfsd = ParamToggle("Show half SD", "No|Yes", 1) ;
turnvwapoff = ParamToggle("VWAP All OFF", "No|Yes", 0) ;
showintitle = ParamToggle("Show in Title", "No|Yes", 0) ;
nodraw = ParamToggle("No Draw", "No|Yes", 0) ;
showtradearr = ParamToggle("Trade Arrow", "No|Yes", 0) ;
Filterdaych = ParamToggle("Filter Day Change Connections", "No|Yes", 0) ;

Vwapmode = ParamList("VWAP mode", "As Per Param|Only VWAP|VWAP+SD|VWAP+2SD", 0) ;
showvwap = ParamToggle("Show VWAP", "No|Yes", 1) ;
showvwap1sd = ParamToggle("Show VWAP 1SD", "No|Yes", 1) ;
showvwap2sd = ParamToggle("Show VWAP 2SD", "No|Yes", 1) ;
showvwap3sd = ParamToggle("Show VWAP 3SD", "No|Yes", 1) ;
showvwapband = ParamToggle("Show VWAP Trend Bands", "No|Yes", 1) ;
showvwapswband = ParamToggle("Show VWAP Sideways Bands", "No|Yes", 0) ;
showprevdayvals = ParamToggle("Show Prev Day Values", "No|Yes", 0) ;
showprev2dayvals = ParamToggle("Show Prev 2 Day Values", "No|Yes", 0) ;
showprevdayband = ParamToggle("Show Prev Day Bands", "No|Yes", 0) ;
showextprevday = ParamToggle("Show Extension", "No|Yes", 1)  ;
showextbandprevday = ParamToggle("Show Extension Band", "No|Yes", 0)  ;
extend = Param("Extend", 15, 0, 100, 1) ;

showextvwap = ParamToggle("Show VWAP Extension", "No|Yes", 1)  ;
vwapextend = Param("VWAP Extend", 15, 0, 100, 1) ;
showexttrndband = ParamToggle("Show Trend Band Extension", "No|Yes", 0)  ;
trndbandextend = Param("Trend Band Extend", 10, 0, 100, 1) ;
showextswband = ParamToggle("Show Sidewways Band Extension", "No|Yes", 0)  ;
swbandextend = Param("Sideways Band Extend", 10, 0, 100, 1) ;


Vwaplayer = Param("VWAP Layer", -3, -5, 5, 1) ;
extlayer = Param("Extend Layer", -2, -5, 5, 1) ;

MAwidthper = Param("MA Width %", 0.005, 0, 10, 1) ;
MAwidth = SelectedValue(C) * MAwidthper /100 ;
SDwidthper = Param("SD Width %", 0.01, 0, 10, 1) ;
SDwidth = SelectedValue(C) * SDwidthper /100 ;
SD2widthper = Param("SD2 Width %", 0.005, 0, 10, 1) ;
SD2width = SelectedValue(C) * SD2widthper /100 ;

showcomm = ParamToggle("Show Commentary", "No|Yes", 0) ;
showtext = ParamToggle("Show Text", "No|Yes", 1) ;
Clrtext = ParamColor("Color Text", colorBlack) ;
showvahvaltext = ParamToggle("Show VAH-VAL Text", "No|Yes", 1) ;

Onlyvwap = False ;
withsd = False ;
with2sd = False ;

switch (Vwapmode)
{
//	case "As Per Param":
//		break ;
	case "Only VWAP" :
		Onlyvwap = True ;
		break ;
	case "VWAP+SD" :
		Onlyvwap = True ;
		withsd = True;
		break ;
	case "VWAP+2SD" :
		Onlyvwap = True ;
		withsd = True;
		with2sd = True;
		break ;
}

if (Onlyvwap)
{	
	if (withsd)
		showvwap1sd = True;
	else
		showvwap1sd = False ;
	if (with2sd)
		showvwap2sd = True;
	else
		showvwap2sd = False ;
	showvwap3sd = False ;
//	showvwapband = False ;
//	showvwapswband = False ;
//	showprevdayvals = False ;
//	showprev2dayvals = False ;
//	showprevdayband = False ;

//	showtradearr = False ;
	showcomm = False ;
	showtext = withsd ;
}

stylelabel = 0 ;
if (showtext)
	stylelabel = styleNoLabel ;

styletitle = 0 ;
if (NOT showintitle)
	styletitle = styleNoTitle ;

styledata = 0 ;
if (nodraw)
{
	styledata = styleNoDraw ;
//showtradearr = False ;
}
//SetBarsRequired(int(farback*1.1)) ;

if (NOT turnvwapoff)
{
P = (H + L + C) / 3;
nd = Day() != Ref(Day(),-1) ;
Bars_so_far_today = 1 + BarsSince( nd);
if (ndays == 0)
	Bars_so_far_today = IIf(Bars_so_far_today < period, Bars_so_far_today, period) ;
else if (ndays > 1)
{
	bi = BarIndex() ;
/*
	bivwap0 = ValueWhen(nd, bi, ndays) ;
	bivwap1 = ValueWhen(nd, bi, ndays+1) ;

	dttn = DateTime() ;
	tnhr = DateTimeConvert(5, dttn) ;
	
	bivwap = IIf(tnhr < 12, bivwap1, bivwap0) ;
	Bars_so_far_today	 = 1 + (bi - bivwap) ;
*/
	bivwap = ValueWhen(nd, bi, ndays) ;
	nbar = (bi - bivwap) ;

	Bars_so_far_today	 = ValueWhen(nd, nbar, 1) *ndays ;
//	Bars_so_far_today	 = 375*ndays ;

}

//StartBar = ValueWhen(TimeNum() == 091600, BarIndex());
TodayVolume = Sum(V,Bars_so_far_today);
//IIf (BarIndex() >= StartBar, VWAP = Sum (C * V, Bars_so_far_today  ) / TodayVolume,0);
//Plot (VWAP,"VWAP",colorBlack, styleThick);

	CumV = Sum(V,Bars_so_far_today);
	CumVWP = Sum (P * V, Bars_so_far_today  );
   VWAP = CumVWP / CumV;
//	S = Sum(Ref(CumV, 0) * V * (P - Ref(VWAP, 0))^2,Bars_so_far_today) / CumV;
	VWAPsd = IIf(Ref(nd, 1), 0, VWAP);
	CumVsd = IIf(Ref(nd, 1), 0, CumV);

	S = Sum(Ref(CumVsd, -1) * V * (P - Ref(VWAPsd, -1))^2 / CumV,Bars_so_far_today);
	Variance = S / CumV;
	 SD = sqrt(Variance);
//	 VWAP = IIf(InRange,  VWAP, Null);
	Vwapm1 = VWAP - SD ;
	Vwapp1 = VWAP + SD ;
	Vwapm2 = VWAP -2*SD ;
	Vwapp2 = VWAP +2*SD ;
	Vwapm3 = VWAP -3*SD ;
	Vwapp3 = VWAP +3*SD ;

	Vwapm05 = VWAP - 0.5*SD ;
	Vwapp05 = VWAP + 0.5*SD ;
	Vwapm15 = VWAP -1.5*SD ;
	Vwapp15 = VWAP +1.5*SD ;
	Vwapm25 = VWAP -2.5*SD ;
	Vwapp25 = VWAP +2.5*SD ;

	showoncrb = ParamToggle("Show On CRB", "No|Yes", 0) ;
	Refo = ParamField("CRB Open", 7+0) ;
	Refh = ParamField("CRB High", 7+1) ;
	Refl = ParamField("CRB Low", 7+2) ;
	Refc = ParamField("CRB Close", 7+3) ;
	Refbi = ParamField("CRB BI", 7+4) ;
	Refcrbbars = ParamField("CRB Bars", 7+5) ;
	Refnbars = ParamField("TF Bars", 7+6) ;
	Refdt = ParamField("CRB DT", 7+7) ;

	if (showoncrb)
		dt = Refdt ;
	else
		dt = DateTime() ;

	dtnum = DateTimeConvert(0, dt) ;
	newdt = dtnum != Ref(dtnum, -1) ;

	Lastbar = H-H ;
	if (Filterdaych)
		Lastbar = dtnum != Ref(dtnum, 1) ;

	if (showoncrb)
	{
		diffbars = Refnbars -Refcrbbars -1 ;
		Crbst = BarCount - LastValue(Refcrbbars) -1;
		// convert to crb
		RefVWAP = Ref(VWAP, -diffbars) ;
		RefVwapm1 = Ref(Vwapm1, -diffbars) ;
		RefVwapp1 = Ref(Vwapp1, -diffbars) ;
		RefVwapm2 = Ref(Vwapm2, -diffbars) ;
		RefVwapp2 = Ref(Vwapp2, -diffbars) ;
		RefVwapm3 = Ref(Vwapm3, -diffbars) ;
		RefVwapp3 = Ref(Vwapp3, -diffbars) ;

		k = 0 ;
		for ( i = Crbst ; i < BarCount ; i++)
		{
			Refbar = Refbi[i];

			RefVWAP[i] = VWAP[Refbar] ;
			RefVwapm1[i] = Vwapm1[Refbar] ;
			RefVwapp1[i] = Vwapp1[Refbar] ;
			RefVwapm2[i] = Vwapm2[Refbar] ;
			RefVwapp2[i] = Vwapp2[Refbar] ;
			RefVwapm3[i] = Vwapm3[Refbar] ;
			RefVwapp3[i] = Vwapp3[Refbar] ;

			RefVwapm05[i] = Vwapm05[Refbar] ;
			RefVwapp05[i] = Vwapp05[Refbar] ;
			RefVwapm15[i] = Vwapm15[Refbar] ;
			RefVwapp15[i] = Vwapp15[Refbar] ;
			RefVwapm25[i] = Vwapm25[Refbar] ;
			RefVwapp25[i] = Vwapp25[Refbar] ;
			k++;
		}
	}
	else
	{
			RefVWAP = VWAP;
			RefVwapm1 = Vwapm1;
			RefVwapp1 = Vwapp1 ;
			RefVwapm2 = Vwapm2;
			RefVwapp2 = Vwapp2;
			RefVwapm3 = Vwapm3;
			RefVwapp3 = Vwapp3;

			RefVwapm05 = Vwapm05;
			RefVwapp05 = Vwapp05 ;
			RefVwapm15 = Vwapm15;
			RefVwapp15 = Vwapp15;
			RefVwapm25 = Vwapm25;
			RefVwapp25 = Vwapp25;
	}

	Clrvwap =  ParamColor("Color VWAP",colorGreen) ;
	Clrvwapm1 = ParamColor("Color VWAP -1SD", colorBlueGrey) ;
	Clrvwapp1 = ParamColor("Color VWAP +1SD", colorBlueGrey) ;

	strnday = NumToStr(ndays, 1.0)+"day";

		styleshow = IIf(showvwap, 0, styleNoDraw) ;
//		Vwapstyle = 0 ;
//		if (ndays > 1)
			Vwapstyle = styleNoRescale ;
		Plot(IIf(Lastbar, Null, RefVWAP), "VWAP"+strnday, Clrvwap , styleThick|stylelabel|Vwapstyle|styledata|styleshow, Null, Null, 0, 1);
		if (MAwidth > 0)
			PlotOHLC(IIf(Lastbar, Null, RefVWAP+MAwidth), IIf(Lastbar, Null, RefVWAP+MAwidth), IIf(Lastbar, Null, RefVWAP-MAwidth), IIf(Lastbar, Null, RefVWAP-MAwidth), "",Clrvwap, styleCloud|styleNoLabel|styleNoRescale|styledata|styleshow, 0, 0, 0, 1 ) ;

	Plot(SD, "SD", colorBlack, styleNoDraw|styleNoLabel|styleNoRescale) ;

		styleshow = IIf(showvwap1sd, 0, styleNoDraw) ;
		Plot(IIf(Lastbar, Null, RefVwapm1), "-1SD"+strnday, Clrvwapm1,  styleThick  + styleTitle + stylelabel+styleNoRescale|styledata|styleshow, Null, Null, 0, 1);
		Plot(IIf(Lastbar, Null, RefVwapp1), "+1SD"+strnday, Clrvwapp1, styleThick  + styleTitle + stylelabel+styleNoRescale|styledata|styleshow, Null, Null, 0, 1);
		if (SDwidth > 0)
			PlotOHLC(IIf(Lastbar, Null, RefVWAPm1+SDwidth), IIf(Lastbar, Null, RefVWAPm1+SDwidth), IIf(Lastbar, Null, RefVWAPm1-SDwidth), IIf(Lastbar, Null, RefVWAPm1-SDwidth), "",Clrvwapm1, styleCloud|styleNoLabel|styleNoRescale|styledata|styleshow, 0, 0, 0, 0 ) ;

		if (SDwidth > 0)
			PlotOHLC(IIf(Lastbar, Null, RefVWAPp1+SDwidth), IIf(Lastbar, Null, RefVWAPp1+SDwidth), IIf(Lastbar, Null, RefVWAPp1-SDwidth), IIf(Lastbar, Null, RefVWAPp1-SDwidth), "",Clrvwapp1, styleCloud|styleNoLabel|styleNoRescale|styledata|styleshow, 0, 0, 0, 0 ) ;


		styleshow = IIf(showvwap2sd, 0, styleNoDraw) ;
		Plot(IIf(Lastbar, Null, RefVwapm2), "-2SD"+strnday, ParamColor("Color VWAP -2SD", colorBlueGrey), styleThick  + styleTitle + stylelabel+styleNoRescale|styledata|styleshow, Null, Null, 0, 1);
		Plot(IIf(Lastbar, Null, RefVwapp2), "+2SD"+strnday, ParamColor("Color VWAP +2SD", colorBlueGrey), styleThick  + styleTitle + stylelabel+styleNoRescale|styledata|styleshow, Null, Null, 0, 1);
		if (SD2width > 0)
			PlotOHLC(IIf(Lastbar, Null, RefVWAPm2+SD2width), IIf(Lastbar, Null, RefVWAPm2+SD2width), IIf(Lastbar, Null, RefVWAPm2-SD2width), IIf(Lastbar, Null, RefVWAPm2-SD2width), "",ParamColor("Color VWAP -2SD", colorViolet), styleCloud|styleNoLabel|styleNoRescale|styledata|styleshow, 0, 0, 0, 0 ) ;

		if (SD2width > 0)
			PlotOHLC(IIf(Lastbar, Null, RefVWAPp2+SD2width), IIf(Lastbar, Null, RefVWAPp2+SD2width), IIf(Lastbar, Null, RefVWAPp2-SD2width), IIf(Lastbar, Null, RefVWAPp2-SD2width), "",ParamColor("Color VWAP +2SD", colorViolet), styleCloud|styleNoLabel|styleNoRescale|styledata|styleshow, 0, 0, 0, 0 ) ;

		styleshow = IIf(showvwap3sd, 0, styleNoDraw) ;
		Plot(IIf(Lastbar, Null, RefVwapm3), "-3SD"+strnday, ParamColor("Color VWAP -3SD", colorBlueGrey), styleThick  + styleNoTitle + stylelabel+styleNoRescale|styledata|styleshow, Null, Null, 0, 1);
		Plot(IIf(Lastbar, Null, RefVwapp3), "+3SD"+strnday, ParamColor("Color VWAP +3SD", colorBlueGrey), styleThick  + styleNoTitle + stylelabel+styleNoRescale|styledata|styleshow, Null, Null, 0, 1);

		styleshow = IIf(showhalfsd, 0, styleNoDraw) ;
		Plot(IIf(Lastbar, Null, RefVwapm05), "-0.5SD"+strnday, Clrvwapm1,  styleThick|styleDashed  + styleTitle + stylelabel+styleNoRescale|styledata|styleshow, Null, Null, 0, 1);
		Plot(IIf(Lastbar, Null, RefVwapp05), "+0.5SD"+strnday, Clrvwapp1, styleThick|styleDashed  + styleTitle + stylelabel+styleNoRescale|styledata|styleshow, Null, Null, 0, 1);
		Plot(IIf(Lastbar, Null, RefVwapm15), "-1.5SD"+strnday, Clrvwapm1,  styleThick|styleDashed  + styleTitle + stylelabel+styleNoRescale|styledata|styleshow, Null, Null, 0, 1);
		Plot(IIf(Lastbar, Null, RefVwapp15), "+1.5SD"+strnday, Clrvwapp1, styleThick|styleDashed  + styleTitle + stylelabel+styleNoRescale|styledata|styleshow, Null, Null, 0, 1);
		Plot(IIf(Lastbar, Null, RefVwapm25), "-2.5SD"+strnday, Clrvwapm1,  styleThick|styleDashed  + styleTitle + stylelabel+styleNoRescale|styledata|styleshow, Null, Null, 0, 1);
		Plot(IIf(Lastbar, Null, RefVwapp25), "+2.5SD"+strnday, Clrvwapp1, styleThick|styleDashed  + styleTitle + stylelabel+styleNoRescale|styledata|styleshow, Null, Null, 0, 1);



		styleshow = IIf(showvwapband, 0, styleNoDraw) ;
		dnclr = ParamColor("Down Trend", colorPink) ;
		upclr = ParamColor("Up Trend", colorSkyblue) ;
		PlotOHLC(IIf(Lastbar, Null, RefVwapm1), IIf(Lastbar, Null, RefVwapm1), IIf(Lastbar, Null, RefVwapm2), IIf(Lastbar, Null, RefVwapm2), "",ParamColor("Down Trend", colorPink), styleCloud|styleNoLabel|styleNoRescale|styledata|styleshow, 0, 0, 0, Vwaplayer ) ;
		PlotOHLC(IIf(Lastbar, Null, RefVwapp1), IIf(Lastbar, Null, RefVwapp1), IIf(Lastbar, Null, RefVwapp2), IIf(Lastbar, Null, RefVwapp2), "",ParamColor("Up Trend", colorPaleTurquoise), styleCloud|styleNoLabel|styleNoRescale|styledata|styleshow, 0, 0, 0, Vwaplayer ) ;
		if (showexttrndband)
		{
			styleshow = IIf(showexttrndband, 0, styleNoDraw) ;
			x0 = BarCount - (trndbandextend +1)+1 ;
			x1 = BarCount -1 ;

			Hdlast = SelectedValue(RefVwapp2) ;
			Ldlast = SelectedValue(RefVwapp1) ;

			Hplot = LineArray(x0, Hdlast, x1, Hdlast) ;
//			Plot(Hplot, "VAHext"+strnday, colorOrange, styleLine|styleNoLabel|styleNoTitle|styleNoRescale|styledata|styleshow, 0,0,extend, extlayer) ;
			LPlot = LineArray(x0, Ldlast, x1, Ldlast) ;
//			Plot(LPlot, "VALext"+strnday, colorGreen, styleLine|styleNoLabel|styleNoTitle|styleNoRescale|styledata|styleshow, 0,0,extend, extlayer) ;

			styleshow = IIf(showexttrndband, 0, styleNoDraw) ;
			PlotOHLC(HPlot, HPlot, LPlot, LPlot, "", upclr , styleCloud|styleNoLabel|styleNoTitle|styleNoRescale|styledata|styleshow, 0,0,trndbandextend ,extlayer ) ;

			Hdlast = SelectedValue(RefVwapm1) ;
			Ldlast = SelectedValue(RefVwapm2) ;

			Hplot = LineArray(x0, Hdlast, x1, Hdlast) ;
//			Plot(Hplot, "VAHext"+strnday, colorOrange, styleLine|styleNoLabel|styleNoTitle|styleNoRescale|styledata|styleshow, 0,0,extend, extlayer) ;
			LPlot = LineArray(x0, Ldlast, x1, Ldlast) ;

			PlotOHLC(HPlot, HPlot, LPlot, LPlot, "", dnclr , styleCloud|styleNoLabel|styleNoTitle|styleNoRescale|styledata|styleshow, 0,0,trndbandextend ,extlayer ) ;
		}


		styleshow = IIf(showextvwap, 0, styleNoDraw) ;
		x0 = BarCount - (vwapextend+1)+1 ;
		x1 = BarCount -1 ;

		vwaplast = SelectedValue(RefVWAP) ;
		p1last = SelectedValue(RefVwapp1) ;
		m1last = SelectedValue(RefVwapm1) ;
		p2last = SelectedValue(RefVwapp2) ;
		m2last = SelectedValue(RefVwapm2) ;
showlvls = True ;
		vwapextPlot = LineArray(x0, vwaplast , x1, vwaplast ) ;
		Plot(vwapextPlot , "", Clrvwap, styleLine|styleNoLabel|styleNoTitle|styleNoRescale|styledata|styleshow, 0,0,vwapextend, extlayer) ;
		if (MAwidth > 0)
			PlotOHLC(vwapextPlot +MAwidth, vwapextPlot +MAwidth, vwapextPlot -MAwidth, vwapextPlot -MAwidth, "",Clrvwap, styleCloud|styleNoLabel|styleNoRescale|styledata|styleshow, 0, 0, vwapextend, 0 ) ;
		PlotText(NumToStr(vwaplast , 8.1), BarCount+Vwapextend-3, vwaplast , colorBlack) ;

		p1extPlot = LineArray(x0, p1last , x1, p1last ) ;
		Plot(p1extPlot , "", Clrvwapp1, styleLine|styleNoLabel|styleNoTitle|styleNoRescale|styledata|styleshow, 0,0,vwapextend, extlayer) ;
		if (SDwidth > 0)
			PlotOHLC(p1extPlot +SDwidth , p1extPlot +SDwidth , p1extPlot -SDwidth , p1extPlot -SDwidth , "",Clrvwapp1, styleCloud|styleNoLabel|styleNoRescale|styledata|styleshow, 0, 0, vwapextend, 0 ) ;
		PlotText(NumToStr(p1last , 8.1), BarCount+Vwapextend-3, p1last , colorBlack) ;

		m1extPlot = LineArray(x0, m1last , x1, m1last ) ;
		Plot(m1extPlot , "", Clrvwapm1, styleLine|styleNoLabel|styleNoTitle|styleNoRescale|styledata|styleshow, 0,0,vwapextend, extlayer) ;
		if (SDwidth > 0)
			PlotOHLC(m1extPlot +SDwidth , m1extPlot +SDwidth , m1extPlot -SDwidth , m1extPlot -SDwidth , "",Clrvwapm1, styleCloud|styleNoLabel|styleNoRescale|styledata|styleshow, 0, 0, vwapextend, 0 ) ;
		PlotText(NumToStr(m1last , 8.1), BarCount+Vwapextend-3, m1last , colorBlack) ;

		p2extPlot = LineArray(x0, p2last , x1, p2last ) ;
		Plot(p2extPlot , "", Clrvwapp1, styleLine|styleNoLabel|styleNoTitle|styleNoRescale|styledata|styleshow, 0,0,vwapextend, extlayer) ;
		if (SD2width > 0)
			PlotOHLC(p2extPlot +SD2width , p2extPlot +SD2width , p2extPlot -SD2width , p2extPlot -SD2width , "",Clrvwapp1, styleCloud|styleNoLabel|styleNoRescale|styledata|styleshow, 0, 0, vwapextend, 0 ) ;
		PlotText(NumToStr(p2last , 8.1), BarCount+Vwapextend-3, p2last , colorBlack) ;

		m2extPlot = LineArray(x0, m2last , x1, m2last ) ;
		Plot(m2extPlot , "", Clrvwapm1, styleLine|styleNoLabel|styleNoTitle|styleNoRescale|styledata|styleshow, 0,0,vwapextend, extlayer) ;
		if (SD2width > 0)
			PlotOHLC(m2extPlot +SD2width , m2extPlot +SD2width , m2extPlot -SD2width , m2extPlot -SD2width , "",Clrvwapm1, styleCloud|styleNoLabel|styleNoRescale|styledata|styleshow, 0, 0, vwapextend, 0 ) ;
		PlotText(NumToStr(m2last , 8.1), BarCount+Vwapextend-3, m2last, colorBlack) ;

		styleshow = IIf(showhalfsd, 0, styleNoDraw) ;
		p05last = SelectedValue(RefVwapp05) ;
		m05last = SelectedValue(RefVwapm05) ;
		p15last = SelectedValue(RefVwapp15) ;
		m15last = SelectedValue(RefVwapm15) ;
		p25last = SelectedValue(RefVwapp25) ;
		m25last = SelectedValue(RefVwapm25) ;

		m05extPlot = LineArray(x0, m05last , x1, m05last ) ;
		Plot(m05extPlot , "", Clrvwapm1, styleLine|styleNoLabel|styleNoTitle|styleNoRescale|styledata|styleshow, 0,0,vwapextend, extlayer) ;
		p05extPlot = LineArray(x0, p05last , x1, p05last ) ;
		Plot(p05extPlot , "", Clrvwapm1, styleLine|styleNoLabel|styleNoTitle|styleNoRescale|styledata|styleshow, 0,0,vwapextend, extlayer) ;
		m15extPlot = LineArray(x0, m15last , x1, m15last ) ;
		Plot(m15extPlot , "", Clrvwapm1, styleLine|styleNoLabel|styleNoTitle|styleNoRescale|styledata|styleshow, 0,0,vwapextend, extlayer) ;
		p15extPlot = LineArray(x0, p15last , x1, p15last ) ;
		Plot(p15extPlot , "", Clrvwapm1, styleLine|styleNoLabel|styleNoTitle|styleNoRescale|styledata|styleshow, 0,0,vwapextend, extlayer) ;
		m25extPlot = LineArray(x0, m25last , x1, m25last ) ;
		Plot(m25extPlot , "", Clrvwapm1, styleLine|styleNoLabel|styleNoTitle|styleNoRescale|styledata|styleshow, 0,0,vwapextend, extlayer) ;
		p25extPlot = LineArray(x0, p25last , x1, p25last ) ;
		Plot(p25extPlot , "", Clrvwapm1, styleLine|styleNoLabel|styleNoTitle|styleNoRescale|styledata|styleshow, 0,0,vwapextend, extlayer) ;

		PlotText(NumToStr(m05last , 8.1), BarCount+Vwapextend-3, m05last , colorBlack) ;
		PlotText(NumToStr(p05last , 8.1), BarCount+Vwapextend-3, p05last , colorBlack) ;

		PlotText(NumToStr(m15last , 8.1), BarCount+Vwapextend-3, m15last , colorBlack) ;
		PlotText(NumToStr(p15last , 8.1), BarCount+Vwapextend-3, p15last , colorBlack) ;

		PlotText(NumToStr(m25last , 8.1), BarCount+Vwapextend-3, m25last , colorBlack) ;
		PlotText(NumToStr(p25last , 8.1), BarCount+Vwapextend-3, p25last , colorBlack) ;

		if (showoncrb)
		{
			Ht = Refh ;
			Lt = Refl ;
			Ct = Refc ;
		}
		else
		{
			Ht = H ;
			Lt = L ;
			Ct = C ;
		}

		Avgp = (Ht+Lt+Ct)/3 ;

	if (showtradearr)
	{

		Buy = Avgp >= Refvwapp1 ;
		Short = Avgp <= Refvwapm1 ;

		Sell =  Avgp <= Refvwapp1 ;
		Cover = Avgp >= Refvwapm1 ;

		Buy = ExRem(Buy, Short OR Sell) ;
		Short = ExRem(Short, Buy OR Cover) ;

		sdp1touch = False ; // Ht >= Refvwapp1 ;
		sdm1touch = False ; //Lt >= Refvwapm1 ;

		Sell = ExRem(Sell, Buy OR sdp1touch ) ;
		Cover = ExRem(Cover, Short OR sdm1touch ) ;

		PlotShapes(Cover*shapeUpArrow, colorViolet, 0, Ht, 12) ;
		PlotShapes(Sell*shapeDownArrow, colorViolet, 0, Lt, 12) ;

		PlotShapes(Buy*shapeUpArrow, colorViolet, 0, Ht, 12) ;
		PlotShapes(Short*shapeDownArrow, colorViolet, 0, Lt, 12) ;

	}

	shift = Param("Shift", 0, -1, 0, 1) ;

	prevdayvalue = prevdayvwap = ValueWhen(Ref(newdt,1), RefVWAP, 1) ;
	prevdayvaluelow = prevdayvwapm1 = ValueWhen(Ref(newdt,1), RefVwapm1, 1) ;
	prevdayvaluehigh = prevdayvwapp1 = ValueWhen(Ref(newdt,1), RefVwapp1, 1) ;
	prevdayvwapm2 = ValueWhen(Ref(newdt,1), RefVwapm2, 1) ;

		styleshow = IIf(showvwapswband, 0, styleNoDraw) ;
		swclr = ParamColor("Sideways Color", colorLavender) ;
		upclr =  ParamColor("Bull Bias Color", colorSkyblue) ;
		dnclr =  ParamColor("Bear Bias Color", colorRose) ;

		if (ndays >= 1)
		{

			bandclr = IIf(Refvwap < prevdayvaluelow, dnclr, IIf(Refvwap > prevdayvaluehigh, upclr, swclr)) ;

			
		PlotOHLC(IIf(Lastbar, Null, RefVwapp1), IIf(Lastbar, Null, RefVwapp1), IIf(Lastbar, Null, RefVwap), IIf(Lastbar, Null, RefVwap), "",bandclr, styleCloud|styleNoLabel|styleNoRescale|styledata|styleshow, 0, 0, 0, Vwaplayer ) ;
		PlotOHLC(IIf(Lastbar, Null, RefVwap), IIf(Lastbar, Null, RefVwap), IIf(Lastbar, Null, RefVwapm1), IIf(Lastbar, Null, RefVwapm1), "",bandclr, styleCloud|styleNoLabel|styleNoRescale|styledata|styleshow, 0, 0, 0, Vwaplayer ) ;
			
		if (showextswband)
		{
			styleshow = IIf(showextprevday, 0, styleNoDraw) ;
			x0 = BarCount - (swbandextend +1)+1 ;
			x1 = BarCount -1 ;

			Hdlast = SelectedValue(RefVwapp1) ;
			Ldlast = SelectedValue(RefVwapm1) ;

			Hplot = LineArray(x0, Hdlast, x1, Hdlast) ;
//			Plot(Hplot, "VAHext"+strnday, colorOrange, styleLine|styleNoLabel|styleNoTitle|styleNoRescale|styledata|styleshow, 0,0,extend, extlayer) ;
			LPlot = LineArray(x0, Ldlast, x1, Ldlast) ;
//			Plot(LPlot, "VALext"+strnday, colorGreen, styleLine|styleNoLabel|styleNoTitle|styleNoRescale|styledata|styleshow, 0,0,extend, extlayer) ;

			styleshow = IIf(showextswband, 0, styleNoDraw) ;
			PlotOHLC(HPlot, HPlot, LPlot, LPlot, "", bandclr , styleCloud|styleNoLabel|styleNoTitle|styleNoRescale|styledata|styleshow, 0,0,swbandextend ,extlayer ) ;

		}


		}
		else
				PlotOHLC(IIf(Lastbar, Null, RefVwapm1), IIf(Lastbar, Null, RefVwapm1), IIf(Lastbar, Null, RefVwapp1), IIf(Lastbar, Null, RefVwapp1), "",swclr, styleCloud|styleNoLabel|styleNoRescale|styledata|styleshow, 0, 0, 0, Vwaplayer ) ;


		if (shift == -1)
		{
			prevdayvaluehigh = prevdayvwap;
			prevdayvalue = prevdayvwapm1 ;
			prevdayvaluelow = prevdayvwapm2 ;
		}

		styleshow = IIf(showprevdayvals, 0, styleNoDraw) ;
		Plot(IIf(Lastbar, Null, prevdayvalue), "Prev VWAP", Clrvwap, styleDots|styleNoRescale+stylelabel|styleNoTitle|styledata|styleshow) ;
		Plot(IIf(Lastbar, Null, prevdayvaluelow), "VAL"+strnday, Clrvwapm1, styleDots|styleNoRescale+stylelabel+styleNoTitle|styledata|styleshow) ;
		Plot(IIf(Lastbar, Null, prevdayvaluehigh), "VAH"+strnday, Clrvwapp1, styleDots|styleNoRescale+stylelabel+styleNoTitle|styledata|styleshow) ;

		Clrprevdayband = ParamColor("Prev Day Band Color", colorRose);
			styleshow = IIf(showprevdayband, 0, styleNoDraw) ;
			PlotOHLC(IIf(Lastbar, Null, prevdayvaluelow), IIf(Lastbar, Null, prevdayvaluelow), IIf(Lastbar, Null, prevdayvaluehigh), IIf(Lastbar, Null, prevdayvaluehigh), "",Clrprevdayband, styleCloud|styleNoLabel|styleNoRescale|styledata|styleshow, 0, 0, 0, Vwaplayer ) ;


			styleshow = IIf(showprev2dayvals, 0, styleNoDraw) ;
			prev2dayvalue = prev2dayvwap = ValueWhen(Ref(newdt,1), RefVWAP, 2) ;
			prev2dayvaluelow = prev2dayvwapm1 = ValueWhen(Ref(newdt,1), RefVwapm1, 2) ;
			prev2dayvaluehigh = prev2dayvwapp1 = ValueWhen(Ref(newdt,1), RefVwapp1, 2) ;
			prev2dayvwapm2 = ValueWhen(Ref(newdt,1), RefVwapm2, 2) ;

			Plot(IIf(Lastbar, Null, prev2dayvalue), "2day prev VWAP"+strnday, Clrvwap, styleStaircase|styleThick|stylelabel|styleNoRescale+styleNoTitle|styledata|styleshow) ;
			Plot(IIf(Lastbar, Null, prev2dayvaluelow), "2day VAL"+strnday, Clrvwapm1, styleStaircase|styleThick|stylelabel|styleNoRescale+styleNoTitle|styledata|styleshow) ;
			Plot(IIf(Lastbar, Null, prev2dayvaluehigh), "2day VAH"+strnday, Clrvwapp1, styleStaircase|styleThick|stylelabel|styleNoRescale+styleNoTitle|styledata|styleshow) ;


		styleshow = IIf(showextprevday, 0, styleNoDraw) ;
		x0 = BarCount - (extend+1)+1 ;
		x1 = BarCount -1 ;

		Hdlast = SelectedValue(prevdayvaluehigh ) ;
		Ldlast = SelectedValue(prevdayvaluelow ) ;

		Hplot = LineArray(x0, Hdlast, x1, Hdlast) ;
		Plot(Hplot, "VAHext"+strnday, colorViolet, styleLine|styleNoLabel|styleNoTitle|styleNoRescale|styledata|styleshow, 0,0,extend, extlayer) ;
		LPlot = LineArray(x0, Ldlast, x1, Ldlast) ;
		Plot(LPlot, "VALext"+strnday, colorViolet, styleLine|styleNoLabel|styleNoTitle|styleNoRescale|styledata|styleshow, 0,0,extend, extlayer) ;

			styleshow = IIf(showextbandprevday, 0, styleNoDraw) ;
			PlotOHLC(HPlot, HPlot, LPlot, LPlot, "", Clrprevdayband, styleCloud|styleNoLabel|styleNoTitle|styleNoRescale|styledata|styleshow, 0,0,extend,extlayer ) ;


		showvwaptrend = ParamToggle("Show VWAP Trend", "No|Yes", 0) ;
		styleshow = IIf(showvwaptrend, 0, styleNoDraw) ;
		up = RefVwapp1 >= Ref(RefVwapp1, -1) AND RefVwapm1 >= Ref(RefVwapm1, -1);
		down = RefVwapp1 <= Ref(RefVwapp1, -1) AND RefVwapm1 <= Ref(RefVwapm1, -1) ;
		expand = RefVwapp1 >= Ref(RefVwapp1, -1) AND RefVwapm1 <= Ref(RefVwapm1, -1);


		Clr = IIf(up AND down, colorLavender, IIf(up, colorBlue, IIf(down, colorRed, IIf(expand, IIf(Ct > RefVwap, colorGreen, colorLightOrange), colorLavender)))) ;

		Plot(4, "", Clr, styleArea|styleNoLabel|styleOwnScale|styledata|styleshow, 0, 100,-1) ;


	
	if (showcomm AND NOT nodraw)
	{
		tdayvalue = RefVWAP ;
		tdayvaluehigh = Refvwapp1 ;
		tdayvaluelow = Refvwapm1 ;

		prevdayscore = IIf(Avgp > prevdayvaluehigh, 1,
							IIf(Avgp > prevdayvaluelow, 0,
								-1)) ;

		tdayscore = IIf(Avgp > tdayvaluehigh, 2,
							IIf(Avgp > tdayvalue, 1,
							IIf(Avgp > tdayvaluelow, -1,
								-2))) ;

		totalscore = prevdayscore+tdayscore ;

		switch (SelectedValue(prevdayscore))
		{
			case 1: 
				strprevday = "Above Prev Day Value High " + NumToStr(SelectedValue(prevdayvaluehigh), 1.1);
				Clrprevday = colorBlue ;
				break ;
			case 0: 
				strprevday = "In Prev Day Value Range " + NumToStr(SelectedValue(prevdayvaluelow), 1.1) + " - " +  NumToStr(SelectedValue(prevdayvaluehigh), 1.1);
				Clrprevday = colorLavender ;
				break ;			
			case -1: 
				strprevday = "Below Prev Day Value Low " + NumToStr(SelectedValue(prevdayvaluelow), 1.1);
				Clrprevday = colorRed ;
				break ;
		}

		switch (SelectedValue(tdayscore))
		{
			case 2: 
				strtday = "Above Day Value High " + NumToStr(SelectedValue(tdayvaluehigh), 1.1);
				Clrtday = colorBlue ;
				break ;
			case 1: 
				strtday = "Above Day VWAP " + NumToStr(SelectedValue(tdayvalue), 1.1);
				Clrtday = colorSkyblue ;
				break ;			
			case 0: 
				strtday = "VWAP " + NumToStr(SelectedValue(tdayvalue), 1.1);
				Clrtday = colorLavender ;
				break ;
			case -1: 
				strtday = "Below Day VWAP " + NumToStr(SelectedValue(tdayvalue), 1.1);
				Clrtday = colorRose ;
				break ;
			case -2: 
				strtday = "Below Day Value Low " + NumToStr(SelectedValue(tdayvaluelow), 1.1);
				Clrtday = colorRed ;
				break ;
		}

	fontsz = Param("Font Size", 14, 0, 1000, 1);
	GfxSelectFont( "Tahoma", fontsz, 100 );
	GfxSetBkMode( 1 );
	pxHeight = Status( "pxchartheight" ) ;
	pxWidth = Status( "pxchartwidth");
	dt_flag = 16 /*wordbreak*/;
	textht = 75;
	textwidth = 150 ;
	x = pxWidth - Param("from right edge", 250, 0, 1000, 1) ;
	y = Param("From Top", 50, 0, 1000, 1) ;

	GfxSetTextColor( Clrprevday );
	GfxDrawText(strprevday,  x,y, x+textwidth, y+textht , dt_flag) ;

	y = y + textht ;
	GfxSetTextColor( Clrtday );
	GfxDrawText(strtday,  x,y, x+textwidth, y+textht , dt_flag) ;

	y = y ; //+ textht ;
	xbar = x + 150 ;
	Colwidth = 40 ;
	Colht = 75 ;
	tscore = SelectedValue(totalscore) ;

		switch (tscore)
		{
			case 3: 
				strnet = "Strong Bull" ;
				Clrnet = colorBlue ;
				break ;
			case 2: 
				strnet = "Mild Bull" ;
				Clrnet = colorBlue ;
				break ;
			case 1: 
				strnet = "Bull Bias" ;
				Clrnet = colorSkyblue ;
				break ;			
			case 0: 
				strnet = "Neutral" ;
				Clrnet = colorLavender ;
				break ;			
			case -1: 
				strnet = "Bear Bias" ;
				Clrnet = colorRose ;
				break ;
			case -2: 
				strnet = "Mild Bear" ;
				Clrnet = colorRed ;
				break ;
			case -3: 
				strnet = "Strong Bear" ;
				Clrnet = colorRed ;
				break ;
		}

		if (tscore > 0)
		{
			
			GfxSelectSolidBrush(colorBlue) ;
			GfxSelectPen(colorBlue) ;
			GfxRectangle(xbar, y, xbar+Colwidth, y+Colht*tscore) ;
			GfxSelectSolidBrush(colorLightGrey) ;
			GfxRectangle(xbar, y+Colht*tscore, xbar+Colwidth, y+Colht*3) ;
		}
		else if (tscore == 0)
		{
			
			GfxSelectSolidBrush(colorLavender) ;
			GfxSelectPen(colorLavender) ;
			GfxRectangle(xbar, y, xbar+Colwidth, y+Colht*3) ;

		}
		else
		{
			
			GfxSelectSolidBrush(colorRed) ;
			GfxSelectPen(colorRed) ;
			GfxRectangle(xbar, y, xbar+Colwidth, y+Colht*abs(tscore)) ;
			GfxSelectSolidBrush(colorLightGrey) ;
			GfxRectangle(xbar, y+Colht*abs(tscore), xbar+Colwidth, y+Colht*3) ;

		}

		y = y + textht ;
		GfxSetTextColor( Clrnet );
		GfxDrawText(strnet,  x,y, x+textwidth, y+textht , dt_flag) ;

	}

	if (showtext AND NOT nodraw AND NOT showlvls)
	{
		PlotText(NumToStr(RefVwapp1[BarCount-1], 1.1), BarCount+1, RefVwapp1[BarCount-1],Clrtext) ;
		PlotText(NumToStr(RefVwapm1[BarCount-1], 1.1), BarCount+1, RefVwapm1[BarCount-1],Clrtext) ;
		PlotText(NumToStr(RefVwap[BarCount-1], 1.1), BarCount+1, RefVwap[BarCount-1],Clrtext) ;
		PlotText(NumToStr(RefVwapp2[BarCount-1], 1.1), BarCount+1, RefVwapp2[BarCount-1],Clrtext) ;
		PlotText(NumToStr(RefVwapm2[BarCount-1], 1.1), BarCount+1, RefVwapm2[BarCount-1],Clrtext) ;

		if (showhalfsd)
		{
			PlotText(NumToStr(RefVwapp05[BarCount-1], 1.1), BarCount+1, RefVwapp05[BarCount-1],Clrtext) ;
			PlotText(NumToStr(RefVwapm05[BarCount-1], 1.1), BarCount+1, RefVwapm05[BarCount-1],Clrtext) ;
			PlotText(NumToStr(RefVwapp15[BarCount-1], 1.1), BarCount+1, RefVwapp15[BarCount-1],Clrtext) ;
			PlotText(NumToStr(RefVwapm15[BarCount-1], 1.1), BarCount+1, RefVwapm15[BarCount-1],Clrtext) ;
			PlotText(NumToStr(RefVwapp25[BarCount-1], 1.1), BarCount+1, RefVwapp25[BarCount-1],Clrtext) ;
			PlotText(NumToStr(RefVwapm25[BarCount-1], 1.1), BarCount+1, RefVwapm25[BarCount-1],Clrtext) ;
		}
	}

	if (showvahvaltext AND NOT nodraw)
	{
		PlotText(NumToStr(prevdayvalue[BarCount-1], 1.1), BarCount+1, prevdayvalue[BarCount-1],Clrtext) ;
		PlotText(NumToStr(prevdayvaluelow[BarCount-1], 1.1), BarCount+1, prevdayvaluelow[BarCount-1],Clrtext) ;
		PlotText(NumToStr(prevdayvaluehigh[BarCount-1], 1.1), BarCount+1, prevdayvaluehigh[BarCount-1],Clrtext) ;
	}

	scalefactor = 0 ;
	if (scalefactor > 0 AND nDays <= 1)
	{
		Plot(SelectedValue(Ct)+scalefactor*SD, "", colorBlack, styleNoDraw) ;
		Plot(SelectedValue(Ct)-scalefactor*SD, "", colorBlack, styleNoDraw) ;
	}
}
 

amitrandive

Well-Known Member
#79
I re-arranged the sequence and it got solved.. :)



these 3 afl's r so powerful that it gave new dimension to my trading..

Even in 2days expiry day,tight market I made a very good profit today.Hope someday I'll trade 200 lots NF with ur grace :)

:thanx: Huge Thanks Pratap Sir. :thanx:
Eku

I am not able to get the same picture as you.

Please advice on which AFL and parameters you are using.
 

Blackhole

Well-Known Member
#80
I re-arranged the sequence and it got solved.. :)



these 3 afl's r so powerful that it gave new dimension to my trading..

Even in 2days expiry day,tight market I made a very good profit today.Hope someday I'll trade 200 lots NF with ur grace :)

:thanx: Huge Thanks Pratap Sir. :thanx:
how do u trade this? :)
 

Similar threads