Vnstock Logo

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

Mở rộng

Mục lục

vnstock_quant có gói cài đặt dựng sẵn cho Python 3.10 trở lên. Bạn cài bằng pip; không cần tự biên dịch phần lõi Rust.


Cài đặt gói

Cài trong cùng môi trường Python với vnstock: ~/.venv trên macOS và Linux, $HOME\.venv trên Windows. Trên Google Colab hoặc GitHub Codespaces, dùng môi trường đang chạy. Xem Cài đặt vnstock nếu bạn cần tạo môi trường hoặc vẫn còn bản 4.x. Các lệnh dưới đây giả định môi trường đã được kích hoạt.

Shell
# Cài đặt thư viện tính toán vnstock_quant
pip install -U --extra-index-url https://vnstocks.com/api/packages vnstock_quant

# Hoặc cài đặt kèm luôn thư viện vnstock để tự động tải dữ liệu trực tiếp
pip install -U --extra-index-url https://vnstocks.com/api/packages "vnstock_quant[vnstock]"
Lưu ý về tham số --extra-index-url

Thêm --extra-index-url https://vnstocks.com/api/packages để pip tìm được thư viện trong kho phát hành của Vnstock. Nếu máy đã có vnstock thế hệ 5 và bạn đã chạy vnstock register, bạn cũng có thể cài bằng vnstock install vnstock_quant.

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 Silicon (arm64); Linux x86_64 và aarch64 dùng glibc 2.17 trở lên (chuẩn manylinux2014).
  • Phiên bản Python: 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 tảng: numpy>=1.24, pandas>=2.0 (tự động cài đặt khi chạy pip).

Kiểm tra trạng thái cấp quyền và bản phát hành

Sau khi cài, gọi vq.entitlement() để xem cấp quyền và nhóm hàm bạn có thể dùng. Việc kiểm tra này chạy trên máy và không trừ lượt tính:

Python
import vnstock_quant as vq

# Kiểm tra cấp quyền sử dụng, tính năng mở khoá và số lượt dùng thử còn lại
status = vq.entitlement()
print(status)

Ví dụ kết quả với tài khoản gói Diamond:

Python
{'tier': 'diamond', 'active': True,
 'features': ['ta_basic', 'ta', 'fa_basic', 'fa', 'fa_advanced', 'risk', 'portfolio',
              'bt_basic', 'bt', 'bt_portfolio', 'bt_optimize'],
 'policy_version': 'quant_entitlement_v3', 'trial': None,
 'backtest': {'budget': 'vnstock_bt', 'trial': None,
              'quota': {'portfolio_symbols': 400, 'sweep_tasks': 50000, 'monte_carlo_paths': 100000}},
 'error': None,
 'release': {'package': 'vnstock_quant', 'version': '0.5.0', 'pre_release': False,
             'build_date': '2026-10-27', 'expires_at': '2027-10-27T15:19:01+00:00', 'days_left': 365,
             'policy_issued_at': '2026-10-26T08:23:25.699+00:00',
             'offline_deadline': '2027-10-31T00:00:00+00:00', 'warning': None, 'error': None}}

Kết quả gồm:

  • tier: Cấp quyền sử dụng hiện tại nhận diện được trên máy (guest khi chưa đăng nhập, free, bronze, silver, golden, diamond). Là None khi không kiểm tra được quyền; lý do nằm ở error.
  • active: True khi quyền sử dụng đang còn hiệu lực.
  • features: Danh sách các nhóm tính năng đang được phép sử dụng (ta_basic, ta, fa_basic, fa, fa_advanced, risk, portfolio; mô hình định giá dùng chung quyền portfolio; bt_basic, bt, bt_portfolio, bt_optimize của mô-đun backtest). Ý nghĩa từng nhóm và cấp mở: Quyền dùng và hạn mức.
  • policy_version: Phiên bản bộ quy tắc cấp quyền mà bản cài này áp dụng.
  • trial: Với bản Cộng đồng, từ điển này cho biết tổng số lượt dùng thử trong ngày (daily), số lượt đã dùng (used), số lượt còn lại (remaining), số mã tối đa mỗi lần tải (max_symbols) và thời điểm làm mới (resets_at). Với gói quyền sử dụng không giới hạn lượt, giá trị là None.
  • backtest: Phần riêng của mô-đun backtest: trial (lượt backtest trong ngày, tách khỏi trial ở trên), quota (quy mô một lần chạy theo cấp) và budget (tên dòng ngân sách trên máy chủ). Xem Cấp quyền và xử lý lỗi.
  • error: None khi kiểm tra quyền thành công; nếu không, là bộ (code, kind, message, action) mô tả lỗi.
  • release: Thông tin hạn dùng của bản đang cài:
    • package, version: tên gói và phiên bản.
    • pre_release: có phải bản thử không.
    • build_date, expires_at, days_left: ngày dựng, ngày hết hạn và số ngày còn lại.
    • policy_issued_at: thời điểm phát hành của chính sách vòng đời mà máy chủ gửi về và đang áp dụng; None khi chưa đọc được chính sách nào và hạn dùng được tính theo ngày dựng.
    • 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: thông báo về hạn dùng khi gần tới expires_at, None khi chưa tới lúc thông báo.
    • error: lý do bản phát hành không được chạy (đã hết hạn hoặc đã bị tắt), None khi bình thường.

Nếu cần biết thông tin bản dựng của phần lõi, gọi:

Python
# Xem thông tin biên dịch lõi Rust
info = vq.build_info()
print(info)
# {'version': '0.5.0', 'test_entitlement': False, 'ta_methods': 58, 'fa_ratios': 100,
#  'fa_registry': 'fa_v1', 'risk_measures': 33, 'portfolio_functions': 38, 'micro_functions': 5,
#  'backtest_tools': 10}

Đọc tiếp