Tải dữ liệu bằng vnstock
Mục lục
vnstock_quant không truy xuất dữ liệu: bạn đưa bảng pandas vào. Khi đã cài vnstock thế hệ 5 cùng môi trường, mỗi nhóm hàm có một điểm vào tải dữ liệu đúng dạng cần dùng. Dữ liệu tải qua vnstock tính vào hạn mức chung của tài khoản theo quy tắc của vnstock; phần tính toán sau đó chạy trên máy và không tốn hạn mức.
pip install -U --extra-index-url https://vnstocks.com/api/packages "vnstock_quant[vnstock]"Thiếu vnstock thế hệ 5 thì các điểm vào dưới đây báo DependencyError với lệnh cài trong action.
Điểm vào theo nhóm hàm
| Cần gì | Gọi | Trả về | Mức |
|---|---|---|---|
| Nến cho chỉ báo kỹ thuật | ta.from_vnstock(symbol, start, end, interval="1D") | Indicator đã nạp nến, tính ngay được | Ổn định |
| Lợi suất của mã và chỉ số tham chiếu | risk.from_vnstock(symbol, benchmark="VNINDEX", start) | DataFrame hai cột returns, benchmark, căn theo ngày chung | Thử nghiệm |
| Báo cáo tài chính, giá và số cổ phiếu cho chỉ số tài chính | fa.Dataset.load(symbols, period="both") | Dataset cho fa.ratios() | Thử nghiệm |
| Giá đã điều chỉnh theo sự kiện quyền | prices.from_vnstock(symbol, start) | OHLCV đơn vị đồng, bảng hệ số trong attrs["factors"] | Thử nghiệm |
| Nến cho backtest | Market().equity(symbol).ohlcv(start, end) của vnstock | Bảng nến đưa thẳng vào backtest.run() | Thử nghiệm |
| Dữ liệu khớp lệnh cho vi cấu trúc | Market().equity(symbol).trades(limit=1000) của vnstock | Bảng tick cho micro.bars() | Thử nghiệm |
Cột Mức là mức ổn định của nhóm hàm nhận dữ liệu đó: nhóm thử nghiệm còn có thể đổi tên hàm, tham số và cấu trúc kết quả giữa các bản phát hành. Xem mức độ ổn định của từng nhóm hàm.
from vnstock_quant import fa, prices, risk, ta
ind = ta.from_vnstock("HPG", start="2024-01-01", end="2024-12-31")
rsi = ind.rsi(length=14)
data = risk.from_vnstock("FPT", benchmark="VNINDEX", start="2022-01-01")
beta = risk.beta(data["returns"], data["benchmark"])
ds = fa.Dataset.load(["FPT", "VCB"])
roe = fa.ratios(ds, ids=["RT_PRT_ROE"])
bars = prices.from_vnstock("FPT", start="2019-01-01") # giá đã điều chỉnh, đơn vị đồngBacktest và vi cấu trúc nhận bảng thô của vnstock:
from vnstock import Market
from vnstock_quant import backtest as bt, micro
df = Market().equity("FPT").ohlcv(start="2021-01-01", end="2026-09-30")
res = bt.run(df, entries=df["close"] > df["close"].rolling(200).mean(), exits=df["close"] < df["close"].rolling(50).mean())
ticks = Market().equity("FPT").trades(limit=1000)
m1 = micro.bars(ticks, by="time", size="1min")Điều cần biết trước khi tải
| Chủ đề | Chi tiết |
|---|---|
| Đơn vị giá | ohlcv() trả giá tính bằng nghìn đồng; trade_history() và prices.from_vnstock trả đồng. backtest.run có price_unit="auto" để nhận ra; prices.adjust có unit="auto". Trong một phiên làm việc hãy giữ một đơn vị. |
| Chuỗi dài | vnstock trả tối đa 1.000 phiên hoặc 1.000 lệnh mỗi lần gọi. risk.from_vnstock và prices.from_vnstock tự tải theo cửa sổ ba năm; với ohlcv() bạn tự chia khoảng ngày. |
| Số mã mỗi lần tải báo cáo tài chính | Cộng đồng 3, Bronze 100, Silver 400, Golden và Diamond toàn thị trường; vượt thì TierRequiredError với mã QUANT_SCOPE_LIMIT. |
| Giá chưa điều chỉnh cho chỉ số định giá | Cần cấp quyền sử dụng của vnstock. Bản Cộng đồng gọi Dataset.load(..., prices=False); P/E, P/B khi đó báo MISSING_MARKET ở cột reason. |
| Dữ liệu đã điều chỉnh hay chưa | ohlcv() là giá đã điều chỉnh theo nguồn; trade_history() là giá thô kèm giá tham chiếu, trần, sàn. Muốn kiểm từng sự kiện quyền thì đi đường prices. |
| Hạn mức chung | Mỗi lần tải là lượt gọi của vnstock; Dataset.load() tải nhiều bảng cho mỗi mã. Xem mức còn lại ở trang tài khoản. |
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
- Quy ước dữ liệu và lỗi — Dạng dữ liệu mà từng nhóm hàm nhận.
- Quyền dùng và hạn mức — Số mã theo cấp và lượt dùng thử.
- Giá điều chỉnh — Khi nào cần đi đường
pricesthay choohlcv().
