一个基于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 # 项目文档
- indicators.py: 包含13种技术指标策略
- KDJ策略: 基于随机指标的超买超卖策略
- MACD策略: 基于异同移动平均线的趋势策略
- BOLL策略: 基于布林带的突破策略
- MA策略: 基于移动平均线的趋势策略
- BBI策略: 基于多空指标的突破策略
- PSY策略: 基于心理线的情绪策略
- RSI策略: 基于相对强弱指标的超买超卖策略
- CCI策略: 基于商品通道指标的突破策略
- 威廉指标策略: 基于威廉%R指标的超买超卖策略
- DMI策略: 基于动向指标的趋势策略
- OBV策略: 基于能量潮指标的趋势策略
- 成交量策略: 基于成交量放大的突破策略
- 布林带宽度策略: 基于布林带宽度变化的策略
- backtest.py: 提供完整的回测功能
trade_log(): 生成详细的交易日志backtest(): 策略回测统计和性能分析
- charts.py: 专业的金融图表绘制
k_line(): K线图和交易信号可视化,包含成交量副图y_line(): 持仓收益曲线分析heatmap(): 策略组合收益热力图
- data_loader.py: 统一的数据加载接口
- helpers.py: 通用辅助函数和工具类
基于Streamlit的Web应用,提供完整的用户交互界面:
- 股票代码输入和日期选择
- 策略参数配置(手续费、初始资金、交易数量)
- 最优策略组合分析和热力图展示
- 策略明细分析(K线图、交易信号、成交量分析)
- 详细的交易日志和收益分析
- 策略指标说明表格
- Python: 3.7 或更高版本
- 操作系统: Windows, macOS, Linux
- 内存: 建议 4GB 以上
- 网络: 需要连接互联网获取股票数据
# 下载并运行项目
git clone <repository-url>
cd QuantMatrix
# 一键启动(自动安装依赖并启动)
python quick_start.py# 安装依赖
pip install -r requirements.txt
# 快速启动
python run_app.py# 安装依赖后
streamlit run src/quantmatrix/app.py# 自定义端口和地址
streamlit run src/quantmatrix/app.py --server.port 8080 --server.address 0.0.0.0🎉 启动成功后在浏览器中访问: http://localhost:8501
git clone <repository-url>
cd QuantMatrix# Python 3 内置 venv
python -m venv venv
# 激活虚拟环境
source venv/bin/activate # Linux / macOS
# 或
venv\Scripts\activate # Windows# 方式1: 安装基础依赖 (推荐用户使用)
pip install -r requirements.txt
# 方式3: 使用 setup.py 安装 (可编辑模式)
pip install -e .python run_app.py# 自定义端口和地址
streamlit run src/quantmatrix/app.py --server.port 8080 --server.address 0.0.0.0# 包含环境检查和依赖安装
python quick_start.py-
启动应用后,在浏览器中访问 http://localhost:8501
-
在侧边栏输入股票代码:
- A股:使用 6 位数字代码 (如:000001)
-
选择时间范围:建议选择至少 3 个月的数据进行分析
- 在左侧边栏输入股票代码
- 选择分析的起始和结束日期
- 系统自动加载股票数据
- 手续费:每次交易的固定费用 (默认 5 元)
- 初始资金:开始交易的初始金额 (默认 10,000 元)
- 交易数量:每次买入/卖出的股票数量 (默认 100 股)
1. 最优策略分析
- 点击"最优策略分析"按钮
- 系统会自动测试所有13种技术指标策略组合
- 通过热力图展示不同策略组合的收益率
- 颜色越深表示收益率越高
- 包含详细的策略指标说明表格
2. 策略明细分析
- 选择买入策略和卖出策略
- 点击"策略明细分析"按钮
- 查看K线图和成交量副图
- 分析交易信号的买入卖出点
- 查看详细的交易统计和信号分析
- 生成完整的交易日志和收益曲线
- K线图:显示股价走势和交易信号,包含成交量副图
- 收益曲线:展示投资组合的价值变化
- 热力图:策略组合收益对比分析
- 交易信号可视化:在K线图上标记买卖点
- 详细的交易日志记录
- 买入卖出信号统计分析
- 持仓收益率计算
- 策略性能回测报告
- 数据获取: AkShare
- 技术指标: TA-Lib
- 数据处理: Pandas, NumPy
- 机器学习: PyCaret
- 数据可视化: PyEcharts
- Web界面: Streamlit
Q: 安装 TA-Lib 时出现错误
# 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-libQ: pip 安装速度慢
# 使用国内镜像源
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txtQ: 虚拟环境激活失败
- Windows: 确保使用 PowerShell 或 CMD 时路径正确
- macOS/Linux: 检查终端权限,可能需要
chmod +x venv/bin/activate
Q: 启动时提示端口被占用
# 方式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> /FQ: 无法访问 localhost:8501
- 检查防火墙设置
- 确认应用是否正常启动
- 尝试访问 http://127.0.0.1:8501
Q: 数据获取失败
- 检查网络连接
- 确认股票代码格式正确
- 某些股票可能需要特定的数据源权限
Q: 应用运行缓慢
- 缩小时间范围
- 减少同时分析的策略数量
- 关闭浏览器其他标签页
Q: 内存不足
- 减少分析的时间跨度
- 使用更强大的计算机
- 重启应用清理缓存
Q: 策略回测显示"此期间暂无交易记录"
- 扩大时间范围
- 调整策略参数
- 检查股票价格波动是否足够
Q: 图表显示异常
- 刷新浏览器页面
- 清除浏览器缓存
- 检查数据完整性
- 本项目仅用于学习和研究目的
- 历史回测结果不代表未来表现
- 投资有风险,决策需谨慎
- 实际交易需考虑更多市场因素
- 建议在模拟环境中充分测试策略
- 📧 邮箱: [email protected]