c97d7d4f7af1b155cafb3f57b338e15c778555d8
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 叮当健康(待下载)
快速开始
# 安装依赖
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
Description
Languages
Python
98.9%
Shell
1.1%