Định giá thị trường (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ư.
Hệ số của từng mã cổ phiếu nằm ở Fundamental().equity(symbol).ratio(), 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
| Hàm | Làm gì | Cấp |
|---|---|---|
Analytics().valuation(index).pe() | P/E lịch sử của chỉ số | Tài trợ |
Analytics().valuation(index).pb() | P/B lịch sử của chỉ số | Tài trợ |
Analytics().valuation(index).evaluation() | P/E và P/B trong một bảng | Tài trợ |
Khách và Cộng đồng gọi các hàm này thì 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.
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.