# vipdoc-import **Repository Path**: devdz/vipdoc-import ## Basic Information - **Project Name**: vipdoc-import - **Description**: 从通达信软件的vipdoc数据目录读取股市数据并保存到数据库,用于量化投资分析研究。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-12 - **Last Updated**: 2025-11-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 股票数据处理器 (Stock Data Processor) 一个用于处理、解析和存储股票行情数据的Python工具库。该库能够读取和解析.vipdoc格式的日行情数据文件,并将其存储到SQLite数据库中,支持数据完整性验证和增量更新。 ## 功能特性 - 解析.vipdoc目录下的.day格式股票数据文件 - 将解析后的数据存储到SQLite数据库中 - 支持增量更新,只处理新数据 - 提供数据完整性验证功能 - 支持处理单个股票、部分股票或整个市场的数据 - 使用SQLAlchemy ORM进行数据库操作,支持事务和版本控制 ## 项目结构 ``` stock_data_processor/ ├── data_processor.py # 核心数据处理器模块 ├── db_manager.py # 数据库管理模块 ├── file_parser.py # 文件解析模块 ├── example_usage.py # 使用示例脚本 ├── stock_data.db # SQLite数据库文件 ├── pyproject.toml # 项目配置文件 └── README.md # 项目说明文档 ``` ## 安装说明 ### 环境要求 - Python 3.7+ - SQLAlchemy ### 安装依赖 ```bash pip install sqlalchemy ``` 或者使用pyproject.toml安装: ```bash pip install -e . ``` ## 使用示例 ### 1. 处理单个股票数据 ```python from data_processor import StockDataProcessor # 初始化数据处理器 processor = StockDataProcessor( vipdoc_dir='/path/to/vipdoc', # 设置vipdoc目录路径 db_path='stock_data.db' # 设置数据库文件路径 ) # 处理单个股票数据(如上证指数) updated_count = processor.process_stock_data(market='sh', stock_code='000001') print(f"更新了 {updated_count} 条数据") ``` ### 2. 处理多个股票数据 ```python # 处理市场中的部分股票 sz_results = processor.process_market_data( market='sz', stock_codes=['000001', '000002', '000003'] # 指定要处理的股票代码 ) # 处理整个市场的数据 all_results = processor.process_market_data(market='sh') # 不指定stock_codes参数 ``` ### 3. 验证数据完整性 ```python # 验证数据完整性 integrity_result = processor.verify_data_integrity(market='sh', stock_code='000001') print(f"文件完整性: {integrity_result['file_integrity']}") print(f"文件中的记录数: {integrity_result['total_records_in_file']}") print(f"数据库中的记录数: {integrity_result['total_records_in_db']}") print(f"数据一致性: {'一致' if integrity_result['is_consistent'] else '不一致'}") ``` ### 4. 完整示例 更多详细的使用方法,请参考`example_usage.py`文件: ```bash python example_usage.py ``` ## 核心模块说明 ### 1. StockDataProcessor (data_processor.py) 核心数据处理类,整合了文件解析和数据库操作功能: - `process_stock_data()`: 处理单个股票的数据 - `process_market_data()`: 处理指定市场的股票数据 - `verify_data_integrity()`: 验证数据完整性 ### 2. DayFileParser (file_parser.py) 负责解析.day格式的股票数据文件: - `parse_file()`: 解析指定的日线文件 - `get_stock_list()`: 获取市场中的所有股票代码 - `check_file_integrity()`: 检查文件完整性 ### 3. DatabaseManager (db_manager.py) 负责数据库操作: - `add_or_update_data()`: 添加或更新数据 - `get_latest_data_by_stock()`: 获取股票的最新数据 - `get_stock_list()`: 获取数据库中的股票列表 - `get_last_update_date()`: 获取股票的最后更新日期 ## 数据结构 ### 数据库表结构 `stock_data`表包含以下字段: - `id`: 主键ID - `stock_code`: 股票代码(如sh000001) - `market`: 市场代码(如sh、sz) - `date`: 交易日期 - `open_price`: 开盘价 - `high_price`: 最高价 - `low_price`: 最低价 - `close_price`: 收盘价 - `amount`: 成交额 - `volume`: 成交量 - `version`: 数据版本 - `is_latest`: 是否为最新版本 - `created_at`: 创建时间 - `updated_at`: 更新时间 ## 注意事项 1. 使用前请确保已正确设置`vipdoc_dir`路径,该路径应包含股票数据文件 2. 默认使用SQLite数据库,数据文件为`stock_data.db` 3. 处理大量数据时可能需要较长时间,请耐心等待 4. 增量更新功能会自动检测上次更新时间,只处理新数据 ## 许可证 [MIT License](LICENSE)