# qtorch **Repository Path**: carllee34/qtorch ## Basic Information - **Project Name**: qtorch - **Description**: QTorch是一个基于Python的量化交易研究框架,采用模块化设计和事件驱动架构,支持多资产类别、多种策略和完整的回测分析。 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-01-27 - **Last Updated**: 2025-07-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: Python, PyTorch, Scikit-learn ## README # QTorch 量化交易框架 [![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) [![Python](https://img.shields.io/badge/python-3.7%2B-blue)](https://www.python.org/) [![Documentation](https://img.shields.io/badge/docs-latest-brightgreen)](docs/README.md) QTorch 是一个基于 Python 的量化交易研究框架,采用模块化设计和事件驱动架构,支持多资产类别、多种策略和完整的回测分析。 ## 核心功能 🚀 **高效回测引擎** - 多周期并行回测(日/周/月) - 42 项绩效指标计算 - 实时风险监控仪表盘 - 交易成本模型(固定费率/滑点/冲击成本) 📈 **数据处理系统** - AKShare/聚源数据源集成 - Parquet 列式存储 - 数据版本管理 - 自动缺失值处理管道 🤖 **策略开发套件** - 技术指标策略库(30+经典策略) - 机器学习模型集成(分类/回归/深度学习) - 多因子分析框架(IC 分析/组合优化) - 参数优化器(网格搜索/贝叶斯优化) 📊 **可视化分析** - 交互式收益曲线 - 回撤热力图分析 - 因子有效性矩阵 - 策略三维参数空间可视化 ## 文档体系 📚 完整文档中心位于[docs](docs/)目录,包含: - [综合用户指南](docs/QTORCH_COMPLETE_GUIDE_ZH.md) - 新手指南与高级应用 - [QEngine 核心引擎指南](docs/QENGINE_ENHANCED_GUIDE_ZH.md) - 回测与优化详解 - [QFactor 因子分析指南](docs/QFACTOR_USER_GUIDE_ZH.md) - 多因子模型构建 - [QML 机器学习指南](docs/QML_USER_GUIDE_ZH.md) - 特征工程与策略开发 ## 快速开始 ### 安装依赖 ```bash # 使用conda创建环境(推荐) conda create -n qtorch python=3.9 conda activate qtorch # 安装依赖 pip install -r requirements.txt ``` ### 运行示例 ```bash # 基础双均线策略 python demo.py --strategy dual_ma --symbol 000001 --start 20200101 --end 20221231 # 多因子选股策略 python qfactor_demo.py --symbol 000001 --factors pe,pb,roe --start 20200101 # 机器学习策略 python qml_factor_demo.py --model random_forest --features technical,fundamental ``` ### 配置文件示例 ```yaml # config.yaml engine: initial_capital: 1000000 # 初始资金 commission: 0.0003 # 交易费率 slippage: 0.0002 # 滑点率 margin_ratio: 0.15 # 保证金比例 data: cache_dir: ./data_cache # 数据缓存路径 refresh_interval: 3600 # 数据刷新间隔(秒) strategy: max_position: 0.2 # 单资产最大仓位 max_drawdown: 0.3 # 最大回撤阈值 ``` ## 项目架构 ``` qtorch/ ├── data_cache/ # 数据存储 ├── qtorch/ │ ├── core/ # 核心引擎(QEngine) │ ├── strategy/ # 策略库(30+预置策略) │ ├── factor/ # 因子分析框架(QFactor) │ ├── ml/ # 机器学习模块(QML) │ ├── data/ # 数据接口(AKShare/聚源) │ ├── visualizer/ # 可视化工具 │ └── optimizer/ # 参数优化器 ├── docs/ # 文档中心 ├── tests/ # 单元测试 └── examples/ # 示例脚本 ``` ## 核心模块示例 ### 1. 因子分析 ```python from qtorch.factor import QFactor, FundamentalFactors # 创建基本面因子 fundamental = FundamentalFactors() pe = fundamental.create_pe_factor("000001") pb = fundamental.create_pb_factor("000001") # 因子有效性分析 ic_result = pe.calc_ic(future_returns) pe.plot(future_returns) ``` ### 2. 机器学习策略 ```python from qtorch.ml import QML # 创建特征工程管道 qml = QML() features = qml.extract_features(data, { 'technical': ['sma', 'rsi', 'macd'], 'fundamental': ['pe', 'pb'] }) # 训练预测模型 model = qml.train_model( features, target=target, model_type='xgboost', params={'max_depth':5, 'n_estimators':100} ) # 生成交易信号 signals = model.predict(features) ``` ### 3. 多策略组合 ```python from qtorch.core import QEngine from qtorch.strategy import EnhancedRSIStrategy, MLStrategy engine = QEngine() engine.add_data("000001", "2020-01-01", "2022-12-31") # 添加传统策略 engine.add_strategy(EnhancedRSIStrategy, period=14, overbought=70, oversold=30) # 添加机器学习策略 engine.add_strategy(MLStrategy, model_path='./models/rf_model.pkl', confidence_threshold=0.65) # 运行混合策略回测 result = engine.run() ``` ## 性能优化 QTorch 采用多项优化技术提升回测速度: - **向量化计算**:使用 NumPy/Pandas 向量化操作 - **并行化**:支持多进程参数优化 - **JIT 编译**:关键路径使用 Numba 加速 - **内存优化**:分块处理大数据集 ```python # 启用加速模式 from qtorch.core.config import set_optimization set_optimization( vectorization=True, # 向量化计算 numba_jit=True, # JIT编译 parallel=True, # 多核并行 memory_limit='4GB' # 内存限制 ) ``` ## 贡献指南 我们欢迎各种形式的贡献,请遵循以下流程: 1. 在 GitHub 提交 Issue 说明改进建议 2. Fork 仓库并创建特性分支 3. 添加测试用例并确保通过所有测试 4. 更新相关文档 5. 提交 Pull Request ## 许可证 本项目采用 MIT 许可证 - 详见 [LICENSE](LICENSE) --- 📧 **联系我们**: qtorch-support@quantresearch.org 🌐 **项目主页**: https://github.com/yourusername/qtorch