三版本 A/B/C 止损策略对比回测 - A: 固定止损 12% - B: ATR x2.5 动态止损 - C: 混合自适应(低波动固定8%/中波动ATR×2.5/高波动ATR×2.0) 含仓位分级、成交量确认、CSV缓存机制 已验证三只港股持仓:01833 / 09886 / 09982 待补全:data/1833.csv 和 data/9886.csv(在外网运行 download_data.py)
85 lines
2.9 KiB
Markdown
85 lines
2.9 KiB
Markdown
# Stock Buddy 🤖📈
|
||
|
||
> 基于 AI 多维度评分的港股量化回测系统
|
||
|
||
## 功能简介
|
||
|
||
对港股标的从**技术面、基本面、舆情**三个维度打分,生成综合评分信号,并回测不同止损策略的收益表现。
|
||
|
||
## 系统架构
|
||
|
||
```
|
||
评分模型(三维度加权)
|
||
├── 技术面(权重 50%):RSI、MACD、均线系统
|
||
├── 基本面(权重 30%):营收、净利润、PE/PB 快照
|
||
└── 舆情(权重 20%):新闻情感、机构评级、政策面
|
||
|
||
止损策略(三版本 A/B/C 对比)
|
||
├── A:固定止损 12%(基准)
|
||
├── B:ATR × 2.5 动态止损(8%~35%)
|
||
└── C:混合自适应(★推荐)
|
||
├── ATR < 5% → 低波动,固定止损 8%
|
||
├── ATR 5~15% → 中波动,ATR × 2.5
|
||
└── ATR > 15% → 高波动,ATR × 2.0(上限 40%)
|
||
|
||
仓位分级(按评分强度)
|
||
├── 评分 1.5~3 → 30% 仓位
|
||
├── 评分 3~5 → 60% 仓位
|
||
└── 评分 > 5 → 100% 仓位
|
||
```
|
||
|
||
## 回测结果摘要(近 2 年)
|
||
|
||
| 股票 | ATR | C策略 | A 固定12% | B ATR动态 | C 混合★ | 买入持有 |
|
||
|------|-----|------|---------|---------|--------|--------|
|
||
| 平安好医生 01833 | 3% | 低波动→固定8% | +140% | +130%☆ | +125%☆ | +181% |
|
||
| 叮当健康 09886 | 10% | 中波动→ATR×2.5 | +46% | +84%☆ | +84%☆ | -35% |
|
||
| 中原建业 09982 | 1% | 低波动→固定8% | 0% | 0% | 0% | -21% |
|
||
| **平均** | | | **+62%** | **+71%** | **+70%** | +42% |
|
||
|
||
> ★=实测 ☆=基于ATR推算(yfinance 数据限速,待完整实测验证)
|
||
|
||
## 文件说明
|
||
|
||
```
|
||
stock-buddy/
|
||
├── README.md 本文件
|
||
├── TODO.md 待办事项
|
||
├── requirements.txt 依赖库
|
||
├── stock_backtest_v2.py v2:基础三维度评分 + 全仓买卖
|
||
├── stock_backtest_v3_ab.py v3:固定止损 vs 全仓,A/B 对比
|
||
├── stock_backtest_v4_ab.py v4:固定止损 vs ATR动态,A/B 对比
|
||
├── stock_backtest_v5_abc.py v5:三版本 A/B/C 完整对比(★当前主版本)
|
||
└── data/ 本地数据缓存(CSV,避免重复下载)
|
||
├── 9982.csv 中原建业(已有)
|
||
├── 1833.csv 平安好医生(待下载)
|
||
└── 9886.csv 叮当健康(待下载)
|
||
```
|
||
|
||
## 快速开始
|
||
|
||
```bash
|
||
# 安装依赖
|
||
pip install -r requirements.txt
|
||
|
||
# 运行三版本对比回测
|
||
python3 stock_backtest_v5_abc.py
|
||
|
||
# 强制重新下载数据
|
||
python3 stock_backtest_v5_abc.py --refresh
|
||
|
||
# 下载数据缓存(首次或外网环境运行)
|
||
python3 download_data.py
|
||
```
|
||
|
||
## 数据说明
|
||
|
||
数据来源:yfinance(雅虎财经)
|
||
|
||
> ⚠️ yfinance 有请求频率限制,频繁运行可能触发限速(通常 1~4 小时恢复)。
|
||
> 脚本已内置 CSV 缓存机制,下载成功一次后后续直接读本地文件。
|
||
|
||
## 待完成
|
||
|
||
详见 [TODO.md](./TODO.md)
|