Rajandran R Telecom Engineer turned Full-time Derivative Trader. Mostly Trading Nifty, Banknifty, USDINR and High Liquid Stock Derivatives. Trading the Markets Since 2006 onwards. Using Market Profile and Orderflow for more than a decade. Designed and published 100+ open source trading systems on various trading tools. Strongly believe that market understanding and robust trading frameworks are the key to the trading success. Writing about Markets, Trading System Design, Market Sentiment, Trading Softwares & Trading Nuances since 2007 onwards. Author of Marketcalls.in and Co-Creator of Algomojo (Algorithmic Trading Platform for DIY Traders)

VWAP Intraday Trading Strategy: Do Simple Trading Strategies Really Work? [Part4]

2 min read

Do simple Trading strategies really work in Indian Markets? It is the curiosity remains among most of the traders. Does a simple technical condition bring consistent returns in the markets despite commissions and slippages?

To test this hypothesis, we took a strategy which is quite popular in social media – VWAP based intraday trading strategy. Here are the rules

VWAP is a simple day trading strategy where we use previous day’s end of day (EOD) VWAP and current day VWAP

When an instrument is trading above previous day closing VWAP, it is bullish and if it is trading below, it is bearish

Nifty Futures – VWAP Intraday Trading Strategy ( 15min Timeframe)

Nifty Futures VWAP Intraday Trading Strategy
Yellow Thick Line – VWAP , Brown Dotted Line – Yesterdays VWAP closing
Greeline Line – Target Levels , Red Line Stop levels

Chart time frame: 15 minutes

Buy entry: When instrument crosses high of Bullish 15 min candle which touched and closed above current day VWAP

Sell entry: When instrument crosses Below Low of Bearish 15 min candle which touched and closed below current day VWAP

Target: 30 Points for Nifty, 90 Points for Bank Nifty and 1.5 % stocks

SL: 20 Points for Nifty, 60 Points for Bank Nifty and 1 % stocks

We tested the trading strategy in Nifty Futures and Bank Nifty Futures right from Jan 2011 to Dec 2019. Here are the backtest results.

VWAP based intraday trading system - backtest results for Nifty and Bank Nifty Futures

VWAP Based Intraday Strategy – Amibroker AFL code

_SECTION_BEGIN("Yesterdays VWAP Strategy");

TargetPrice = Param("Target Points",30,1,500,1);
StopPrice = Param("Stop Points",20,1,500,1);
N = Param("Limit Trades",1,1,10,1); //Per Symbol Trade Limit

SetPositionSize(1*RoundLotSize,spsShares); // Bactest Calculation for No of Points

marketstarttime = 091500;
sigendtime = 144449;
sqofftime = 151459;


Bars_so_far_today = 1 + BarsSince( Day() != Ref(Day(), -1));
StartBar = ValueWhen(TimeNum() == marketstarttime , BarIndex());
TodayVolume = iif(Sum(V,Bars_so_far_today) <= 0,1,Sum(V,Bars_so_far_today));
average = (H+L+C)/3;
IIf (BarIndex() >= StartBar, VWAP = Sum (average * V, Bars_so_far_today  ) / TodayVolume,0);


newday = Ref(Day(),-1) != Day();

yVWAP = ValueWhen(newday, Ref(VWAP,-1) ,1);

Plot(yVWAP,"yVWAP",colorBrown,styleDashed);
Plot(VWAP,"yVWAP",colorYellow,styleLine | styleThick);

sqoff = TimeNum() >=sqofftime;


dn = DateNum();
newDay = dn != Ref( dn,-1);

Buy = C>yVWAP AND Cross(C,VWAP) AND TimeNum()<=sigendtime;

Buy = Buy AND Sum( Buy, BarsSince( newDay) +1 ) <= N;  //Limit to one trade per day


BuyPrice = ValueWhen(Buy,Close); //Enter at Close of the candle

TargetBuy = BuyPrice + TargetPrice;
StopBuy = BuyPrice - StopPrice;


Sell = Cross(H,TargetBuy) OR Cross(StopBuy,L) OR sqoff; //Exit if Target/Stop/Square off Time reached

SellPrice = IIf(Cross(H,TargetBuy), TargetBuy, IIf(Cross(StopBuy,L), StopBuy, Close));

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

BuyCont = Flip(Buy,Sell);
SellCont = Flip(Sell,Buy);

Short = C< yVWAP AND Cross(VWAP,C) AND TimeNum() <= sigendtime;
Short = Short AND Sum( Short, BarsSince( newDay) +1 ) <= N;  //Limit to one trade per day


ShortPrice = ValueWhen(Short,Close);

TargetShort = ShortPrice - TargetPrice;
StopShort = ShortPrice + StopPrice;


Cover = Cross(H,StopShort) OR Cross(TargetShort,L) OR sqoff; //Exit if Target/Stop/Square off Time reached
CoverPrice = IIf(Cross(H,StopShort), StopShort, IIf(Cross(TargetShort,L), TargetShort, Close));

Short = ExRem(Short,Cover);
Cover = ExRem(Cover,Short);

ShortCont = Flip(Short,Cover);
CoverCont = Flip(Cover,Short);

PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorGreen, 0, L, Offset=-40);
PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorLime, 0,L, Offset=-50);                      
PlotShapes(IIf(Buy, shapeUpArrow, shapeNone),colorWhite, 0,L, Offset=-45); 
PlotShapes(IIf(Short, shapeSquare, shapeNone),colorRed, 0, H, Offset=40);
PlotShapes(IIf(Short, shapeSquare, shapeNone),colorOrange, 0,H, Offset=50);                      
PlotShapes(IIf(Short, shapeDownArrow, shapeNone),colorWhite, 0,H, Offset=-45);

PlotShapes(Sell * shapestar, colorBrightGreen, 0, High, 12);
PlotShapes(Cover * shapestar, colorRed, 0, Low, -12);

Plot(VWAP,"VWAP",colorYellow,styleLine | styleThick);
Plot(yVWAP,"yVWAP",colorYellow,styleDashed);

Plot(IIf(Buycont,TargetBuy,IIf(Shortcont,TargetShort,Null)),"Target",colorGreen,styleDashed | styleThick);
Plot(IIf(Buycont,StopBuy,IIf(Shortcont,StopShort,Null)),"Stop",colorRed,styleDashed | styleThick);


_SECTION_END();

_SECTION_BEGIN("Candlestick Charts");
SetChartOptions(0,chartShowArrows|chartShowDates);
_N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 ) ) ));
Plot( C, "Close", ParamColor("Color", colorDefault ), styleNoTitle | ParamStyle("Style") | GetPriceStyle() ); 
_SECTION_END();

Conclusion

Visually strategy looks good but backtesting failed to produce impressive results. When comes to Nifty futures strategy is profitable before including reasonable trading commissions and slippages but failed to turn profitable post adding trading commissions and slippages. When comes to Banknifty futures strategy is not profitable even before including the trading cost.

Rajandran R Telecom Engineer turned Full-time Derivative Trader. Mostly Trading Nifty, Banknifty, USDINR and High Liquid Stock Derivatives. Trading the Markets Since 2006 onwards. Using Market Profile and Orderflow for more than a decade. Designed and published 100+ open source trading systems on various trading tools. Strongly believe that market understanding and robust trading frameworks are the key to the trading success. Writing about Markets, Trading System Design, Market Sentiment, Trading Softwares & Trading Nuances since 2007 onwards. Author of Marketcalls.in and Co-Creator of Algomojo (Algorithmic Trading Platform for DIY Traders)

Stoploss, Multi Target, and Trailing Stoploss Module – Amibroker…

After Intraday V2.0 Amibroker Module - a readymade drag and drop module to convert any trading strategy into the intraday trading system with alerts,...
Rajandran R
6 min read

Line Trading – Algomojo Automation Module for Amibroker Users

The line Trading Automation tool is designed for Manual traders who want to perform level-based trade execution faster and also bring some advanced trade...
Rajandran R
58 sec read

Plotting Day Wise Equity Curve using Amibroker

We know that Amibroker provides an equity curve for the whole strategy. Is there a way where we can build a simple Day Wise...
Rajandran R
1 min read

5 Replies to “VWAP Intraday Trading Strategy: Do Simple Trading Strategies Really…”

  1. For all the hype about this strategy, it turns out to be a losing proposition! Nice analysis!

  2. VWAP strategies always more impressive when you added on Heikenashi charts. Time frame as you mentioned 15 min.
    Buy condition: Candle should Above VWAP
    Sell condition: Candle should Below VWAP
    0.3% Targets….

    1. I have traded in real Mkt on vwap in nifty future for last 2 months daily, I feel u hav to make decision when to end a trade even before it hits SL or hit target. It rarely gives target of 35 points in nifty even if entered properly on cmp crossings vwap. It may give 20 points and then can reverse trend. Only on trending days it gives full target. So don’t rely on it blindly. Save ur capital first even if you get less profit

Leave a Reply

Get Notifications, Alerts on Market Updates, Trading Tools, Automation & More