这是这个项目的需求文件
这个项目的目标是通过解析一批pdf文件,抽取里面每天的持仓表格,然后生成对应的买入卖出的数据表格。最后根据查询对应日期的股票价格计算获取资金曲线的项目。
context\20250421投资早参(和谈).pdf是一个示例文档,也就是需要解析的pdf文件check_ss_strategy_stock/
├── config/
│ └── config.yaml # 配置文件,包含PDF目录和输出目录路径
├── data/
│ ├── pdfs/ # 存放输入的PDF文件
│ │ └── 20250421投资早参(和谈).pdf # 示例PDF文件
│ └── output/ # 存放输出的交易数据文件
│ └── transactions.csv # 示例输出文件(或其他格式)
├── src/
│ ├── __init__.py
│ ├── config_loader.py
│ │ └── load_config(config_path) # 函数:加载配置文件
│ ├── pdf_processor.py
│ │ └── PdfProcessor # 类:处理单个PDF文件
│ │ ├── __init__(self, pdf_path)
│ │ ├── extract_record_date(self) # 方法:从文件名提取记录日期
│ │ └── extract_holdings(self) # 方法:解析PDF,提取持仓表格中的股票代码 (需要处理扫描件)
│ ├── trading_calculator.py
│ │ └── TradingCalculator # 类:计算交易日期和买卖点
│ │ ├── __init__(self, pdf_files_info) # pdf_files_info: [{'record_date': date, 'codes': [code1, ...]}, ...]
│ │ ├── calculate_trading_dates(self) # 方法:根据记录日期计算交易日期列表,处理非交易日
│ │ └── determine_buy_sell_dates(self, trading_dates) # 方法:根据每日持仓和交易日历,计算每个股票的买入卖出日期
│ ├── data_exporter.py
│ │ └── export_data(data, output_path) # 函数:将计算结果导出到文件
│ └── main.py
│ └── main() # 主函数:协调整个流程
├── tests/ # 单元测试目录 (可选)
│ ├── __init__.py
│ ├── test_pdf_processor.py
│ └── test_trading_calculator.py
├── requirements.txt # 项目依赖库
├── README.md # 项目说明文件
└── prd.md # 需求文档 (已存在)
graph TD
A[开始] --> B{读取配置};
B --> C[获取PDF文件列表];
C --> D{遍历PDF文件};
D -- 对每个PDF --> E[提取文件名中的记录日期];
E --> F[解析PDF,提取持仓股票代码];
F --> G{收集所有PDF的记录日期和持仓};
D -- 完成遍历 --> H[计算实际交易日期列表];
H --> I[根据每日持仓和交易日计算买卖日期];
I --> J{保存交易结果到文件};
J --> K[结束];
subgraph PDF处理
E
F
end
subgraph 交易计算
H
I
end