Lọc cổ phiếu theo bảng giá và chỉ số tài chính với where và sort.
import { vn } from "vnstock-js";
const rows = await vn.screen({
group: "VN30", // hoặc exchange: "HOSE"
where: { pe: { lt: 15 }, roe: { gt: 0.15 } },
sort: "-roe", // "-" là giảm dần
limit: 10,
});
console.log(rows.map((r) => [r.symbol, r.pe, r.roe, r.marketCap]));
Cần chỉ định group (VN30, VN100, HNX30...) hoặc exchange (HOSE, HNX, UPCOM).
Mỗi trường nhận một hay nhiều toán tử: lt, lte, gt, gte, eq.
where: {
price: { gte: 10000, lte: 50000 }, // đồng
roe: { gt: 0.15 }, // phân số: 15%
pe: { lt: 12 },
}
| Nhóm trường | Ví dụ | Chi phí |
|---|---|---|
| Bảng giá | price, changePercent, volume, value | Không thêm request |
| Tỷ số quý dựng sẵn | roe, roa, roic, grossMargin, ebitMargin, currentRatio, quickRatio, debtToEquity, dividendYield | Không thêm request |
| Theo giá | pe, pb, ps, marketCap | Một request mỗi mã còn lại |
Điều kiện rẻ chạy trước, nên các trường theo giá chỉ được hỏi cho những mã đã qua bước đầu. Lọc theo nhóm nhanh hơn lọc cả sàn.
Mỗi dòng kết quả là một ScreenRow: giá, vốn hoá bằng đồng, tỷ số là phân số.
filters, sortBy, order đã bỏ; truyền vào sẽ nhận lỗi kèm gợi ý. { field: "pe", operator: "<", value: 15 } thành where: { pe: { lt: 15 } }, sortBy: "roe", order: "desc" thành sort: "-roe".