针对 A 股主要指数的网格交易工具,自动生成买入/卖出点位建议,并支持历史数据回测验证策略效果。
- 三种网格策略:等差网格、等比网格、自适应网格(ATR 驱动)
- 历史回测:模拟网格交易在历史行情上的表现,输出收益率、最大回撤、夏普比率等指标
- 点位推荐:根据当前价格和历史波动率,生成下一步买入/卖出点位
- 策略对比:同一指数上横向对比三种策略的回测表现
- 图表输出:网格叠加图、资金曲线、回撤曲线
pip install -r requirements.txt依赖:akshare, pandas, numpy, matplotlib, pyyaml
# 自适应网格,回测上证指数 2023 全年
python main.py backtest --index 上证指数 --strategy adaptive --start 20230101 --end 20240101
# 等比网格,指定 3% 间距和 20% 范围
python main.py backtest --index 沪深300 --strategy equal_percentage --grid-pct 0.03 --range-pct 0.20
# 等差网格,指定 50 点间距,保存图表
python main.py backtest --index 创业板指 --strategy equal_interval --grid-interval 50 --chart result# 等比网格推荐,标记当前持有层级
python main.py recommend --index 沪深300 --strategy equal_percentage --grid-pct 0.03
# 自适应网格推荐,指定已持有层级 3,5,7
python main.py recommend --index 上证指数 --strategy adaptive --held-levels 3,5,7python main.py compare --index 上证指数 --start 20230101 --end 20240101输出三种策略在同一时段的关键指标对比表。
| 名称 | 代码 |
|---|---|
| 上证指数 | sh000001 |
| 沪深300 | sh000300 |
| 中证500 | sh000905 |
| 创业板指 | sz399006 |
| 上证50 | sh000016 |
| 中证1000 | sh000852 |
| 中证传媒 | sz399971 |
也可以直接用 akshare 的指数代码作为 --index 参数。
相邻层级价差固定。适合波动较小、价格区间稳定的震荡市。
参数:--grid-interval(固定价差)或 --range-pct(总范围占比,默认 30%)
相邻层级百分比间距固定,高位绝对价差更大。适合趋势性较强的指数。
参数:--grid-pct(百分比间距,如 0.03 = 3%)或 --range-pct
基于 ATR(平均真实波幅)自动计算网格间距和上下界,无需手动调参。
参数:--lookback-days(ATR 回望天数,默认 60)
| 指标 | 含义 |
|---|---|
| 总收益率 | 期末资产相对初始资金的收益率 |
| 年化收益率 | 按回测天数折算的年化收益 |
| 最大回撤 | 从峰值到谷值的最大跌幅 |
| 夏普比率 | 风险调整后收益,>1 较好 |
| 卡尔玛比率 | 年化收益 / 最大回撤 |
| 胜率 | 盈利卖出占全部卖出的比例 |
| 资金利用率 | 平均持仓占总资产的比例 |
quant-grid/
config.yaml # 指数映射与策略默认参数
main.py # CLI 入口
requirements.txt
data/ # 数据获取与缓存
strategy/ # 网格策略实现
backtest/ # 回测引擎与指标计算
output/ # 终端输出与图表
cache/ # 本地数据缓存(自动生成)
通过 akshare 从东方财富获取指数日线数据,免费无需 API Key。首次获取后自动缓存到本地 CSV,后续只增量拉取缺失日期段。