Thanks to visit codestin.com
Credit goes to github.com

Skip to content

一个基于Python的股票量化交易策略回测和分析平台,提供多种技术指标策略、回测功能以及可视化分析。

Notifications You must be signed in to change notification settings

cn-vhql/QuantMatrix

Repository files navigation

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 以上
  • 网络: 需要连接互联网获取股票数据

⚡ 一键启动 (最简单)

方式一:快速启动脚本 (最推荐)

# 下载并运行项目
git clone <repository-url>
cd QuantMatrix

# 一键启动(自动安装依赖并启动)
python quick_start.py

方式二:简单启动脚本

# 安装依赖
pip install -r requirements.txt

# 快速启动
python run_app.py

方式三:直接启动Streamlit

# 安装依赖后
streamlit run src/quantmatrix/app.py

方式四:自定义端口启动

# 自定义端口和地址
streamlit run src/quantmatrix/app.py --server.port 8080 --server.address 0.0.0.0

🎉 启动成功后在浏览器中访问: http://localhost:8501

📦 详细安装步骤

1. 克隆项目

git clone <repository-url>
cd QuantMatrix

2. 创建虚拟环境 (强烈推荐)

# Python 3 内置 venv
python -m venv venv

# 激活虚拟环境
source venv/bin/activate        # Linux / macOS
#
venv\Scripts\activate           # Windows

3. 安装依赖包

# 方式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

📖 使用指南

首次使用

  1. 启动应用后,在浏览器中访问 http://localhost:8501

  2. 在侧边栏输入股票代码

    • A股:使用 6 位数字代码 (如:000001)
  3. 选择时间范围:建议选择至少 3 个月的数据进行分析

alt text alt text alt text

基础操作

📊 数据获取

  • 在左侧边栏输入股票代码
  • 选择分析的起始和结束日期
  • 系统自动加载股票数据

⚙️ 参数配置

  • 手续费:每次交易的固定费用 (默认 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-lib

Q: pip 安装速度慢

# 使用国内镜像源
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: 启动时提示端口被占用

# 方式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

Q: 数据获取失败

  • 检查网络连接
  • 确认股票代码格式正确
  • 某些股票可能需要特定的数据源权限

性能问题

Q: 应用运行缓慢

  • 缩小时间范围
  • 减少同时分析的策略数量
  • 关闭浏览器其他标签页

Q: 内存不足

  • 减少分析的时间跨度
  • 使用更强大的计算机
  • 重启应用清理缓存

功能问题

Q: 策略回测显示"此期间暂无交易记录"

  • 扩大时间范围
  • 调整策略参数
  • 检查股票价格波动是否足够

Q: 图表显示异常

  • 刷新浏览器页面
  • 清除浏览器缓存
  • 检查数据完整性

⚠️ 免责声明

  1. 本项目仅用于学习和研究目的
  2. 历史回测结果不代表未来表现
  3. 投资有风险,决策需谨慎
  4. 实际交易需考虑更多市场因素
  5. 建议在模拟环境中充分测试策略

📞 联系我们

About

一个基于Python的股票量化交易策略回测和分析平台,提供多种技术指标策略、回测功能以及可视化分析。

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published