一个用于抓取股票K线数据、分析主力吸筹指标,并支持数据可视化展示的系统。
- 框架: FastAPI
- 异步支持: uvloop
- 包管理: uv
- 数据库: SQLite
- 数据抓取: 模拟数据(可扩展为真实API)
- 技术分析: TA-Lib
- 框架: React
- 图表库: ECharts
- HTTP客户端: Axios
- 样式: 原生CSS
destinty_stock/
├── server/ # 服务端代码
│ ├── src/
│ │ ├── api/ # API接口实现
│ │ ├── crawler/ # 数据抓取模块
│ │ ├── analyzer/ # 分析算法模块
│ │ └── models/ # 数据库模型
│ ├── data/ # 数据库文件
│ ├── main.py # 服务端入口
│ ├── pyproject.toml # 项目配置
│ └── requirements.txt # 依赖列表
├── client/ # 客户端代码
│ ├── src/
│ │ ├── components/ # React组件
│ │ ├── services/ # API服务
│ │ ├── App.jsx # 应用入口
│ │ └── main.jsx # React渲染入口
│ └── package.json # 客户端依赖
└── README.md # 项目说明
- 股票数据抓取: 支持单只股票和批量股票的数据抓取
- 主力吸筹分析: 基于量比、RSI、MACD等指标的综合分析
- K线图可视化: 使用ECharts绘制K线图
- 实时分析结果: 显示吸筹强度和各项技术指标
- 响应式设计: 适配不同屏幕尺寸
-
进入服务端目录
cd server -
使用uv安装依赖
uv install
-
启动服务端
python main.py
服务将在 http://localhost:8000 启动
-
进入客户端目录
cd client -
安装依赖
npm install
-
启动客户端开发服务器
npm run dev
客户端将在 http://localhost:5173 启动
GET /stocks/list- 获取股票列表GET /stocks/kline/{symbol}- 获取单只股票K线数据POST /stocks/crawl/{symbol}- 抓取单只股票数据POST /stocks/crawl/all- 抓取所有股票数据
GET /stocks/analysis/{symbol}- 获取单只股票分析结果GET /stocks/analysis/all- 获取所有股票分析结果GET /stocks/analysis/accumulating- 获取正在吸筹的股票
分析算法基于以下几个维度:
- 成交量变化: 成交量放大但价格波动不大(价平量增)
- RSI指标: RSI处于40-60之间的合理区间
- MACD指标: MACD出现金叉或在0轴附近
- 量比: 量比持续放大(大于1.5)
- 价格趋势: 价格呈现缓慢上升趋势
综合以上指标,计算吸筹强度,大于0.6则判定为正在主力吸筹。
- 启动服务端和客户端
- 在客户端选择一只股票
- 查看K线图和主力吸筹分析结果
- 根据分析结果判断股票是否处于主力吸筹阶段
- 当前系统使用模拟数据,实际使用时需要替换为真实的股票数据API
- 分析算法仅供参考,不构成投资建议
- 系统采用异步设计,支持高并发访问
- 添加更多技术指标分析
- 实现数据持久化和历史数据查询
- 添加用户认证和权限管理
- 支持更多时间周期的K线图
- 实现邮件或短信提醒功能
- 优化分析算法,提高准确率