Vnstock Logo

Lớp và hàm Python

Thử nghiệm

Mục lục

Bản thử nghiệm, chưa phát hành chính thứ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 đó.

Python
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ầnViệ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
catalogMục lục: entries(name), entry(name, key), rebuild(names), contract()
layoutĐường dẫn: path(name, ...), dataset_dir(name), raw_dir(source, date)
Python
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ồn

Runner

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ứcTươ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.

Python
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ầnViệ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_delaySố 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àmViệ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ầnViệc
EVENT_VERSIONPhiê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
FieldSetdefault(), 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àmViệ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…).