Truy xuất dữ liệu định giá (Analytics)
Mục lục
Lớp Analytics() lấy hệ số định giá lịch sử của cả một chỉ số thị trường: P/E và P/B theo từng
phiên. Bạn dùng chúng để đặt mức định giá hiện tại cạnh mức của những năm trước. Đây là số liệu lịch
sử để tham khảo, không phải lời khuyên đầu tư.
Chuỗi P/E, P/B của chỉ số truy xuất theo nguồn vnd; các nguồn khác nhau có thể cho con số chênh nhau đôi
chút. Hệ số của từng mã cổ phiếu tính bằng vnstock_quant.fa.ratios() từ báo cáo tài chính, xem
Báo cáo tài chính và chỉ số cơ bản.
from vnstock import Analytics
val = Analytics().valuation("VNINDEX")
pe = val.pe(duration="1Y")Tóm tắt
Nhóm hàm định giá thị trường thuộc bản Mở rộng (yêu cầu từ cấp tài trợ Bronze trở lên). Bản Cộng đồng hoặc Khách chưa cấu hình khoá khi gọi sẽ nhận EntitlementError (mã VNSTOCK_TIER_ROUTE), và thư viện không gửi truy vấn nào đi. Xem Cấp quyền và giới hạn.
| Hàm | Chức năng | Phiên bản |
|---|---|---|
Analytics().valuation(index).pe() | P/E lịch sử của chỉ số | Mở rộng |
Analytics().valuation(index).pb() | P/B lịch sử của chỉ số | Mở rộng |
Analytics().valuation(index).evaluation() | P/E và P/B trong một bảng | Mở rộng |
Nguồn: vnd. Các hàm không có tham số source.
Chọn chỉ số: valuation()
Analytics().valuation(index="VNINDEX")| Tham số | Kiểu | Mặc định | Ý nghĩa |
|---|---|---|---|
index | str | "VNINDEX" | Mã chỉ số. Tự chuyển sang chữ hoa |
Hàm trả một đối tượng gắn với chỉ số đó. Bạn gọi tiếp pe(), pb() hoặc evaluation() trên đối
tượng này. Khi chạy thử ngày 10/10/2026, VNINDEX và HNXINDEX đều trả dữ liệu.
P/E lịch sử: pe()
pe(duration="5Y")| Tham số | Kiểu | Mặc định | Ý nghĩa |
|---|---|---|---|
duration | str | "5Y" | Khoảng nhìn lùi từ hôm nay: một số theo sau là D (ngày), M (tháng) hoặc Y (năm), ví dụ "30D", "6M", "1Y" |
duration sai dạng thì nhận InputError mã VNSTOCK_INPUT_DURATION.
Cột trả về:
| Cột | Kiểu | Ý nghĩa |
|---|---|---|
report_date | datetime, múi giờ Asia/Ho_Chi_Minh | Ngày giao dịch, giờ luôn là 00:00 |
pe | float | P/E của chỉ số, đơn vị lần |
Mỗi dòng là một phiên, phiên cũ ở trên. Với duration="5Y" bảng có khoảng 1.240 dòng.
from vnstock import Analytics
pe = Analytics().valuation("VNINDEX").pe(duration="1M")VNINDEX, chạy ngày 10/10/2026 (ba dòng cuối):
| report_date | pe |
|---|---|
| 2026-10-07 | 12.136335 |
| 2026-10-08 | 12.035729 |
| 2026-10-09 | 12.009094 |
P/B lịch sử: pb()
pb(duration="5Y")Tham số như pe(). Cột trả về: report_date và pb (float, đơn vị lần).
from vnstock import Analytics
pb = Analytics().valuation("VNINDEX").pb(duration="1M")VNINDEX, chạy ngày 10/10/2026 (hai dòng cuối):
| report_date | pb |
|---|---|
| 2026-10-08 | 1.954810 |
| 2026-10-09 | 1.950633 |
P/E và P/B cùng lúc: evaluation()
evaluation(duration="5Y")Tham số như pe(). Cột trả về: report_date, pe, pb.
from vnstock import Analytics
ev = Analytics().valuation("VNINDEX").evaluation(duration="1M")VNINDEX, chạy ngày 10/10/2026 (ba dòng đầu):
| report_date | pe | pb |
|---|---|---|
| 2026-09-10 | 12.635301 | 2.059586 |
| 2026-09-11 | 12.402088 | 2.021270 |
| 2026-09-14 | 12.354028 | 2.014240 |
df.attrs mang source, symbol (mã chỉ số), route và length (số dòng).
Tên cũ: Market().pe(), pb(), evaluation()
Ở các bản trước, định giá chỉ số nằm trên Market(). Ba tên này vẫn chạy và trả đúng bảng của
Analytics(), kèm một FutureWarning ở lần gọi đầu tiên trên mỗi đối tượng Market. Chúng sẽ
ngừng hoạt động sau ngày 31/12/2026.
| Tên cũ | Thay bằng |
|---|---|
Market(index="VNINDEX").pe(duration="5Y") | Analytics().valuation("VNINDEX").pe(duration="5Y") |
Market(index="VNINDEX").pb(duration="5Y") | Analytics().valuation("VNINDEX").pb(duration="5Y") |
Market(index="VNINDEX").evaluation(duration="5Y") | Analytics().valuation("VNINDEX").evaluation(duration="5Y") |
from vnstock import Market
# Vẫn chạy, kèm FutureWarning, tới hết 31/12/2026
pe_old = Market().pe(duration="1M")Xem thêm Nguồn dữ liệu và Xử lý lỗi.