https://drive.google.com/file/d/1cyFNEDyps_OOn14ra2LXo-9yJGGIx-_Y/view
Tải code miễn phí của Hùng Canslim ở đây
Tham khảo kiến thức về code amibroker:
https://nhatkyhoctap.blogspot.com/2020/10/tong-hop-mot-so-kien-thuc-lap-trinh-ve.html
http://kakata.vn/thu-thuat-amibroker-co-ban-ve-afl-amibroker-cho-nguoi-moi.t3223.html
https://chibaodautu.com/ham-xay-dung-loc-co-phieu-amibroker/
https://chibaodautu.com/ham-xay-dung-loc-co-phieu-amibroker/
https://chibaodautu.com/bang-loc-filter-tuy-bien/
_SECTION_BEGIN(“4. TONG HOP NGANH”);
pxwidth = Status( “pxwidth” );
pxheight = Status( “pxheight” );
Contrast1 = Param( “Contrast 1”, 0.5, 0.01, 1, 0.01 );
Contrast2 = Param( “Contrast 2”, 0.8, 0.01, 1, 0.01 );
//GfxSetOverlayMode( 2 );
GfxSetBkMode( 0 ); // transparent
GfxSelectSolidBrush( colorWhite );
GfxSelectPen( colorWhite, 1 );
GfxGradientRect( 0, 0, pxwidth, pxheight, colorWhite, ColorBlend( colorLightGrey, colorWhite, Contrast1 ) );
////////////////
cellheight = 23/870pxheight; grid1_col1_cellwidth = 150/1880pxwidth;
grid1_col2_cellwidth = 150/1880pxwidth; grid1_col3_cellwidth = 150/1880pxwidth;
Trang = ParamList(“Chon Trang”, “Trang1|Trang2|Trang3”,0);
/*
GuiToggle( “TRANG 1”, 1, start_x, start_y+cellheight, grid1_col1_cellwidth, cellheight, 1 );
guicheck1 = GuiGetCheck(1);
if( guicheck1 == 0 ) GuiSetText( “TRANG 1”, 1 );
if( guicheck1 ) {
Trang = ParamList(“Chon Trang”, “Trang1”,0);
}
GuiToggle( “TRANG 2”, 2, start_x+grid1_col1_cellwidth, start_y+cellheight, grid1_col2_cellwidth, cellheight, 1 );
guicheck2 = GuiGetCheck(2);
if( guicheck2 == 0 ) GuiSetText( “TRANG 2”, 2 );
if( guicheck2 ) {
Trang = ParamList(“Chon Trang”, “Trang2”,0);
}
GuiToggle( “TRANG 3”, 3, start_x+grid1_col1_cellwidth+grid1_col2_cellwidth, start_y+cellheight, grid1_col3_cellwidth, cellheight, 1 );
guicheck3 = GuiGetCheck(3);
if( guicheck3 == 0 ) GuiSetText( “TRANG 3”, 3 );
if( guicheck3 ) {
Trang = ParamList(“Chon Trang”, “Trang3”,0);
}
*/
procedure SetOrigin(x0, y0) {
global _x0, _y0;
_x0 = x0; _y0 = y0;
}
_cursorMouseButtons = GetCursorMouseButtons();
DT_CENTER = 0; DT_VCENTER = 0 | 32;
function GfxGetState(id) {
return Nz(StaticVarGet(“GfxState”+id+GetChartID()), 0);
}
function PointInside(x0, y0, x, y, width, height) {
global _x0, _y0;
x = x+_x0; y = y+_y0;
x0 = x0+_x0; y0 = y0+_y0;
return ((x0 >= x) && (y0 >= y) && (x0 <= (x+width)) && (y0 <= (y+height)));
}
function LeftClickInside(x, y, width, height) {
global _cursorMouseButtons, _x0, _y0;
local px, py, res;
//x = x+_x0; y = y+_y0;
res = False;
if (_cursorMouseButtons & 8) { // click
px = GetCursorXPosition(1);
py = GetCursorYPosition(1);
res = PointInside(px, py, x, y, width, height);
}
return res;
}
procedure GfxSetState(id, val) {
StaticVarSet(“GfxState”+id+GetChartID(), val);
}
GfxSelectFont(“Tahoma”,08, 400);
function GfxHTabs(id, headers, headheight, x, y, width, height, colorfg, colorbg) {
global _x0, _y0;
local px,choice,na,i,n,header,w, wi, prevwi;
x = x+_x0; y = y+_y0; choice = GfxGetState(id);
for(n = 0; (header = StrExtract(headers,n)) != ""; ++n) {};
w = width/n; wi = x; prevwi = x;
if (LeftClickInside(x,y,width,headheight)) {
px = GetCursorXPosition( 1 );
//choice = floor((px - x)/w);
// wi = x; prevwi = x;
for(i = 0; (header = StrExtract(headers,i)) != ""; ++i) {
wi = wi + 2*GfxGetTextWidth(header);
if ((px > prevwi) && (px < wi)) { choice = i; break; }
}
GfxSetState(id, choice); // StaticVarSet(na, choice);
}
GfxSetBkMode(1);
// Draw Zone & Tabs
wi = x; prevwi = x;
for(i = 0; (header = StrExtract(headers,i)) != ""; ++i) {
wi = wi + 2*GfxGetTextWidth(header);
GfxSelectSolidBrush(colorPaleGreen);
GfxRoundRect(prevwi,y,wi,y+headheight+5,5,5);
GfxSelectSolidBrush( colorbg );
if (i != choice) {
GfxSelectHatchBrush(colorbg,7);
GfxRoundRect(prevwi,y,wi,y+headheight+5,5,5);
GfxSelectSolidBrush( colorbg );
} else {
wic = wi; prevwic = prevwi;
}
GfxDrawText(header, prevwi, y, wi, y+headheight+5, 1|4|32);
prevwi = wi;
}
return choice;
}
procedure GfxTSI(x,y) {
SetOrigin(x,y);
n = GfxHTabs(“HTab1”, “Trang 1,Trang 2,Trang 3”, 10, 770, 100, 400, 500, colorBlack, colorLavender);
switch(n) {
case 0:
Trang = ParamList(“Chon Trang”, “Trang1”,0);
break;
case 1:
Trang = ParamList(“Chon Trang”, “Trang2”,0);
break;
case 2:
Trang = ParamList(“Chon Trang”, “Trang3”,0);
break;
}
}
x = Param(“x_origin”, 1280, 0, 1980, 20);
y = pxb = Status( “pxchartbottom” )-128; // vi tri Nut Chuyen Trang
GfxTSI(x,y);
switch (Trang)
{
case “Trang1”:
Listnganh = “VN30,BDS,CHUNG KHOAN,NGAN HANG,DAU TU CONG,CO BAN TOT,CN-BANLE-DAUKHI,PENNY,TANG TRUONG,BDS-KCN,BDS-KCN,BDS-KCN”;
break;
case “Trang2”:
Listnganh = “THUC PHAM-XUAT KHAU,XD-VLXD,THAN-KHOANG SAN,PHAN BON-HOA CHAT,THUY SAN,DET MAY,YTE-DUOC,BAO HIEM,CAO SU”;
break;
case “Trang3”:
Listnganh = “DIEN-NANG LUONG,NUOC-NHUA,HANG KHONG-DU LICH,DTPT,DICH VU,DUONG-GO,SXKD”;
break;
}
GfxSelectPen( colorWhite, 1 );
xht1=Param(“VTRI-XHT”,0,0,2000,1);
yht1=Param(“VTRI-YHT”,37,0,1200,1);
xht=xht1/1880pxwidth; yht=yht1/870pxheight;
btnWidth_ht = Param( “Cell Width CPTUAN”, 175, 5, 1000, 1 ); //chieu rong cot
btnHeight_ht = Param( “Cell Height CPTUAN “, 32, 5, 200, 1 );
btnWidth=btnWidth_ht/1880pxwidth; btnHeight=btnHeight_ht/870pxheight;
/////
NGANHANG1=ParamStr(“NGAN HANG”,”VPB,ABB,ACB,BAB,BID,BVB,CTG,EIB,HDB,KLB,LPB,MBB,MSB,NAB,NVB,OCB,PGB,SGB,SHB,STB,TCB,TPB,VBB,VCB,VIB,SSB,VAB”);
CHUNGKHOAN1=ParamStr(“CHUNG KHOAN”,”AAS,AGR,APG,ART,BSI,BVS,CTS,EVF,EVS,FTS,HCM,MBS,SBS,SHS,SSI,VCI,VDS,VIX,VND,APS,HBS,IVS,ORS,TVB,TVS,VIG,WSS,BMS,TCI,VFS”);
THEP1=ParamStr(“THEP”,”BVG,HPG,HSG,NKG,SHI,SMC,TLH,TVN,VGS”);
TANGTRUONG1=ParamStr(“TANG TRUONG”,”RAL,TMB,MCH,NCT,GMD,VFG,VRG,CST,SGN,FOC,QNS,NTL,TOS,IDC,CNT,SIP,SCS,TCB,VCS,FPT,FOX,PTB,VEA,PVI,CTR,ACV,LAI,VNM,FMC,STB,BIC,BID,HDB,CTG,BWE,MSH,VLB,DPG,TIP,SAB,ACG,BVS,AGG,MAC,NBC,PVT,SCL,AST,VTK,VGC,CTD,NAB,TVC,GEE,GDA,LPB,PLX,PAC,FTS,HUB,BVH,BCM,VIC,DCM,DRC,SAS,BSI,DGW,NAF,PAN,SHB,OCB,CLX,VND,TVS,TPB,DC4,PVS,VRE,SJS,BNA,VDS,CTS,GDT,CKG,KHP,PPC,SSI,SGR,MIG,VIX,TC6,GSP,KLB,SSB,HPG,HCD,QTP,VCG,PDV,SZC,TCM,LAS,SGP,MBS,HSG,VCI,NHH,VJC,DPM,VPB,CII,L18,VC3,TCH,HHS,TID,PVD,LSS,HCM,S99,VTO,VOS,TTN,MST,VGS,DRI,SHS,VNB,MVN,CCL,
“);
BAOHIEM1=ParamStr(“BAO HIEM”,”BVH,BMI,MIG,PVI,BIC,ABI,VNR”);
BATDONGSAN1=ParamStr(“BDS”,”CEO,DIG,DLG,DPG,DRH,DXG,HDC,HDG,HLD,HQC,HUT,IJC,KDH,LGL,NDN,NTL,NVL,PDR,SCR,TCH,TDH,VPH,HTN,CRE,IDJ,NHA,OGC,DXS,FIR,HPX,KHG,ITA,KBC,SZC,D2D,IDC,VGC,LHG”);
BDSKCN1=ParamStr(“BDS-KCN”,”D2D”);
XD_VLXD1=ParamStr(“XD_VLXD”,”VCG,VC7,HU4,MST,ROS,VC3,ACC,QNC,SCL,BCE,CSC,HTI,TTB,APC,C69,CDO,CRC,HID,HVH,LIG,PAS,S99,SCG,SCI,SDP,TLD,UDJ,EVG,CTD,PHC,CKG”);
DAUTUCONG1=ParamStr(“DAU TU CONG”,”HPG,HSG,NKG,HHV,VGS,BTS,BCC,C32,C47,C4G,CII,CTI,DHA,FCN,G36,HOM,HT1,KSB,LCG,TCD,THG,TV2,VCG,HUT,PLC,PC1″);
CAOSU1=ParamStr(“CAO SU”,”DPR,DRC,DRI,GVR,PHR,VHG,HNG”);
DETMAY1=ParamStr(“DET MAY”,”ADS,EVE,FTM,GIL,KMR,MSH,STK,TCM,TNG,VGT”);
THANKHOANGSAN1=ParamStr(“THAN – KHOANG SAN”,”CLX,KSB,MDC,NBC,NNC,TDN,THT,TVD,VEF,CST,AMD,BMC,DHM,KHB,KSQ,MSR,TC6,TNT”);
THUYSAN1=ParamStr(“THUYSAN”,”ACL,ANV,ASM,CMX,FMC,IDI,MPC,VHC”);
THUCPHAMXK1=ParamStr(“THUC PHAM-XK”,”AFX,DBC,DHC,KDC,LTG,MHC,MSN,NAF,PTB,TNA,VCS,VLC,VNM,VOC,APF,BNA,KDF,MCM,MLS,TAR,VHE”);
HOACHATPHANBON1=ParamStr(“HOA CHAT – PHAN BON”,”BFC,CSV,DCM,DDV,DGC,DPM,LAS,LIX,QBS,TSC,PMB,SBV,HCD,ABS”);
BLECONGNGHE1=ParamStr(“CN-BANLE-DAUKHI”,”CMG,DGW,ELC,FOX,FPT,FRT,ITD,MWG,PET,PNJ,SAB,SGT,SAM,CTR,VGI,PVS,PVD,BSR,PLX,GAS,PVC,TNG,TCM,HAG,DBC,BAF,DHG”);
CANGVANTAI1=ParamStr(“CANG – VAN TAI”,”ANV,CSV,CTR,DCM,DGC,DGW,DHC,DPG,DPM,FRT,GIL,HAH,HAX,HDC,HDG,IDC,PHR,PTB,VGC,VHC,BSR,PNJ,REE,TCM,VIB,GMD”);
DICHVU1=ParamStr(“DICH VU”,”HAX,PAN,TCT,VNG,VTP,KLF”);
DIEN_NANGLUONG1=ParamStr(“DIEN_NANGLUONG”,”KHP,PPC,PVG,QTP,VSH,TTA,GEG,SJD,NT2,REE,PC1,HND,GEX,VNE”);
DTPT1=ParamStr(“DTPT”,”EID,FID,FIT,HHS,SJF,VCR,SHN”);
DUONGGO1=ParamStr(“DUONG – GO”,”GDT,LSS,QNS,SBT,TTF”);
HANGKHONGDULICH1=ParamStr(“HANG KHONG-DU LICH”,”ACV,AST,HVN,SAS,VJC,VTD,NCT,DAH,RIC”);
NUOCNHUA1=ParamStr(“PENNY”,”EVG,IDJ,HPX,TLH,APS,PVX,HVH,YEG,TTB,API,TEG,DGT,AAH,BCC,POM,PSB,AAV,HTP,VPH,IBC,LDG,SJF,C69,TTF,TVB,NO1,PSH,TCD,CTP,SBS,HVG,QBS,G36,DL1,PVL,DRH,KSQ,RDP,FIR,NRC,ST8,CVN,MST,NED,TTH,PVG,DVG,AAS,VHG,MBG,BKG,PXS,VIG,SBD,PSI,C47,ACM,OGC,AMV,LIG,DLG,TIS,HSV,JVC,PIV,GPC,TSC,LCM,PVO,CRC,VST,SDA,DCS,HII,LMH,,CIG,ABS,BOT,BIG,DDG,PAS,TDH,FID,VHE,ABW,HID,HAR,PSW,DHM,TDG,ONE,”);
SXKD1=ParamStr(“SXKD”,”DQC,HAP,NAG,PAC,RAL,SAV,TLG”);
YTEDUOC1=ParamStr(“YTEDUOC”,”AMV,DBD,DCL,DHG,DMC,DVN,JVC,HAI,TNH”);
VN301=ParamStr(“VN30″,”ACB,BID,BVH,CTG,FPT,GAS,GVR,HDB,HPG,KDH,MBB,MSN,MWG,NVL,PDR,PLX,PNJ,POW,SAB,SSI,STB,TCB,TPB,VCB,VHM,VIC,VJC,VNM,VPB,VRE”);
////////////VN301=WatchlistName = ParamStr(“WL”, “image”);
//wlnumber = CategoryFind(WatchlistName, cat = categoryWatchlist);
//tickerlist =CategoryGetSymbols(cat, wlnumber);
///////////
for ( e = 0; e <= 11; e++ )
{
WatchlistName=StrExtract(Listnganh, e );
xtru=IIf(WatchlistName==”CAO SU” ,(xht+btnWidth)e,IIf(WatchlistName==”SXKD” ,(xht+btnWidth)(e-1),IIf(WatchlistName==”DTPT” ,(xht+btnWidth)(e-2),IIf(WatchlistName==”DICH VU” ,(xht+btnWidth)(e-3),IIf(WatchlistName==”DUONG-GO”,(xht+btnWidth)(e-4),0))))); ytru=IIf(WatchlistName==”CAO SU” OR WatchlistName==”SXKD” OR WatchlistName==”DTPT” OR WatchlistName==”DICH VU” OR WatchlistName==”DUONG-GO”,btnHeight16,0);
x=xht+(xht+btnWidth)e-xtru; y=yht+ytru; add=IIf(WatchlistName==”XD-VLXD”,0.5,IIf(WatchlistName==”CHUNG KHOAN”,1.3,IIf(WatchlistName==”NGAN HANG”,1.3, IIf(WatchlistName==”THEP”,0.1,IIf(WatchlistName==”TANG TRUONG”,0.2,IIf(WatchlistName==”CO BAN TOT”,4.5, IIf(WatchlistName==”THUC PHAM-XUAT KHAU”,12,IIf(WatchlistName==”DAU TU CONG”,1.5,IIf(WatchlistName==”BDS KCN”,0.5, IIf(WatchlistName==”THAN-KHOANG SAN”,4,IIf(WatchlistName==”CN-BANLE-DAUKHI”,5,IIf(WatchlistName==”PHAN BON-HOA CHAT”,5, IIf(WatchlistName==”DIEN-NANG LUONG”,4,IIf(WatchlistName==”NUOC-NHUA”,1,IIf(WatchlistName==”DET MAY”,0.5, IIf(WatchlistName==”HANG KHONG-DU LICH”,8,IIf(WatchlistName==”YTE-DUOC”,1,IIf(WatchlistName==”THUY SAN”,0.7,IIf(WatchlistName==”BAO HIEM”,0.5, IIf(WatchlistName==”CAO SU”,0.2,IIf(WatchlistName==”DICH VU”,0.5,IIf(WatchlistName==”DUONG-GO”,1,0)))))))))))))))))))))); GfxSelectFont( “Arial”, 11/890pxheight, 300 );
GfxSetTextColor( colorBlack );
GfxSelectSolidBrush(ColorBlend( colorBlueGrey, colorWhite, Contrast2 ));
GfxRoundRect( x,y, x+btnWidth, y-btnHeight, 9, 9 );
GfxTextOut( WatchlistName,x, y-btnHeight/1.2 );
Listnganh1 = WriteIf(WatchlistName==”NGAN HANG”,NGANHANG1,WriteIf(WatchlistName==”CHUNG KHOAN”,CHUNGKHOAN1,WriteIf(WatchlistName==”THEP”,THEP1,
WriteIf(WatchlistName==”BDS KCN”,BDSKCN1,WriteIf(WatchlistName==”TANG TRUONG”,TANGTRUONG1,WriteIf(WatchlistName==”BAO HIEM”,BAOHIEM1,
WriteIf(WatchlistName==”BDS”,BATDONGSAN1,WriteIf(WatchlistName==”DAU TU CONG”,DAUTUCONG1,WriteIf(WatchlistName==”XD-VLXD”,XD_VLXD1,
WriteIf(WatchlistName==”CAO SU”,CAOSU1,WriteIf(WatchlistName==”DET MAY”,DETMAY1,WriteIf(WatchlistName==”THAN-KHOANG SAN”,THANKHOANGSAN1,
WriteIf(WatchlistName==”THUY SAN”,THUYSAN1,WriteIf(WatchlistName==”THUC PHAM-XUAT KHAU”,THUCPHAMXK1,WriteIf(WatchlistName==”PHAN BON-HOA CHAT”,HOACHATPHANBON1,
WriteIf(WatchlistName==”CN-BANLE-DAUKHI”,BLECONGNGHE1,WriteIf(WatchlistName==”CO BAN TOT”,CANGVANTAI1,WriteIf(WatchlistName==”DICH VU”,DICHVU1,
WriteIf(WatchlistName==”DIEN-NANG LUONG”,DIEN_NANGLUONG1,WriteIf(WatchlistName==”DTPT”,DTPT1,WriteIf(WatchlistName==”DUONG-GO”,DUONGGO1,
WriteIf(WatchlistName==”HANG KHONG-DU LICH”,HANGKHONGDULICH1,WriteIf(WatchlistName==”PENNY”,NUOCNHUA1,WriteIf(WatchlistName==”SXKD”,SXKD1,
WriteIf(WatchlistName==”YTE-DUOC”,YTEDUOC1,VN301)))))))))))))))))))))))));
tickerlist =Listnganh1;
bi = BarIndex();
fbr = Status(“firstbarinrange”);
explore = Status(“action”) == actionExplore;
fvb = IIf(explore, LastValue(ValueWhen(fbr,bi)), Status(“firstvisiblebar”));
sym_num = StrCount(tickerlist, “,”)+1;
mat = Matrix(sym_num, 2);
rownum = MxGetSize(mat, 0);
last_bar = BarCount-1;
for ( i = 0; ( symbol = StrExtract(TickerList, i ) ) != “”; i++ ) {
fc = Foreign( symbol, “C” );
idx = Max(Min(NullCount(fc),last_bar), fvb);
if (! IsNull(fc[ idx ])) {
relP = ROC(fc,1);
mat[i][0] = LastValue( relP );
mat[i][1] = i;
}
}
mat = MxSortRows(mat, False, 0);
for ( i = 0; i < rownum; i++ ) {
val = mat[i][0]; n = mat[i][1];
if (! IsNull(val)) {
symbol = StrExtract(tickerlist, n);
fc1 = LastValue(Foreign( symbol, “C” ));
fv1 = Foreign( symbol, “c” )V/1000000; //GIA TRI GIAO DICH textht=symbol+” “+WriteIf(fc1<10,”0″+WriteVal(fc1,1.2),WriteVal(fc1,1.2))+StrFormat( “%s %.2f%%”, ” “,val)+” ” ; //+WriteVal(fv1,1.2 )+” ty” Color = IIf(val >= 6.7, ColorRGB(255,128,255),IIf(val >= 3 AND val < 6.7, colorBrightGreen,IIf(val >= 1 AND val < 3, ColorRGB(115,251,4),IIf(val >0 AND val < 1, ColorRGB(170,250,5),IIf(val == 0, ColorRGB(255,255,128), IIf(val < 0 AND val>=-1, ColorRGB(255,136,136),IIf(val < -1 AND val>=-3, ColorRGB(255,108,108),IIf(val < -3 AND val>=-6.7, ColorRGB(255,62,62), ColorRGB(0,255,255))))))))); GfxSelectFont( “Arial”, 9/870pxheight, 500 ); //kich thuoc chu TIeu De CHON LOC
GfxSelectSolidBrush(Color);
GfxRoundRect( x,(i * btnHeight)+y, x+btnWidth, btnHeight * (i+1)+y, 10, 10 );
GfxDrawText(textht, x , btnHeight/4+(i * btnHeight)+y, x+btnWidth, btnHeight * (i+1)+y, 1);
}
}
}
_SECTION_END();
pxwidth = Status( “pxwidth” );
pxheight = Status( “pxheight” );
pxb = Status( “pxchartbottom” );
maunenboad=ParamColor(“colorkhung”, Colorwhite);
//GfxGradientRect( 1, 1, pxwidth, pxheight, colorWhite, ColorBlend( colorBlack, colorWhite, 0.8 ) );
btnHeightht = Param( “Cell Height CPTUAN “, 25, 5, 200, 1 );
btnWidthht =Param( “Cell Width CPTUAN”, 320, 5, 1000, 1 ); //230 THAY DOI
btnHeight=btnHeightht/870pxheight; btnWidth=btnWidthht/1880pxwidth;
xht=Param(“CP-X”,1900,0,2000,1); //VI TRI CUA CO PHIEU CO TIN HIEU MUA
y1ht=Param(“CP-Y”,47,0,1200,1);
x=xht/1880pxwidth; //1880 y1=y1ht/870pxheight; //870
WatchlistName = ParamStr(“LIST_MUA”, “image”);
wlnumber = CategoryFind(WatchlistName, cat = categoryWatchlist);
tickerlist = CategoryGetSymbols(cat, wlnumber);
bi = BarIndex();
fbr = Status(“firstbarinrange”);
explore = Status(“action”) == actionExplore;
fvb = IIf(explore, LastValue(ValueWhen(fbr,bi)), Status(“firstvisiblebar”));
sym_num = StrCount(tickerlist, “,”)+1;
mat = Matrix(sym_num, 2);
rownum = MxGetSize(mat, 0);
last_bar = BarCount-1;
for ( i = 0; ( symbol = StrExtract(TickerList, i ) ) != “”; i++ ) {
fc = Foreign( symbol, “C” );
idx = Max(Min(NullCount(fc),last_bar), fvb);
if (! IsNull(fc[ idx ])) {
relP = ROC(fc,1);
mat[i][0] = LastValue( relP );
mat[i][1] = i;
}}
y=y1;
xm=x-btnWidth-5/1880pxwidth; GfxSelectPen ( colorLightGrey,1 ); GfxSelectFont( “Arial”, 9/870pxheight, 600 );
GfxSetTextColor( colorBlack );
GfxSelectSolidBrush(maunenboad);
GfxRoundRect( xm,y, xm+btnWidth, y-1.7btnHeight, 10, 10 ); GfxTextOut(“CP S\u1EAEP V\u01AF\u1EE2T \u0110\u1EC8NH “,xm+btnWidth/25, y-btnHeight/0.7 ); //co phieu co tin hieu mua GfxSelectFont( “Arial”, 7/870pxheight, 500 );
GfxTextOut( “CP”,xm+btnWidth/15, y-btnHeight/1.7 );
GfxTextOut( “GI\u00C1”,xm+btnWidth/3.5, y-btnHeight/1.7 );
GfxTextOut( “CHG%”,xm+btnWidth/1.9, y-btnHeight/1.7 );
GfxTextOut( “V/V20”,xm+btnWidth/1.30, y-btnHeight/1.7 );
////////////////
////////////////
for ( i = 0; ( symbol = StrExtract(TickerList, i ) ) != “”; i++ ) {
fc = Foreign( symbol, “C” );
idx = Max(Min(NullCount(fc),last_bar), fvb);
if (! IsNull(fc[ idx ])) {
//relP = ROC(fc,1);
fc1 = LastValue(Foreign( symbol, “C” ));
fo1 = Foreign( symbol, “O” );
fh1 = Foreign( symbol, “H” );
fl1 = Foreign( symbol, “L” );
fv2 = Foreign( symbol, “V” );
fc2 = Foreign( symbol, “C” );
////
buyfiter=
fc2>=0.93*hhv(fc2,120)
AND fc2*fv2>3000000;
BuyMinervini1=
fc2>=0.93*hhv(fc2,120)
AND fc2fv2>3000000; Minervini=buyfiter AND BuyMinervini1; Buyminervini=LastValue(Minervini); /// Covercover= fc2>=0.93hhv(fc2,120)
AND fc2fv2>3000000; buycover=LastValue(Covercover); //////////// muaxt1 = fc2>=0.93hhv(fc2,120)
AND fc2fv2>3000000; muaxt2 = fc2 > Ref(fh1,-1) AND fc2>=0.93hhv(fc2,120) AND fc2 > Ref(fh1,-2) AND fc2 > Ref(fh1,-3) AND fc2 > Ref(fh1,-4) AND fc2fv2 >1000000 ; mua_xt1=muaxt1 OR muaxt2; banxt1 = fc2 <= Ref(fl1,-1) AND fc2 <= Ref(fl1,-2) AND fc2 <= Ref(fl1,-3) AND fc2 <= Ref(fl1,-4); Buy4 = ExRem(mua_xt1, banxt1); mua4=LastValue(Buy4); ///////canslim mua = fc2>=0.93hhv(fc2,120)
AND fc2fv2>3000000; ban = fc2 <= Ref(fc2,-1) AND fc2 <= Ref(fc2,-2) AND fc2 <= Ref(fc2,-3) AND fc2 <= Ref(fc2,-4) AND fc2 <= Ref(fc2,-5) AND fc2 <= Ref(fc2,-6) AND fc2 <= Ref(fc2,-7) AND fc2 <= Ref(fc2,-8) AND fc2 <= Ref(fc2,-9) AND fc2 <= Ref(fc2,-10) AND fc2 <= Ref(fc2,-11) AND fc2 <= Ref(fc2,-12) AND fc2 <= Ref(fc2,-13) AND fc2 <= Ref(fc2,-14) AND fc2 <= Ref(fc2,-15) ; Buybuy = ExRem(mua, ban); ////////////// no=5; res=HHV(fh1,no); sup=LLV(fl1,no); tsl=IIf(ValueWhen(IIf(fc2>Ref(res,-1),1,IIf(fc2Ref(res,-1),1,IIf(fc2=0.93hhv(fc2,120) ;
Sellx = Cross(tsl,fc2);
canslim=Buybuy or Buyx;
buycanslim=LastValue(canslim);
dkmua=buycanslim OR mua4 OR buycover OR Buyminervini;
relP =IIf(dkmua,ROC(fc,1),-100);
mat[i][0] = LastValue( relP );
mat[i][1] = i;
}}
mat = MxSortRows(mat, False, 0);
for ( i = 0; i < rownum; i++ ) {
val = mat[i][0]; n = mat[i][1];
if (! IsNull(val)) {
symbol = StrExtract(tickerlist, n);
fc1 = LastValue(Foreign( symbol, "C" ));
fo1 = Foreign( symbol, "O" );
fh1 = Foreign( symbol, "H" );
fl1 = Foreign( symbol, "L" );
fv2 = Foreign( symbol, "V" );
fc2 = Foreign( symbol, "C" );
////
buyfiter=
fc2>=0.93*hhv(fc2,120)
AND fc2fv2>3000000; BuyMinervini1= fc2>=0.93hhv(fc2,120)
AND fc2fv2>3000000; Minervini=buyfiter AND BuyMinervini1; Buyminervini=LastValue(Minervini); /// Covercover= fc2>=0.93hhv(fc2,120)
AND fc2fv2>3000000; buycover=LastValue(Covercover); //////////// muaxt1 = fc2>=0.93hhv(fc2,120)
AND fc2fv2>3000000; muaxt2 = fc2 > Ref(fh1,-1)AND fc2>=0.93hhv(fc2,120) AND fc2 > Ref(fh1,-2) AND fc2 > Ref(fh1,-3) AND fc2 > Ref(fh1,-4) AND fc2fv2 >1000000 ; mua_xt1=muaxt1 OR muaxt2; banxt1 = fc2 <= Ref(fl1,-1) AND fc2 <= Ref(fl1,-2) AND fc2 <= Ref(fl1,-3) AND fc2 <= Ref(fl1,-4); Buy4 = ExRem(mua_xt1, banxt1); mua4=LastValue(Buy4); ///////canslim mua = fc2>=0.93hhv(fc2,120)
AND fc2*fv2>3000000;
ban =
fc2 <= Ref(fc2,-1)
AND fc2 <= Ref(fc2,-2)
AND fc2 <= Ref(fc2,-3)
AND fc2 <= Ref(fc2,-4)
AND fc2 <= Ref(fc2,-5)
AND fc2 <= Ref(fc2,-6)
AND fc2 <= Ref(fc2,-7)
AND fc2 <= Ref(fc2,-8)
AND fc2 <= Ref(fc2,-9)
AND fc2 <= Ref(fc2,-10)
;
Buybuy = ExRem(mua, ban);
//////////////
no=5;
res=HHV(fh1,no);
sup=LLV(fl1,no);
tsl=IIf(ValueWhen(IIf(fc2>Ref(res,-1),1,IIf(fc2Ref(res,-1),1,IIf(fc2=10,WriteVal(fc1,1.2),””));
textchng=WriteIf(dkmua,WriteVal(val,1.2),””);
textvol=WriteIf(dkmua,WriteVal(fv1,1.2),””);
textname =WriteIf(dkmua,symbol,””);
GfxSelectFont( “Arial”, 9/870*pxheight, 600 );
GfxSelectSolidBrush(maunenboad);
namecolor=IIf(Buyminervini,colorcustom12,IIf(buycover,Colorcustom12,IIf(buycanslim,colorGreen,IIf(mua4,colorgreen,colorDarkGrey)))); // chinh mau cua cac diem mua
GfxSetTextColor( namecolor);
GfxRoundRect( xm,(i * btnHeight)+y, xm+btnWidth, btnHeight * (i+1)+y, 10, 10 );
GfxDrawText(textname, xm , btnHeight/4+(i * btnHeight)+y, xm+btnWidth/5, btnHeight * (i+1)+y, 1);
GfxSelectFont( "Arial", 9/870*pxheight, 500 );
Colorgia=IIf(val >0, colorGreen,IIf(val <0, colorRed, ColorRGB(255,150,0)));
GfxSetTextColor( Colorgia);
GfxDrawText(textgia,xm , btnHeight/5+(i * btnHeight)+y, xm+btnWidth/1.5, btnHeight * (i+1)+y, 1);
Color = IIf(val >= 6.7, colorCustom12,IIf(val >0 AND val < 6.7, colorGreen,IIf(val == 0, ColorRGB(255,150,0),colorRed)));
GfxSetTextColor( Color);
GfxDrawText(textchng,xm , btnHeight/4+(i * btnHeight)+y, xm+btnWidth*1.2, btnHeight * (i+1)+y, 1);
ColorVOL = IIf(fv1 >= 1,colorGreen,colorRed);
GfxSetTextColor( ColorVOL);
GfxDrawText(textvol,xm , btnHeight/4+(i * btnHeight)+y, xm+btnWidth*1.7, btnHeight * (i+1)+y, 1);
}}
last_bar = BarCount-1;
for ( i = 0; ( symbol = StrExtract(TickerList, i ) ) != “”; i++ ) {
fc = Foreign( symbol, “C” );
idx = Max(Min(NullCount(fc),last_bar), fvb);
if (! IsNull(fc[ idx ])) {
relP = -ROC(fc,1);
mat[i][0] = LastValue( relP );
mat[i][1] = i;
}}
x=x+btnWidth+5/1880*pxwidth;