Một trong những tính năng mạnh mẽ nhất của cửa sổ Phân tích trong AmiBroker là “Khám phá” (Exploration). Không giống như tính năng quét (Scan) vốn chỉ tìm kiếm và hiển thị tín hiệu mua/bán, khám phá cho phép bạn tạo các báo cáo lọc tuỳ chỉnh với nội dung phong phú và linh hoạt hơn nhiều.
Cấu trúc cơ bản của một bản khám phá

Ý tưởng chính rất đơn giản: một biến gọi là Filter sẽ quyết định mã nào sẽ được hiển thị trong kết quả. Nếu Filter nhận giá trị đúng (hoặc 1), mã đó sẽ xuất hiện trong báo cáo.
Ví dụ:
Filter = Close > 50;
Để tạo công thức mới, vào menu Phân tích → Trình chỉnh sửa công thức, nhập công thức, sau đó chọn Công cụ → Gửi đến trình chỉnh sửa công thức.
Lưu ý: Khám phá sử dụng các thiết lập phạm vi và bộ lọc tương tự như kiểm tra ngược (Backtest) và quét. Nếu chọn phạm vi “Tất cả báo giá”, bạn có thể thấy nhiều dòng báo cáo cho cùng một mã. Để kiểm tra chỉ phiên giao dịch gần nhất, nên chọn “1 thanh gần đây”.
Thêm các cột tùy chỉnh bằng AddColumn
Bạn có thể chỉ định các cột muốn hiển thị trong báo cáo bằng hàm AddColumn():
AddColumn( Close, “Close” );
- Tham số đầu tiên: mảng dữ liệu muốn hiển thị
- Tham số thứ hai: tiêu đề cột
Khi nhấn nút Khám phá, bạn sẽ thấy bảng kết quả có các cột: Ticker, Ngày/Giờ, và “Close” (giá đóng cửa), chỉ hiển thị các mã có giá đóng > 50.
Báo cáo có thể xuất ra file CSV để phân tích thêm trong Excel hoặc phần mềm khác.
Tùy chỉnh định dạng cột
Cú pháp đầy đủ:
AddColumn(array, name, format = 1.2, textColor = colorDefault, bkgndColor = colorDefault)
- format = 1.4 → hiển thị 4 chữ số thập phân
- format = 6.0 → không có chữ số thập phân, độ rộng 6 ký tự
Ví dụ:
AddColumn(Close, “Close”, 1.4);
Định dạng đặc biệt
AddColumn( DateTime(), “Date / Time”, formatDateTime );
AddColumn( IIf( Buy, 66, 83 ), “Signal”, formatChar );
- formatDateTime: hiển thị ngày giờ theo định dạng hệ thống
- formatChar: hiển thị ký tự ASCII (66 = ‘B’, 83 = ‘S’)
Màu sắc tùy chỉnh
AddColumn(Close, “Close”, 1.4, IIf(ROC(C, 1) > 0, colorGreen, colorRed));
Các ví dụ thực tế
Xuất toàn bộ cơ sở dữ liệu:
Filter = 1;
AddColumn(Open, “Open”, 1.4);
AddColumn(High, “High”, 1.4);
AddColumn(Low, “Low”, 1.4);
AddColumn(Close, “Close”, 1.4);
AddColumn(Volume, “Volume”, 1.0);
Chứng khoán có khối lượng lớn:
Filter = Volume > 5000000;
AddColumn(Close, “Close”, 1.4);
AddColumn(Volume, “Volume”, 1.0);
Khối lượng > 130% trung bình EMA 40 ngày:
Filter = Volume > 1.3 * EMA(Volume, 40);
AddColumn(Close, “Close”, 1.4);
AddColumn(Volume, “Volume”, 1.0);
Cổ phiếu giao dịch trên MA20 và thêm các chỉ báo:
Filter = Close > MA(Close, 20);
AddColumn(MACD(), “MACD”, 1.4);
AddColumn(Signal(), “Signal”, 1.4);
AddColumn(ADX(), “ADX”, 1.4);
AddColumn(RSI(), “RSI”, 1.4);
AddColumn(ROC(Close, 15), “ROC(15)”, 1.4);
AddColumn(OBV(), “OBV”, 1.4);
AddColumn(CCI(), “CCI”, 1.4);
AddColumn(Ultimate(), “Ultimate”, 1.4);
Báo cáo màu:
Filter = 1;
AddColumn(Close, “Close”, 1.2);
AddColumn(MACD(), “MACD”, 1.4, IIf(MACD() > 0, colorGreen, colorRed));
AddTextColumn(FullName(), “Full name”, 77, colorDefault, IIf(Close < 10, colorLightBlue, colorDefault));
Biểu đồ phân tán (X-Y) trong Exploration
Từ phiên bản 5.60, AmiBroker cho phép tạo biểu đồ phân tán (XY scatter chart) để thể hiện mối quan hệ giữa các mã như rủi ro, lợi nhuận, tương quan, v.v.
Để sử dụng, bạn chỉ cần gọi XYChartAddPoint() trong công thức khám phá:

Ví dụ biểu đồ rủi ro/lợi nhuận:
Filter = Status(“lastbarinrange”);
Length = SelectedValue(BarIndex());
Chg = ROC(C, 1);
yield = MA(Chg, Length – 1);
risk = StDev(Chg, Length – 1);
AddColumn(yield, “yield”);
AddColumn(risk, “risk”);
Clr = ColorHSB(2 * Status(“stocknum”) % 255, 255, 255);
XYChartAddPoint(“Risk/Yield”, Name(), risk[Length], yield[Length], Clr);
XYChartSetAxis(“Risk/Yield”, “Risk[%]”, “Yield[%]”);
Thao tác thực hiện:
- Mở File → New → Phân tích
- Chọn tệp Formulas\Exploration\RiskYield.afl
- Nhấn Khám phá
- Chọn tab “Rủi ro/Lợi nhuận” ở cuối cửa sổ
Bạn có thể rê chuột lên các điểm để xem thông tin, hoặc nhấp kéo để phóng to biểu đồ.
Mẹo cuối cùng
Bạn có thể sắp xếp kết quả khám phá theo bất kỳ cột nào bằng cách nhấp vào tiêu đề cột tương ứng.