Mẫu tải dữ liệu thông dụng
Cập nhật lần cuối:
Thảo luậnMẹo
Bạn có thể sao chép các đoạn mã mẫu dưới đây để sử dụng trực tiếp trong môi trường Jupyter Notebook cho các phân tích của mình, hoặc tạo Python Script để tự động hoá việc tải dữ liệu theo lịch hẹn. Dữ liệu sẽ được lưu tự động vào thư mục `/data` tại vị trí thư mục làm việc hiện tại.
Để khai thác tối đa các tính năng nâng cao của thư viện và xây dựng các tác vụ theo nhu cầu riêng, bạn nên tìm hiểu cấu trúc của thư viện và tự phát triển chương trình phù hợp với mục đích sử dụng thực tế.
Giá, khối lượng OHLCV
""" Ví dụ: Sử dụng template task để lấy dữ liệu OHLCV với tham số tùy chỉnh (start, end, interval). Script này sử dụng hàm run_task từ vnstock_pipeline/tasks/ohlcv. """ import logging from vnstock import Vnstock from vnstock_pipeline.utils.logger import setup_logger from vnstock_pipeline.tasks.ohlcv import run_task if __name__ == "__main__": # Cấu hình logger đơn giản để hiển thị log trên console logger = setup_logger(__name__, level=logging.INFO) # Khởi tạo đối tượng stock từ vnstock và lấy danh sách mã từ nhóm VN100 (ví dụ) stock = Vnstock().stock(symbol="ACB", source="VCI") tickers = stock.listing.symbols_by_group("VN100").tolist() logger.info(f"Starting OHLCV fetch for {len(tickers)} tickers with custom parameters.") # Gọi run_task với các tham số tùy chỉnh: start date, end date, và interval run_task(tickers, start="2023-01-01", end="2025-03-28", interval="1D") logger.info("Completed OHLCV fetch — check ./data/ohlcv/")
Dữ liệu khớp lệnh
""" Ví dụ: Sử dụng task mặc định để lấy dữ liệu intraday từ vnstock_pipeline. Bạn có thể chọn chế độ: - live: Cập nhật dữ liệu liên tục trong phiên giao dịch (với backup file cũ). - EOD: Lấy dữ liệu tĩnh một lần (End Of Day). """ from vnstock_pipeline.tasks.intraday import run_intraday_task from vnstock import Vnstock if __name__ == "__main__": # # Danh sách mã mẫu; thay đổi danh sách theo nhu cầu của bạn # tickers = ["ACB", "VCB", "HPG"] # Khởi tạo đối tượng stock từ vnstock và lấy danh sách các mã từ nhóm VN30 (hoặc tùy chọn khác) stock = Vnstock().stock(symbol="ACB", source="VCI") # Ví dụ: Lấy danh sách mã từ nhóm VN30 tickers = stock.listing.symbols_by_group("HOSE").tolist() # Chọn chế độ: "live" để cập nhật liên tục hoặc "EOD" để tải dữ liệu một lần mode = "eod" # hoặc mode = "EOD" # Thời gian chờ giữa các lần cập nhật trong live mode (tính bằng giây) interval = 60 # Gọi hàm run_intraday_task từ module, truyền vào danh sách mã, thời gian chờ và chế độ run_intraday_task(tickers, interval=interval, mode=mode)
Bảng giá
""" Ví dụ: Sử dụng task mặc định của Price Board trong vnstock_pipeline. Chọn chế độ tải về: - live: Cập nhật dữ liệu liên tục trong phiên giao dịch. - EOD: Lấy dữ liệu tĩnh một lần (End Of Day). """ from vnstock_pipeline.tasks.price_board import run_price_board if __name__ == "__main__": # Danh sách mã VN30 mẫu TICKERS = [ 'ACB', 'BCM', 'BID', 'BVH', 'CTG', 'FPT', 'GAS', 'GVR', 'HDB', 'HPG', 'LPB', 'MBB', 'MSN', 'MWG', 'PLX', 'SAB', 'SHB', 'SSB', 'SSI', 'STB', 'TCB', 'TPB', 'VCB', 'VHM', 'VIB', 'VIC', 'VJC', 'VNM', 'VPB', 'VRE' ] # Chọn chế độ: "live" để cập nhật liên tục trong phiên giao dịch, # hoặc "EOD" để tải dữ liệu tĩnh một lần. mode = "eod" # mode = "live" hoặc mode = "EOD" # Gọi hàm run_price_board với danh sách mã, thời gian chờ giữa các lần cập nhật, và chế độ tải run_price_board(TICKERS, interval=60, mode=mode)
Báo cáo tài chính
""" Ví dụ: Sử dụng template task để lấy dữ liệu báo cáo tài chính với các tham số tùy chỉnh. Script này sử dụng hàm run_financial_task từ vnstock_pipeline/tasks/financial. """ import logging from vnstock import Vnstock from vnstock_pipeline.utils.logger import setup_logger from vnstock_pipeline.tasks.financial import run_financial_task if __name__ == "__main__": # Cấu hình logger để hiển thị log trên console logger = setup_logger(__name__, level=logging.INFO) # Khởi tạo đối tượng stock từ vnstock và lấy danh sách mã từ một nhóm, ví dụ VN30 stock = Vnstock().stock(symbol="ACB", source="VCI") tickers = stock.listing.symbols_by_group("VN100").tolist() logger.info(f"Starting financial report fetch for {len(tickers)} tickers with custom parameters.") # Gọi hàm run_financial_task với các tham số tùy chỉnh: # - balance_sheet_period: "year" # - income_statement_year_period: "year" # - income_statement_quarter_period: "quarter" # - cash_flow_period: "year" # - ratio_period: "year" # - lang: "vi" # - dropna: True run_financial_task( tickers, balance_sheet_period="quarter", income_statement_year_period="quarter", income_statement_quarter_period="quarter", cash_flow_period="quarter", ratio_period="quarter", lang="vi", dropna=True ) logger.info("Completed financial report fetch — check ./data/financial/")
Thảo luận