Thư viện AFL
Thư viện AFL
Khoảng cách tăng và giảm khoảng cách trong ngày - Chiến lược Amibroker

Khoảng cách tăng và giảm khoảng cách trong ngày - Chiến lược Amibroker

Trước khi đi vào chiến lược, tôi chỉ muốn nói với bạn rằng amibroker hỗ trợ hai hàm được xây dựng sẵn là gapup() và gapdown() để xác định các khoảng trống tăng và giảm khoảng cách.

GapUp()

– hàm sẵn có này Trả về '1' hoặc 'true' vào ngày chứng khoán mở ra khoảng trống. Những ngày còn lại nó trả về Zero.

GapDown()

– hàm sẵn có này Trả về '1' hoặc 'true' vào ngày chứng khoán mở ra khoảng trống. Những ngày còn lại nó trả về Zero.

Dựa trên hai chức năng này, người ta có thể dễ dàng tạo Chiến lược Gapup và Gapdown đơn giản.

Quy tắc chiến lược

Chiến lược rất đơn giản. Khi thị trường mở cửa với khoảng trống tăng và đồng thời vượt qua mức cao nhất của ngày hôm trước thì đó được coi là mua mạnh. Khi thị trường mở cửa với khoảng cách giảm và trong khi mở cửa nếu nó cắt mức thấp của ngày hôm qua thì đó sẽ được coi là bán mạnh.

  1. Kiểm soát tham số % mục tiêu được trao cho người dùng. để người dùng có thể đặt mục tiêu theo yêu cầu. Giá trị mặc định là 1%

  2. Logic dừng lỗ trong mã AFL không được thêm vào tuy nhiên bạn có thể đặt mức dừng lỗ gần 0,3% trong cài đặt thử nghiệm như hiển thị bên dưới. 0,3% nếu mức dừng lỗ tĩnh là rủi ro tối thiểu

  3. Đã thử nghiệm chiến lược với các cổ phiếu khác nhau và tỷ lệ thành công của nó nằm trong khoảng từ 50 đến 60%

  4. Trung bình bạn sẽ nhận được tín hiệu 2-4 lần trong tháng.

  5. Thăm dò cũng được thêm vào để quét các cổ phiếu đáp ứng yêu cầu trên

Khung thời gian ưa thích:

biểu đồ 5 phút

.

Người ta có thể thử nghiệm với cổ phiếu có hệ số beta cao. Điểm hay của hệ thống này là mức dừng lỗ chỉ là 0,3%, tức là rất ít.

Báo cáo mẫu cho Bank Nifty trong 4 năm qua với 4 lô Bank Nifty được thực hiện ở mỗi giao dịch bao gồm Hoa hồng 100 Rs/Lô +Trượt giá.

Tải xuống mã AFL của Amibroker

Liên quan

Mã nguồn (.afl)
_SECTION_BEGIN("Gap buy Sell");

target = Param("Target %",1,0.1,10,0.1);
NewDay = Day()!= Ref(Day(), -1);
EndDay = (Day()!= Ref(Day(), 1));
on_off_Gap = ParamToggle("Gap ","Off|On",1);
DayH = TimeFrameGetPrice("H", inDaily, -1);	// yesterdays high
DayL = TimeFrameGetPrice("L", inDaily, -1);	//	low
DayC = TimeFrameGetPrice("C", inDaily, -1);	//	close
DayO = TimeFrameGetPrice("O", inDaily);	// current day open


  GpDown=IIf(GapDown(),True,False);
  GpUp=IIf(GapUp(),True,False);

  PlotShapes(IIf(GpDown AND NewDay , shapeStar, shapeNone),colorRed, 0,H, Offset=-45);
  PlotShapes(IIf(GpUp AND NewDay, shapeStar, shapeNone),colorGreen, 0,H, Offset=-45);

    Sell1=Cover1=False;




  DayOpenClose=ValueWhen(NewDay,C,1); 
  DayOpenHigh=ValueWhen(NewDay,H,1); 
  DayOpenLow=ValueWhen(NewDay,L,1); 




  Buy1=IIf(Cross(H,DayH) AND GpUp AND NewDay,True,False);
  Short1=IIf(Cross(L,DayL) AND GpDown AND NewDay,True,False);

  Buy1=ExRem(Buy1,Short1 OR EndDay);
  Short1=ExRem(Short1,Buy1 OR EndDay);

  Buyflag2=Shortflag2=False;



  TempGapBuy=Buy1;
  TempGapShort=Short1;

  TempGapBuy=ExRem(TempGapBuy,EndDay);
  TempGapShort=ExRem(TempGapShort,EndDay);

  SetPositionSize(100,spsShares);



  Buy=TempGapBuy;
  Short=TempGapShort;

  BuyPrice=ValueWhen(Buy,C);
  ShortPrice=ValueWhen(Short,C);

  Buyflag=Flip(Buy,endday);
  Shortflag=Flip(Short,endday);

  Sell=IIf(Buyflag AND H>BuyPrice* (1+target/100) OR EndDay,True,False);
  Cover=IIf(Shortflag AND L<ShortPrice*(1-target/100) OR EndDay,True,False);

  Sell=ExRem(Sell,Buy);
  Cover=ExRem(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(IIf(Sell, shapeStar, shapeNone),colorWhite, 0,H, Offset=-45);
  PlotShapes(IIf(Cover, shapeStar, shapeNone),colorWhite, 0,H, Offset=-45);
_SECTION_END();
_SECTION_BEGIN("Price1");
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();


Filter=Buy OR Short ;
AddColumn(Buy ,"Short",1,colorBlack,IIf(GpUp,colorGreen, colorRed)) ;
AddColumn(Short,"Cover",1,colorBlack,IIf(GpUp,colorGreen, colorRed)) ;
AddColumn(IIf(Buy,BuyPrice,ShortPrice),"SignalPrice",1,colorBlack,IIf(GpUp,colorGreen, colorRed)) ;
AddColumn(IIf(Buy,BuyPrice* (1+target/100),ShortPrice* (1-target/100)),"TargetPrice",1,colorBlack,IIf(GpUp,colorGreen, colorRed)) ;
AddColumn(TimeNum(),"Signal Time",1,colorBlack,IIf(GpUp,colorGreen, colorRed)) ;
AddColumn(IIf((Buyflag AND H>BuyPrice* (1+target/100)) OR (shortflag AND L<(ShortPrice* (1-target/100))),True,False),"Target Achived",1,colorBlack,IIf(GpUp,colorGreen, colorRed));

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.