Cài đặt và sử dụng AmiBroker cho người mới 2

AmiBroker là một trong những phần mềm phân tích kỹ thuật mạnh mẽ và được nhiều trader chuyên nghiệp sử dụng.

Các bước cài đặt

  1. Tải AmiBroker từ website chính thức

  2. Chạy file cài đặt và làm theo hướng dẫn

  3. Nhập license key và kích hoạt phần mềm

Sau đây là code:

Namechart = "SignalBF Plot"; organName = NCTGetInfoTicker(Name(),"company"); _N(Title = "\n"+EncodeColor(colorSeaGreen)+ " - " + Namechart +("\n")+ EncodeColor(colorGold)+ " - " + organName + " ("+Name()+") - " + "(" + Interval(2) +")" + EncodeColor(colorOrange) + " - " + Date() + "\n"+ //+("\n")+ EncodeColor(colorLime)+" -------------------------------------------------------------------" +("\n")+ // Xuong dong EncodeColor(colorWhite) + " - Giá: "+ C + EncodeColor(colorWhite) + " Mở cửa: " +EncodeColor(colorYellow) +O+ EncodeColor(colorGreen) + " Cao nhất: " +EncodeColor(colorYellow) +H+ EncodeColor(colorDarkRed) + " Thấp nhất: " +EncodeColor(colorYellow) +L+ EncodeColor(colorSeaGreen) + " - Đóng cửa: " + WriteIf(Prec((Prec(C-TimeFrameGetPrice("C",inDaily,-1),2)/TimeFrameGetPrice("C",inDaily,-1))*100,2)>=6,EncodeColor(colorViolet) +C+ " = "+Prec(C-TimeFrameGetPrice("C",inDaily,-1),2)+" ("+Prec((Prec(C-TimeFrameGetPrice("C",inDaily,-1),2)/TimeFrameGetPrice("C",inDaily,-1))*100,2)+"%)", WriteIf(Prec((Prec(C-TimeFrameGetPrice("C",inDaily,-1),2)/TimeFrameGetPrice("C",inDaily,-1))*100,2)<=-6,EncodeColor(colorTurquoise) +C+ " = "+Prec(C-TimeFrameGetPrice("C",inDaily,-1),2)+" ("+Prec((Prec(C-TimeFrameGetPrice("C",inDaily,-1),2)/TimeFrameGetPrice("C",inDaily,-1))*100,2)+"%)", WriteIf(Prec((Prec(C-TimeFrameGetPrice("C",inDaily,-1),2)/TimeFrameGetPrice("C",inDaily,-1))*100,2)>0 AND Prec((Prec(C-TimeFrameGetPrice("C",inDaily,-1),2)/TimeFrameGetPrice("C",inDaily,-1))*100,2)<=6,EncodeColor(colorCustom9) +C+ " = "+Prec(C-TimeFrameGetPrice("C",inDaily,-1),2)+" ("+Prec((Prec(C-TimeFrameGetPrice("C",inDaily,-1),2)/TimeFrameGetPrice("C",inDaily,-1))*100,2)+"%)", WriteIf(Prec((Prec(C-TimeFrameGetPrice("C",inDaily,-1),2)/TimeFrameGetPrice("C",inDaily,-1))*100,2)<0 AND Prec((Prec(C-TimeFrameGetPrice("C",inDaily,-1),2)/TimeFrameGetPrice("C",inDaily,-1))*100,2)>=-6,EncodeColor(colorRed) +C+ " = "+Prec(C-TimeFrameGetPrice("C",inDaily,-1),2)+" ("+Prec((Prec(C-TimeFrameGetPrice("C",inDaily,-1),2)/TimeFrameGetPrice("C",inDaily,-1))*100,2)+"%)",EncodeColor(colorYellow) +C+ " = "+Prec(C-TimeFrameGetPrice("C",inDaily,-1),2)+" ("+Prec((Prec(C-TimeFrameGetPrice("C",inDaily,-1),2)/TimeFrameGetPrice("C",inDaily,-1))*100,2)+"%)")))) +EncodeColor(colorWhite)+("\n - Khối lượng: ")+ WriteIf(V>MA(V,30)*1.5,EncodeColor(colorViolet)+ WriteVal(V,1.0)+ " = " + WriteVal(V/MA(V,30)*100,1.0) + "% (MA30 = "+ WriteVal(MA(V,30),1.0) + ")" , WriteIf(V<MA(V,30)*1.5 AND V>=MA(V,30)*1.1 ,EncodeColor(colorGreen)+ WriteVal(V,1.0)+ " = " + WriteVal(V/MA(V,30)*100,1.0) +"% (MA30 = "+ WriteVal(MA(V,30),1.0) + ")", WriteIf(V<MA(V,30)*1.1 AND V>MA(V,30)*0.9 ,EncodeColor(colorYellow)+ WriteVal(V,1.0)+ " = " + WriteVal(V/MA(V,30)*100,1.0) + "% (MA30 = "+ WriteVal(MA(V,30),1.0) + ")", WriteIf(V<=MA(V,30)*0.9 AND V>=MA(V,30)*0.5,EncodeColor(colorRed)+ WriteVal(V,1.0)+ " = " + WriteVal(V/MA(V,30)*100,1.0) + "% (MA30 = "+ WriteVal(MA(V,30),1.0) + ")" , WriteIf(V<MA(V,30)*0.5,EncodeColor(colorTurquoise)+ WriteVal(V,1.0)+ " = " + WriteVal(V/MA(V,30)*100,1.0) +"% (MA30 = "+ WriteVal(MA(V,30),1.0) + ")",""))))) +" "+ WriteIf(V>MA(V,30)*2,EncodeColor(colorViolet)+"- Siêu cao",WriteIf(V>MA(V,30)*1.3,EncodeColor(colorGreen)+"- Cao", WriteIf(V>MA(V,30),EncodeColor(colorGreen)+"- Cao hơn trung bình", WriteIf(V<MA(V,30)*0.7 AND V>MA(V,30)*0.3,EncodeColor(colorRed)+"- Thấp",WriteIf(V<MA(V,30)*0.3,EncodeColor(colorTurquoise)+"- Rất thấp","")))))) ; url = "https://chart_api.finbox.vn/marks?symbol="+Name()+"&resolution=D"; function tableID = "signalBF"+Name(); if(RE(60)){ json = NCTFetchDataFromURL(url); NCTArrayToTable(tableID,json); } NCTTableToString(tableID); dateNumvalPlot = DateNum(); //GfxTextOut(""+dateNumvalPlot,50,50); //val = 20250117 - dateNumvalPlot; //GfxTextOut(""+NumToStr(val,1.0),50,70); function ConvertToFullDateStr(strDatenum) { // Đảm bảo strDatenum là chuỗi 7 chữ số strDate = StrFormat("%07.0f", StrToNum(strDatenum)); // Tách năm (bỏ số 1 đầu tiên) và phần tháng + ngày yearstr = StrLeft(strDate, 3); // Lấy 3 chữ số đầu: "125" monthDay = StrRight(strDate, 4); // Lấy 4 chữ số cuối: "0204" // Loại bỏ số 1 đầu tiên của năm và thêm "20" để thành năm đầy đủ shortYear = StrRight(yearstr, 2); // Lấy "25" từ "125" fullYear = "20" + shortYear; // Ghép thành "2025" // Ghép lại thành yyyymmdd result = fullYear + monthDay; return result; } // Định nghĩa mảng để lưu dữ liệu function DrawLabels() { // Khai báo các mảng để lưu thông tin từ bảng của bạn //idArray = "20250401,20250314"; // Danh sách ID (ngày) //labelArray = "△,B"; // Danh sách label dateNumval = DateNum(); // Lấy ngày hiện tại của nến trong định dạng yyyymmdd - 19000000 dateNumStr = ConvertToFullDateStr(""+dateNumval); // Duyệt qua từng nến //for(i = 0; i < BarCount; i++) //{ fvb = Status("firstvisiblebar"); lvb = Status("lastvisiblebar"); // Khóa theo biên an toàn fvb = Max(0, fvb); lvb = Min(BarCount - 1, lvb); if (Status("action") == actionIndicator) // chỉ chạy khi là indicator (trên chart) { for (i = fvb; i <= lvb; i++) { currentDate[i] = dateNumval[i]; // Chuyển về định dạng yyyymmdd //currentDateStr = NumToStr( // Kiểm tra xem ngày của nến có khớp với id trong bảng không sizetable = NCTTableSizeRows(tableID); for(j = 1; j < sizetable; j++) { dateval = StrToNum(NCTTableGetText(tableID,j,0)); col_id = NCTTableGetIndexByColName(tableID,"id"); col_lable = NCTTableGetIndexByColName(tableID,"text"); datevalStr = NCTTableGetText(tableID,j,col_id); labelArray = NCTTableGetText(tableID,j,col_lable); if(datevalStr == ConvertToFullDateStr(""+dateNumval[i])) { // Vẽ label tại nến tương ứng posY = IIf(labelArray == "SMALL SELL" OR labelArray == "BIG SELL", H[i]*1.01,L[i] * 0.99); shape = IIf(labelArray == "SMALL SELL" OR labelArray == "BIG SELL",shapeDownArrow,shapeUpArrow); colorPlot = IIf(labelArray == "SMALL SELL" OR labelArray == "BIG SELL", colorRed, IIf(labelArray == "SMALL BUY" OR labelArray == "BIG BUY",colorGreen,colorOrange)); //PlotShapes(shape,colorPlot,0,posY); //PlotText(""+datevalStr,i,H[i],colorWhite,colorBlack); textPLot = WriteIf(labelArray == "BIG SELL", "B.SELL", WriteIf(labelArray == "SMALL SELL", "S.SELL", WriteIf(labelArray == "SMALL BUY", "S.BUY", WriteIf(labelArray == "BIG BUY", "B.BUY", WriteIf(labelArray == "PULLBACK 10", "P.10", WriteIf(labelArray == "PULLBACK", "P.20","")))))); PlotTextSetFont(""+textPLot, "SVN-Gilroy Medium", 10, i, // Vị trí x (index của nến) posY, // Vị trí y (dưới giá thấp của nến 1%) colorWhite, // Màu chữ colorPlot); // Màu nền //PlotText(""+labelArray, // i, // Vị trí x (index của nến) // posY, // Vị trí y (dưới giá thấp của nến 1%) // colorWhite, // Màu chữ // colorPlot); // Màu nền } } } } } tableIDPlot = tableID + "Plot"; //NCTTableClone(tableIDPlot,tableID); NCTTableSelectByColName(tableIDPlot,tableID,"id,text"); NCTTableSetHeader(tableIDPlot,"Date,Signal"); NCTTablePlot(tableIDPlot,"",20,100); // Gọi hàm và vẽ biểu đồ Plot(C, "Price", colorDefault, styleCandle); DrawLabels();

Prev Article
Cài đặt và sử dụng AmiBroker cho người mới bắt đầu

Related to this topic:

Get the latest updates

Subscribe to get our most-popular proposal eBook and more top revenue content to help you send docs faster.

Don't worry we don't spam.

newsletternewsletter-dark