这是一个完整的网格交易策略回测和优化系统,能够:
- 解析Table.xls文件中的ETF网格配置
- 批量回测多个ETF的网格交易策略
- 生成完整的回测指标和优化建议
- 提供Web界面进行可视化操作
cd C:\Users\zhanghang\OneDrive\Python\quant
streamlit run app.py应用将在 http://localhost:8501 启动
创建包含以下列的Excel文件:
- ETF名称(如:科创50ETF)
- ETF代码(如:159682)
- 基准价(如:1.408)
- 卖出网格间距(%)(如:2.0)
- 买入网格间距(%)(如:4.0)
- 委托数量(如:1000)
系统也支持从华泰证券导出的原始Table.xls文件
- 在Web界面左侧边栏上传您的Table.xls文件
- 配置回测参数(时间范围、并行线程数)
- 点击"🚀 开始批量回测"按钮
- 等待回测完成并查看结果
- 基础指标: 总收益率、年化收益率、最大回撤、夏普比率、索提诺比率
- 交易指标: 胜率、盈亏比、交易次数、平均持仓时间、交易成本
- 风险指标: VaR(95%)、CVaR(95%)、年化波动率、贝塔系数、最大连续亏损
- 基于历史波动率的网格间距优化
- 买卖比例合理性分析
- 交易频率优化建议
- 风险管理参数调整
- 回测结果表格(支持排序和筛选)
- 收益分布直方图
- 风险收益散点图
- 相关性分析矩阵
- 排行榜展示
- CSV格式结果导出
- 优化建议报告导出
- 详细的性能分析数据
quant/
├── app.py # Streamlit主应用
├── src/
│ ├── data/ # 数据处理模块
│ │ ├── grid_config_parser.py # 网格配置解析器
│ │ └── market_data_fetcher.py # 市场数据获取
│ ├── strategies/ # 策略模块
│ │ └── grid_strategy.py # 网格策略实现
│ ├── core/ # 核心引擎
│ │ └── backtest_engine.py # 回测引擎
│ ├── analysis/ # 分析模块
│ │ └── metrics_calculator.py # 指标计算器
│ └── web/ # Web模块
│ ├── batch_backtest_engine.py # 批量回测引擎
│ ├── optimization_advisor.py # 优化建议生成器
│ └── results_display.py # 结果展示
└── README.md # 使用说明
- 并行处理: 多线程并行回测,支持同时处理17个ETF
- 实时进度: 显示处理进度和状态更新
- 错误处理: 完善的异常处理和错误恢复机制
- 数据质量: 自动评估数据质量和完整性
- 风险评级: 智能风险评级和管理建议
- 多数据源: 支持jqdatasdk、tushare、XTQuant、akshare、yfinance等多种数据源
- 实时数据: XTQuant实时数据订阅和推送功能
系统包含test_table.xls文件,包含3个ETF的测试数据:
- 科创50ETF (159682)
- 沪深300ETF (510300)
- 芯片ETF (159995)
可用于测试系统的完整功能。
系统集成了多种数据源,按优先级自动切换:
- jqdatasdk (优先级1) - 聚宽,专业量化数据
- Tushare Pro (优先级2) - Tushare专业版
- Wind (优先级3) - 万得金融终端
- XTQuant (优先级9) - 迅投,高质量免费数据源 ✨
- 支持实时数据订阅
- 本地数据缓存
- 自动增量更新
- 详细文档: XTQUANT_INTEGRATION.md
- AKShare (优先级10) - AKShare免费数据
- Yahoo Finance (优先级11) - 雅虎财经国际数据
XTQuant提供完整的实时数据支持:
- 实时价格推送
- 自定义回调处理
- 多标的同时订阅
- 订阅状态管理
# 安装XTQuant
pip install xtquant
# 运行集成测试
python test_xtquant_integration.py- 数据要求: 确保ETF代码正确且市场数据可用
- 网络连接: 需要网络连接获取实时市场数据
- 处理时间: 17个ETF的完整回测大约需要1-3分钟
- 浏览器兼容: 推荐使用Chrome或Firefox浏览器
回测完成!成功处理 17/17 个ETF,耗时 45.23 秒
科创50ETF (159682):
总收益率: +12.34%
夏普比率: 1.85
最大回撤: -8.45%
胜率: 67.5%
风险评级: 中等风险 AAAA
优化建议:
1. 建议降低买入网格间距,当前买入/卖出比例为1:2.1
2. 该ETF波动率较高(24.5%),建议缩小网格间距至1.6%/3.2%
3. 夏普比率表现优秀,可以继续使用当前参数
系统版本: 1.0.0 开发时间: 2025年11月 技术支持: Claude Assistant