# AK share
**Repository Path**: examples_for_dev/ak-share
## Basic Information
- **Project Name**: AK share
- **Description**: 股票技术分析系统是一个基于Python开发的专业级金融数据分析平台,集成了多市场股票数据获取、技术指标计算、智能评分和AI增强分析功能。系统通过RESTful API提供服务,支持A股、港股、美股等多个市场的股票分析,为投资者提供专业的技术分析报告和投资建议。
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2025-06-09
- **Last Updated**: 2025-12-31
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 📈 股票技术分析系统
## 🎯 项目概述
**股票技术分析系统**是一个基于Python开发的专业级金融数据分析平台,集成了多市场股票数据获取、技术指标计算、智能评分和AI增强分析功能。系统通过RESTful API提供服务,支持A股、港股、美股等多个市场的股票分析,为投资者提供专业的技术分析报告和投资建议。
### ✨ 核心价值
- 🌍 **多市场覆盖**:支持全球主要股票市场数据分析
- 📊 **专业指标**:集成20+主流技术分析指标
- 🤖 **AI增强**:结合大语言模型提供智能化分析
- ⚡ **实时分析**:快速响应,秒级生成分析报告
- 🔒 **安全可靠**:Bearer Token认证,数据安全保障
---
## 🚀 功能特性
### 1. 📈 多市场数据支持
| 市场类型 | 代码格式 | 示例 | 说明 |
|---------|---------|------|------|
| 🇨🇳 A股 | 6位数字 | `600519`, `000001` | 沪深主板、科创板、北交所 |
| 🇭🇰 港股 | 5位数字 | `00700`, `01810` | 香港交易所上市股票 |
| 🇺🇸 美股 | 字母代码 | `AAPL`, `TSLA` | 纳斯达克、纽交所 |
| 📊 ETF | 6位数字 | `510300`, `159919` | 交易所交易基金 |
| 📈 LOF | 6位数字 | `160706`, `161725` | 上市开放式基金 |
### 2. 🔧 专业技术指标
#### 趋势分析指标
- **移动平均线系统**
- MA5:短期趋势(5日均线)
- MA20:中期趋势(20日均线)
- MA60:长期趋势(60日均线)
- **MACD指标**:趋势动量分析
- **布林带**:价格波动通道
#### 动量指标
- **RSI相对强弱指数**:超买超卖判断
- **ROC变动率**:价格动量测量
#### 波动性指标
- **ATR平均真实波幅**:波动性测量
- **波动率计算**:风险评估
#### 成交量分析
- **成交量移动平均**:量价关系分析
- **成交量比率**:异常交易识别
### 3. 🎯 智能评分系统
采用**100分制综合评分模型**:
| 评分维度 | 权重 | 评判标准 |
|---------|------|----------|
| 📈 **趋势分析** | 30分 | MA5>MA20>MA60为上升趋势 |
| 🔥 **RSI分析** | 20分 | 30-70区间为健康,<30超卖,>70超买 |
| ⚡ **MACD分析** | 20分 | MACD>Signal为买入信号 |
| 📊 **成交量分析** | 30分 | 成交量放大1.5倍以上获得高分 |
#### 投资建议分级
```
💚 80-100分:强烈推荐买入 - 多个指标同时看好
🟢 60-79分 :建议买入 - 大部分指标积极
🟡 40-59分 :观望 - 指标分化,谨慎操作
🟠 20-39分 :建议卖出 - 多数指标转弱
🔴 0-19分 :强烈建议卖出 - 技术面全面恶化
```
### 4. 🤖 AI增强分析
- **大语言模型集成**:DeepSeek R1模型深度分析
- **Dify工作流**:智能化分析流程
- **自然语言报告**:将技术指标转换为易懂的投资建议
- **情境化分析**:结合市场环境提供个性化建议
---
## 🏗️ 技术架构
```mermaid
graph TB
A[用户请求] --> B[股票分析客户端]
B --> C[FastAPI服务器]
C --> D[认证系统
Bearer Token]
D --> E[数据获取层
AKShare接口]
E --> F[数据处理引擎]
F --> G[技术指标计算]
G --> H[智能评分系统]
H --> I[结果生成]
I --> J[Dify AI工作流]
J --> K[最终报告输出]
```
### 核心组件
| 组件 | 文件 | 功能描述 |
|-----|------|----------|
| 🌐 **API服务器** | `stock_analysis_api.py` | FastAPI服务,提供RESTful接口 |
| 💻 **客户端** | `stock_analysis_client.py` | 命令行客户端,用户交互界面 |
| 🧪 **测试模块** | `tests/testakshare.py` | 功能测试和指标验证 |
| 🤖 **AI集成** | `dify/股票分析系统-修改版.yml` | Dify工作流配置 |
---
## 📦 安装部署
### 系统要求
- Python 3.8+
- 网络连接(获取股票数据)
- 2GB+ 内存推荐
### 快速安装
```bash
# 1. 进入项目
cd akshare
# 2. 创建conda环境,有了则不用创建,直接下一步
conda create -n test1 python=3.10
# 3. 激活环境
conda activate test1
# 2. 安装依赖
pip install -r requirements.txt
# 3. 启动API服务
uvicorn stock_analysis_api:app --host 0.0.0.0 --port 8085
# 4. 运行客户端
python stock_analysis_client.py
# 查看conda环境
conda env list
```
---
## 🎮 使用指南
### 1. API服务使用
#### 启动服务
```bash
uvicorn stock_analysis_api:app --host 0.0.0.0 --port 8085
```
服务启动后访问:`http://localhost:8085/docs` 查看API文档
#### API请求示例
```bash
curl -X POST "http://localhost:8085/analyze-stock/" \
-H "Authorization: Bearer sk-zhouhui1122444" \
-H "Content-Type: application/json" \
-d '{
"stock_code": "600519",
"market_type": "A",
"start_date": "20231201",
"end_date": "20241201"
}'
```
#### 请求参数说明
| 参数 | 类型 | 必填 | 说明 | 示例 |
|-----|------|------|------|------|
| `stock_code` | string | ✅ | 股票代码 | `"600519"` |
| `market_type` | string | ❌ | 市场类型,默认"A" | `"A"`, `"HK"`, `"US"` |
| `start_date` | string | ❌ | 开始日期,默认一年前 | `"20231201"` |
| `end_date` | string | ❌ | 结束日期,默认今天 | `"20241201"` |
### 2. 客户端使用
#### 交互式模式
```python
# 运行客户端
python stock_analysis_client.py
# 按提示输入股票信息
```
#### 程序化调用
```python
from stock_analysis_client import call_stock_analysis_api
result = call_stock_analysis_api(
stock_code="600519",
market_type="A",
auth_token="sk-zhouhui1122444"
)
```
### 3. 输出结果解读
#### 完整分析报告结构
```json
{
"technical_summary": {
"trend": "上涨趋势", // 总体趋势判断
"volatility": "3.46%", // 当前波动率
"volume_trend": "缩量", // 成交量趋势
"rsi_level": 53.22 // 当前RSI水平
},
"recent_data": [ // 近14日详细数据
{
"date": "2024-06-06",
"open": 54.5,
"high": 54.5,
"low": 52.8,
"close": 53.1,
"volume": 125424396,
"RSI": 53.22,
"MACD": 1.04,
// ... 更多技术指标
}
],
"report": {
"stock_code": "01810",
"score": 70, // 综合评分
"recommendation": "建议买入", // 投资建议
"price": 53.1,
"price_change": -2.12,
// ... 更多分析结果
}
}
```
---
## 🔧 配置说明
### API服务配置
编辑 `stock_analysis_api.py` 中的参数:
```python
params = {
'ma_periods': {
'short': 5, # 短期均线周期
'medium': 20, # 中期均线周期
'long': 60 # 长期均线周期
},
'rsi_period': 14, # RSI计算周期
'bollinger_period': 20, # 布林带周期
'bollinger_std': 2, # 布林带标准差倍数
'volume_ma_period': 20, # 成交量均线周期
'atr_period': 14 # ATR周期
}
```
### 认证配置
在 `verify_auth_token` 函数中配置有效令牌:
```python
valid_tokens = [
"sk-zhouhui1122444", # 主令牌
"zhouhui11224555" # 备用令牌
]
```
### Dify工作流配置
编辑 `dify/股票分析系统-修改版.yml`:
```yaml
environment_variables:
- name: apikey
value: sk-zhouhui1122444 # API密钥
# AI模型配置
model:
name: deepseek-r1:14b # 使用的AI模型
provider: langgenius/ollama/ollama
```
---
## 📊 使用示例
### 示例1:分析贵州茅台(A股)
```python
# 客户端调用
result = call_stock_analysis_api(
stock_code="600519",
market_type="A",
auth_token="sk-zhouhui1122444"
)
# 输出结果
print(f"股票评分: {result['report']['score']}分")
print(f"投资建议: {result['report']['recommendation']}")
```
### 示例2:分析小米集团(港股)
```bash
curl -X POST "http://localhost:8085/analyze-stock/" \
-H "Authorization: Bearer sk-zhouhui1122444" \
-H "Content-Type: application/json" \
-d '{
"stock_code": "01810",
"market_type": "HK"
}'
```
### 示例3:批量分析
```python
stocks = [
{"code": "600519", "market": "A"}, # 贵州茅台
{"code": "00700", "market": "HK"}, # 腾讯控股
{"code": "AAPL", "market": "US"} # 苹果公司
]
for stock in stocks:
result = call_stock_analysis_api(
stock_code=stock["code"],
market_type=stock["market"],
auth_token="sk-zhouhui1122444"
)
print(f"{stock['code']}: {result['report']['recommendation']}")
```
---
## 🔍 技术指标详解
### 1. 移动平均线系统 (MA)
**作用**:识别价格趋势方向
- **金叉**:短期均线上穿长期均线,看涨信号
- **死叉**:短期均线下穿长期均线,看跌信号
```python
# 计算方法
MA5 = close_price.ewm(span=5).mean()
MA20 = close_price.ewm(span=20).mean()
```
### 2. 相对强弱指数 (RSI)
**作用**:判断超买超卖状态
- **RSI > 70**:可能超买,考虑卖出
- **RSI < 30**:可能超卖,考虑买入
- **30 ≤ RSI ≤ 70**:正常区间
```python
def calculate_rsi(prices, period=14):
delta = prices.diff()
gain = delta.where(delta > 0, 0).rolling(window=period).mean()
loss = (-delta.where(delta < 0, 0)).rolling(window=period).mean()
rs = gain / loss
return 100 - (100 / (1 + rs))
```
### 3. MACD指标
**作用**:识别趋势变化和动量
- **MACD线 > 信号线**:买入信号
- **MACD线 < 信号线**:卖出信号
- **柱状图由负转正**:动量转强
### 4. 布林带 (Bollinger Bands)
**作用**:判断价格波动范围
- **价格触及上轨**:可能回调
- **价格触及下轨**:可能反弹
- **带宽收窄**:波动率降低,可能突破
---