本项目是一个完整的量化投资因子分析系统,专注于中国股票市场的因子研究和指数增强策略。系统从原始数据获取开始,经过因子生成、预处理、单因子测试,最终实现因子合成和正交化,提供指数增强模型的构建。整个系统采用模块化设计,各个组件之间有明确的数据流转关系,形成了一个完整的量化投资研究框架。
Last updated Jun 3, 2026
20
Stars
9
Forks
0
Issues
0
Stars/day
Attention Score
19
Language breakdown
Python 100.0%
▸ Files
click to expand
README
量化投资因子分析系统
项目概述
本项目是一个完整的量化投资因子分析系统,专注于中国股票市场的因子研究和指数增强策略。系统从原始数据获取开始,经过因子生成、预处理、单因子测试,最终实现因子合成和正交化,提供指数增强模型的构建。整个系统采用模块化设计,各个组件之间有明确的数据流转关系,形成了一个完整的量化投资研究框架。
项目架构
核心模块
- 原始数据获取模块 (
rawdatafetch.py)
- 因子生成模块 (
factor_generate.py)
- 因子预处理模块 (
factor_preprocess.py)
- 单因子测试模块 (
singlefactortest.py)
- 因子合成模块 (
factor_synthesis.py)
类结构
- Data类 (
factor_generate.py)
- FactorGenerater类 (
factor_generate.py)
- RawDataFetcher类 (
rawdatafetch.py)
- TushareFetcher类 (
rawdatafetch.py)
数据流程图
+----------------+ +----------------+ +----------------+
| | | | | |
| 原始数据获取模块 | --> | 因子生成模块 | --> | 因子预处理模块 |
| | | | | |
+----------------+ +----------------+ +----------------+
|
v
+----------------+ +----------------+
| | | |
| 因子合成模块 | <-- | 单因子测试模块 |
| | | |
+----------------+ +----------------+
详细数据流
- 数据获取流程
- 因子生成流程
- 因子预处理流程
- 因子测试流程
- 指数增强流程
技术栈
编程语言和核心库
- Python: 主要开发语言
- pandas: 数据处理和分析
- numpy: 科学计算
- scipy: 高级科学计算
- statsmodels: 统计模型
- matplotlib/seaborn: 数据可视化
- sklearn: 机器学习算法
数据获取和存储
- tushare: 金融数据接口
- retrying: 请求重试机制
- dotenv: 环境变量管理
- CSV文件: 本地数据存储
性能优化
- joblib: 并行计算
- lazyproperty装饰器: 延迟加载机制
- functools: 函数工具
设计模式
- 继承模式
- 延迟加载模式
- 重试模式
- 管道模式
配置管理
- 使用
.env文件存储API密钥等敏感信息 - 使用环境变量管理配置参数
- 各模块定义工作目录和文件路径常量
使用指南
环境配置
- 安装依赖包:
pip install pandas numpy scipy statsmodels matplotlib seaborn sklearn tushare pymysql retrying python-dotenv joblib
- 配置Tushare API密钥:
.env文件
- 添加TUSHAREAPITOKEN=你的API密钥
数据获取
# 初始化数据获取器
from rawdatafetch import TushareFetcher
fetcher = TushareFetcher()
获取股票基础数据
fetcher.fetchmetadata()
因子生成和预处理
# 运行因子预处理
from factor_preprocess import main
main()
单因子测试
# 运行单因子测试
from singlefactortest import singlefactortest
singlefactortest(['ROEttm', 'PEttm'])
指数增强模型
# 运行指数增强模型
from factorsynthesis import indexenhance_model
indexenhancemodel('000300.SH', ['ROEttm', 'PEttm', 'MOM_1M'])
参考自https://github.com/phonegapX/alphasickle
🔗 More in this category