Chọn nguồn dữ liệu bên thứ ba
Mục lục
Bản mặc định hiện là vnstock v5.0.0, gộp bản Cộng đồng và bản Mở rộng vào một thư viện. Trang này giữ lại cho máy còn cài vnstock_data v3.2.9: mã viết theo trang này vẫn chạy với bản đó. Đã cài bản mới thì đọc trang tương ứng của v5.0.0.
Máy đang cài bản nào: chạy python -c "import vnstock; print(vnstock.__version__)", ra số bắt đầu bằng 5. là thế hệ 5.
Hướng dẫn này tập trung vào Unified UI - kiến trúc mới và định tuyến sử dụng mặc định của Vnstock. Nếu bạn là nhà phát triển muốn can thiệp sâu, ép nguồn hoặc tuỳ biến dữ liệu chi tiết (ví dụ sử dụng CafeF), vui lòng tham khảo Tính Năng Nâng Cao.
Tài liệu này là chỉ mục tổng hợp giúp bạn tra cứu các nguồn bên thứ ba mà thư viện vnstock_data kết nối tới. Các nguồn trong và ngoài nước được liệt kê trong hai bảng dưới đây. Các module kết nối chạy trên máy của bạn và truy vấn thẳng tới từng nguồn.
Các nguồn được chia thành 2 nhóm:
- Unified UI: Các nguồn được hệ thống tự động định tuyến.
- Adapter API: Nguồn chuyên biệt, yêu cầu chỉ định tham số
source='...'.
Bảng Tra Cứu Nhanh
1. Nguồn Dữ Liệu Nội Địa
| Lớp (Layer) | VCI | KBS | ASEAN | MAS | VND | CafeF* |
|---|---|---|---|---|---|---|
| Listing | ✅ | ✅ | - | - | - | - |
| Quote/Market | ✅ | ✅ | - | - | - | - |
| Company | ✅ | - | - | - | - | - |
| Finance | ✅ | - | - | ✅ | - | - |
| Trading | ✅ | ✅ | - | - | - | ✅ |
| Insights | - | - | ✅ | - | ✅ | - |
| Macro | - | - | ✅ | - | - | - |
| Commodity | - | - | ✅ | - | - | - |
*Ghi chú: CafeF thuộc nhóm Adapter API.
2. Nguồn Dữ Liệu Quốc Tế
| Lớp (Layer) | Dukascopy | Binance | FXSB* | Chủ yếu dùng cho |
|---|---|---|---|---|
| Market (Crypto) | - | ✅ | - | Dữ liệu giao dịch tiền mã hóa |
| Market (Forex) | ✅ | - | ✅ | Tỷ giá các cặp ngoại tệ |
| Commodity | ✅ | - | - | Giá hàng hóa thế giới |
*Ghi chú: FXSB thuộc nhóm Adapter API.
Phân Cấp Các Nguồn Dữ Liệu
Nhóm 1: Unified UI
Đây là các nguồn sẽ tự động phản hồi dữ liệu khi bạn gọi lệnh cơ bản như Market().equity('VIC').ohlcv().
1. VCI - Nguồn Dữ Liệu Thông Tin Doanh Nghiệp & Danh Mục
- Hỗ trợ dữ liệu chuỗi thời gian dài (từ năm 2000), hồ sơ doanh nghiệp và phân bổ danh mục chuẩn ICB.
- Lưu ý: Kết nối tới nguồn VCI có thể không khả dụng từ một số môi trường đám mây như Google Colab.
2. KBS - Nguồn Dữ Liệu Biến Động Thị Trường
- Tập trung vào biến động giá trị và khớp lệnh trong phiên, là hệ thống định tuyến tự động xử lý các tác vụ truy xuất dữ liệu giá OHLCV, intraday, và sổ lệnh.
3. ASEAN - Nguồn Dữ Liệu Chỉ Báo & Vĩ Mô
- Chuyên biệt hóa về các phân tích định lượng (luân chuyển dòng tiền RRG, dòng tiền ngành) và thống kê dữ liệu vĩ mô, lãi suất, hàng hóa thế giới.
4. MAS - Nguồn Dữ Liệu Báo Cáo Tài Chính
- Định dạng cấu trúc báo cáo tài chính phân nhánh (cây tài khoản cha-con), bám sát cách thức trình bày thực tế.
5. VND - Nguồn Dữ Liệu Xếp Hạng
- Hỗ trợ dữ liệu định giá (P/E, P/B) và thống kê xếp hạng thị trường.
6. Binance - Nguồn Dữ Liệu Tiền Mã Hóa
- Định tuyến tự động phục vụ lớp
market.crypto(lịch sử giá, sổ lệnh, giao dịch).
7. Dukascopy - Nguồn Dữ Liệu Ngoại Hối & Hàng Hóa Thế Giới
- Định tuyến tự động phục vụ nhu cầu tra cứu ngoại hối (
market.forex) và hàng hóa quốc tế.
Nhóm 2: Adapter API
Không được cấu hình định tuyến mặc định nhằm giảm tải. Người dùng cần chủ động truyền tên nguồn vào lệnh gọi.
8. CafeF - Nguồn Phân Tích Dòng Tiền Tổ Chức
- Chuyên sâu về thống kê giao dịch khối ngoại, tự doanh, và giao dịch của cổ đông nội bộ.
- Cách gọi:
Quote(source='cafef', symbol='VIC').history()
9. FXSB (FX Smartbull) - Nguồn Mở Rộng Ngoại Hối
- Nguồn mở rộng dùng để trích xuất dữ liệu đa dạng hơn về các cặp tiền tệ.
Hướng Dẫn Chọn Nguồn
Cấu trúc Unified UI đã tự động hóa phần lớn quá trình lựa chọn. Tuy nhiên, người dùng có thể tham khảo quy tắc sau để tự tinh chỉnh khi cần:
- Biến động Giá & Sổ Lệnh: Unified UI gọi KBS cho OHLCV ngắn hạn và VCI cho dài hạn.
- Tiền Mã Hóa / Ngoại hối: Mặc định gọi Binance và Dukascopy.
- Hồ Sơ Công Ty & Danh Mục Ngành: Mặc định gọi VCI vì nguồn này hỗ trợ nhiều hàm hồ sơ công ty và phân ngành hơn.
- Báo Cáo Tài Chính: Định tuyến tới MAS để tận dụng cấu trúc dữ liệu theo định dạng khoản mục phổ biến.
- Dòng Tiền & Vĩ Mô: Mặc định gọi ASEAN cho các chỉ báo tâm lý, vĩ mô và luân chuyển ngành.
- Sổ Lệnh Nội Bộ Chi Tiết: Dùng cấu hình Nâng cao với tham số nguồn CafeF.
Xử Lý Lỗi & Dự Phòng (Fallback)
Do bản chất truy xuất dữ liệu API từ bên thứ ba, kết nối đôi khi có thể bị gián đoạn. Unified UI được thiết kế để hạn chế sự gián đoạn này, tuy nhiên người dùng có thể áp dụng thủ thuật tự viết kịch bản dự phòng:
from vnstock_data import Quote
def get_data_with_fallback(symbol):
# Ưu tiên mặc định (KBS), kế đến dự phòng dài hạn (VCI), và cuối cùng (VND)
sources = ['kbs', 'vci', 'vnd']
for source in sources:
try:
quote = Quote(source=source, symbol=symbol)
return quote.history(...)
except Exception as e:
print(f"Gián đoạn kết nối tới {source}: {e}")
continue
raise Exception("Lỗi truy xuất từ tất cả các nguồn dự phòng.")