# QuantMatrix **Repository Path**: qianglegend/QuantMatrix ## Basic Information - **Project Name**: QuantMatrix - **Description**: 一个基于Python的股票量化交易策略回测和分析平台,提供多种技术指标策略、回测功能以及可视化分析。 - **Primary Language**: Python - **License**: AGPL-3.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-10-10 - **Last Updated**: 2025-10-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # QuantMatrix - 股票量化交易分析系统 一个基于Python的股票量化交易策略回测和分析平台,提供多种技术指标策略、回测功能以及可视化分析。 ## 🎯 项目特性 - **13种技术指标策略** - KDJ、MACD、布林带、移动平均线等经典策略 - **策略组合优化** - 自动分析最优买入/卖出策略组合 - **完整回测系统** - 详细的交易日志和收益分析 - **可视化图表** - K线图、收益曲线、策略热力图 - **机器学习预测** - 基于PyCaret的股价预测模型 - **用户友好界面** - 基于Streamlit的交互式Web界面 ## 📁 项目结构 ``` QuantMatrix/ ├── 📄 src/ # 源代码目录 │ └── 📦 quantmatrix/ # 主包 │ ├── 📄 __init__.py # 包初始化文件 │ ├── 📄 app.py # 主应用入口 │ ├── 📁 strategies/ # 策略模块 │ │ ├── 📄 __init__.py │ │ ├── 📄 indicators.py # 技术指标策略 (13种策略) │ │ └── 📄 ml_strategy.py # 机器学习策略 │ ├── 📁 trading/ # 交易模块 │ │ ├── 📄 __init__.py │ │ └── 📄 backtest.py # 回测功能和交易日志 │ ├── 📁 visualization/ # 可视化模块 │ │ ├── 📄 __init__.py │ │ └── 📄 charts.py # 图表绘制 │ └── 📁 utils/ # 工具模块 │ ├── 📄 __init__.py │ ├── 📄 data_loader.py # 数据加载功能 │ └── 📄 helpers.py # 辅助函数 ├── 📁 data/ # 数据目录 │ ├── 📁 raw/ # 原始数据 │ ├── 📁 processed/ # 处理后数据 │ └── 📁 logs/ # 日志文件 ├── 📁 tests/ # 测试目录 │ ├── 📄 __init__.py │ └── 📄 test_strategies.py # 策略测试 ├── 📁 config/ # 配置目录 │ └── 📄 settings.py # 应用配置 ├── 🚀 quick_start.py # 快速启动脚本(推荐) ├── ⚡ run_app.py # 简单启动脚本 ├── 📋 requirements.txt # 项目依赖 ├── 🐳 Dockerfile # Docker配置 ├── 📄 setup.py # 安装配置 ├── 📄 .gitignore # Git忽略文件 └── 📖 README.md # 项目文档 ``` ## 核心模块说明 ### 1. strategies/ - 交易策略模块 - **indicators.py**: 包含13种技术指标策略 - KDJ策略: 基于随机指标的超买超卖策略 - MACD策略: 基于异同移动平均线的趋势策略 - BOLL策略: 基于布林带的突破策略 - MA策略: 基于移动平均线的趋势策略 - BBI策略: 基于多空指标的突破策略 - PSY策略: 基于心理线的情绪策略 - RSI策略: 基于相对强弱指标的超买超卖策略 - CCI策略: 基于商品通道指标的突破策略 - 威廉指标策略: 基于威廉%R指标的超买超卖策略 - DMI策略: 基于动向指标的趋势策略 - OBV策略: 基于能量潮指标的趋势策略 - 成交量策略: 基于成交量放大的突破策略 - 布林带宽度策略: 基于布林带宽度变化的策略 ### 2. trading/ - 交易回测模块 - **backtest.py**: 提供完整的回测功能 - `trade_log()`: 生成详细的交易日志 - `backtest()`: 策略回测统计和性能分析 ### 3. visualization/ - 数据可视化模块 - **charts.py**: 专业的金融图表绘制 - `k_line()`: K线图和交易信号可视化,包含成交量副图 - `y_line()`: 持仓收益曲线分析 - `heatmap()`: 策略组合收益热力图 ### 4. utils/ - 工具模块 - **data_loader.py**: 统一的数据加载接口 - **helpers.py**: 通用辅助函数和工具类 ### 5. app.py - 主应用 基于Streamlit的Web应用,提供完整的用户交互界面: - 股票代码输入和日期选择 - 策略参数配置(手续费、初始资金、交易数量) - 最优策略组合分析和热力图展示 - 策略明细分析(K线图、交易信号、成交量分析) - 详细的交易日志和收益分析 - 策略指标说明表格 ## 🚀 快速开始 ### 系统要求 - **Python**: 3.7 或更高版本 - **操作系统**: Windows, macOS, Linux - **内存**: 建议 4GB 以上 - **网络**: 需要连接互联网获取股票数据 ### ⚡ 一键启动 (最简单) #### 方式一:快速启动脚本 (最推荐) ```bash # 下载并运行项目 git clone cd QuantMatrix # 一键启动(自动安装依赖并启动) python quick_start.py ``` #### 方式二:简单启动脚本 ```bash # 安装依赖 pip install -r requirements.txt # 快速启动 python run_app.py ``` #### 方式三:直接启动Streamlit ```bash # 安装依赖后 streamlit run src/quantmatrix/app.py ``` #### 方式四:自定义端口启动 ```bash # 自定义端口和地址 streamlit run src/quantmatrix/app.py --server.port 8080 --server.address 0.0.0.0 ``` 🎉 **启动成功后在浏览器中访问**: http://localhost:8501 ### 📦 详细安装步骤 #### 1. 克隆项目 ```bash git clone cd QuantMatrix ``` #### 2. 创建虚拟环境 (强烈推荐) ```bash # Python 3 内置 venv python -m venv venv # 激活虚拟环境 source venv/bin/activate # Linux / macOS # 或 venv\Scripts\activate # Windows ``` #### 3. 安装依赖包 ```bash # 方式1: 安装基础依赖 (推荐用户使用) pip install -r requirements.txt # 方式3: 使用 setup.py 安装 (可编辑模式) pip install -e . ``` ### 🎯 启动应用 #### 方式一:直接启动 (最简单) ```bash python run_app.py ``` #### 方式二:自定义配置启动 ```bash # 自定义端口和地址 streamlit run src/quantmatrix/app.py --server.port 8080 --server.address 0.0.0.0 ``` #### 方式三:完整启动脚本 ```bash # 包含环境检查和依赖安装 python quick_start.py ``` ## 📖 使用指南 ### 首次使用 1. **启动应用后**,在浏览器中访问 http://localhost:8501 2. **在侧边栏输入股票代码**: - A股:使用 6 位数字代码 (如:000001) 3. **选择时间范围**:建议选择至少 3 个月的数据进行分析 ![alt text](docs/image.png) ![alt text](docs/image-1.png) ![alt text](docs/image-2.png) ### 基础操作 #### 📊 数据获取 - 在左侧边栏输入股票代码 - 选择分析的起始和结束日期 - 系统自动加载股票数据 #### ⚙️ 参数配置 - **手续费**:每次交易的固定费用 (默认 5 元) - **初始资金**:开始交易的初始金额 (默认 10,000 元) - **交易数量**:每次买入/卖出的股票数量 (默认 100 股) #### 🎯 策略分析 **1. 最优策略分析** - 点击"最优策略分析"按钮 - 系统会自动测试所有13种技术指标策略组合 - 通过热力图展示不同策略组合的收益率 - 颜色越深表示收益率越高 - 包含详细的策略指标说明表格 **2. 策略明细分析** - 选择买入策略和卖出策略 - 点击"策略明细分析"按钮 - 查看K线图和成交量副图 - 分析交易信号的买入卖出点 - 查看详细的交易统计和信号分析 - 生成完整的交易日志和收益曲线 ### 高级功能 #### 📈 图表分析 - **K线图**:显示股价走势和交易信号,包含成交量副图 - **收益曲线**:展示投资组合的价值变化 - **热力图**:策略组合收益对比分析 - **交易信号可视化**:在K线图上标记买卖点 #### 📋 数据分析 - 详细的交易日志记录 - 买入卖出信号统计分析 - 持仓收益率计算 - 策略性能回测报告 ## 技术栈 - **数据获取**: AkShare - **技术指标**: TA-Lib - **数据处理**: Pandas, NumPy - **机器学习**: PyCaret - **数据可视化**: PyEcharts - **Web界面**: Streamlit ## ❓ 常见问题与故障排除 ### 安装问题 **Q: 安装 TA-Lib 时出现错误** ```bash # Ubuntu/Debian sudo apt-get install build-essential sudo apt-get install python3-dev # CentOS/RHEL sudo yum install gcc gcc-c++ sudo yum install python3-devel # macOS brew install ta-lib ``` **Q: pip 安装速度慢** ```bash # 使用国内镜像源 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt ``` **Q: 虚拟环境激活失败** - Windows: 确保使用 PowerShell 或 CMD 时路径正确 - macOS/Linux: 检查终端权限,可能需要 `chmod +x venv/bin/activate` ### 运行问题 **Q: 启动时提示端口被占用** ```bash # 方式1: 更换端口 streamlit run src/quantmatrix/app.py --server.port 8502 # 方式2: 关闭占用端口的进程 # Linux/macOS lsof -ti:8501 | xargs kill -9 # Windows netstat -ano | findstr :8501 taskkill /PID <进程ID> /F ``` **Q: 无法访问 localhost:8501** - 检查防火墙设置 - 确认应用是否正常启动 - 尝试访问 http://127.0.0.1:8501 **Q: 数据获取失败** - 检查网络连接 - 确认股票代码格式正确 - 某些股票可能需要特定的数据源权限 ### 性能问题 **Q: 应用运行缓慢** - 缩小时间范围 - 减少同时分析的策略数量 - 关闭浏览器其他标签页 **Q: 内存不足** - 减少分析的时间跨度 - 使用更强大的计算机 - 重启应用清理缓存 ### 功能问题 **Q: 策略回测显示"此期间暂无交易记录"** - 扩大时间范围 - 调整策略参数 - 检查股票价格波动是否足够 **Q: 图表显示异常** - 刷新浏览器页面 - 清除浏览器缓存 - 检查数据完整性 ## ⚠️ 免责声明 1. **本项目仅用于学习和研究目的** 2. **历史回测结果不代表未来表现** 3. **投资有风险,决策需谨慎** 4. **实际交易需考虑更多市场因素** 5. **建议在模拟环境中充分测试策略** ## 📞 联系我们 - 📧 邮箱: yl_zhangqiang@foxmail.com