AFL: Tạo bảng lọc Filter tuỳ biến

Bảng lọc Filter mặc định

Tính năng lọc cổ phiếu Filter trong Amibroker mình đã giới thiệu trong các bài (Lọc cổ phiếu explore) và (lọc cổ phiếu tự động) các bạn có thể xem lại để rõ hơn về cách sử dụng Explore. Khi cổ phiếu thoả điều kiện muốn lọc sẽ được hiển thị tại bảng kết quả lọc Explore trên phần mềm Amibroker. Minh nhắc lại một chút là Filter là điều kiện lọc khác với Buy và Sell mới là điều kiện Mua và Bán. Filter cho kết quả là bảng danh sách trực quan để nhà đầu tư xem xét phân tích.

Ví dụ: Lọc cổ phiếu có giá Close cao hơn giá High cao nhất 5 ngày và giá trị giao dịch cao hơn 1 tỷ đồng

DieuKien1 = C*V>10^6; //Gia Tri cao hon 1 ty
DieuKien2 = C>Ref(HHV(H,5),-1);	//gia Close cao hon gia High cao nhat 5 ngay
Filter = DieuKien1 AND DieuKien2;

Nếu bạn muốn hiển thị hết toàn bộ danh sách cổ phiếu chỉ cần đặt Filter =1

//Hien thi tat ca co phieu
Filter = 1;

Sau khi chạy Explore ta sẽ thấy kết quả

bảng lọc mặc định

Với Bảng lọc mặc định thì rất đơn giản chỉ gồm cột Ticker (Mã chứng khoán) và cột Date/Time ngày tháng. Bảng lọc mặc định quá ít thông tin để chúng ta có thể xem xét và quyết định mua bán nhanh chóng được.

Tạo bảng lọc Filter tuỳ biến

Trước tiên ta dùng câu lệnh sau để xoá hết các cột mặc định sau đó thêm vào các cột mới dựa trên các thông tin mà người dùng muốn hiển thị

SetOption( "Nodefaultcolumns", True ); 

Tạo cột Mã CK

// Cot1. Ma chung khoan
AddTextColumn( Name(), "Ma CK",1.2); 

Cột Mã chứng khoán là thông tin kiểu chuỗi nên ta dùng câu lệnh AddTextColumn để thêm vào Bảng lọc

Tạo cột Giá

// Cot2. Gia
AddColumn(Close,"Gia",1.2);

Cột Giá là kiểu số nên ta dùng câu lệnh AddColumn; 1.2 là số thập phân cần hiển thị

Tạo cột Tăng Giảm

// Cot3. Tang Giam
tgColor = IIf(Close>Ref(Close,-1), colorGreen, IIf(Close<Ref(Close,-1), colorRed, colorYellow));
AddColumn(Close-Ref(Close,-1),"+/-",1.2,tgColor);

tgColor: thay đổi màu chữ của cột (tăng – xanh, giảm -đỏ, không đổi – vàng)
(Ở ví dụ này do filter là giá cao nhất nên không có trường hợp giảm)

Tạo cột Giá trị giao dịch

// Cot4. Gia tri giao dich
AddColumn(Close*Volume,"GTGD",1);

Tạo cột RSI

// Cot5. RSI
strRSI = WriteIf(RSI(14)>70, "Qua Mua", WriteIf(RSI(14)>50, "Manh", WriteIf(RSI(14)>30, "Qua Ban", "")));
RSIColor = IIf(RSI(14)>70, colorCustom12, IIf(RSI(14)>50, colorGreen, IIf(RSI(14)>30, colorRed, colorYellow)));
AddTextColumn(strRSI, "RSI", 1.2, colorDefault, RSIColor);

strRSI: thông tin về trạng thái của chỉ báo RSI (>70 quá mua, >50 mạnh, <30 quá bán)
RSIColor: thay đổi màu nền tương ứng cho cột chỉ báo RSI theo từng trạng thái

Săp xếp dữ liệu cột

Để sắp xếp theo cột nào ta dùng hàm SetSortColumns

//Sap xep theo cot 4
SetSortColumns(4);

SetSortColumns(4) : sắp xếp theo cột thứ 4 theo thứ tự thấp đến cao
SetSortColumns(-4) : sắp xếp theo cột thứ 4 theo thứ tự cao xuống thấp

Kết quả chạy lại Bảng lọc

Bảng lọc giờ nhìn trực quan hơn, nhiều thông tin và chuyên nghiệp hơn rất nhiều phải không?

Trên đây chỉ là ví dụ, các bạn có thể tuỳ biến thêm nhiều thông tin khác vào bảng lọc

Tải file code (Đăng nhập để tải)

Tham khảo thêm:

Leave a Reply