Code: Mục tiêu từng cấp độ cho Amibroker

chungsiviet
Bạn có thể copy mã này hoặc tải chỉ báo về nếu bạn không chuyên môn về mã code , nút download ở phía dưới cuối khung chứa code này:

// See more : chungsiviet.blogspot.com
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", colorBlack ), styleNoTitle | ParamStyle("Style") | GetPriceStyle() ); 
_SECTION_END();

_SECTION_BEGIN("Title");
IsGann = ParamToggle("Show GANN?","No|Yes",1);
isfulgann =   ParamToggle("8 levels of GANN?","No|Yes",0);
isgannBS =ParamToggle("Show GANN B/S ?","No|Yes",1);
isVol =   ParamToggle("Show Volume ?","No|Yes",1);


V=IIf(V<=0,1,V);
DayStart = Day() != Ref(Day(), -1);
Plot(DayStart,"",colorGrey40,styleLine+styleHistogram+styleThick+styleOwnScale);
    

Plot( C, "Price", IIf( C > O, colorGreen, colorRed ), styleCandle )  ;

_SECTION_END(); 



_SECTION_BEGIN("GANN  Intraday Targets");
Plot (MA20=MA(C,20),"MA20",colorBlue, styleThick);
Plot (MA50=MA(C,50),"MA55",colorred, styleThick);
Plot(HMA26=HMA(C,26), "HMA26",colorcustom12, styleThick | styleDots);
RefH = ValueWhen(TimeNum() == 091500 OR DayStart , H,1);
RefL = ValueWhen(TimeNum() == 091500 OR DayStart , L,1);
color = IIf (HMA26> MA20, IIf( c > HMA26 AND ( C> MA50)  , colorPaleGreen, colorPaleTurquoise) ,IIf( MA20< HMA26 AND C < HMA26 ,    colorRose,colorLightOrange)) ;

plotOHLC ( HMA26, MA20, HMA26, MA20, "", Color , styleCloud | styleNoLabel , Null, Null, xshift=0,zorder=-6 );
plotOHLC (  MA20, MA50, MA20, MA50, "", Color , styleCloud | styleNoLabel , Null, Null, xshift=0,zorder=-7 );




BaseNum = (int(sqrt((RefL+RefH)/2))-1);
sBelow = BaseNum + BaseNum;
sBelowI = 1;

//Calculate levels for GANN Square of Nine

for( i = 1; i < 50; i++ ) 
VarSet( "GANN"+i, (BaseNum * BaseNum) ); 
BaseNum = BaseNum + 0.125;
sBelowI = IIf( VarGet("GANN"+i)< RefH, i, sBelowI);
bAboveI = sBelowI + 1;
sBelow = round(VarGet("GANN"+sBelowI));
bAbove = round(VarGet("GANN"+bAboveI));
}

// Resistance Levels (or Targets for Buy trade)
BTgt1 = round(0.9995 * VarGet("Gann"+(bAboveI+1)));
BTgt2 = round(0.9995 * VarGet("Gann"+(bAboveI+2)));
BTgt3 = round(0.9995 * VarGet("Gann"+(bAboveI+3)));
BTgt4 = round(0.9995 * VarGet("Gann"+(baboveI+4)));
BTgt5 = round(0.9995 * VarGet("Gann"+(bAboveI+5)));
BTgt6 = round(0.9995 * VarGet("Gann"+(baboveI+6)));
BTgt7 = round(0.9995 * VarGet("Gann"+(baboveI+7)));
BTgt8 = round(0.9995 * VarGet("Gann"+(baboveI+8)));
// Support Levels (or Targets for Short trade)
STgt1 = round(1.0005 * VarGet("Gann"+(sBelowI-1)));
STgt2 = round(1.0005 * VarGet("Gann"+(sBelowI-2)));
STgt3 = round(1.0005 * VarGet("Gann"+(sBelowI-3)));
STgt4 = round(1.0005 * VarGet("Gann"+(sbelowI-4)));
STgt5 = round(1.0005 * VarGet("Gann"+(sBelowI-5)));
STgt6 = round(1.0005 * VarGet("Gann"+(sBelowI-6)));
STgt7 = round(1.0005 * VarGet("Gann"+(sBelowI-7)));
STgt8 = round(1.0005 * VarGet("Gann"+(sBelowI-8)));



Sstop= round(babove-((babove-sbelow)/3)) ;
Bstop= round(sbelow+((babove-sbelow)/3)) ;

BuySignal = TimeNum()>091500 AND (Cross(H,babove)OR Cross(C,babove) OR (H>babove AND L<=babove)) AND C<babove AND MACD() > 0 AND C >MA20;
ShortSignal = TimeNum()>091500 AND (Cross(Sbelow,L) OR Cross(Sbelow,C) OR (H>=sbelow AND L<sbelow))AND C>sbelow ;
/*
BuySignal = ExRem(BuySignal,ShortSignal);
ShortSignal = ExRem(ShortSignal,BuySignal);

ShortProfitStop= (STgt1 AND L<=Stgt1 AND C>Stgt1) OR (STgt2 AND L<=Stgt2 AND C>Stgt2) OR (STgt3 AND L<=Stgt3 AND C>Stgt3) OR (STgt4 AND L<=Stgt4 AND C>Stgt4) OR (STgt5 AND L<=Stgt5 AND C>Stgt5) OR (STgt6 AND L<=Stgt6 AND C>Stgt6);
BuyProfitStop= (Btgt1 AND H>=btgt1 AND C<Btgt1) OR (Btgt2 AND H>=Btgt2 AND C<btgt2) OR (Btgt3 AND H>=Btgt3 AND C<btgt3) OR (Btgt4 AND H>=Btgt4 AND C<btgt4) OR (Btgt5 AND H>=Btgt5 AND C<btgt5) OR (Btgt6 AND H>=Btgt6 AND C<btgt6);

SetOption("MaxOpenPositions", 1 ); 
SetPositionSize(100,spsShares);

Buy = BuySignal  ;
Sell = C<Bstop OR BuyProfitStop;
Short = ShortSignal;
Cover = C>SStop OR ShortProfitStop;

Buy = ExRem(Buy,Sell);
Sell = ExRem(Sell,Buy);
Short = ExRem(Short,Cover);
Cover = ExRem(Cover,Short);
*/
if(isgannBS==1)
{
Plot(bAbove,"Buy",colorSeaGreen,styleDots,0,0,0,0,2);
Plot(sBelow,"Sell",colorCustom12,styleDots,0,0,0,0,2);
}
if(isGANN ==1)
{
Plot(Btgt1,"B1",colorGreen,StyleLine);
Plot(Btgt2,"B2",colorGreen,StyleLine);
Plot(Btgt3,"B3",colorGreen,StyleLine);
if(isfulgann ==1)
{
Plot(Btgt4,"B4",colorGreen,StyleLine);
Plot(Btgt5,"B5",colorGreen,StyleLine);
Plot(Btgt6,"B6",colorGreen,StyleLine);
Plot(Btgt7,"B7",colorGreen,StyleLine);
Plot(Btgt8,"B8",colorGreen,StyleLine);
Plot(Stgt1,"S1",colorred,StyleLine);
Plot(Stgt2,"S2",colorred,StyleLine);
Plot(Stgt3,"S3",colorred,StyleLine);
if(isfulgann ==1)
{
Plot(Stgt4 ,"S4",colorred,StyleLine);
Plot(Stgt5,"S5",colorred,StyleLine);
Plot(Stgt6 ,"S6",colorred,StyleLine);
Plot(Stgt7,"S7",colorred,StyleLine);
Plot(Stgt8 ,"S8",colorred,StyleLine);
}
}
Sstop= round(babove-((babove-sbelow)/3)) ;
Bstop= round(sbelow+((babove-sbelow)/3)) ;

GfxSetBkMode( 1 );
GfxSelectFont("Courier New", 12, 700 ); 
GfxSetTextColor( colordarkoliveGreen );
GfxSelectPen( colorBlack, 1, 0) ;
GfxSelectSolidBrush( colorWhite ); 
abv=WriteIf (TimeNum()>091500  , "Buy Above"+"   "+  NumToStr(bAbove,1.2,False) + " SL : " + NumToStr(sBelow,1.2,False),  "Waiting for Signal" );
blow= WriteIf(TimeNum()>091500,  "Short below"+"   "+NumToStr(sBelow,1.2,False) + " SL : " + NumToStr(bAbove,1.2,False),"Waiting for Signal");
BTgtext = "Buy Targets : " + NumToStr(btgt1,1.2,False) + " - " + NumToStr(btgt2,1.2,False) + " - " + NumToStr(btgt3,1.2,False)+ " - " + NumToStr(btgt4,1.2,False)+ " - " + NumToStr(btgt5,1.2,False)+ " - " + NumToStr(btgt6,1.2,False)+ " - " + NumToStr(btgt7,1.2,False)+ " - " + NumToStr(btgt8,1.2,False);
STgtext ="Short Targets : " + NumToStr(stgt1,1.2,False) + " - " + NumToStr(stgt2,1.2) + " - " + NumToStr(stgt3,1.2,False) + " - " + NumToStr(stgt4,1.2,False) +" - "+ NumToStr(stgt5,1.2,False) + " - " + NumToStr(stgt6,1.2,False)+" - "+ NumToStr(stgt7,1.2,False) + " - " + NumToStr(stgt8,1.2,False);
GfxTextOut("Current time : " + TimeNum(),25, 25);
;
GfxTextOut("Buy Above : " + WriteIf(TimeNum()>091500, NumToStr(bAbove,1.2,False) + " SL : " + NumToStr(sBelow,1.2,False),"Waiting for Signal"), 25, 45);
GfxTextOut(WriteIf(TimeNum()>091500,BTgtext,""), 25, 60);

GfxSetBkMode( 1 );
GfxSelectFont("courier new", 12, 700 ); 
GfxSetTextColor( colordarkRed );
GfxSelectPen( colorBlack, 1, 0) ;
GfxSelectSolidBrush( colorWhite ); 

GfxTextOut("Short Below : " + WriteIf(TimeNum()>091500, NumToStr(sBelow,1.2,False) + " SL : " + NumToStr(bAbove,1.2,False),"Waiting for Signal"), 25, 85);
GfxTextOut(WriteIf(TimeNum()>091500,STgtext,""), 25, 100);

AddColumn(Close,"Close",1.4);
AddColumn(Buysignal,"buysignal",1.2);




_SECTION_BEGIN("Volume");
PaneHght = Param( "Volume Pane Height (in %)", 20, 1, 100, 1 );
PaneHghtMin = LowestVisibleValue( V);
PaneHghtMax = HighestVisibleValue(V) * 100 / PaneHght;

gxs=Param("GRAPH spaceing",5,5,50,5); 
GraphXSpace = gxs;

if (isVol == 1)
{

xcol1= IIf( C > Ref( C, -1 ) AND V > Ref( V, -1 ), colorGreen, IIf( C < Ref( C, -1 ) AND V > Ref( V, -1 ),colorOrange, colorBlue) );
xcol2= IIf( C > Ref( C, -1 ) AND V > Ref( V, -1 ), colorbrightGreen, IIf( C < Ref( C, -1 ) AND V > Ref( V, -1 ),colorpink, colorSkyblue) );

hz=EMA(Volume,5);
lz=EMA(Volume,9);
Plot( hz, "Vol", xcol1, Styleline|styleOwnScale  ,  PaneHghtMin, PaneHghtMax, 0, 0, 2 );
Plot( Volume, "", xcol1,  styleHistogram | styleOwnScale | styleThick | styleNoTitle , PaneHghtMin, PaneHghtMax, 0, 0, 2 );
Plot( Volume, "", xcol2,  styleArea | styleOwnScale | styleThick | styleNoTitle , PaneHghtMin, PaneHghtMax, 0, 0, 2 );


}
_SECTION_END();
Link tải mã nguồn về sử dụng:
Download here

Cách thêm sau khi tải về: Xem hướng dẫn tại phần 2: Đối với các chỉ báo không có sẵn trong Amibroker

Không có nhận xét nào:

Đăng nhận xét

Bài đăng Mới hơn Bài đăng Cũ hơn Trang chủ