Cài đặt và tài khoản
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 đó.
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 Pipeline thế hệ 6 gồm thư viện chính và vài phần đi kèm. Cài phần nào tuỳ việc bạn định làm.
Yêu cầu
- Python 3.10 trở lên, trên Windows, macOS hoặc Linux.
- Tài khoản Vnstock thuộc gói quyền sử dụng từ cấp Golden (Tự động hoá cá nhân) trở lên, để chạy tác vụ nạp dữ liệu và mở phiên stream.
- Khoá API bạn đăng ký ở nguồn định dùng. Riêng cổng dữ liệu thị trường công khai của Binance thì không cần khoá.
Nên cài vào một môi trường ảo riêng. Gói thế hệ 6 cùng tên với bản 3.x (vnstock-pipeline), chỉ khác số phiên
bản, nên cài vào môi trường đang có bản 3.x sẽ thay bản đó (Chuyển từ bản 3.x).
Cài thư viện
python -m venv ~/.venv_pipeline6 && source ~/.venv_pipeline6/bin/activate
pip install -U --extra-index-url https://vnstocks.com/api/packages "vnstock==6.0.0rc2" "vnstock-oapi==0.1.0rc1"
vnstock login # khoá tài khoản Vnstock, dán khi được hỏi
vnstock install "vnstock-pipeline[rest,stream,excel]==6.0.0rc1"
vnstock-pipeline --versionKho phân phối chỉ giao thư viện theo gói quyền sử dụng cho máy đã đăng nhập, nên pipeline được cài bằng
vnstock install (lệnh này dùng khoá đã lưu trên máy), không cài thẳng bằng pip. Trên Windows, kích hoạt môi trường
bằng ~\.venv_pipeline6\Scripts\activate.
Thế hệ 6 đang ở bản thử nghiệm: vnstock-pipeline 6.0.0rc1, vnstock
6.0.0rc2, vnstock-oapi 0.1.0rc1. Trình cài không tự chọn bản thử nghiệm: lệnh
không ghi số phiên bản sẽ báo không tìm thấy bản phù hợp, hoặc cài bản 3.x. Hãy chép đúng các lệnh trên.
| Phần cài thêm | Kéo theo | Cần cho |
|---|---|---|
| (không có) | pandas, pyarrow | Đọc, tra cứu, xuất CSV và Parquet, chạy lại tệp phiên đã ghi, chuyển dữ liệu bản 3.x |
rest | vnstock 6 (kéo theo vnstock-oapi) | Các lệnh run …, lớp Runner |
stream | vnstock-oapi[stream] | stream run, stream record, lớp Session khi mở phiên |
excel | openpyxl | export excel |
Thư viện có lõi Rust biên dịch sẵn cho phần giấy phép, giải mã thông điệp và dựng nến. Phần Python là giao diện lập trình quanh lõi đó: kho, tác vụ, phiên, dòng lệnh.
Đăng nhập tài khoản Vnstock
Đã chạy vnstock login ở bước cài thì máy đã đăng nhập; mục này dành cho máy chạy tự động, nơi khoá nằm trong biến
môi trường.
Khoá tài khoản lấy ở trang tài khoản. Đây là khoá của Vnstock, không phải khoá của nguồn. Nên để
khoá trong biến môi trường hoặc tệp .env, đừng dán vào mã.
export VNSTOCK_API_KEY="..." # hoặc ghi VNSTOCK_API_KEY="..." vào tệp .env
vnstock-pipeline account login
vnstock-pipeline account status # cấp quyền, quyền dùng, thiết bị, thời hạn bản phát hànhĐăng nhập một lần dùng chung cho mọi thư viện Vnstock trên máy. Nếu bạn đã đăng nhập cho bản 3.x hay cho thư viện Vnstock khác thì không phải làm lại.
| Lệnh | Việc |
|---|---|
account login [--key-env TÊN_BIẾN] | Đăng nhập bằng khoá trong biến môi trường (mặc định VNSTOCK_API_KEY), đăng ký thiết bị |
account status | Cấp quyền, quyền dùng pipeline, thiết bị, hạn dùng, thời hạn của bản đang cài |
account policy | Chính sách quyền của thư viện và chính sách máy khách đang áp dụng (bản phát hành, nguồn tạm tắt) |
account telemetry [status|on|off] | Xem, bật, tắt đo lượt dùng |
account logout | Xoá khoá, phiên, quyền đã lưu trên máy (cho mọi thư viện Vnstock) |
Trong Python:
from vnstock_pipeline import account, license_status
account.login() # đọc VNSTOCK_API_KEY
license_status()["entitled"] # True khi máy được dùng pipelineLệnh nào cần quyền
| Cần giấy phép | Không cần, chạy được khi không có mạng |
|---|---|
run …, stream run, stream record, stream replay, store audit, universe build-liquidity, export amibroker, migrate-legacy; trong Python: Runner, Session, replay_events, replay_bars, DataGuard, Store.write (mọi việc giải mã, dựng nến, kiểm, gộp, xếp hạng dữ liệu và định dạng AmiBroker) | Đọc tệp đã lưu (Store().read), store … (trừ audit), universe show, inspect, head, tail, stats, schema …, quarantine …, export csv, export parquet, export excel, stream channels |
Một lượt chạy chỉ kiểm tra giấy phép, không trừ hạn mức. Phần mềm được cấp quyền theo gói, còn dữ liệu bạn lấy bằng khoá của chính bạn và theo hạn mức của nguồn.
Lần đầu chạy lệnh nạp dữ liệu hay mở phiên trên một máy, pipeline in một lần lưu ý về việc dùng dữ liệu (dữ liệu đi thẳng từ nguồn tới máy bạn, quyền với dữ liệu theo điều khoản của nguồn).
Thời hạn bản phát hành
Mỗi bản phát hành có thời hạn dùng, xem bằng account status. Khi đã có bản mới, hoặc bản đang cài gần tới ngày cuối,
lệnh in thêm một dòng nhắc ở cuối. Bản hết hạn hoặc bị tắt thì lệnh cần quyền báo lỗi; cập nhật bằng vnstock update,
hoặc chạy lại lệnh cài ở trên với số phiên bản mới.
Đo lượt dùng
Đo lượt dùng chỉ chạy khi tài khoản đồng ý. Phần mềm đếm lệnh và tác vụ đã chạy. Với mỗi phiên stream, nó ghi thêm
tỉ lệ thông điệp giải mã lỗi, tỉ lệ lệnh gửi lại hoặc trùng, số khoảng hở nến và số lần nối lại (theo khoảng, không
phải số chính xác), và phiên kết thúc thế nào. Phần mềm không ghi mã chứng khoán, kênh, tên nguồn, đường dẫn hay nội
dung dữ liệu. Tắt bằng vnstock-pipeline account telemetry off, hoặc vnstock_pipeline.telemetry.disable().
Lưu khoá của nguồn
Khoá nguồn do phần kết nối vnstock-oapi đọc, từ biến môi trường, tệp .env ở thư mục đang chạy, hoặc keyring của hệ
điều hành; pipeline không đọc khoá. Máy không có keyring (GitHub Codespaces, Docker, máy chủ Linux) thì dùng biến môi
trường hoặc .env, xem Máy không có keyring. Các bước đăng ký khoá ở
từng nguồn có ở Cài đặt và khoá nguồn của vnstock 6.
vnstock-oapi keys set <nguồn> # nhập khoá, không hiện ký tự khi gõ
vnstock-oapi check <nguồn> # gọi thử một thao tác để kiểm khoá
vnstock-oapi status # khoá và phiên đang có trên máy, không gọi mạngNguồn có phiên thì mở phiên trước:
vnstock-oapi auth <nguồn> # mở phiên, hỏi OTP nếu nguồn cần| Nguồn | Dùng ở pipeline cho | Cần |
|---|---|---|
dnse | Tác vụ nạp dữ liệu; phiên stream | API Key, Secret |
ssi | Tác vụ nạp dữ liệu; phiên stream (cùng khoá) | API Key, Secret |
tcbs | Tác vụ nạp dữ liệu; phiên stream | API Key, Smart OTP mỗi phiên 24 giờ |
fhsc | Tác vụ nạp dữ liệu (bảng giá, hồ sơ doanh nghiệp, lịch sự kiện) | API Key |
binance | Phiên stream tiền mã hoá | Không cần khoá |
Nguồn mở phiên bằng OTP mà hết phiên thì lệnh báo một dòng OtpRequiredError kèm cách mở lại phiên. Chạy
vnstock-oapi auth <nguồn> rồi chạy lại lệnh.
Lỗi về quyền thường gặp
| Mã | Nghĩa | Làm gì |
|---|---|---|
PIPELINE_TIER_REQUIRED | Chưa đăng nhập, hoặc cấp quyền thấp hơn Golden | account login, hoặc xem gói tại trang tài khoản |
VNSTOCK_AUTH_PACKAGE_DENIED | Quyền của tài khoản không gồm pipeline | Kiểm gói tại trang tài khoản |
VNSTOCK_RELEASE_EXPIRED, VNSTOCK_RELEASE_DISABLED | Bản đang cài hết hạn hoặc bị tắt | vnstock update, hoặc lệnh cài ở trên với số phiên bản mới |
VNSTOCK_SOURCE_DISABLED | Nguồn đang tạm tắt theo chính sách máy khách | Đọc lý do trong thông báo, chọn nguồn khác |
OtpRequiredError | Phiên của nguồn mở bằng OTP đã hết hạn | vnstock-oapi auth <nguồn> |
Lỗi do nguồn trả về (khoá sai, hết phiên, vượt hạn mức) được in thành một dòng có tên lỗi và cách sửa. Thêm --debug
trước tên lệnh để xem đầy đủ chi tiết kỹ thuật khi cần báo lỗi.
