Thư viện AFL
Thư viện AFL
Chiến lược giao dịch trong ngày của VWAP: Các chiến lược giao dịch đơn giản có thực sự hiệu quả không? [Phần 4]

Chiến lược giao dịch trong ngày của VWAP: Các chiến lược giao dịch đơn giản có thực sự hiệu quả không? [Phần 4]

Các chiến lược Giao dịch đơn giản có thực sự hiệu quả ở Thị trường Ấn Độ không

? Đó là sự tò mò vẫn còn trong hầu hết các nhà giao dịch. Liệu một điều kiện kỹ thuật đơn giản có mang lại lợi nhuận ổn định trên thị trường bất chấp phí hoa hồng và trượt giá không?

Để kiểm tra giả thuyết này, chúng tôi đã thực hiện một chiến lược khá phổ biến trên mạng xã hội –

VWAP

dựa trên chiến lược giao dịch trong ngày. Dưới đây là các quy tắc

VWAP là một chiến lược giao dịch trong ngày đơn giản, trong đó chúng tôi sử dụng VWAP cuối ngày (EOD) của ngày hôm trước và VWAP của ngày hiện tại

Khi một công cụ đang giao dịch cao hơn ngày hôm trước khi đóng cửa VWAP, thì đó là xu hướng tăng và nếu nó đang giao dịch dưới mức này thì đó là xu hướng giảm.

Nifty Futures – Chiến lược giao dịch trong ngày của VWAP

(Khung thời gian 15 phút)

Đường dày màu vàng – VWAP , Đường chấm màu nâu – VWAP đóng cửa ngày hôm qua

Greeline Line - Cấp độ mục tiêu, Cấp độ dừng của Red Line

Khung thời gian biểu đồ:

15 phút

Mua hàng:

Khi công cụ vượt qua đỉnh nến Bullish 15 phút chạm và đóng cửa trên VWAP ngày hiện tại

Bán mục:

Khi công cụ vượt qua mức thấp nhất của nến giảm giá 15 phút chạm và đóng cửa dưới mức VWAP ngày hiện tại

Mục tiêu:

30 Điểm cho Nifty, 90 Điểm cho Nifty Ngân hàng và 1,5 % cổ phiếu

SL:

20 điểm cho Nifty, 60 điểm cho Nifty ngân hàng và 1 % cổ phiếu

Chúng tôi đã thử nghiệm chiến lược giao dịch trong Nifty Futures và Bank Nifty Futures ngay từ tháng 1 năm 2011 đến tháng 12 năm 2019. Dưới đây là kết quả kiểm tra lại.

Chiến lược trong ngày dựa trên VWAP – Mã AFL của Amibroker

Kết luận

Chiến lược trực quan có vẻ tốt nhưng việc kiểm tra lại không mang lại kết quả ấn tượng. Khi nói đến chiến lược tương lai Nifty có lợi nhuận trước khi bao gồm hoa hồng giao dịch hợp lý và độ trượt giá nhưng không thể mang lại lợi nhuận sau khi thêm hoa hồng giao dịch và độ trượt giá. Khi nói đến chiến lược tương lai Banknifty không mang lại lợi nhuận ngay cả trước khi bao gồm chi phí giao dịch.

Có liên quan

Mã nguồn (.afl)
_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();

Hướng dẫn: Copy đoạn mã trên, mở AmiBroker Formula Editor, dán vào và lưu lại với tên tương ứng.