V3.2
Cập nhật lần cuối:
Thảo luậnMục lục
Hướng Dẫn Chuyển Đổi Sang API Unified UI v3.2.0
Bản cập nhật v3.2.0 (24/5/2026) mở rộng khả năng của vnstock_data bằng việc tích hợp toàn diện nguồn dữ liệu chuyên sâu của ASEAN Securities vào kiến trúc Unified UI.
Tài liệu này hướng dẫn cách thay đổi cú pháp mã nguồn (code) từ các cấu trúc cũ (Legacy) sang kiến trúc định tuyến mới để khai thác tối đa hệ thống dữ liệu.
📌 1. Tổng Quan Những Thay Đổi Lớn
shareholders() đã có những thay đổi để trả về cấu trúc phân cấp.
- Kinh tế Vĩ mô (Macro): Cấu trúc truy xuất Vĩ mô cũ là "phẳng". Cấu trúc mới nhóm hàm theo 3 Domain (
economy,currency,global). - Giá Hàng hoá (Commodity): Chuyển sang lớp
Macro().commodity(). Lược bỏ hậu tố_vnhoặc_globaltrong tên hàm. - Insights & Analytics (Layer 7): Các tính năng phân tích tâm lý, khối ngoại và tìm kiếm cổ phiếu nằm rải rác ở lớp
TopStockvà một phầnMarketđã được quy hoạch chuẩn chỉnh vềInsights().
🔄 2. Bảng Chuyển Đổi API (Mapping)
Insights & Analytics (Layer 7)
Trước bản 3.2.0, các tính năng phân tích tâm lý, khối ngoại và tìm kiếm cổ phiếu nằm rải rác ở lớp TopStock và một phần Market. Nay chúng được quy hoạch chuẩn chỉnh về Insights().
| Legacy API (Bản < 3.2.0) | Unified UI API (Bản >= 3.2.0) | Tình trạng |
|---|---|---|
TopStock().gainer() | Insights().sentiment.contribution() (Gợi ý thay thế) | Legacy (Vẫn hoạt động) |
TopStock().foreign_buy() | Insights().flow.foreign() | Legacy (Vẫn hoạt động) |
Market().pe() | Insights().equity("MÃ").peer_compare() hoặc Insights().sector("MÃ").valuation() | Cũ (Bị loại bỏ hoặc điều hướng) |
| Không có | Insights().sentiment.breadth() | MỚI |
| Không có | Insights().flow.active() | MỚI |
| Không có | Insights().sector("bank").rrg() | MỚI |
Kinh tế Vĩ mô (Layer 6 - Macro)
Cấu trúc truy xuất Vĩ mô cũ là "phẳng" (gọi trực tiếp hàm từ class). Cấu trúc mới nhóm hàm theo 3 Domain (economy, currency, global).
| Legacy API (Bản < 3.2.0) | Unified UI API (Bản >= 3.2.0) | Tình trạng |
|---|---|---|
Macro().gdp() | Macro().economy().gdp() | Legacy (Vẫn hoạt động) |
Macro().cpi() | Macro().economy().cpi() | Legacy (Vẫn hoạt động) |
Macro().interest_rate() | Macro().currency().interbank_rate() (Nguồn mới) hoặc Macro().currency().deposit_rate() | Legacy (Vẫn hoạt động) |
Macro().exchange_rate() | Macro().currency().exchange_rate() | Legacy (Vẫn hoạt động) |
| Không có | Macro().global.bond_yield() | MỚI |
| Không có | Macro().global.fed_rate() | MỚI |
Giá Hàng hoá (Commodity)
Lớp CommodityPrice() cũ truy xuất từ hệ thống SPL. Cấu trúc mới Macro().commodity() sử dụng dữ liệu quốc tế của ASEAN làm mặc định, và tích hợp cơ chế Fallback (tự động chuyển nguồn) khi người dùng truy vấn hàng hoá nội địa.
| Legacy API (Bản < 3.2.0) | Unified UI API (Bản >= 3.2.0) |
|---|---|
CommodityPrice().gold_global() | Macro().commodity().gold(market="GLOBAL") hoặc Macro().commodity().gold() |
CommodityPrice().gold_vn() | Macro().commodity().gold(market="VN") |
CommodityPrice().steel_hrc() | Macro().commodity().steel() |
CommodityPrice().steel_d10() | Macro().commodity().steel(market="VN") |
CommodityPrice().pork_north_vn() | Macro().commodity().pork(market="VN") |
CommodityPrice().oil_crude() | Macro().commodity().oil_crude() |
Nguyên tắc chuyển đổi:
- Thay chữ
CommodityPrice()bằngMacro().commodity(). - Lược bỏ hậu tố
_vnhoặc_globaltrong tên hàm (VD:gold_vn()chuyển thànhgold()). - Truyền thêm tham số
market="VN"nếu muốn lấy dữ liệu nội địa Việt Nam.
📋 3. Chi Tiết Cập Nhật (Kèm Code Mẫu)
Thay đổi: Chuẩn hoá Cơ cấu Cổ đông & Cổ đông lớn (v3.2.1)
Kể từ phiên bản v3.2.1, phương thức shareholders() được chuẩn hoá nhất quán trên cả API Adapter thường và Unified UI, hỗ trợ tham số mode để gom nhóm các API liên quan đến sở hữu/cơ cấu:
- detailed (mặc định): Trả về danh sách chi tiết cổ đông lớn kèm trường phân loại
shareholder_type(Individual/Organization). - summary: Trả về cơ cấu sở hữu tổng hợp (tỷ lệ sở hữu nhà nước, nước ngoài, ban lãnh đạo...).
| Legacy API (Bản < 3.2.1) | Unified UI/API API (Bản >= 3.2.1) | Nguồn hỗ trợ |
|---|---|---|
Company(source="KBS").ownership() | Company(source="KBS").shareholders(mode="summary") | KBS (Bị thay thế) |
| Không hỗ trợ | Company(source="VCI").shareholders(mode="summary") | VCI (Mới) |
ref.company("TCB").shareholders() | ref.company("TCB").shareholders(mode="summary") (hoặc mode="detailed") | Unified UI (VCI/KBS) |
- Nguồn ASEAN chỉ hỗ trợ
mode=detailed. Nếu gọimode=summaryvới nguồn ASEAN sẽ ném ra ngoại lệValueErrortiếng Việt trực quan. - Tất cả các cột dữ liệu của nguồn VCI đã được chuẩn hoá ngắn gọn sang dạng chữ thường (lowercase) chuẩn database (ví dụ:
state_percentage,foreign_percentage, v.v.).
Thay đổi: Chuẩn hoá Data Model Tin Tức (company.news)
Kể từ phiên bản v3.2.3, phương thức news() truy xuất tin tức công ty đã được chuẩn hoá (Unified) hoàn toàn giữa các nguồn (VCI, KBS, CAFEF) với cùng một cấu trúc tham số đầu vào và một Data Model đầu ra duy nhất, thay vì schema phân mảnh như trước đây.
1. Tham số hỗ trợ được đồng bộ:
Hàm news() hiện hỗ trợ bộ tham số tuỳ chỉnh mạnh mẽ bao gồm: start, end, length (mặc định 90 ngày), limit (mặc định 10000), và mode (list hoặc detail). Tham số **kwargs cũng được proxy trực tiếp xuống hàm đích nếu nguồn dữ liệu hỗ trợ.
2. Data Model chuẩn hoá:
Tất cả các nguồn sẽ trả về chung một schema 10 cột nhất quán, giúp dễ dàng nối (concat) dữ liệu phân tích:
id, symbol, title, summary, content, publish_time, source, url, category, image_url
| Tính năng | Legacy API (Bản < 3.2.x) | Unified API (Bản >= 3.2.x) |
|---|---|---|
| Cấu trúc trả về | Tuỳ thuộc vào nguồn (khác biệt tên cột) | Schema 10 cột đồng nhất cho mọi nguồn |
| Cào nội dung báo | Chỉ KBS, schema khác biệt | Hỗ trợ mode=detail cho mọi nguồn (VCI, KBS, CAFEF) |
| Khung thời gian | VCI không hỗ trợ | Hỗ trợ start, end, length cho toàn bộ nguồn qua lớp Abstract |
vnstock_data và vnstock_news:
- Hàm
news()trongvnstock_datatập trung vào tin tức đã được phân loại cho một doanh nghiệp cụ thể (Bao gồm: thông báo nội bộ, công bố thông tin, tin từ sở giao dịch, tin tức trực tiếp về mã cổ phiếu). - Gói
vnstock_newschuyên dùng để cào tin tức đại chúng chưa dán nhãn trực tiếp từ các trang báo (thích hợp làm nguyên liệu thô cho mô hình ML/AI hoặc sử dụng AI Agent để gán nhãn).
Khám Phá: Tổng Quan API Tree Mới
Để khám phá trực quan toàn bộ các hàm được hỗ trợ trong hệ thống mới (kèm theo nhãn đánh dấu [Experimental]), bạn chỉ cần gọi 2 lệnh đơn giản:
from vnstock_data import show_api
from vnstock_data.ui import Insights, Macro
# Xem sơ đồ phân tích tâm lý, dòng tiền
show_api(Insights())
# Xem sơ đồ vĩ mô và hàng hoá
show_api(Macro())
Thảo luận