这是一个基于Python的策略回测系统,使用多种数据源获取股票数据,Backtrader进行回测,Plotly进行结果可视化。
.
├── backtest_engine.py # 回测引擎模块
├── config.json # 配置文件
├── data_fetcher.py # 数据获取模块
├── grid_strategy.py # 网格策略实现
├── main.py # 主程序入口
├── requirements.txt # 依赖列表
├── visualization.py # 可视化模块
└── yield_comparison.html # 生成的收益率对比图(运行后产生)
- 数据获取: 支持多种数据源(akshare、tushare、yfinance),网络连接失败时自动生成模拟数据
- 策略实现: 实现标准网格交易策略
- 回测引擎: 使用Backtrader进行回测,计算关键性能指标
- 可视化: 使用Plotly绘制策略收益率与基准股票收益率的对比图
- 配置管理: 通过JSON配置文件管理所有参数
pip install -r requirements.txt在 config.json 文件中可以配置以下参数:
symbol: 股票代码start_date: 回测开始时间 (YYYYMMDD格式)end_date: 回测结束时间 (YYYYMMDD格式)period: 回测周期 (daily/weekly/monthly)benchmark_symbol: 基准股票代码grid_num: 网格数量grid_spacing: 网格间距initial_cash: 初始资金allocation_ratio: 每格资金分配比例
系统支持以下数据源,按优先级顺序尝试:
- akshare: 默认数据源,无需额外配置
- tushare: 需要申请token并在代码中配置
- yfinance: 适用于国际股票市场
- 模拟数据: 当所有数据源都不可用时自动生成
python main.py运行完成后会生成 yield_comparison.html 文件,其中包含策略收益率与基准股票收益率的对比图。
yield_comparison.html: 交互式收益率对比图