# etf-grid-backtesting **Repository Path**: aphx/etf-grid-backtesting ## Basic Information - **Project Name**: etf-grid-backtesting - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-02 - **Last Updated**: 2026-06-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ETF 网格交易量化回测系统 基于5项指标筛选的ETF网格交易回测工具,支持日线和5分钟K线日内回测。 ## 快速开始 ```bash # 安装依赖 uv sync # 日线回测(28只T+0 ETF) uv run python run_t0_backtest.py # 近5个交易日5分钟K线日内回测 uv run python run_t0_backtest.py --intraday --start-date=20260522 --end-date=20260526 # 指定ETF回测 uv run python main.py --etfs 510300,159915,159995 # 运行测试 uv run python -m pytest tests/ -v ``` ## 核心模块 | 模块 | 功能 | |------|------| | `etf_screener.py` | 5项指标计算、加权打分、自适应网格参数推导 | | `visualize_screening.py` | 波动率/类别/价格对比三图可视化 | | `grid_strategy.py` | 网格交易策略引擎(backtesting.py框架) | | `run_t0_backtest.py` | T+0 ETF批量回测(日线 + 日内模式) | | `main.py` | 通用ETF回测CLI | ## 5项指标 | 指标 | 含义 | 越低越好 | |------|------|----------| | Monotonicity | 涨跌均衡度 | 接近0 → 锯齿震荡 | | Trendability | 价格漂移强度 | 接近0 → 箱体运行 | | Prognosability | 自相关强度 | 接近0 → 均值回归 | | Volatility | 日内波动率惩罚 | 甜点区 0.5%~3.0% | | Liquidity | 成交量稳定性 | 反归一化后越低越好 | ## CLI 参数 ### run_t0_backtest.py | 参数 | 说明 | 默认值 | |------|------|--------| | `--intraday` | 启用5分钟K线日内回测 | 关闭 | | `--start-date` | 起始日期 YYYYMMDD | 20260518 | | `--end-date` | 结束日期 YYYYMMDD | 20260529 | | `--no-screening` | 禁用5项指标筛选 | 关闭 | | `--min-score` | 筛选分数阈值 | 40 | | `--force` | 强制重新获取数据 | 关闭 | ### main.py | 参数 | 说明 | 默认值 | |------|------|--------| | `--etfs` | ETF代码逗号分隔 | 510300,159915,... | | `--optimize` | 参数优化模式 | 关闭 | | `--grid-pcts` | 网格间距逗号分隔 | 1,2,3 | | `--force-refetch` | 强制重新获取 | 关闭 | | `--days` | 回测天数 | 730 | | `--no-screening` | 禁用指标筛选 | 关闭 | ## 输出 ``` reports/ ├── t0_backtest/ │ ├── {code}_{name}_report.html # 单ETF回测报告 │ ├── summary.html # 汇总驾驶舱 │ └── t0_grid_summary.csv # 汇总CSV ├── screening/ # 筛选可视化图表 │ ├── volatility_distribution.png │ ├── category_distribution.png │ └── price_comparison.png ├── summary.csv # main.py汇总 └── optimization.csv # 参数优化结果 ``` ## 技术栈 - Python >= 3.11 - [backtesting.py](https://kernc.github.io/backtesting.py/) — 策略回测引擎 - [akshare](https://akshare.akfamily.xyz/) — 行情数据源 - matplotlib + pandas + numpy + scipy - [uv](https://docs.astral.sh/uv/) — 包管理