Traderji.com


Price Action perspective using VWAP+SD and TF AMAs

Discuss Price Action perspective using VWAP+SD and TF AMAs at the Advanced Trading Strategies within the Traderji.com; The idea of this thread is to discuss the Price Action perspective looking mainly at ...


Go Back   Traderji.com > METHODS & STRATEGIES > Advanced Trading Strategies


Advanced Trading Strategies Discuss Advanced Trading Systems & Strategies.


Reply
 
Thread Tools
  #1  
Old 7th February 2016, 11:36 AM
Member
 
Join Date: Sep 2013
Location: mumbai
Posts: 2,185
Thanks: 935
Thanked 8,621 Times in 2,069 Posts
pratapvb has a reputation beyond reputepratapvb has a reputation beyond repute
pratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond repute
Default Price Action perspective using VWAP+SD and TF AMAs

The idea of this thread is to discuss the Price Action perspective looking mainly at TF AMAs (Adaptive Moving Averages) and VWAP+SD (volume weighted average price and their Standard Deviation)

this will give what the bias is in the market like strong bull, mild bull, bull bias, neutral, bear bias, mild bear, strong bear

based on this one could decide how to enter, how much risk to take and whether to aggressively (for scalping if doing in mild to neutral market) or conservatively (for trend)

to keep this thread complete intend to post initially a summary of VWAP+SD and AMA perspective that I had put in the earlier thread


Advertisements

Reply With Quote
The Following 41 Users Say Thank You to pratapvb For This Useful Post:
amitrandive (7th February 2016), ankur07090 (7th February 2016), blackberry (7th February 2016), dreammerchant (20th April 2016), eku (7th February 2016), Fundootrader (8th February 2016), HEM (7th February 2016), hitesh05 (10th February 2016), hmp (19th April 2016), kabira1108 (11th February 2016), lasty66 (9th February 2016), Leonid (14th February 2016), LOVEENAJYOTHI (7th February 2016), ludhianewala (7th February 2016), mittens (7th February 2016), monkeybusiness (8th February 2016), Nehal_s143 (16th February 2016), niftytaurus (7th February 2016), niftytraps (8th February 2016), nirav_j (23rd March 2016), novicetraders (8th February 2016), princy01 (7th February 2016), psvaja (11th February 2016), Purushotham (20th February 2016), rajesh0000 (18th February 2016), Rehab (7th April 2016), rjshem (7th February 2016), SevenD (7th February 2016), singsanjay09 (5th March 2016), Smart_trade (7th February 2016), t2t (8th February 2016), thiruwins (7th February 2016), TracerBullet (7th February 2016), TraderInTheZONE (13th February 2016), TraderRavi (7th February 2016), Trader_PK (7th February 2016), vasan56 (7th February 2016), vijkris (7th February 2016), vivek.natraj (7th February 2016), vivektrader (8th February 2016), _Rajesh_ (8th February 2016)
Advertisements
  #2  
Old 7th February 2016, 11:50 AM
Member
 
Join Date: Sep 2013
Location: mumbai
Posts: 2,185
Thanks: 935
Thanked 8,621 Times in 2,069 Posts
pratapvb has a reputation beyond reputepratapvb has a reputation beyond repute
pratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond repute
Default Re: Price Action perspective using VWAP+SD and TF AMAs

Day's vwap with SD lines

here the SD lines start afresh at the beginning of day. So we need to give it some time like say to half an hour + like say to 9.45-10 atleast to use this for bias

some of the terms are borrowed from Market profile
so using the previous day vwap as POC (point of control) and previous day -1SD to +1SD (at close) as the Value Area. VAH Value area high and VAL value are low. Basically what we are saying is that approximately 70% of the trading previous day happened in thsi area, so if today also trading in this area then there is no new information that is pushing the market in any one direction.

Above VAH there is long bias and below VAL there is short bias

then today's price action that is today's Vwap+SD says what the market is doing with the new information. Above +1SD there is a strong up trend and below -1SD there is a strong down trend. If above VAH then between -1SD and +1SD there is a bull bias and if below VAL then between -1SD and +1SD there is a bear bias

Reply With Quote
The Following 18 Users Say Thank You to pratapvb For This Useful Post:
amitrandive (7th February 2016), ankur07090 (5th April 2016), blackberry (7th February 2016), burai123 (7th February 2016), eku (7th February 2016), gemat (6th April 2016), hitesh05 (9th February 2016), mittens (7th February 2016), monkeybusiness (8th February 2016), niftytaurus (7th February 2016), novicetraders (8th February 2016), shruti.trader (19th February 2016), Smart_trade (7th February 2016), TracerBullet (7th February 2016), TraderInTheZONE (13th February 2016), Trader_PK (7th February 2016), vijkris (7th February 2016), _Rajesh_ (8th February 2016)
  #3  
Old 7th February 2016, 12:09 PM
Member
 
Join Date: Sep 2013
Location: mumbai
Posts: 2,185
Thanks: 935
Thanked 8,621 Times in 2,069 Posts
pratapvb has a reputation beyond reputepratapvb has a reputation beyond repute
pratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond repute
Default Re: Price Action perspective using VWAP+SD and TF AMAs

what about the broader perspective

I found that if we take a 2day rolling vwap and SD then we get that view. i.e. if today at 12 noon then all price bars from 2days back 12 noon to now are factored in the calculation of 2dayvwap and its SD

This gives when it is short term bull trend (above +1SD2) and bear trend (below -1SD2). Also it gives when it narrows the range through sideways like bollinger band.



Reply With Quote
The Following 11 Users Say Thank You to pratapvb For This Useful Post:
amitrandive (7th February 2016), blackberry (7th February 2016), eku (7th February 2016), kabira1108 (11th February 2016), mittens (7th February 2016), monkeybusiness (8th February 2016), niftytaurus (7th February 2016), singsanjay09 (16th February 2016), Smart_trade (7th February 2016), TracerBullet (7th February 2016), Trader_PK (7th February 2016)
  #4  
Old 7th February 2016, 12:15 PM
Member
 
Join Date: Sep 2013
Location: mumbai
Posts: 2,185
Thanks: 935
Thanked 8,621 Times in 2,069 Posts
pratapvb has a reputation beyond reputepratapvb has a reputation beyond repute
pratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond repute
Default Re: Price Action perspective using VWAP+SD and TF AMAs

It is also observed that it rarely goes above +2SD2 or below -2SD2 unless there is some major news. Even then it usually pullsback after some time and then it then gets into that 1SD2 to 2SD2 range

Reply With Quote
The Following 13 Users Say Thank You to pratapvb For This Useful Post:
amitrandive (7th February 2016), blackberry (7th February 2016), eku (7th February 2016), kabira1108 (11th February 2016), mittens (7th February 2016), monkeybusiness (8th February 2016), SevenD (7th February 2016), singsanjay09 (5th March 2016), Smart_trade (7th February 2016), TracerBullet (7th February 2016), Trader_PK (7th February 2016), vijkris (7th February 2016), _Rajesh_ (8th February 2016)
  #5  
Old 7th February 2016, 12:16 PM
Member
 
Join Date: Sep 2013
Location: mumbai
Posts: 2,185
Thanks: 935
Thanked 8,621 Times in 2,069 Posts
pratapvb has a reputation beyond reputepratapvb has a reputation beyond repute
pratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond repute
Default Re: Price Action perspective using VWAP+SD and TF AMAs

after a narrowing of range when it breaks out it is more likely to remain above/below +/-2SD2 for some longer time but then the SD lines catch up and they fall back within. something like overbought oversould and back


Last edited by pratapvb; 7th February 2016 at 07:23 PM.
Reply With Quote
The Following 11 Users Say Thank You to pratapvb For This Useful Post:
amitrandive (7th February 2016), ankur07090 (7th February 2016), blackberry (7th February 2016), eku (7th February 2016), monkeybusiness (8th February 2016), niftytaurus (7th February 2016), singsanjay09 (5th March 2016), Smart_trade (7th February 2016), TracerBullet (7th February 2016), Trader_PK (7th February 2016), vijkris (7th February 2016)
  #6  
Old 7th February 2016, 02:37 PM
Member
 
Join Date: Sep 2013
Location: mumbai
Posts: 2,185
Thanks: 935
Thanked 8,621 Times in 2,069 Posts
pratapvb has a reputation beyond reputepratapvb has a reputation beyond repute
pratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond repute
Default Re: Price Action perspective using VWAP+SD and TF AMAs

a further higher perspective and corresponding s/rs can be derived by looking at 5dayvwap and its SDs. In this case I have also shown half SD lines

showing on 15min chart to show more days

Reply With Quote
The Following 7 Users Say Thank You to pratapvb For This Useful Post:
amitrandive (7th February 2016), eku (7th February 2016), monkeybusiness (8th February 2016), niftytaurus (7th February 2016), singsanjay09 (17th February 2016), Smart_trade (7th February 2016), TracerBullet (7th February 2016)
  #7  
Old 7th February 2016, 02:40 PM
Member
 
Join Date: Sep 2013
Location: mumbai
Posts: 2,185
Thanks: 935
Thanked 8,621 Times in 2,069 Posts
pratapvb has a reputation beyond reputepratapvb has a reputation beyond repute
pratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond repute
Default Re: Price Action perspective using VWAP+SD and TF AMAs

Price AFL

this also shows a high volume bar with a dot, scales the chart so that there is some white space above / below the current price

It can also be used to show a different higher TF in a different pane or even a different script of same or diff TF

Code:
_SECTION_BEGIN("HighVol");
SetChartOptions(0,chartShowArrows|chartShowDates|chartWrapTitle);
SetChartBkColor(ParamColor("Background", colorLightGrey)) ;

useforeign = ParamToggle("Set Foreign", "No|Yes", 0) ;
//List = GetCategorySymbols(categoryMarket, 0) ;
//forscript = ParamList("Scrip", List, 0) ;
forscript = ParamStr("Foreign Script", "BANKNIFTY-I") ;
if (useforeign)
	SetForeign(forscript); 

settf = ParamToggle("Set TF", "No|Yes", 0) ;
tf = Param("TF", 5, 1, 100000, 1) ;

if (settf)
{
	SetChartOptions(3,chartShowDates);
	TimeFrameSet(tf*in1Minute) ;
}

Layer = Param("Layer", 0, -5, 5, 1) ;
if (settf)
	tz = NumToStr(tf, 8.0) +"-minute";
else
	tz = NumToStr(Interval()/in1Minute, 8.0) +"-minute";

strname =  Name();
if (useforeign)
	strname = forscript ;

//_N(Title = StrFormat(Name() + " " +tz + " " + NumToStr(ddt, formatDateTime) + " Range %g {{VALUES}}", SelectedValue( dh-dl) ));
_N(Title = StrFormat(strname+tz+ NumToStr(DateTime(), formatDateTime)+ 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 ) ) ));

showprice = ParamToggle("Show Price", "No|Yes", 1) ;
styleprice = IIf(showprice, 0, styleNoDraw) ;
//if (showprice)
	Plot( C, "Close",  colorBlack, styleNoTitle | styleCandle|styleprice,0,0,0,Layer ); 
ToolTip = "Open = " + O + "\nHigh = " + H + "\nLow = " + L + "\nClose = " + C ;

if (settf)
{
Daych = Day() != Ref(Day(), -1) ;
Plot(IIf(Daych, 100, 0), "", colorBlack, styleHistogram|styleNoLabel|styleOwnScale, 0, 100, 0, -5) ;
}
//Peaking Volumes
HiVolume = IIf(V > (2 * MA(V,10)), True, False); 
PlotShapes(shapeSmallCircle * HiVolume, IIf(C > O, colorBlack, colorWhite), 0, (O+C)/2, 0);
//TimeFrameRestore()

Clronclose = ParamToggle("Color on yday close", "No|Yes", 0) ;
if (Clronclose)
{
	ydayc = TimeFrameGetPrice("C", inDaily,0, expandLast) ;

	Clr = IIf(C > ydayc, colorBlue, IIf(C < ydayc, colorRed, colorGrey40)) ;
	SetBarFillColor(Clr) ;
	Plot(C, "", Clr, styleCandle|styleNoLabel, 0, 0, 0, 1) ;
}

scalefromclose = ParamToggle("Scale from Close", "No|Yes", 1) ;
per = Param("Percentage",40,0,50,10);
Mingap = Param("Min Gap", 20, 1, 10000, 1) ;

if (scalefromclose)
{
	Lvh = Lvl = SelectedValue(C);
	Lvhh = HighestVisibleValue(H) ;
	Lvll = LowestVisibleValue(L) ;
	spl = sph = (Lvhh-Lvll)*per/100 ; // Param("pointsup",50,0,500,10);
	Plot( Max(Max(Lvh+sph, Lvhh+sph/2), Lvh+Mingap), "", colorBlack,styleNoDraw);
	Plot( Min(Min(Lvl-spl, Lvll-spl/2), Lvl-Mingap), "", colorBlack,styleNoDraw);
}


_SECTION_END();
Reply With Quote
The Following 11 Users Say Thank You to pratapvb For This Useful Post:
amitrandive (7th February 2016), eku (7th February 2016), karthik_sri (9th February 2016), monkeybusiness (8th February 2016), nebujvs (2nd March 2016), niftytaurus (7th February 2016), novicetraders (8th February 2016), shruti.trader (19th February 2016), singsanjay09 (5th March 2016), TracerBullet (7th February 2016), vijkris (7th February 2016)
  #8  
Old 7th February 2016, 02:41 PM
Member
 
Join Date: Sep 2013
Location: mumbai
Posts: 2,185
Thanks: 935
Thanked 8,621 Times in 2,069 Posts
pratapvb has a reputation beyond reputepratapvb has a reputation beyond repute
pratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond repute
Default Re: Price Action perspective using VWAP+SD and TF AMAs

Day's Vwap

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: proxypra@gmail.com
//
/*
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", 1, 0, 10000, 1) ;
period = Param("Period", 39, 1, 10000, 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", 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", 0) ;
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", 1) ;
showextprevday = ParamToggle("Show Extension", "No|Yes", 1)  ;
showextbandprevday = ParamToggle("Show Extension Band", "No|Yes", 1)  ;
extend = Param("Extend", 10, 0, 100, 1) ;

showextvwap = ParamToggle("Show VWAP Extension", "No|Yes", 1)  ;
vwapextend = Param("VWAP Extend", 10, 0, 100, 1) ;
showexttrndband = ParamToggle("Show Trend Band Extension", "No|Yes", 0)  ;
trndbandextend = Param("Trend Band Extend", 5, 0, 100, 1) ;
showextswband = ParamToggle("Show Sidewways Band Extension", "No|Yes", 1)  ;
swbandextend = Param("Sideways Band Extend", 5, 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) ;
showtxtlbl = ParamToggle("Show Text Label", "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 ;
	showtextlbl = 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 ;

}
Va = IIf(V == 0, 0.01, V) ;

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

	CumV = Sum(Va,Bars_so_far_today);
	CumVWP = Sum (P * Va, 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 ;

	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] ;

			k++;
		}
	}
	else
	{
			RefVWAP = VWAP;
			RefVwapm1 = Vwapm1;
			RefVwapp1 = Vwapp1 ;
			RefVwapm2 = Vwapm2;
			RefVwapp2 = Vwapp2;
			RefVwapm3 = Vwapm3;
			RefVwapp3 = Vwapp3;
	}

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

	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", colorSeaGreen), styleThick  + styleTitle + stylelabel+styleNoRescale|styledata|styleshow, Null, Null, 0, 1);
		Plot(IIf(Lastbar, Null, RefVwapp2), "+2SD"+strnday, ParamColor("Color VWAP +2SD", colorOrange), 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", colorSeaGreen), 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", colorOrange), 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", colorRed), styleThick  + styleNoTitle + stylelabel+styleNoRescale|styledata|styleshow, Null, Null, 0, 1);
		Plot(IIf(Lastbar, Null, RefVwapp3), "+3SD"+strnday, ParamColor("Color VWAP +3SD", colorBlue), styleThick  + styleNoTitle + stylelabel+styleNoRescale|styledata|styleshow, Null, Null, 0, 1);

		styleshow = IIf(showvwapband, 0, styleNoDraw) ;	
		dnclr = ParamColor("Down Trend", colorRose) ;
		upclr = ParamColor("Up Trend", colorSkyblue) ;
		PlotOHLC(IIf(Lastbar, Null, RefVwapm1), IIf(Lastbar, Null, RefVwapm1), IIf(Lastbar, Null, RefVwapm2), IIf(Lastbar, Null, RefVwapm2), "",dnclr, 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), "",upclr, 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 ) ;

		str = Null ;
		if(showtxtlbl)
			str = " vwap"  ;
		PlotText(NumToStr(Vwaplast, 8.1)+str, 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 ) ;
		str = Null ;
		if(showtxtlbl)
			str = " +1SD"  ;
		PlotText(NumToStr(p1last , 8.1)+str, 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 ) ;
		str = Null ;
		if(showtxtlbl)
			str = " -1SD"  ;
		PlotText(NumToStr(m1last , 8.1)+str, 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 ) ;
		str = Null ;
		if(showtxtlbl)
			str = " +2SD"  ;
		PlotText(NumToStr(p2last , 8.1)+str, 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 ) ;
		str = Null ;
		if(showtxtlbl)
			str = " -2SD"  ;
		PlotText(NumToStr(m2last , 8.1)+str, BarCount+Vwapextend-3, m2last, 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, colorBlack, 0, Ht, 12) ;
		PlotShapes(Sell*shapeDownArrow, colorBlack, 0, Lt, 12) ;

		PlotShapes(Buy*shapeUpArrow, colorBlue, 0, Ht, 12) ;
		PlotShapes(Short*shapeDownArrow, colorRed, 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|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|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", colorLightYellow);

			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, 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(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) ;
	barht = Param("Bar Ht", 3, 1, 100) ;
	showvwaptrendtradearr =  ParamToggle("Show VWap Trend Arr", "No|Yes", 0) ;
	showallhalf =  ParamToggle("Show All half Triggers", "No|Yes", 1) ;

	fil = Param("Filter", 1, 1, 100, 1) ;

	showvwaptrendtriggers =  ParamToggle("Show Vwap Trend Triggers", "No|Yes", 1) ;
	showfiltered = ParamToggle("Show Filtered Text", "No|Yes", 1) ;
	trigfil = Param("Trigger Filter", 2.2, 0, 100) ;

	txtoff = Param("Text Off", 10, 0, 1000) ;

		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) ;

rc = IIf(showoncrb, Refc, C) ;

		up = rc > (RefVwapp1+fil) ;
		down = rc < (RefVwapm1-fil) ;

		upbias = rc > (prevdayvaluehigh+fil) ;
		dnbias = rc < (prevdayvaluelow-fil) ;
		Clr = IIf(up, colorBlue, IIf(down, colorRed, 
					IIf(upbias, colorSkyblue, 
						IIf(dnbias, colorLightOrange, colorLavender)))) ;

		Plot(barht, "", Clr, styleArea|styleNoLabel|styleOwnScale|styleshow, 0, 100,0) ;

if (showvwaptrendtradearr)
{
Clrup = colorBlue ;
Clrdn = colorRed ;
Clrupbias = colorSkyblue ;
Clrdnbias = colorLightOrange ;
Clrsw = colorLavender ;

	Buyall = Shortall = Buyhalf = Shorthalf = Coverall = Sellall = H-H ;

		Buy = Clr == Clrup OR Clr == Clrupbias ;
		Short = Clr == Clrdn OR Clr == Clrdnbias ;
		Sell = (Clr != Clrup) ;
		Cover  = (Clr != Clrdn) ;
	if (showallhalf)
	{
		Buyhalf = Clr == Clrupbias AND Ref(Clr, -1) != Clrup AND H < (RefVwapp1-fil);
		Shorthalf = Clr == Clrdnbias AND Ref(Clr, -1) != Clrdn AND L > (RefVwapm1+fil);
	}
	else
	{
		Buyhalf = Clr == Clrupbias AND Ref(Clr, -1) != Clrup AND 
				((L < RefVwap AND C > Refvwap) OR (H > RefVwapp1 AND C < Refvwapp1) );
		Shorthalf = Clr == Clrdnbias AND Ref(Clr, -1) != Clrdn AND 
				((H> RefVwap AND C < Refvwap) OR (L < RefVwapm1 AND C < Refvwapm1) );
	}

	Buyfull = Clr == Clrup ;
	Shortfull = Clr == Clrdn ;

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

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

shpfull = Param("Trigger Shape", 1, 1, 100) ;
ibar = Param("Trigger Display Bar", 0, -10, 10)  ;
Clrup = colorBlue;
Clrdown = colorRed ;
Clrsoh = colorBlack ;


	Sell = ExRem(Sell, Buyfull ) ;
	Cover = ExRem(Cover, Shortfull) ;
	PlotShapes((Cover AND NOT Buyhalf AND NOT Buyfull)*shpfull, ClrSOH, 0, H, 12) ;
	PlotShapes((Sell AND NOT Shorthalf AND NOT Shortfull)*(shpfull+1), ClrSOH, 0, L, 12) ;

	PlotShapes((Buyhalf AND NOT Buyfull)*(shpfull+2), ClrUp, 0, H, 12) ;
	PlotShapes((Shorthalf AND NOT Shortfull)*(shpfull+2+1), ClrDown, 0, L, 12) ;
	PlotShapes(Buyfull*shpfull, ClrUp, 0, H, 8) ;
	PlotShapes(Shortfull*(shpfull+1), ClrDown, 0, L, 8) ;

if(showvwaptrendtriggers)
{
bi = BarIndex() ;

st = LowestVisibleValue(bi) ;
ed = HighestVisibleValue(bi) ;


	for (i = st; i <=ed ; i++)
	{
		Htrig = H ;
		Ltrig = L ;
		if (showfiltered)
		{
			Htrig = ceil(H[i])+trigfil ;
			Ltrig = floor(L[i])-trigfil ;
		}

		if (Cover[i])
			PlotText(NumToStr(Htrig, 8.2), i-ibar, H[i] +txtoff-2, colorBlack) ;
		if (Sell[i])
			PlotText(NumToStr(Ltrig, 8.2), i-ibar, L[i] -txtoff-2, colorBlack) ;

		if (Buyhalf[i])
			PlotText(NumToStr(Htrig, 8.2), i-ibar, H[i] +txtoff-2, colorBlue) ;
		if (Shorthalf[i])
			PlotText(NumToStr(Ltrig, 8.2), i-ibar, L[i] -txtoff-2, colorRed) ;

		if (Buyfull[i])
			PlotText(NumToStr(Htrig, 8.2), i-ibar, H[i] +txtoff-2, colorBlue) ;
		if (Shortfull[i])
			PlotText(NumToStr(Ltrig, 8.2), i-ibar, L[i] -txtoff-2, colorRed) ;
	}
}	

}
	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 VAH " + NumToStr(SelectedValue(prevdayvaluehigh), 1.1);
				Clrprevday = colorBlue ;
				break ;
			case 0: 
				strprevday = "In VAL-VH " + NumToStr(SelectedValue(prevdayvaluelow), 1.1) + " - " +  NumToStr(SelectedValue(prevdayvaluehigh), 1.1);
				Clrprevday = colorLavender ;
				break ;			
			case -1: 
				strprevday = "Below VAL " + NumToStr(SelectedValue(prevdayvaluelow), 1.1);
				Clrprevday = colorRed ;
				break ;
		}

		switch (SelectedValue(tdayscore))
		{
			case 2: 
				strtday = "Above +1SD " + NumToStr(SelectedValue(tdayvaluehigh), 1.1);
				Clrtday = colorBlue ;
				break ;
			case 1: 
				strtday = "Above 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 VWAP " + NumToStr(SelectedValue(tdayvalue), 1.1);
				Clrtday = colorRose ;
				break ;
			case -2: 
				strtday = "Below -1SD " + 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 = 50;
	textwidth = 200 ;
	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/2 ;
	GfxSetTextColor( Clrtday );
	GfxDrawText(strtday,  x,y, x+textwidth, y+textht , dt_flag) ;

	y = y ; //+ textht ;
	xbar = x + 150 ;
	Colwidth = 20 ;
	Colht = 30 ;
	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/2 ;
		GfxSetTextColor( Clrnet );
		GfxDrawText(strnet,  x,y, x+textwidth, y+textht , dt_flag) ;

	}

	if (showtext AND NOT nodraw AND NOT showlvls)
	{
		str = Null ;
		if(showtxtlbl)
			str = " +1SD"  ;
		PlotText(NumToStr(RefVwapp1[BarCount-1], 1.1)+str , BarCount+1, RefVwapp1[BarCount-1],Clrtext) ;
		str = Null ;
		if(showtxtlbl)
			str = " -1SD"  ;
		PlotText(NumToStr(RefVwapm1[BarCount-1], 1.1)+str , BarCount+1, RefVwapm1[BarCount-1],Clrtext) ;
		str = Null ;
		if(showtxtlbl)
			str = " vwap" ;
		PlotText(NumToStr(RefVwap[BarCount-1], 1.1)+str , BarCount+1, RefVwap[BarCount-1],Clrtext) ;
		str = Null ;
		if(showtxtlbl)
			str = " +2SD"  ;
		PlotText(NumToStr(RefVwapp2[BarCount-1], 1.1)+str , BarCount+1, RefVwapp2[BarCount-1],Clrtext) ;
		str = Null ;
		if(showtxtlbl)
			str = " -2SD"  ;
		PlotText(NumToStr(RefVwapm2[BarCount-1], 1.1)+str , BarCount+1, RefVwapm2[BarCount-1],Clrtext) ;
	}

	if (showvahvaltext AND NOT nodraw)
	{
		str = Null ;
		if(showtxtlbl)
			str = " POC" ; ;
		PlotText(NumToStr(prevdayvalue[BarCount-1] , 1.1)+str, BarCount+1, prevdayvalue[BarCount-1],Clrtext) ;
		str = Null ;
		if(showtxtlbl)
			str = " VAL" ; ;
		PlotText(NumToStr(prevdayvaluelow[BarCount-1], 1.1)+str , BarCount+1, prevdayvaluelow[BarCount-1],Clrtext) ;
		str = Null ;
		if(showtxtlbl)
			str = " VAH" ; ;
		PlotText(NumToStr(prevdayvaluehigh[BarCount-1], 1.1)+str , BarCount+1, prevdayvaluehigh[BarCount-1],Clrtext) ;
	}

}
Reply With Quote
The Following 11 Users Say Thank You to pratapvb For This Useful Post:
amitrandive (7th February 2016), eku (7th February 2016), karthik_sri (9th February 2016), monkeybusiness (8th February 2016), niftytaurus (7th February 2016), novicetraders (8th February 2016), shruti.trader (19th February 2016), singsanjay09 (5th March 2016), Smart_trade (7th February 2016), TracerBullet (7th February 2016), vijkris (7th February 2016)
  #9  
Old 7th February 2016, 02:43 PM
Member
 
Join Date: Sep 2013
Location: mumbai
Posts: 2,185
Thanks: 935
Thanked 8,621 Times in 2,069 Posts
pratapvb has a reputation beyond reputepratapvb has a reputation beyond repute
pratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond repute
Default Re: Price Action perspective using VWAP+SD and TF AMAs

2dayvwap

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: proxypra@gmail.com
//
/*
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) ;
showtxtlbl = ParamToggle("Show Text Label", "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 ) ;
		str = Null ;
		if(showtxtlbl)
			str = " 2dvwap"  ;
		if (showlvltext)
			PlotText(NumToStr(vwaplast , 8.1)+str, 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 ) ;
		str = Null ;
		if(showtxtlbl)
			str = " +1SD2"  ;
		if (showlvltext)
			PlotText(NumToStr(p1last, 8.1)+str, 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 ) ;
		str = Null ;
		if(showtxtlbl)
			str = " -1SD2"  ;
		if (showlvltext)
			PlotText(NumToStr(m1last , 8.1)+str, 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 ) ;
		str = Null ;
		if(showtxtlbl)
			str = " +2SD2"  ;
		if (showlvltext)
			PlotText(NumToStr(p2last , 8.1)+str, 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 ) ;
		str = Null ;
		if(showtxtlbl)
			str = " -2SD2"  ;
		if (showlvltext)
			PlotText(NumToStr(m2last , 8.1)+str, 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)
		{
		str = Null ;
		if(showtxtlbl)
			str = " -0.5SD2"  ;
		PlotText(NumToStr(m05last , 8.1)+str, BarCount+Vwapextend-3, m05last , colorBlack) ;
		str = Null ;
		if(showtxtlbl)
			str = " +0.5SD2"  ;
		PlotText(NumToStr(p05last , 8.1)+str, BarCount+Vwapextend-3, p05last , colorBlack) ;

		str = Null ;
		if(showtxtlbl)
			str = " -1.5SD2"  ;
		PlotText(NumToStr(m15last , 8.1)+str, BarCount+Vwapextend-3, m15last , colorBlack) ;
		str = Null ;
		if(showtxtlbl)
			str = " +1.5SD2"  ;
		PlotText(NumToStr(p15last , 8.1)+str, BarCount+Vwapextend-3, p15last , colorBlack) ;

		str = Null ;
		if(showtxtlbl)
			str = " -2.5SD2"  ;
		PlotText(NumToStr(m25last, 8.1)+str, BarCount+Vwapextend-3, m25last , colorBlack) ;
		str = Null ;
		if(showtxtlbl)
			str = " +2.5SD2"  ;
		PlotText(NumToStr(p25last , 8.1)+str, 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)
	{
		str = Null ;
		if(showtxtlbl)
			str = " +1SD2"  ;
		PlotText(NumToStr(RefVwapp1[BarCount-1], 1.1)+str , BarCount+1, RefVwapp1[BarCount-1],Clrtext) ;
		str = Null ;
		if(showtxtlbl)
			str = " -1SD2"  ;
		PlotText(NumToStr(RefVwapm1[BarCount-1], 1.1)+str , BarCount+1, RefVwapm1[BarCount-1],Clrtext) ;
		str = Null ;
		if(showtxtlbl)
			str = " 2dvwap" ;
		PlotText(NumToStr(RefVwap[BarCount-1], 1.1)+str , BarCount+1, RefVwap[BarCount-1],Clrtext) ;
		str = Null ;
		if(showtxtlbl)
			str = " +2SD2"  ;
		PlotText(NumToStr(RefVwapp2[BarCount-1], 1.1)+str , BarCount+1, RefVwapp2[BarCount-1],Clrtext) ;
		str = Null ;
		if(showtxtlbl)
			str = " -2SD2"  ;
		PlotText(NumToStr(RefVwapm2[BarCount-1], 1.1)+str , BarCount+1, RefVwapm2[BarCount-1],Clrtext) ;

		if (showhalfsd)
		{
			str = Null ;
			if(showtxtlbl)
				str = " +0.5SD2"  ;
			PlotText(NumToStr(RefVwapp05[BarCount-1], 1.1)+str, BarCount+1, RefVwapp05[BarCount-1],Clrtext) ;

			str = Null ;
			if(showtxtlbl)
				str = " -0.5SD2"  ;
			PlotText(NumToStr(RefVwapm05[BarCount-1], 1.1)+str, BarCount+1, RefVwapm05[BarCount-1],Clrtext) ;

			str = Null ;
			if(showtxtlbl)
				str = " +1.5SD2"  ;
			PlotText(NumToStr(RefVwapp15[BarCount-1], 1.1)+str, BarCount+1, RefVwapp15[BarCount-1],Clrtext) ;

			str = Null ;
			if(showtxtlbl)
				str = " -1.5SD2"  ;
			PlotText(NumToStr(RefVwapm15[BarCount-1], 1.1)+str, BarCount+1, RefVwapm15[BarCount-1],Clrtext) ;

			str = Null ;
			if(showtxtlbl)
				str = " +2.5SD2"  ;
			PlotText(NumToStr(RefVwapp25[BarCount-1], 1.1)+str, BarCount+1, RefVwapp25[BarCount-1],Clrtext) ;

			str = Null ;
			if(showtxtlbl)
				str = " -2.5SD2"  ;
			PlotText(NumToStr(RefVwapm25[BarCount-1], 1.1)+str, BarCount+1, RefVwapm25[BarCount-1],Clrtext) ;
		}
	}

	if (showvahvaltext AND NOT nodraw)
	{
		str = Null ;
		if(showtxtlbl)
			str = " POC2" ; ;
		PlotText(NumToStr(prevdayvalue[BarCount-1], 1.1)+str, BarCount+1, prevdayvalue[BarCount-1],Clrtext) ;

		str = Null ;
		if(showtxtlbl)
			str = " VAL2" ; ;

		PlotText(NumToStr(prevdayvaluelow[BarCount-1], 1.1)+str, BarCount+1, prevdayvaluelow[BarCount-1],Clrtext) ;

		str = Null ;
		if(showtxtlbl)
			str = " VAH2" ; ;

		PlotText(NumToStr(prevdayvaluehigh[BarCount-1], 1.1)+str, 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) ;
	}
}
Reply With Quote
The Following 10 Users Say Thank You to pratapvb For This Useful Post:
amitrandive (7th February 2016), eku (7th February 2016), monkeybusiness (8th February 2016), niftytaurus (7th February 2016), niftytraps (13th February 2016), shruti.trader (19th February 2016), singsanjay09 (5th March 2016), Smart_trade (7th February 2016), TracerBullet (7th February 2016), vijkris (7th February 2016)
  #10  
Old 7th February 2016, 02:43 PM
Member
 
Join Date: Sep 2013
Location: mumbai
Posts: 2,185
Thanks: 935
Thanked 8,621 Times in 2,069 Posts
pratapvb has a reputation beyond reputepratapvb has a reputation beyond repute
pratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond reputepratapvb has a reputation beyond repute
Default Re: Price Action perspective using VWAP+SD and TF AMAs

5dayvwap

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: proxypra@gmail.com
//
/*
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) ;
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) ;
showtxtlbl = ParamToggle("Show Text Label", "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 ) ;
		str = Null ;
		if(showtxtlbl)
			str = " 5dvwap"  ;
		if (showlvltext)
			PlotText(NumToStr(vwaplast , 8.1)+str, 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 ) ;
		str = Null ;
		if(showtxtlbl)
			str = " +1SD5"  ;
		if (showlvltext)
			PlotText(NumToStr(p1last, 8.1)+str, 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 ) ;
		str = Null ;
		if(showtxtlbl)
			str = " -1SD5"  ;
		if (showlvltext)
			PlotText(NumToStr(m1last , 8.1)+str, 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 ) ;
		str = Null ;
		if(showtxtlbl)
			str = " +2SD5"  ;
		if (showlvltext)
			PlotText(NumToStr(p2last , 8.1)+str, 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 ) ;
		str = Null ;
		if(showtxtlbl)
			str = " -2SD5"  ;
		if (showlvltext)
			PlotText(NumToStr(m2last , 8.1)+str, 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) ;

		str = Null ;
		if(showtxtlbl)
			str = " -0.5SD5"  ;
		PlotText(NumToStr(m05last , 8.1)+str, BarCount+Vwapextend-3, m05last , colorBlack) ;
		str = Null ;
		if(showtxtlbl)
			str = " +0.5SD5"  ;
		PlotText(NumToStr(p05last , 8.1)+str, BarCount+Vwapextend-3, p05last , colorBlack) ;

		str = Null ;
		if(showtxtlbl)
			str = " -1.5SD5"  ;
		PlotText(NumToStr(m15last , 8.1)+str, BarCount+Vwapextend-3, m15last , colorBlack) ;
		str = Null ;
		if(showtxtlbl)
			str = " +1.5SD5"  ;
		PlotText(NumToStr(p15last , 8.1)+str, BarCount+Vwapextend-3, p15last , colorBlack) ;

		str = Null ;
		if(showtxtlbl)
			str = " -2.5SD5"  ;
		PlotText(NumToStr(m25last, 8.1)+str, BarCount+Vwapextend-3, m25last , colorBlack) ;
		str = Null ;
		if(showtxtlbl)
			str = " +2.5SD5"  ;
		PlotText(NumToStr(p25last , 8.1)+str, 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)
	{
		str = Null ;
		if(showtxtlbl)
			str = " +1SD5"  ;
		PlotText(NumToStr(RefVwapp1[BarCount-1], 1.1)+str , BarCount+1, RefVwapp1[BarCount-1],Clrtext) ;
		str = Null ;
		if(showtxtlbl)
			str = " -1SD5"  ;
		PlotText(NumToStr(RefVwapm1[BarCount-1], 1.1)+str , BarCount+1, RefVwapm1[BarCount-1],Clrtext) ;
		str = Null ;
		if(showtxtlbl)
			str = " 5dvwap" ;
		PlotText(NumToStr(RefVwap[BarCount-1], 1.1)+str , BarCount+1, RefVwap[BarCount-1],Clrtext) ;
		str = Null ;
		if(showtxtlbl)
			str = " +2SD5"  ;
		PlotText(NumToStr(RefVwapp2[BarCount-1], 1.1)+str , BarCount+1, RefVwapp2[BarCount-1],Clrtext) ;
		str = Null ;
		if(showtxtlbl)
			str = " -2SD5"  ;
		PlotText(NumToStr(RefVwapm2[BarCount-1], 1.1)+str , BarCount+1, RefVwapm2[BarCount-1],Clrtext) ;

		if (showhalfsd)
		{
			str = Null ;
			if(showtxtlbl)
				str = " +0.5SD5"  ;
			PlotText(NumToStr(RefVwapp05[BarCount-1], 1.1)+str, BarCount+1, RefVwapp05[BarCount-1],Clrtext) ;

			str = Null ;
			if(showtxtlbl)
				str = " -0.5SD5"  ;
			PlotText(NumToStr(RefVwapm05[BarCount-1], 1.1)+str, BarCount+1, RefVwapm05[BarCount-1],Clrtext) ;

			str = Null ;
			if(showtxtlbl)
				str = " +1.5SD5"  ;
			PlotText(NumToStr(RefVwapp15[BarCount-1], 1.1)+str, BarCount+1, RefVwapp15[BarCount-1],Clrtext) ;

			str = Null ;
			if(showtxtlbl)
				str = " -1.5SD5"  ;
			PlotText(NumToStr(RefVwapm15[BarCount-1], 1.1)+str, BarCount+1, RefVwapm15[BarCount-1],Clrtext) ;

			str = Null ;
			if(showtxtlbl)
				str = " +2.5SD5"  ;
			PlotText(NumToStr(RefVwapp25[BarCount-1], 1.1)+str, BarCount+1, RefVwapp25[BarCount-1],Clrtext) ;

			str = Null ;
			if(showtxtlbl)
				str = " -2.5SD5"  ;
			PlotText(NumToStr(RefVwapm25[BarCount-1], 1.1)+str, BarCount+1, RefVwapm25[BarCount-1],Clrtext) ;
		}
	}

	if (showvahvaltext AND NOT nodraw)
	{
		str = Null ;
		if(showtxtlbl)
			str = " POC5" ; ;
		PlotText(NumToStr(prevdayvalue[BarCount-1], 1.1)+str, BarCount+1, prevdayvalue[BarCount-1],Clrtext) ;

		str = Null ;
		if(showtxtlbl)
			str = " VAL5" ; ;

		PlotText(NumToStr(prevdayvaluelow[BarCount-1], 1.1)+str, BarCount+1, prevdayvaluelow[BarCount-1],Clrtext) ;

		str = Null ;
		if(showtxtlbl)
			str = " VAH5" ; ;

		PlotText(NumToStr(prevdayvaluehigh[BarCount-1], 1.1)+str, 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) ;
	}
}

Advertisements

Reply With Quote
The Following 13 Users Say Thank You to pratapvb For This Useful Post:
amitrandive (7th February 2016), eku (7th February 2016), MARUTIMANE (7th February 2016), Mohmeh (12th March 2016), monkeybusiness (8th February 2016), niftytaurus (7th February 2016), princy01 (7th February 2016), shruti.trader (19th February 2016), singsanjay09 (5th March 2016), Smart_trade (7th February 2016), thiruwins (7th February 2016), TracerBullet (7th February 2016), vijkris (7th February 2016)
Reply

Bookmarks

Tags
price action trading, vwap


Advertise Here


Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off


Similar Threads for: Price Action perspective using VWAP+SD and TF AMAs
Thread Thread Starter Forum Replies Last Post
VWAP/ATP Values for creating Price Charts.. tradingstudent AmiBroker 15 12th January 2016 12:07 AM
Volume weighted average price-Vwap rangarajan Day Trading 7 22nd July 2013 06:12 PM
VWAP(volume weighted average price choudri Technical Analysis 1 8th April 2012 07:12 PM
Nifty Price Areas - a different perspective! rajivkhatlawala Technical Analysis 4 7th April 2008 02:09 PM
Price-Volume Relationship- A Different Perspective. Linus Technical Analysis 9 11th June 2007 11:15 AM


All times are GMT +5.5. The time now is 03:35 PM.

Indemnity, Disclaimer & Disclosure Notice:
By visiting Traderji.com you automatically indicate that you agree to our Forum Rules, Indemnity, Disclaimer & Disclosure Notice and General Content Disclaimer Notice and indemnify Traderji.com, its associates and related parties of all claims howsoever resulting from the usage of the forum/site.
Disclaimer: Trading or investing in stocks & commodities is a high risk activity. Any action you choose to take in the markets is totally your own responsibility. You are recommended to make appropriate enquiries and seek appropriate advise before sending money, incurring any expenses, acting on recommendations or entering into any commitment in relation to any advertisement published here. Traderji.com does not vouch for any claims made by the advertisers of products and services. Traderji.com will not be held liable for any consequences in the event such claims are not honoured by the advertisers. Traderji.com will not be liable for any, direct or indirect, consequential or incidental damages or loss arising out of the use of any information by anybody mentioned anywhere on this site.
Disclosure: The information in this forum is neither an offer to sell nor solicitation to buy any of the securities mentioned herein. The writers may or may not be trading in the securities mentioned.
All names or products mentioned are trademarks or registered trademarks of their respective owners.
General Content Disclaimer Notice:
In light of our policy of encouraging candid, open exchanges of views and the rapid distribution of information originating from many sources, Traderji.com cannot determine the accuracy or legality of any information that may be uploaded to the forum. Opinions, advice and all other information expressed by participants in discussions are those of the author. You rely on such information at your own risk. You are urged to seek professional advice for specific, individual situations and not rely solely on advice or opinions given in the discussions. Since Traderji.com is an open and free discussion forum, any comments made by members of this forum in their posts reflect their own views and not of the owner or administrator of Traderji.com. Thus the owner/administrator indemnify themselves of all claims whatsoever and will not be liable or responsible for any members comments/views in this forum Traderji.com. Although we constantly delete all irrelevant content and/or SPAM, if you should find any objectionable or offensive posts made by members of this forum which you would like to bring to our notice for removal then please Contact Us.
 


Copyright © www.Traderji.com 2001 - , All rights reserved.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267