Stock Buddy 🤖📈

基于 AI 多维度评分的港股量化回测系统

功能简介

对港股标的从技术面、基本面、舆情三个维度打分,生成综合评分信号,并回测不同止损策略的收益表现。

系统架构

评分模型(三维度加权)
├── 技术面(权重 50%RSI、MACD、均线系统
├── 基本面(权重 30%营收、净利润、PE/PB 快照
└── 舆情(权重 20%):新闻情感、机构评级、政策面

止损策略(三版本 A/B/C 对比)
├── A固定止损 12%(基准)
├── BATR × 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
Save my stock
Readme 215 KiB
Languages
Python 98.9%
Shell 1.1%