基于akshare和baostock的完整多因子量化投资策略系统,包含数据获取、数据加工、因子衍生、多因子策略四个核心模块。
多因子量化投资策略系统
├── 数据获取 (Data Acquisition)
├── 数据加工 (Data Processing)
├── 因子衍生 (Factor Derivation)
└── 多因子策略 (Multi-Factor Strategy)
- 股票基础信息: 从akshare获取股票列表、行业分类等
- K线数据: 从baostock获取前复权K线数据
- 财务数据: 获取财务报表、财务指标等
- 指数数据: 获取HS300等指数成分股数据
- 批量处理: 支持大规模数据的批量获取和存储
- DWD层处理: 将原始财务数据加工成截面数据
- 基础因子表: 构建包含技术指标和财务指标的基础因子表
- 数据质量: 自动处理缺失值、异常值和数据类型转换
- 时间对齐: 确保不同数据源的时间对齐
- 技术因子: 动量、反转、波动率、成交量等技术指标
- 基本面因子: 估值、盈利、质量、成长等财务指标
- 横截面因子: 排名、标准化、行业中性化等处理
- 因子存储: 自动创建因子表并存储计算结果
- 因子组合: 基于IC分析的多因子权重配置
- 策略回测: 完整的策略回测框架
- 绩效分析: 收益率、夏普比率、最大回撤等指标
- 风险控制: 支持多种风险控制机制
akshare2db/
├── data_acquisition/ # 数据获取模块
│ ├── __init__.py
│ ├── data_fetcher.py # 数据获取器
│ ├── batch_processor.py # 批量处理器
│ └── main.py # 数据获取主程序
├── data_processing/ # 数据加工模块
│ ├── __init__.py
│ ├── dwd_processor.py # DWD层处理器
│ └── base_factor_processor.py # 基础因子处理器
├── factor_derivation/ # 因子衍生模块
│ ├── __init__.py
│ └── factor_generation_fixed.py # 因子生成器
├── multi_factor_strategy/ # 多因子策略模块
│ ├── __init__.py
│ ├── multi_factor_strategy_fixed.py # 修复版策略
│ └── optimized_multi_factor_strategy.py # 优化版策略
├── database/ # 数据库相关
│ ├── manager_fixed.py # 数据库管理器
│ ├── schema.sql # 原始表结构
│ ├── dwd_schema.sql # DWD层表结构
│ └── base_factor_schema.sql # 基础因子表结构
├── run_pipeline.py # 完整流水线入口
├── config.py # 配置文件
├── requirements.txt # 依赖包
└── README.md # 项目说明
pip install -r requirements.txt修改 config.py 中的数据库连接信息:
DATABASE_CONFIG = {
'host': 'localhost',
'port': 3306,
'user': 'your_username',
'password': 'your_password',
'database': 'your_database',
'charset': 'utf8mb4'
}# 运行完整的多因子策略流水线
python run_pipeline.py --full-pipeline --start-date 2020-06-01 --end-date 2020-12-31
# 使用优化版策略
python run_pipeline.py --full-pipeline --strategy-type optimized --rebalance-freq 10 --top-n 50# 只运行数据获取
python run_pipeline.py --data-acquisition --start-date 2020-06-01 --end-date 2020-12-31
# 只运行数据加工
python run_pipeline.py --data-processing
# 只运行因子衍生
python run_pipeline.py --factor-derivation --start-date 2020-06-01 --end-date 2020-12-31
# 只运行多因子策略
python run_pipeline.py --multi-factor-strategy --start-date 2020-06-01 --end-date 2020-12-31# 数据获取模块
cd data_acquisition
python main.py update-all
# 数据加工模块
cd data_processing
python dwd_processor.py
python base_factor_processor.py
# 因子衍生模块
cd factor_derivation
python factor_generation_fixed.py
# 多因子策略模块
cd multi_factor_strategy
python optimized_multi_factor_strategy.py --start-date 2020-06-01 --end-date 2020-12-31stock_basic: 股票基础信息stock_kline: K线数据stock_express: 财务快报数据stock_balance: 资产负债表数据stock_income: 利润表数据stock_cashflow: 现金流量表数据stock_operation: 运营能力数据stock_growth: 成长能力数据stock_profit: 盈利能力数据stock_industry: 行业分类数据index_stock: 指数成分股数据
dwd_stock_balance: 截面化资产负债表数据dwd_stock_income: 截面化利润表数据dwd_stock_cashflow: 截面化现金流量表数据dwd_stock_operation: 截面化运营能力数据dwd_stock_growth: 截面化成长能力数据dwd_stock_profit: 截面化盈利能力数据
dwd_stock_base_factor: 基础因子表stock_factors_technical: 技术因子表stock_factors_fundamental: 基本面因子表stock_factors_cross_sectional: 横截面因子表
--start-date: 回测开始日期--end-date: 回测结束日期--rebalance-freq: 调仓频率(交易日)--top-n: 选股数量--min-score: 最小因子得分阈值--strategy-type: 策略类型(fixed/optimized)
- 确保MySQL服务已启动
- 确保数据库用户有足够的权限
- 首次运行会创建所有数据表
- 数据获取需要网络连接
- 建议在非交易时间运行数据获取
- 因子计算需要足够的历史数据
- 策略回测结果仅供参考,不构成投资建议
MIT License