# 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)