Thư viện AFL
Thư viện AFL
Supertrend V4.0 - Mã AFL của Amibroker

Supertrend V4.0 - Mã AFL của Amibroker

So với Supertrend 3.0 với phiên bản mới, hai tính năng thú vị đã được thêm vào. Một là quy tắc lọc EMA đơn giản được thêm vào Điều kiện mua và bán và các thay đổi trong bảng điều khiển (bao gồm các mức mục tiêu trong Bảng điều khiển Supertrend dành cho các nhà giao dịch riêng biệt). Và hiệu suất của hệ thống Giao dịch thực sự thú vị khi kiểm tra lại Nifty và Bank Nifty Futures. Hội thảo trực tuyến được ghi lại về Supertrend và Bộ lọc được đăng bên dưới.

Quy tắc giao dịch

Mua

– nếu xu hướng tăng cho thấy tín hiệu mua và nến trên 200 EMA (Mũi tên xanh)

Thoát mua

– nếu supertrend hiển thị tín hiệu thoát (Sao Vàng)

ngắn

– nếu xu hướng tăng hiển thị tín hiệu bán và nến dưới 200 EMA (Mũi tên đỏ)

Thoát ngắn

– nếu supertrend hiển thị tín hiệu thoát (Sao Vàng)

Giao dịch được thực hiện khi đóng nến.

Áp dụng chỉ báo Supertrend V4.0 trong

Biểu đồ tương lai và quyền chọn NSE tương tác 5 phút

Thêm Supertrend và Moving Average 200EMA trên nến và tuân theo các quy tắc hệ thống giao dịch đã đề cập ở trên.

Truy cập vào đây Để biết thêm về phiên bản cơ bản của

siêu xu hướng và khái niệm

Điểm dừng cuối cùng

: Đường màu xanh lá cây là đường dừng cho Tín hiệu Mua và Đường màu đỏ là đường dừng cho Tín hiệu Bán.

Tính năng

1)Tín hiệu Mua, Bán và Thoát

  1. Bảng điều khiển giao dịch theo dõi giá thực hiện Giao dịch, điểm dừng lỗ dưới và P/L cho giao dịch đang chạy

  2. Tính năng thời gian còn lại để xác định thời gian hoàn thành thanh

4)Bảng điều khiển cho biết không có khu vực giao dịch khi không có giao dịch nào xảy ra.

  1. Đường 200 EMA – Điều kiện lọc.

  2. Chỉ báo Thành tích Mục tiêu trong Bảng điều khiển cho các Tín hiệu hiện tại.

  3. Thăm dò

Hội thảo trực tuyến về Supertrend V4.0 với Bộ lọc

Nếu bạn thích video, hãy đăng ký video youtube của chúng tôi để nhận thông tin cập nhật về hệ thống giao dịch, chiến lược giao dịch và nhiều thông tin khác về khái niệm giao dịch.

Trình bày về Supertrend và Bộ lọc

Các bước để cài đặt trong Amibroker của bạn

Tải xuống Supertrend v4.0

– Mã AFL của Amibroker. Nếu bạn không thoải mái khi chạy Backtesting và Optimization, hãy thử với đoạn mã sau

Supertrend V4.0 Backtest và tối ưu hóa

  1. Giải nén Supertrend V4.0 afl vào thư mục cục bộ

  2. Sao chép

Siêu xu hướng V4.0.afl

tập tin vào

\tệp chương trình\amibroker\formula\thư mục cơ bản\

  1. Mở

Amibroker

và mở một biểu đồ trống mới

  1. Xem lại

Biểu đồ->Biểu đồ cơ bản

và áp dụng/kéo và thả mã Supertrend v4.0 vào biểu đồ trống

  1. Bingo bạn đã hoàn tất. Bây giờ bạn sẽ có thể thấy chỉ báo Hệ thống giao dịch Supertrend v4.0 với các tín hiệu Mua và Bán.

Kết quả được kiểm tra lại của Supertrend V4.0 cho tương lai tiện lợi

với kích thước lô cố định là 100 cổ phiếu. Đã được kiểm tra lại với dữ liệu lịch sử 1 phút kể từ tháng 1 năm 2008 đến tháng 7 năm 2014

Supertrend V4.0 – Mã AFL của Amibroker

Liên quan

Mã nguồn (.afl)
/* Done by    Rajandran R  */
/* Author of www.marketcalls.in  */

function GetSecondNum()
{
    Time = Now( 4 );
    Seconds = int( Time % 100 );
    Minutes = int( Time / 100 % 100 );
    Hours = int( Time / 10000 % 100 );
    SecondNum = int( Hours * 60 * 60 + Minutes * 60 + Seconds );
    return SecondNum;
}


_SECTION_BEGIN("SuperTrend Ver 4");

SetBarsRequired(100000,0);


GraphXSpace = 15;

SetChartOptions(0,chartShowArrows|chartShowDates);

SetChartBkColor(ParamColor("bkcolor",ColorRGB(0,0, 0)));

GfxSetBkMode(0); 

GfxSetOverlayMode(1);

SetBarFillColor(IIf(C>O,ParamColor("Candle UP Color", colorGreen),IIf(C<=O,ParamColor("Candle Down Color", colorRed),colorLightGrey)));

Plot(C,"\nPrice",IIf(C>O,ParamColor("Wick UP Color", colorDarkGreen),IIf(C<=O,ParamColor("Wick Down Color", colorDarkRed),colorLightGrey)),64,0,0,0,0);




SetPositionSize(1*RoundLotSize,spsShares);

sig = 0;
bars =0; 
tar1 =0;
tar2 = 0;
tar3=0;


_N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 ) ) ));



Factor=optimize("Factor",3,1,3,1);

Pd=optimize("ATR Periods",10,1,100,1);


Up=(H+L)/2+(Factor*ATR(Pd));

Dn=(H+L)/2-(Factor*ATR(Pd));

iATR=ATR(Pd);

TrendUp=TrendDown=Null;

trend[0]=1;

changeOfTrend=0;

flag=flagh=0;



for (i = 1; i <BarCount; i++) {

      TrendUp[i] = Null;

      TrendDown[i] = Null;

     

      trend[i]=1;

   

      

      if (Close[i]>Up[i-1]) {

         trend[i]=1;

         if (trend[i-1] == -1) changeOfTrend = 1;

         

      }

      else if (Close[i]<Dn[i-1]) {

         trend[i]=-1;

         if (trend[i-1] == 1) changeOfTrend = 1;

      }

      else if (trend[i-1]==1) {

         trend[i]=1;

         changeOfTrend = 0;       

      }

      else if (trend[i-1]==-1) {

         trend[i]=-1;

         changeOfTrend = 0;

      }



      if (trend[i]<0 && trend[i-1]>0) {

         flag=1;

      }

      else {

         flag=0;

      }

      

      if (trend[i]>0 && trend[i-1]<0) {

         flagh=1;

      }

      else {

         flagh=0;

      }

      

      if (trend[i]>0 && Dn[i]<Dn[i-1]){

         Dn[i]=Dn[i-1];

		}

      

      if (trend[i]<0 && Up[i]>Up[i-1])

        { Up[i]=Up[i-1];

		}

      

      if (flag==1)

       {  Up[i]=(H[i]+L[i])/2+(Factor*iATR[i]);;

        } 

      if (flagh==1)

        { Dn[i]=(H[i]+L[i])/2-(Factor*iATR[i]);;

         }

      if (trend[i]==1) {

         TrendUp[i]=Dn[i];

         if (changeOfTrend == 1) {

            TrendUp[i-1] = TrendDown[i-1];

            changeOfTrend = 0;

         }

      }

      else if (trend[i]==-1) {

         TrendDown[i]=Up[i];

         if (changeOfTrend == 1) {

            TrendDown[i-1] = TrendUp[i-1];

            changeOfTrend = 0;

         }

      }

   } 



Plot(TrendUp,"Trend",colorGreen);

Plot(TrendDown,"Down",colorRed);

Length =200;//Optimize("HMA",100,10,300,1);

emafilter = Ref(EMA(Close,length),-1);

Buy = trend==1 AND c>emafilter;
Sell=trend==-1 ;

Short=trend==-1  and C<emafilter;
Cover=trend==1;

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

short=ExRem(short,cover);
cover=ExRem(cover,short);

Long=Flip(Buy,Sell); 
Shrt=Flip(Short,Cover); 
Relax = NOT Long AND NOT Buy AND NOT shrt AND NOT Sell AND NOT Sell AND NOT Cover; 

BarsSincebuy = BarsSince( Buy ); 
BarsSinceshort = BarsSince( Short ); 
LastSignal = IIf( BarsSincebuy < BarsSinceshort, 1, -1 ); 

SetTradeDelays(0,0,0,0);

Buy = Ref(Buy,-1);
Sell = Ref(Sell,-1);
Short = Ref(Short,-1);
Cover = Ref(Cover,-1);

BuyPrice=ValueWhen(Buy,open);
SellPrice=ValueWhen(Sell,open);
ShortPrice=ValueWhen(Short,open);
CoverPrice=ValueWhen(Cover,open);

Title = EncodeColor(colorWhite)+ "Super Trend AFL code from www.marketcalls.in" + " - " +  Name() + " - " + EncodeColor(colorRed)+ Interval(2) + EncodeColor(colorWhite) +

 "  - " + Date() +" - "+"\n" +EncodeColor(colorRed) +"Op-"+O+"  "+"Hi-"+H+"  "+"Lo-"+L+"  "+

"Cl-"+C+"  "+ "Vol= "+ WriteVal(V)+"\n"+ 

EncodeColor(colorLime)+

WriteIf (Buy , " GO LONG / Reverse Signal at "+C+"  ","")+

WriteIf (Sell , " EXIT LONG / Reverse Signal at "+C+"  ","")+"\n"+EncodeColor(colorYellow)+

WriteIf(Sell , "Total Profit/Loss for the Last Trade Rs."+(C-BuyPrice)+"","")+

WriteIf(Buy  , "Total Profit/Loss for the Last trade Rs."+(SellPrice-C)+"","");



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),colorGold, 0, L, Offset=-15); 
PlotShapes(IIf(Cover, shapeStar, shapeNone),colorGold, 0,L, Offset=-15); 





TrendSL=IIf(trend==1,TrendUp,TrendDown);

sig=0;


for(i=BarCount-1;i>1;i--)

{

if(Buy[i] == 1)

{

entry = C[i];

sig = 1;

sl = TrendSL[i];

tar1 = entry + (entry * .0050);

tar2 = entry + (entry * .0092);

tar3 = entry + (entry * .0179);

 

bars = i;

i = 0;

}

if(Short[i] == 1)

{

sig = -1;

entry = C[i];

sl = TrendSL[i];

tar1 = entry - (entry * .0050);

tar2 = entry - (entry * .0112);

tar3 = entry - (entry * .0212);

 

 

bars = i;

i = 0;

}

}

Offset = 20;

SellSL=ValueWhen(Short,Ref(TrendSL,-1),1); 
BuySL=ValueWhen(Buy,Ref(TrendSL,-1),1); 



Clr = IIf(sig ==1, colorLime, colorRed);

ssl = IIf(bars == BarCount-1, TrendSL[BarCount-1], Ref(TrendSL, -1));

sl = ssl[BarCount-1];





Plot(LineArray(bars-Offset, tar1, BarCount, tar1,1), "", Clr, styleLine|styleDots, Null, Null, Offset);

Plot(LineArray(bars-Offset, tar2, BarCount, tar2,1), "", Clr, styleLine|styleDots, Null, Null, Offset);

Plot(LineArray(bars-Offset, tar3, BarCount, tar3,1), "", Clr, styleLine|styleDots, Null, Null, Offset);






buyach1 = IIf((Buy OR Long AND NOT Relax AND NOT Cover AND NOT Short AND NOT Shrt), H > tar1, 0); 
buyach2 = IIf((Buy OR Long AND NOT Relax AND NOT Cover AND NOT Short AND NOT Shrt), H > tar2, 0); 
buyach3 = IIf((Buy OR Long AND NOT Relax AND NOT Cover AND NOT Short AND NOT Shrt), H > tar3, 0); 

sellach1 = IIf((Short OR Shrt AND NOT Relax AND NOT Sell AND NOT Buy AND NOT Long), L < tar1, 0); 
sellach2 = IIf((Short OR Shrt AND NOT Relax AND NOT Sell AND NOT Buy AND NOT Long), L < tar2, 0); 
sellach3 = IIf((Short OR Shrt AND NOT Relax AND NOT Sell AND NOT Buy AND NOT Long), L < tar3, 0); 


// Message Board ----------------- 
GfxSelectFont( "Tahoma", 13, 100 ); 

GfxSetBkMode( 1 ); 

GfxSetTextColor 
( colorWhite ); 

if ( SelectedValue( LastSignal ) == 1 ) 
    { 
        GfxSelectSolidBrush( colordarkGreen ); 
    } 
    else 
    { 
        GfxSelectSolidBrush( colorRed ); 
        } 


pxHeight = Status( "pxchartheight" ) ; 

xx = Status( "pxchartwidth"); 

Left = 1100; 

width = 310; 

x = 5; 

x2 = 290; 

y = pxHeight; 

GfxSelectPen 
( colorLightBlue, 1); // border color 

GfxRoundRect 
( x, y - 155, x2, y , 7, 7 ) ; 


GfxTextOut( ( "Marketcalls - Supertrend V4.0"),13,y-130);

GfxTextOut 
( ("" + WriteIf(Buy, "Go Long At "+C+" - SL " +Ref(TrendSL,-1),"")), 13, y-105); 

GfxTextOut 
( ("" + WriteIf (Short, "Go Short At "+C+" - SL " +Ref(TrendSL,-1),"")), 13, y-105); 


GfxTextOut 
( ("" + WriteIf (Sell AND NOT Short, "Exit Long At "+C,"")), 13, y-115); 

GfxTextOut 
( ("" + WriteIf (Cover AND NOT Buy, "Exit Short At "+C,"")), 13, y-115); 


GfxTextOut 
( ("" + WriteIf (Long AND NOT Buy, "Long At "+(BuyPrice)+" - TSL " + Ref(TrendSL,-1)+ "","")), 13, y-105); 

GfxTextOut 
( ("" + WriteIf (shrt AND NOT Short, "Short At "+(ShortPrice)+" - TSL " + Ref(TrendSL,-1)+ "","")), 13, y-105); 

GfxTextOut 
( ("" + WriteIf (Relax, "No Trade Zone - Wait","")), 13, y-105); 

GfxTextOut 
( ("" + WriteIf (Long AND NOT Buy, "Current P/L: "+(C-BuyPrice)+" Points","")), 13, y-85); 

GfxTextOut 
( ("" + WriteIf (shrt AND NOT Short, "Current P/L: "+(ShortPrice-C)+" Points","")), 13, y-85); 

GfxTextOut 
( ("" + WriteIf (Long OR Buy OR Shrt OR Short, "Target 1: "+tar1,"")), 13, y-65); 

GfxTextOut 
( ("" + WriteIf (Long OR Buy OR Shrt OR Short, "Target 2: "+tar2,"")), 13, y-45); 

GfxTextOut 
( ("" + WriteIf (Long OR Buy OR Shrt OR Short, "Target 3: "+tar3,"")), 13, y-25); 

GfxTextOut 
( ("" + WriteIf (buyach1, "Target 1: "+tar1+" :: Achiecheved","")), 13, y-65); 

GfxTextOut 
( ("" + WriteIf (sellach1, "Target 1: "+tar1+" :: Achiecheved","")), 13, y-65); 

GfxTextOut 
( ("" + WriteIf (buyach2, "Target 2: "+tar2+" :: Achiecheved","")), 13, y-45); 

GfxTextOut 
( ("" + WriteIf (sellach2, "Target 2: "+tar2+" :: Achiecheved","")), 13, y-45); 

GfxTextOut 
( ("" + WriteIf (buyach3, "Target 3: "+tar3+" :: Achiecheved","")), 13, y-25); 

GfxTextOut 
( ("" + WriteIf (sellach3, "Target 3: "+tar3+" :: Achiecheved","")), 13, y-25); 



Filter=Buy OR Short; 
AddColumn( IIf( Buy, 66 , 83 ), "Signal", formatChar, colorDefault, IIf( Buy , colorGreen, colorRed ) ); 
AddColumn(Close,"Entry Price",1.4, colorDefault, IIf( Buy , colorGreen, colorRed )); 
AddColumn(Ref(TrendSL,-1),"Stop Loss",1.4, colorDefault, IIf( Buy , colorGreen, colorRed )); 
AddColumn(tar1,"Target 1",1.4, colorDefault, IIf( Buy , colorGreen, colorRed )); 
AddColumn(tar2,"Target 2",1.4, colorDefault, IIf( Buy , colorGreen, colorRed )); 
AddColumn(tar3,"Target 3",1.4, colorDefault, IIf( Buy , colorGreen, colorRed )); 
AddColumn(Volume,"Volume",1.0, colorDefault, IIf ((Volume > 1.25 * EMA( Volume, 34 )),colorBlue,colorYellow)); 

_SECTION_END();

_SECTION_BEGIN("EMA1");
P = ParamField("Price field",-1);
Periods = Param("Periods", 200, 2, 300, 1, 10 );
Plot( EMA( P, Periods ), _DEFAULT_NAME(), ParamColor( "Color", colorCycle ), ParamStyle("Style") ); 
_SECTION_END();

_SECTION_BEGIN("Time Left");

RequestTimedRefresh( 1 );

TimeFrame = Interval();

SecNumber = GetSecondNum();

Newperiod = SecNumber % TimeFrame == 0;

SecsLeft = SecNumber - int( SecNumber / TimeFrame ) * TimeFrame;

SecsToGo = TimeFrame - SecsLeft;



x=Param("xposn",50,0,1000,1);

y=Param("yposn",380,0,1000,1);



GfxSelectSolidBrush( ColorRGB( 230, 230, 230 ) );

GfxSelectPen( ColorRGB( 230, 230, 230 ), 2 );

if ( NewPeriod )

{

GfxSelectSolidBrush( colorYellow );

GfxSelectPen( colorYellow, 2 );

Say( "New period" );

}

//GfxRoundRect( x+45, y+40, x-3, y-2, 0, 0 );

//GfxSetBkMode(1);

GfxSelectFont( "Arial", 14, 700, False );

GfxSetTextColor( colorRed );

GfxTextOut( "Time Left :"+SecsToGo+"", x, y );

_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.