Vnstock Logo

Làm Chủ Vnstock: Ba Cấp Độ Sức Mạnh

Hiểu rõ ba cách tiếp cận thư viện Vnstock để khai phá toàn bộ tiềm năng, từ các tác vụ nhanh gọn đến tùy chỉnh phân tích chuyên sâu.

Chiếc Xe Hơi Của Bạn

Hãy tưởng tượng Vnstock như một chiếc xe hơi hiện đại. Bạn có ba cách để sử dụng nó.

Lái Xe Số Tự Động
Cách 1: Lớp Giao Diện Vnstock

Đơn giản nhất: bạn chỉ cần ngồi vào, nhấn ga và đi. Phù hợp cho các tác vụ nhanh, nhưng ít tùy chọn và sắp được thay thế.

Lái Xe Bán Tự Động
Cách 2: Các Lớp Chức Năng (Khuyên dùng)

Mạnh mẽ và linh hoạt. Giống như dùng lẫy chuyển số, bạn vừa có sự tiện lợi của số tự động, vừa có thể can thiệp để tối ưu khi cần. Đây là cách làm việc cân bằng và hiệu quả nhất.

Thợ Máy Chuyên Nghiệp
Cách 3: Lõi Hệ Thống (Core Engine)

Bạn mở nắp capo, tinh chỉnh từng bộ phận để đạt hiệu suất tối đa. Dành cho người dùng chuyên sâu, muốn kiểm soát tuyệt đối và xây dựng các logic phức tạp.

Ba Cách Tiếp Cận, Một Hệ Thống

Mỗi cách tiếp cận phục vụ một nhu cầu khác nhau, nhưng tất cả đều dựa trên một lõi hệ thống mạnh mẽ.

Cách 1: Lớp Giao Diện Vnstock
Cách tiếp cận đang được minh hoạ nhiều nhất, đơn giản nhất để làm quen, nhưng sẽ sớm được thay thế bởi cách thứ 2 linh hoạt hơn.
from vnstock import Vnstock

# Đơn giản, nhanh gọn cho người mới bắt đầu.
# -> Hướng đến sử dụng cách 2 sẽ linh hoạt hơn.
stock = Vnstock().stock(symbol='ACB', source='VCI')
df = stock.quote.history(start='2024-01-01', end='2025-01-01')

print(df.head())
Cách 2: Các Lớp Chức Năng (Khuyến khích sử dụng)
Đây là phương pháp cân bằng, mạnh mẽ và được khuyến khích. Bạn import các lớp chức năng (Quote, Finance...) và dễ dàng chỉ định nguồn dữ liệu (`source`) mình muốn.

Tại sao nên dùng cách này?

Cách tiếp cận này sử dụng một mẫu thiết kế phổ biến gọi là Adapter Pattern. Nó giúp che giấu sự phức tạp của việc kết nối đến từng nguồn dữ liệu riêng lẻ, trong khi vẫn cho bạn toàn quyền lựa chọn và chuyển đổi nguồn một cách linh hoạt chỉ bằng một tham số source.

from vnstock_data import Quote, Finance

# -> Bạn chỉ cần thay đổi "source" để lấy dữ liệu từ nguồn khác.
quote_vci = Quote(source="vci", symbol="VCI")
df_vci = quote_vci.history(start="2024-01-01", end="2025-01-01")
print("Dữ liệu từ VCI:")
print(df_vci.head())

# -> Dễ dàng chuyển sang nguồn dữ liệu khác mà không cần đổi logic
quote_mas = Quote(source="mas", symbol="ACB")
df_mas = quote_mas.history(start="2024-01-01", end="2025-01-01")
print("\nDữ liệu từ MAS:")
print(df_mas.head())
Cách 3: Lõi Hệ Thống (Dành cho chuyên gia)
Truy cập trực tiếp vào từng module của nguồn dữ liệu cụ thể. Cách này cho phép tối ưu hóa hiệu suất và tùy chỉnh sâu, nhưng đòi hỏi bạn phải hiểu rõ cấu trúc thư viện.
from vnstock_data.explorer.vci.quote import Quote

# -> Tối ưu cho kiểm soát sâu.
# Dành cho người dùng chuyên sâu muốn tùy chỉnh đến tận cùng.
quote = Quote(symbol='ACB')
df = quote.history(start='2024-01-01', end='2025-01-01')

print(df.head())

Các Thành Phần Cốt Lõi

Hiểu rõ các khối xây dựng nên thư viện Vnstock sẽ giúp bạn khai thác tối đa sức mạnh của nó.

Nguồn Dữ Liệu & Loại Tài Sản

Khi bạn khởi tạo một đối tượng, bạn thường cung cấp hai thông tin quan trọng: loại tài sản thông qua tên phương thức (class) (ví dụ: stock, fx, crypto) và nguồn dữ liệu (source). Thư viện sẽ tự động chọn đúng "cổng" API để lấy dữ liệu. Hiện tại, Vnstock hỗ trợ các nguồn chính như VCI, TCBS và MSN (cho dữ liệu quốc tế).

Các Lớp Chức Năng

Listing

Liệt kê danh sách các loại chứng khoán như cổ phiếu, hợp đồng tương lai, chứng quyền, trái phiếu...

Quote

Truy xuất thông tin giá giao dịch, từ lịch sử OHLCV chi tiết đến dữ liệu khớp lệnh trong ngày (intraday).

Company

Khám phá thông tin chi tiết về doanh nghiệp: hồ sơ, ban lãnh đạo, công ty con, tin tức và sự kiện.

Finance

Truy cập các báo cáo tài chính (CĐKT, KQKD, LCTT) và các chỉ số tài chính quan trọng.

Trading

Lấy dữ liệu giao dịch thời gian thực như thông tin bảng giá, thống kê mua bán của khối ngoại và tự doanh.

Analysis

Cung cấp các dữ liệu đã qua phân tích hoặc các dữ liệu thứ cấp được tạo ra từ nguồn. Hiện chưa triển khai

Sơ Đồ Kiến Trúc Vnstock

Lớp Giao Diện (`Vnstock`) là cầu nối thông minh, tự động điều phối các yêu cầu của bạn đến các module trong Lõi Hệ Thống.

Bạn đã sẵn sàng để khám phá?

Bắt đầu với các hàm đơn giản, và khi đã sẵn sàng, hãy đi sâu vào lõi hệ thống để tùy chỉnh và tối ưu.