这是一个专业的A股市场量化投资回测框架,专注于因子投资策略的开发和测试。该框架提供了完整的因子计算、回测和性能评估功能,支持多因子策略和复杂的投资逻辑。
- 完整的因子计算和处理系统
- 灵活的回测引擎
- 专业的性能评估模块
- 可视化分析工具
- 配置驱动的策略管理
- 完整的示例和文档
QuantLessMoneyMore/
├── src/ # 源代码目录
│ ├── core/ # 核心功能模块
│ │ ├── strategy_backtest.py # 回测引擎
│ │ └── performance.py # 性能评估
│ ├── factors/ # 因子相关模块
│ │ └── factor_calculation_functions.py # 因子计算函数
│ └── utils/ # 工具函数
│ └── config_loader.py # 配置加载器
├── tests/ # 测试文件目录
│ ├── test_factor_system.py # 因子系统测试
│ ├── test_factor_functions.py # 因子函数测试
│ └── test_factor_performance.py # 性能测试
├── examples/ # 示例代码
│ └── plot_strategy_returns.py # 策略可视化示例
├── config/ # 配置文件目录
│ └── strategy_config.yaml # 策略配置
└── data/ # 数据目录
└── daily_price/ # 日线数据
- Python 3.8+
- 依赖包:
- pandas >= 1.5.0
- numpy >= 1.21.0
- matplotlib >= 3.5.0
- PyYAML >= 6.0
- scikit-learn >= 1.0.0
- scipy >= 1.7.0
- tqdm >= 4.65.0
- 克隆仓库:
git clone https://github.com/hbyecoding/QuantLessMoneyMore.git
cd QuantLessMoneyMore
- 创建虚拟环境:
python -m venv venv
source venv/bin/activate # Linux/Mac
# 或
venv\Scripts\activate # Windows
- 安装依赖:
pip install -r requirements.txt
- 准备数据:
- 将A股日线数据文件放入
data/daily_price/
目录 - 确保数据文件格式符合要求(参见数据格式说明)
- 运行示例策略:
python examples/plot_strategy_returns.py
每个交易日的数据文件(YYYYMMDD.csv)应包含以下字段:
code
: 股票代码close
: 收盘价volume
: 成交量open
: 开盘价high
: 最高价low
: 最低价amount
: 成交额
- 因子开发
from src.factors.factor_calculation_functions import calculate_momentum
# 计算动量因子
momentum = calculate_momentum(prices, window=20)
- 回测配置
# config/strategy_config.yaml
strategy:
name: momentum_strategy
holding_period: 20
top_n_stocks: 50
- 运行回测
from src.core.strategy_backtest import run_backtest
results = run_backtest(factor_data, config_path='config/strategy_config.yaml')
-
动量策略
- 20日价格动量
- 60日价格动量
- 带波动率调整的动量
-
技术因子策略
- 成交量价格相关性
- 价格趋势强度
- 波动率特征
-
多因子组合策略
- 等权重组合
- 动态权重调整
- 风险平价组合
框架提供以下评估指标:
- 年化收益率
- Sharpe比率
- 最大回撤
- 信息比率
- 胜率
- 换手率
- 持仓周转率
- 风险调整后收益
- 添加机器学习模型支持
- 实现实时交易接口
- 添加风险管理模块
- 优化回测性能
- 增加更多因子策略
欢迎提交Pull Request或Issue来改进项目。在提交代码前,请确保:
- 代码符合PEP 8规范
- 添加必要的注释和文档
- 更新相关测试用例
- 所有测试通过
MIT License
如有问题或建议,请通过以下方式联系:
- GitHub Issues
- Email: [您的邮箱]
感谢所有贡献者的支持!