Tải dữ liệu bằng vnstock
Mục lục
Trang này viết cho vnstock_quant v1.0.0rc1, bản thử nghiệm. Tên hàm, tham số và cột dữ liệu có thể còn đổi trước ngày phát hành; khi cài, ghi rõ số phiên bản như ở trang Cài đặt. Bản đang phát hành chính thức là v0.5.0, xem tài liệu bản đó.
vnstock_quant không truy xuất dữ liệu: bạn đưa bảng pandas vào, hoặc gọi một điểm vào tải dữ liệu qua vnstock 6. vnstock 6 đọc Open API của nguồn bằng khoá của chính bạn; dữ liệu đi thẳng từ nguồn tới máy bạn. Phần tính toán sau đó chạy trên máy.
Trước khi tải: cất khoá của nguồn và chọn nguồn, xem Cài đặt và thiết lập.
Điểm vào theo nhóm hàm
| Cần gì | Gọi | Loại dữ liệu của vnstock | Tình trạng |
|---|---|---|---|
| Nến cho chỉ báo kỹ thuật | ta.from_vnstock(symbol, start, end, interval="1D", source=None) | market.equity.ohlcv | Chạy |
| Lợi suất của mã và chỉ số tham chiếu | risk.from_vnstock(symbol, benchmark="VNINDEX", start, end, source=None) | market.equity.ohlcv, market.index.ohlcv | Chạy; chỉ số tham chiếu tải cùng nguồn với mã |
| Báo cáo tài chính cho chỉ số tài chính | fa.Dataset.load(symbols, period="both", source=None, price_source=None, estimate_shares=False) | fundamental.equity.*, market.equity.daily_stats | Chạy; định giá tắt mặc định, xem Chỉ số tài chính |
| Giá đã điều chỉnh theo sự kiện quyền | prices.from_vnstock(symbol, start, end, source=None, events_source=None) | market.equity.daily_stats, reference.events.calendar | Tạm tắt, xem Giá điều chỉnh |
| Nến cho backtest | Market().equity(symbol).ohlcv(start, end, source=...) của vnstock | market.equity.ohlcv | Chạy; giá đã điều chỉnh, không khai corporate_actions |
| Dữ liệu khớp lệnh cho vi cấu trúc | Market().equity(symbol).trades(source=...) của vnstock | market.equity.trades | Chạy; có nguồn không gửi phiên ATO, ATC |
Mỗi loại dữ liệu có danh sách nguồn đọc được riêng, và danh sách này đổi theo bản vnstock. Tra ngay trên máy:
import vnstock
for route in ("market.equity.ohlcv", "fundamental.equity.income_statement",
"market.equity.daily_stats", "market.equity.trades", "reference.events.calendar"):
print(route, vnstock.sources.readers(route))from vnstock_quant import fa, risk, ta
ind = ta.from_vnstock("HPG", start="2024-01-01", end="2024-12-31", source="<nguồn giá>")
rsi = ind.rsi(length=14)
data = risk.from_vnstock("FPT", benchmark="VNINDEX", start="2022-01-01", source="<nguồn giá>")
beta = risk.beta(data["returns"], data["benchmark"])
ds = fa.Dataset.load("FPT", source="<nguồn BCTC>", price_source="<nguồn giá>")
roe = fa.ratios(ds, ids=["RT_PRT_ROE"])Backtest và vi cấu trúc nhận bảng của vnstock:
import vnstock
from vnstock_quant import backtest as bt, micro
df = vnstock.Market().equity("FPT").ohlcv(start="2021-01-01", end="2026-09-30", source="<nguồn giá>")
res = bt.run(df, entries=df["close"] > df["close"].rolling(200).mean(),
exits=df["close"] < df["close"].rolling(50).mean())
ticks = vnstock.Market().equity("FPT").trades(source="<nguồn khớp lệnh>", compat="v6", floating=None)
m1 = micro.bars(ticks, by="time", size="1min")Điều cần biết trước khi tải
| Chủ đề | Chi tiết |
|---|---|
| Không có nguồn mặc định | Thiếu source= và chưa đặt quy tắc thì gặp VNSTOCK_INPUT_SOURCE. Chọn nguồn không đọc được loại dữ liệu đó thì gặp VNSTOCK_ROUTE_UNSUPPORTED, kèm tên nguồn đọc được. |
| Hồ sơ cột | Các điểm vào của vnstock_quant luôn đọc hồ sơ v5 và floating=None (giữ nguyên độ chính xác của giá), bất kể vnstock.compat đang đặt gì. Bảng bạn tự tải thì hồ sơ nào cũng đưa vào được. |
| Đơn vị giá | ohlcv() trả giá theo nghìn đồng; trade_history() hồ sơ v5 trả đồng. backtest.run có price_unit="auto", prices.adjust có unit="auto". |
| Giá đã điều chỉnh | Đo ngày 06/11/2026: cả ohlcv() lẫn trade_history() của các nguồn hiện có trả giá đã điều chỉnh cho mọi phiên trước sự kiện quyền gần nhất. Dùng thẳng cho ta, risk, portfolio, backtest. Không dùng làm giá gốc: prices từ chối, fa bỏ khỏi định giá. |
| Chuỗi dài | risk.from_vnstock và các hàm tải chuỗi dài của thư viện tự tải theo cửa sổ ba năm; với ohlcv() bạn tự chia khoảng ngày nếu nguồn giới hạn số phiên mỗi lần gọi. |
| Không có số cổ phiếu theo ngày | Open API không có cột total_shares, market_cap. Định giá cần bạn tự đưa số cổ phiếu, hoặc bật estimate_shares=True. |
| Không có thuyết minh BCTC | Chỉ số ngân hàng cần dòng NT_* trả MISSING_INPUT. |
| Tần suất gọi | Không có hạn mức lượt gọi; mỗi nguồn tự giới hạn tần suất. Tải báo cáo tài chính nhiều mã liền nhau có thể gặp VNSTOCK_SOURCE_RATE_LIMITED. Xem Tần suất gọi của nguồn. |
| Bảng thử nghiệm | vnstock 6 đánh dấu BCTC, giá theo phiên và lịch sự kiện qua Open API là thử nghiệm. vnstock_quant nhắc một lần mỗi tiến trình; hãy đối chiếu với báo cáo gốc hoặc thông báo của sở trước khi dùng cho quyết định. |
Khi làm việc lặp lại trên cùng dữ liệu, lưu bảng ra đĩa hoặc để vnstock_pipeline lưu vào kho rồi đọc lại; vnstock_quant nhận DataFrame từ bất kỳ nguồn nào bạn đã chuẩn bị.
Đọc tiếp
- Cài đặt và thiết lập — Cất khoá và chọn nguồn.
- Quy ước dữ liệu và lỗi — Mã lỗi của
vnstock6 và các cảnh báo. - Mức hoàn thiện — Điểm vào nào đã chạy trên nguồn thật.
- Chọn nguồn trong vnstock 6 — Quy tắc nguồn, nguồn dự phòng.
