Lớp và hàm Python
Mục lục
Trang này viết cho vnstock_pipeline v6.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à v3.1.1, xem tài liệu bản đó.
from vnstock_pipeline import (
Store, Runner, Session, # lưu trữ, tác vụ, phiên stream
replay_events, replay_bars, # chạy lại tệp phiên đã ghi
canonical, # hợp đồng sự kiện chuẩn, bộ cột
PipelineConfig, PipelineError, # cấu hình, lỗi
account, telemetry, license_status, # tài khoản, đo lượt dùng, giấy phép
)Store
Đọc và ghi thư mục lưu trữ.
| Thành phần | Việc |
|---|---|
Store(base_path=None, *, config=None) | Mở thư mục lưu trữ theo pipeline.toml, hoặc theo đường dẫn truyền vào |
read(name, symbol=None, *, interval, date, dates, source, start, end, columns) | Đọc một bộ dữ liệu thành DataFrame; nguồn gốc nằm trong df.attrs |
write(name, df, *, symbol, interval, date, source, mode) | Ghi theo luật gộp của bộ dữ liệu (dữ liệu nạp theo lịch) |
write_part(name, df, *, source, date, interval, meta) | Thêm một tệp phần cho bộ dữ liệu stream |
symbols(name, *, interval, date), dates(name, *, interval, source) | Mã, ngày đã có |
compact(name, folder), compact_stream(*, before, date) | Gộp tệp phần stream |
init(), tree(), report() | Như store init, store tree, store report |
catalog | Mục lục: entries(name), entry(name, key), rebuild(names), contract() |
layout | Đường dẫn: path(name, ...), dataset_dir(name), raw_dir(source, date) |
store = Store()
df = store.read("ohlcv", "FPT", interval="1D", start="2026-01-01", columns=["time", "close", "volume"])
store.catalog.entry("ohlcv", "1D/FPT") # số dòng, ngày đầu, ngày cuối, nguồnRunner
Tác vụ nạp dữ liệu qua vnstock 6, cần phần cài thêm rest và giấy phép.
| Phương thức | Tương đương lệnh |
|---|---|
ohlcv(*, symbols, group, watchlist, top, interval="1D", asset="equity", source, start, end, mode="daily", include_today=False) | run ohlcv |
trades(*, ..., dates, asset, source) | run trades |
snapshot(*, ..., kinds=("quote", "order_book"), asset, source) | run quote |
index_quote(*, indexes, source) | run index |
foreign_flow(*, ..., source, start, end, mode) | run foreign |
session_stats(*, ..., source, start, end, mode) | run session-stats |
block_trades(*, source) | run block-trades |
reference(*, source, parts, indexes) | run reference |
company(*, ..., parts=("info",), source) | run company |
symbols(*, symbols, group, watchlist, top) | universe show |
build_liquidity(*, days=20, top=300) | universe build-liquidity |
Runner(store=None, *, strict=False). Mỗi phương thức trả list[TaskResult]; vnstock_pipeline.tasks.summary(results)
cho bản tóm tắt như dòng lệnh.
Session
Một phiên stream của một nguồn. Cần phần cài thêm stream và giấy phép khi mở kết nối.
Session(store, source, channels=(), symbols=(), *, intervals=("1m",), engine="auto", fields=None,
keep_raw=None, flush_events=5000, flush_seconds=5.0, on_bar=None, on_event=None,
profile="default", compact=True, close_delay=2.0)| Thành phần | Việc |
|---|---|
run(seconds=None) | Mở phiên, chặn tới khi hết giờ hoặc Ctrl+C; trả SessionStats |
await arun(seconds=None) | Như trên, trong vòng lặp bất đồng bộ của bạn |
stop() | Dừng phiên; nến đang mở được đóng, phần còn lại được ghi |
ingest(frame) | Đẩy một thông điệp (dạng dict) vào phiên; dùng khi tự cấp thông điệp |
finish() | Đóng nến, ghi nốt, gộp tệp phần |
stats.to_dict() | Tóm tắt phiên như stream run in ra |
close_delay | Số giây chờ sau khi hết khung rồi mới đóng nến, để lệnh của giây cuối đến kịp. Mặc định 2 |
vnstock_pipeline.stream.replay_into_store(store, path, *, source, intervals, engine, fields, context) chạy một tệp đã ghi
qua đúng luồng của phiên.
Chạy lại, giải mã, dựng nến
| Hàm | Việc |
|---|---|
replay_events(path, engine="auto", *, context=None) | Giải mã mọi thông điệp của tệp; trả (events, errors), lỗi kèm số dòng và mã |
replay_bars(path, interval="1m", engine="auto", *, ticker_volume=None) | Nến đã đóng dựng từ khớp lệnh trong tệp, kèm báo cáo của bộ dựng nến. ticker_volume mặc định theo nguồn |
context truyền điều phiên ghi biết mà thông điệp không mang, ví dụ {"tcbs.match_history.symbol": "FPT"} cho tệp
kênh lịch sử khớp của tcbs.
canonical
Hợp đồng sự kiện chuẩn (Sự kiện chuẩn).
| Thành phần | Việc |
|---|---|
EVENT_VERSION | Phiên bản sự kiện chuẩn (3) |
types() | 14 loại sự kiện |
core_fields(kind), optional_fields(kind), detail_columns(kind) | Cột lõi, cột chung, cột chi tiết |
detail_spec(source, kind, message) | Khoá, trường gốc, kiểu, đơn vị của cột chi tiết |
dtypes(kind, columns) | Kiểu cột cố định |
validate(event) | Kiểm một sự kiện theo hợp đồng |
schema(), sources() | JSON Schema đầy đủ; ma trận nguồn, đơn vị, kênh dựng nến |
FieldSet | default(), common(), core_only(), filled_by(*sources, detail=True), with_(kind, *cols), without(kind, *cols), columns(kind), project(event) |
Chất lượng
vnstock_pipeline.quality: DataGuard(calendar, *, strict, stale_days), SchemaGuard(store), Quarantine(store),
TradingCalendar(holidays, known_days) (Chất lượng dữ liệu).
Xuất
vnstock_pipeline.export: export_csv, export_parquet, export_excel, frames;
vnstock_pipeline.export.amibroker.AmiBrokerExport(store, out_dir, *, interval) với run(kinds, ...), write_formats()
(Tra cứu và xuất).
Tài khoản
| Hàm | Việc |
|---|---|
account.login() | Đăng nhập bằng VNSTOCK_API_KEY |
account.logout() | Xoá khoá, phiên, quyền đã lưu |
license_status() | Cấp quyền, quyền dùng (entitled), thiết bị, hạn dùng, thời hạn bản phát hành. Không ném lỗi |
account.policy() | Chính sách quyền và chính sách máy khách |
telemetry.disable(), telemetry.enable() | Tắt, bật đo lượt dùng |
Chuyển dữ liệu bản 3.x
vnstock_pipeline.migrate.migrate_legacy(store, legacy_base, *, dry_run=False) trả MigrationReport (to_dict()).
Lỗi
Lỗi của pipeline là PipelineError với thuộc tính code, ví dụ PIPELINE_TIER_REQUIRED, PIPELINE_STORE_DATASET,
PIPELINE_BARS_INTERVAL. Thông điệp stream không giải mã được không làm dừng phiên; nó được đếm ở decode_errors
theo mã (PIPELINE_DECODE_DNSE, PIPELINE_DECODE_UNIT, PIPELINE_DECODE_NO_SYMBOL…).
