# 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) **作用**:判断价格波动范围 - **价格触及上轨**:可能回调 - **价格触及下轨**:可能反弹 - **带宽收窄**:波动率降低,可能突破 ---