Vnstock Logo

Cài đặt và thiết lập

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_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 đó.

Nguồn của bạn

Chọn nguồn bạn có khoá, mã trên trang sẽ điền theo. Chưa chọn thì mã giữ chỗ trống <nguồn>. Nguồn xếp theo bảng chữ cái, không phải khuyến nghị.

vnstock_quant có gói cài dựng sẵn cho Python 3.10 trở lên; không cần tự biên dịch phần lõi Rust. Bản 1.0 cài kèm vnstock 6 và vnstock-oapi, nên sau khi cài bạn cần thêm hai việc trước khi tải dữ liệu: cất khoá của nguồn và chọn nguồn.


Cài vào một môi trường riêng

vnstock thế hệ 6 dùng chung tên gói vnstock với thế hệ 5. Cài vnstock_quant 1.0 vào môi trường đang có thế hệ 5 sẽ thay bản vnstock đó, và mã viết cho thế hệ 5 ngừng chạy. Vì vậy hãy tạo một môi trường ảo riêng:

Shell
python -m venv ~/.venv_6x && source ~/.venv_6x/bin/activate
pip install -U --extra-index-url https://vnstocks.com/api/packages "vnstock_quant==1.0.0rc1"

Trên Windows, kích hoạt bằng ~\.venv_6x\Scripts\activate. Lệnh trên cài kèm vnstock >=6.0.0rc3,<7, vnstock-oapi, numpy và pandas.

Luôn ghi rõ số phiên bản

Các thư viện Vnstock phát hành qua kho phân phối của vnstocks.com, không qua PyPI, nên hãy giữ --extra-index-url https://vnstocks.com/api/packages ở cả lệnh cài và lệnh cập nhật. pip không tự chọn bản thử nghiệm: lệnh không ghi ==1.0.0rc1 (hoặc không có --pre) sẽ cài bản 0.5 của thế hệ 5.

Không còn extra [vnstock]: vnstock 6 là phụ thuộc bắt buộc. Thư viện chỉ nạp vnstock khi bạn gọi một hàm tải dữ liệu, nên các phép tính trên bảng bạn tự đưa vào không chạy mã nào của vnstock và không gọi mạng tới nguồn. Muốn vẽ kết quả backtest, cài thêm extra chart: "vnstock_quant[chart]==1.0.0rc1".

Yêu cầu môi trường

  • Hệ điều hành: macOS 10.12 trở lên trên chip Intel (x86_64), macOS 11 trở lên trên chip Apple (arm64); Linux x86_64 và aarch64 với glibc 2.17 trở lên (manylinux2014); Windows x86_64.
  • Python: 3.10 trở lên, một bản dựng dùng chung cho mọi phiên bản từ 3.10.
  • Thư viện nền: numpy>=1.24, pandas>=2.0, vnstock>=6.0.0rc3,<7 (tự cài).

Bản dựng Windows đã qua bước kiểm tra rò rỉ như các bản khác nhưng chưa được chạy thử trên máy Windows thật.


Cất khoá của nguồn

vnstock 6 đọc Open API của công ty chứng khoán bằng khoá bạn đăng ký ở chính nguồn đó. Bạn chỉ cần khoá ở nguồn bạn định dùng. Cách đăng ký khoá ở từng nguồn: Cài đặt vnstock 6.

Shell
vnstock keys set <nguồn>      # cất vào keyring, không hiện ký tự khi gõ
vnstock keys                  # nguồn nào đã có khoá, lấy từ đâu; không gọi mạng
vnstock keys check <nguồn>    # gọi thử một thao tác nhẹ ở nguồn đó

Khoá cũng có thể nằm trong biến môi trường hoặc tệp .env ở thư mục bạn chạy lệnh (<NGUỒN>_API_KEY, <NGUỒN>_API_SECRET). Khoá tài khoản Vnstock vẫn dùng để kiểm tra cấp quyền của vnstock_quant; nó không thay khoá nguồn và không được gửi tới nguồn.


Chọn nguồn

Thế hệ 6 không có nguồn mặc định. Gọi hàm tải mà chưa nêu nguồn sẽ gặp lỗi VNSTOCK_INPUT_SOURCE. Có hai cách:

Python
from vnstock_quant import ta

ind = ta.from_vnstock("FPT", start="2025-01-01", source="<nguồn>")   # nêu trong từng lời gọi
Python
import vnstock

vnstock.sources.use("<nguồn A>")                                      # mọi hàm chưa nêu nguồn
vnstock.sources.use("<nguồn B>", route="fundamental.equity.*")        # riêng báo cáo tài chính
vnstock.sources.readers("fundamental.equity.income_statement")         # nguồn đọc được loại dữ liệu này

Mỗi loại dữ liệu có danh sách nguồn đọc được riêng: một nguồn có nến giá chưa chắc có báo cáo tài chính. Các ví dụ không ghi source= trong tài liệu này giả định bạn đã đặt quy tắc bằng vnstock.sources.use. Chi tiết quy tắc và nguồn dự phòng: Chọn nguồn.

vnstock_quant không chọn nguồn thay bạn và luôn đọc bảng theo hồ sơ cột v5 của vnstock, nên vnstock.compat.use("v6") không làm đổi tên cột hay đơn vị trong các hàm tải của thư viện.


Kiểm tra cấp quyền và bản phát hành

Python
import vnstock_quant as vq

status = vq.entitlement()
print(status["tier"], status["features"])
print(status["release"])

Ví dụ phần release của bản thử nghiệm:

Python
{'package': 'vnstock_quant', 'version': '1.0.0rc1', 'pre_release': True,
 'build_date': '2026-11-06', 'expires_at': '2026-12-06T08:06:00+00:00', 'days_left': 29,
 'policy_issued_at': '2026-11-06T08:12:14.693+00:00',
 'offline_deadline': '2026-12-20T00:00:00+00:00', 'warning': None, 'error': None}
  • pre_release: True: bản thử nghiệm, dùng được 30 ngày kể từ ngày dựng (expires_at).
  • offline_deadline: sau thời điểm này, bản cài không đọc được chính sách nào từ máy chủ sẽ ngừng chạy.
  • warning: lời nhắc cập nhật khi gần tới expires_at.

Các trường còn lại (tier, active, features, trial, backtest, error) giữ nguyên ý nghĩa như bản 0.5; xem Quyền dùng và hạn mức.

Thông tin bản dựng của phần lõi:

Python
vq.build_info()
# {'version': '1.0.0rc1', 'test_entitlement': False, 'ta_methods': 58, 'fa_ratios': 100,
#  'fa_registry': 'fa_v1', 'risk_measures': 33, 'portfolio_functions': 38, 'micro_functions': 5,
#  'backtest_tools': 15}

Đọc tiếp