Cấu trúc dữ liệu quỹ mở
Mục lục
Trang này liệt kê đúng những gì mỗi hàm quỹ mở trả về: tên cột theo thứ tự, kiểu dữ liệu trong pandas, đơn vị, và khi nào một cột có thể trống. Cách gọi hàm và ví dụ nằm ở Dữ liệu quỹ mở.
Quy ước chung
| Kiểu ghi ở đây | Kiểu trong pandas | Ghi chú |
|---|---|---|
string | string | Trống là <NA> |
number | float64 | Trống là NaN |
boolean | boolean | |
datetime | datetime64[ns, Asia/Ho_Chi_Minh] | Trống là NaT |
date | datetime64[ns, Asia/Ho_Chi_Minh], giờ 00:00 | Ngày lịch, gắn múi giờ Việt Nam để so sánh được với cột datetime |
- Thứ tự cột cố định như bảng dưới. Index là
RangeIndexbắt đầu từ 0. - Bảng rỗng vẫn có đủ cột và đúng kiểu. Mã của bạn không cần kiểm tra cột có tồn tại không.
- Cột phần trăm ghi theo thang 0–100:
11.46nghĩa là 11,46%. - Mọi số tiền tính bằng đồng.
- Cột "Bắt buộc" luôn có giá trị ở mọi dòng.
- Mỗi bảng mang
df.attrsgồm ít nhấtsource(nguồn trả lời) vàlength(số dòng); bảng của một quỹ có thêmsymbol.
Reference().fund
list()
Một dòng cho mỗi quỹ. Thư viện ghi tên tuyến là reference.fund.list.
| Cột | Kiểu | Bắt buộc | Ý nghĩa |
|---|---|---|---|
ticker | string | ✅ | Mã chứng chỉ quỹ, chữ hoa |
organ_name | string | Tên đầy đủ của quỹ. CafeF để trống; DigiInvest có | |
organ_short_name | string | Công ty quản lý quỹ. CafeF ghi tên đầy đủ công ty, DigiInvest ghi tên ngắn | |
fund_type | string | ✅ | equity_fund, bond_fund, balanced_fund |
management_fee | number | Phí quản lý, % mỗi năm. CafeF để trống | |
inception_date | date | Ngày thành lập quỹ. CafeF để trống | |
nav | number | NAV mới nhất trên một chứng chỉ quỹ, đồng | |
nav_update_at | datetime | Ngày của NAV mới nhất |
profile()
Đúng một dòng. Chỉ có từ CafeF.
| Cột | Kiểu | Bắt buộc | Ý nghĩa |
|---|---|---|---|
ticker | string | ✅ | Mã chứng chỉ quỹ |
organ_short_name | string | Công ty quản lý quỹ | |
description | string | Mô tả chiến lược, do quỹ viết | |
inception_date | date | Ngày thành lập, theo CafeF | |
total_assets | number | Tổng tài sản, đồng | |
min_investment | number | Số tiền đầu tư tối thiểu, đồng | |
trading_frequency | string | Ngày giao dịch chứng chỉ quỹ, nguyên văn, ví dụ "Từ thứ 2 đến thứ 6" | |
transfer_agent | string | Các đại lý phân phối, chuyển nhượng, nguyên văn | |
benchmark | string | Chỉ số tham chiếu, ví dụ "VN Index" | |
nav | number | NAV mới nhất, đồng | |
nav_update_at | datetime | Ngày của NAV mới nhất | |
website | string | Trang của quỹ |
fee_structure()
Mỗi bậc phí một dòng. Chỉ có từ CafeF.
| Cột | Kiểu | Bắt buộc | Ý nghĩa |
|---|---|---|---|
fee_type | string | ✅ | purchase (mua), redemption (bán lại), switching (chuyển đổi), other |
basis | string | Căn cứ chia bậc, ví dụ holding_period (thời gian nắm giữ), transaction_value (giá trị giao dịch) | |
range | string | ✅ | Nhãn bậc đúng như quỹ công bố, ví dụ "< 12 Tháng", "12-24 Tháng" |
fee | number | Mức phí của bậc | |
unit | string | Đơn vị của fee, thường là % |
range giữ nguyên chữ thay vì tách thành cận dưới, cận trên, vì nguồn ghi cùng một mã đơn
vị cho bậc tính theo tháng ở quỹ này và theo năm ở quỹ khác.
reports()
Mỗi tài liệu một dòng. Chỉ có từ CafeF.
| Cột | Kiểu | Bắt buộc | Ý nghĩa |
|---|---|---|---|
report_type | string | Loại tài liệu, ví dụ prospectus (bản cáo bạch), regulation (điều lệ) | |
title | string | ✅ | Tên tài liệu |
period | string | Kỳ hoặc ngày ghi trên tài liệu, nguyên văn, ví dụ "T1/2025", "13/05/2024" | |
url | string | ✅ | Đường dẫn tới tệp |
Market().fund(symbol)
history(), ohlcv()
Mỗi kỳ công bố NAV một dòng, cũ nhất trước.
| Cột | Kiểu | Bắt buộc | Ý nghĩa |
|---|---|---|---|
time | datetime | ✅ | Ngày định giá NAV |
nav | number | ✅ | NAV trên một chứng chỉ quỹ, đồng. DigiInvest làm tròn tới đồng |
performance()
Ba dòng: ytd, 3y, 5y. Chỉ có từ CafeF.
| Cột | Kiểu | Bắt buộc | Ý nghĩa |
|---|---|---|---|
period | string | ✅ | ytd (từ đầu năm), 3y, 5y |
period_label | string | Nhãn kỳ như nguồn ghi, ví dụ "Từ đầu 2026" | |
nav_start | number | NAV đầu kỳ, đồng | |
nav_end | number | NAV cuối kỳ, đồng | |
return_percent | number | Lợi nhuận của kỳ, % | |
annualized | boolean | True khi return_percent là lợi nhuận kép bình quân mỗi năm (kỳ 3y, 5y) |
dividends()
Mỗi lần chia một dòng, mới nhất trước. Chỉ có từ DigiInvest.
| Cột | Kiểu | Bắt buộc | Ý nghĩa |
|---|---|---|---|
date | date | ✅ | Ngày chia |
amount | number | ✅ | Tiền mặt trên một chứng chỉ quỹ, đồng |
holdings()
Tối đa mười dòng theo báo cáo danh mục tháng gần nhất. Chỉ có từ CafeF.
| Cột | Kiểu | Bắt buộc | Ý nghĩa |
|---|---|---|---|
update_at | datetime | ✅ | Ngày cuối của tháng báo cáo |
ticker | string | ✅ | Mã cổ phiếu hoặc trái phiếu, chữ hoa |
industry | string | Ngành của mã, có thể trống | |
net_asset_percent | number | ✅ | Tỷ trọng trên tài sản ròng của quỹ, % |
asset_type | string | equity hoặc bond, suy từ mã: mã có chữ số là trái phiếu |
industry_allocation()
Mỗi ngành một dòng. Chỉ có từ CafeF.
| Cột | Kiểu | Bắt buộc | Ý nghĩa |
|---|---|---|---|
industry | string | ✅ | Tên ngành theo cách phân loại của nguồn |
net_asset_percent | number | ✅ | Tỷ trọng trên tài sản ròng, % |
asset_allocation()
Mỗi loại tài sản một dòng. Chỉ có từ CafeF.
| Cột | Kiểu | Bắt buộc | Ý nghĩa |
|---|---|---|---|
asset_type | string | ✅ | equity, bond, cash_and_equivalents, others |
asset_percent | number | ✅ | Tỷ trọng, % |
Bộ cột của tên hàm cũ
Các tên cũ trả đúng bộ cột của bản 4.x và vnstock_data cho tới hết ngày 06/04/2027. Ngày
ở đây là chuỗi YYYY-MM-DD, không phải datetime. Giá trị lấy từ cùng bảng chuẩn ở
trên, chỉ đổi tên cột, nhãn và định dạng ngày.
Lịch sử NAV
Fund().nav_report(), Reference().fund.nav_report(), Market().fund(sym).nav()
| Cột | Kiểu | Lấy từ |
|---|---|---|
date | chuỗi YYYY-MM-DD | time |
nav_per_unit | number | nav |
short_name | chuỗi | Mã quỹ bạn truyền vào, chữ hoa |
Nắm giữ
Fund().top_holding(), Reference().fund.top_holding()
| Cột | Kiểu | Lấy từ |
|---|---|---|
stock_code | string | ticker |
industry | string | industry |
net_asset_percent | number | net_asset_percent |
type_asset | chuỗi | asset_type: equity → STOCK, bond → BOND |
update_at | chuỗi YYYY-MM-DD | update_at |
fundId | Int64, luôn trống | Mã nội bộ của Fmarket, không còn tồn tại. Ở Reference().fund cột này tên fundid, như vnstock_data từng trả |
Bảng nắm giữ cũ không có short_name, giữ đúng như bản đã phát hành.
Theo ngành
Fund().industry_holding(), Reference().fund.industry_holding()
| Cột | Kiểu | Lấy từ |
|---|---|---|
industry | string | industry |
net_asset_percent | number | net_asset_percent |
short_name | chuỗi | Mã quỹ bạn truyền vào |
Theo loại tài sản
Fund().asset_holding(), Reference().fund.asset_holding()
| Cột | Kiểu | Lấy từ |
|---|---|---|
asset_percent | number | asset_percent |
asset_type | chuỗi | asset_type: equity → "Cổ phiếu", bond → "Trái phiếu", cash_and_equivalents → "Tiền và tương đương tiền", others → "Khác" |
short_name | chuỗi | Mã quỹ bạn truyền vào |
Danh mục quỹ
Fund().listing() trả 21 cột theo thứ tự cũ:
| Cột | Kiểu | Lấy từ |
|---|---|---|
short_name | string | ticker |
name | string | organ_name (CafeF để trống) |
fund_type | chuỗi | fund_type: equity_fund → "Quỹ cổ phiếu", bond_fund → "Quỹ trái phiếu", balanced_fund → "Quỹ cân bằng" |
fund_owner_name | string | organ_short_name |
management_fee | number | management_fee (CafeF để trống) |
inception_date | chuỗi YYYY-MM-DD | inception_date (CafeF để trống) |
nav | number | nav |
nav_change_previous, nav_change_last_year, nav_change_inception, nav_change_1m, nav_change_3m, nav_change_6m, nav_change_12m, nav_change_24m, nav_change_36m, nav_change_36m_annualized | number, luôn NaN | Không nguồn nào còn công bố. Dùng performance() hoặc tự tính từ history() |
nav_update_at | chuỗi YYYY-MM-DD | nav_update_at |
fund_id_fmarket | Int64, luôn trống | Mã nội bộ của Fmarket |
fund_code | string, luôn trống | Không nguồn nào còn công bố |
vsd_fee_id | string, luôn trống | Không nguồn nào còn công bố |
Tìm quỹ theo mã
Fund().filter(symbol) trả hai cột id và shortName. Cả hai đều là mã quỹ (chuỗi), vì
nguồn mới không có mã số nội bộ. Bản cũ trả id là số nguyên của Fmarket.