Vnstock Logo

Tải dữ liệu theo lô

Mở rộng

Mục lục

Nhóm lệnh vnstock_pipeline run cung cấp cho bạn công cụ dòng lệnh để đồng bộ và cập nhật dữ liệu thị trường theo lô (batch) cho danh mục cổ phiếu bạn theo dõi. Hệ thống hỗ trợ tính toán khoảng thời gian cần tải, phát hiện và bỏ qua các mã đã đủ dữ liệu, đồng thời ghi nhận chi tiết các sự cố mạng để hỗ trợ tải bù nhanh chóng.

Điều kiện chạy tác vụ

Lệnh run yêu cầu tài khoản đã đăng nhập thuộc bản Mở rộng từ cấp Golden trở lên. Thư viện sẽ xác thực giấy phép qua tài khoản của bạn trước khi bắt đầu tác vụ.

Cú pháp chung của lệnh run

Shell
vnstock_pipeline run <tác_vụ> [tuỳ_chọn]

Các tuỳ chọn chỉ định danh mục cổ phiếu

Bạn có thể linh hoạt chọn phạm vi cổ phiếu cần tải thông qua các tham số sau:

Tham sốÝ nghĩaVí dụ
--tickersDanh sách các mã cụ thể, phân cách bằng dấu phẩy--tickers ACB,FPT,VNM
--groupRổ chỉ số hoặc sàn niêm yết: VN30, VN100, HOSE, HNX, UPCOM, LIQUIDITY, ALL--group VN30
--universeLoại tài sản: equity (cổ phiếu), index (chỉ số), future (phái sinh), all--universe equity
--topSố lượng mã có thanh khoản cao nhất khi chọn nhóm thanh khoản LIQUIDITY--group LIQUIDITY --top 50
--watchlistTên danh sách mã theo dõi đã khai báo trong pipeline.toml--watchlist my_portfolio

Các chế độ chạy thời gian (--mode)

  • --mode daily (Mặc định): Cập nhật dữ liệu cho các phiên giao dịch gần nhất còn thiếu.
  • --mode init: Tải toàn bộ dữ liệu lịch sử từ đầu (thường dùng khi mới thiết lập kho lưu trữ lần đầu).
  • --mode eod: Tải và chốt dữ liệu sau khi kết thúc phiên giao dịch (End of Day).
  • --mode live: Chạy ở chế độ cập nhật liên tục trong phiên giao dịch.

Chi tiết các tác vụ tải dữ liệu

1. Tải giá lịch sử OHLCV (run ohlcv)

Tải dữ liệu giá mở cửa, cao nhất, thấp nhất, đóng cửa và khối lượng giao dịch.

Shell
# Cập nhật phiên mới nhất cho toàn bộ rổ cổ phiếu VN30
vnstock_pipeline run ohlcv --group VN30 --mode daily

# Khởi tạo toàn bộ lịch sử giá từ đầu cho một số mã quan tâm
vnstock_pipeline run ohlcv --tickers ACB,HPG,VNM --mode init

# Tải dữ liệu nến 1 phút (1m) cho top 50 cổ phiếu thanh khoản cao nhất
vnstock_pipeline run ohlcv --group LIQUIDITY --top 50 --interval 1m

Tham số --interval hỗ trợ: 1D (khung ngày, mặc định), 1m, 5m, 15m (khung phút).

2. Tải dữ liệu khớp lệnh trong phiên (run trades)

Tải chi tiết từng lệnh khớp trong ngày (thời gian, mức giá, khối lượng, lệnh mua/bán chủ động):

Shell
# Tải chi tiết khớp lệnh ngày hôm nay cho các mã chứng khoán lớn
vnstock_pipeline run trades --tickers SSI,VND,HCM

Dữ liệu khớp lệnh thường được lưu trữ theo ngày (ví dụ data/trades/2026-03-01/SSI.parquet), giúp bạn dễ dàng thống kê dòng tiền và hành vi khớp lệnh của từng phiên.

3. Tải thông tin tham chiếu và niêm yết (run reference)

Tải danh sách toàn bộ các mã đang niêm yết và giao dịch trên các sàn HOSE, HNX, UPCOM cùng thông tin phân ngành, mã ngành ICB:

Shell
vnstock_pipeline run reference

4. Tải báo cáo tài chính theo danh mục (run financial)

Tải các báo cáo tài chính cốt lõi (Bảng cân đối kế toán, Báo cáo kết quả kinh doanh, Lưu chuyển tiền tệ) cho danh sách công ty bạn theo dõi:

Shell
# Tải báo cáo tài chính cho toàn bộ doanh nghiệp trong nhóm VN30
vnstock_pipeline run financial --group VN30

5. Tải hồ sơ doanh nghiệp và ban lãnh đạo (run company)

Tải thông tin tổng quan doanh nghiệp, danh sách cổ đông lớn, ban lãnh đạo và các công ty con, công ty liên kết:

Shell
# Tải toàn bộ thông tin doanh nghiệp cho FPT và MWG
vnstock_pipeline run company --tickers FPT,MWG --data_types all

# Chỉ tải danh sách cổ đông lớn
vnstock_pipeline run company --tickers VNM --data_types shareholders

Tham số --data_types chấp nhận: info, shareholders, officers, subsidiaries, hoặc all.

6. Tải sự kiện doanh nghiệp và quyền (run events)

Tải lịch sự kiện trả cổ tức bằng tiền mặt, thưởng cổ phiếu, phát hành thêm và lịch đại hội cổ đông:

Shell
vnstock_pipeline run events --mode daily

Cơ chế bỏ qua thông minh (Smart Skip)

Khi bạn chạy lệnh tải dữ liệu theo lô ở chế độ thường ngày (--mode daily), thư viện sẽ:

  1. Đọc tệp dữ liệu đã lưu của từng mã trên đĩa.
  2. Kiểm tra ngày giao dịch cuối cùng đã có.
  3. Nếu mã đó đã có đủ dữ liệu của ngày gần nhất, thư viện sẽ bỏ qua và chuyển sang mã tiếp theo.

Cơ chế này giúp rút ngắn thời gian cập nhật hằng ngày, tiết kiệm băng thông mạng và hạn chế việc gửi truy vấn không cần thiết tới các máy chủ nguồn.

Cơ chế ghi nhật ký và tải bù lỗi (Retry Errors)

Trong quá trình cập nhật danh sách cổ phiếu, có thể xuất hiện một vài mã gặp sự cố gián đoạn kết nối. vnstock_pipeline hỗ trợ xử lý như sau:

  1. Thư viện ghi nhận các mã bị gián đoạn vào tệp error_log.csv nằm trong thư mục dữ liệu của bạn.
  2. Bạn không cần phải khởi chạy lại toàn bộ danh sách từ đầu. Chỉ cần thêm cờ --retry-errors, hệ thống sẽ đọc lại tệp log và tải bù chính xác những mã chưa hoàn thành:
Shell
# Tải bù cho các mã gặp lỗi trước đó
vnstock_pipeline run ohlcv --retry-errors

Thiết lập lịch cập nhật định kỳ

Để cơ sở dữ liệu trên máy tính của bạn luôn được đồng bộ sau mỗi phiên giao dịch (khoảng 15:30 chiều), bạn có thể thiết lập lịch chạy định kỳ trên hệ điều hành.

Trên Linux hoặc macOS (sử dụng Cron)

Mở bảng cấu hình cron bằng lệnh crontab -e và thêm dòng lệnh sau:

Shell
# Chạy vào 15:45 từ thứ Hai đến thứ Sáu hàng tuần
45 15 * * 1-5 /duong-dan/thu-muc-du-an/.venv/bin/vnstock_pipeline run ohlcv --group HOSE --mode daily >> /tmp/pipeline_cron.log 2>&1

Trên Windows (sử dụng Task Scheduler)

  1. Tạo một tệp batch update_data.bat với nội dung:
    CMD
    call C:\path\to\your\project\.venv\Scripts\activate.bat
    vnstock_pipeline run ohlcv --group HOSE --mode daily
  2. Mở công cụ Task Scheduler trên Windows, tạo tác vụ mới (Create Basic Task) và đặt lịch kích hoạt vào 15:45 các ngày trong tuần.

Bước tiếp theo

Sau khi đã tích luỹ được dữ liệu trên máy, mời bạn xem trang Xuất dữ liệu cho AmiBroker để chuyển đổi dữ liệu thành phẩm phục vụ biểu đồ phân tích kỹ thuật.