返回顶部
s

stock-analysis-china

|

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 0.1.1
安全检测
已通过
84
下载量
1
收藏
概述
安装方式
版本历史

stock-analysis-china

# A股持仓技术分析 Skill ## ⚠️ AI 行为规则(必须遵守) 当本 skill 被激活时,AI **必须按以下顺序执行**,只有识别图片的结果不是持仓信息时可以退出,否则不得跳过步骤或中途停止: **第一步:处理图片(如有图片)** - 微信/飞书截图保存路径:`~/.qclaw/media/inbound/`,或者`~/.openclaw/media/inbound/`(跨平台) - 优先用 AI **多模态能力直接读取图片内容**,识别其中的持仓信息 - 检查`SKILL_ROOT/data/`目录下是否存在json文件或json文件是否为空,若为空,优先执行"环境依赖与故障排查"章节的环境配置相关操作 - 若多模态失败,使用OCR识别 - 识别成功 → 提取:股票名称、代码、数量、成本价 - 识别失败 → **必须告知用户具体原因**,并引导手动输入,**不得直接说"无法识别"然后停止** **第二步:读取/更新持仓数据** - 持仓文件路径:`SKILL_ROOT/data/positions_portfolio.json` - 若文件不存在或为空 → 引导用户录入持仓 - 若有图片但识别失败 → 询问用户手动输入关键字段 **第三步:运行技术分析** ```bash python3 <SKILL_ROOT>/scripts/stock_analysis_core.py ``` **第四步:输出分析结果** - 直接在当前对话输出结构化报告 - 包含:大盘指数、各持仓技术信号、综合建议 **⚠️ 关键禁止行为:** - 收到图片后,不得在未尝试识别的情况下说"图片无法显示" - 不得收到图片后要求用户"用文字告诉我持仓" - 不得跳过识别步骤直接进入"请告诉我你的持仓" - 识别失败时,必须说明失败原因并提供解决路径 ## 核心能力 1. **持仓识别** — 用户发送微信持仓截图,AI 直接识别提取持仓信息 2. **持仓管理** — 自动更新 `data/positions_portfolio.json` 持仓数据 3. **行情拉取** — 通过 AKShare 获取:指数实时行情、个股实时价格、K线历史数据 4. **技术指标** — RSI、MACD、KDJ、布林带、均线多头/空头排列 5. **综合诊断** — 结合大盘趋势 + 技术面,给出每只持仓的具体操作建议 6. **报告推送** — 生成结构化报告,直接在微信对话中展示 ## 文件结构 ``` stock-analysis-china/ ├── SKILL.md # 本文件 ├── data/ │ └── positions_portfolio.json # 持仓数据 ├── scripts/ │ ├── stock_analysis_core.py # 技术指标计算引擎 │ └── portfolio_update.py # 持仓数据管理工具 └── references/ └── analysis_prompt_template.md # 报告输出模板 ``` ## 路径约定(跨平台) | 资源 | Windows | macOS / Linux | |------|---------|---------------| | 用户主目录 | `%USERPROFILE%` | `~` | | 工作区 | `%USERPROFILE%\.qclaw\workspace` | `~/.qclaw/workspace` | | 微信截图 | `%USERPROFILE%\.qclaw\media\inbound\` | `~/.qclaw/media/inbound/` | | Tesseract OCR | `C:\Program Files\Tesseract-OCR\` | `/usr/local/bin/tesseract` (macOS) 或 `/usr/bin/tesseract` (Linux) | | Python 解释器 | 自动推断(`python` 或 `python3`) | 自动推断(`python3`) | **所有路径均通过 `Path.home()` 和 `pathlib.Path` 动态推断,无需手动修改。** --- ## 使用流程 ### 场景一:发送持仓截图(推荐) 用户在微信中发送持仓截图 → AI 自动识别并更新持仓数据 **识别字段:** - 股票名称 / 股票代码 - 持仓数量 - 成本价 - 当前价(可选) - 盈亏比例(可选) **AI 执行步骤:** 1. **读取截图** — 微信截图自动保存至 `%USERPROFILE%\.qclaw\media\inbound\`, 查找最新图片文件,读取内容 2. **图像识别** — 优先使用 AI 多模态能力直接识别截图内容; 备用方案:使用 Tesseract OCR(需安装 tesseract + chi_sim 语言包) ```bash tesseract <截图路径> stdout --oem 1 --psm 6 -l chi_sim+eng ``` 3. **提取持仓数据** — 从识别结果中解析出:名称、代码、数量、成本价等 4. **更新持仓 JSON** — 调用 `portfolio_update.py` ```bash python <SKILL_ROOT>/scripts/portfolio_update.py --json '[{"name":"长电科技","code":"600584","quantity":400,"cost_price":39.53}]' ``` 5. **确认结果** — 向用户列出识别到的持仓列表,请用户核对校正 **示例对话:** ``` 用户:[发送微信持仓截图] AI:已识别到 5 只持仓: 1. 长电科技(600584) 400股 成本39.53 2. 招商银行(600036) 500股 成本39.44 ... ⚠️ 请核对以上数据,如有误请告诉我正确信息。 数据已更新。需要分析吗? ``` --- ### 场景二:手动更新持仓 用户通过对话更新持仓: ``` 我今天买了100股宁德时代,成本300 ``` ``` 把招商银行清仓了 ``` AI 自动更新持仓 JSON。 --- ### 场景三:分析持仓 用户说: ``` 分析一下我的持仓 ``` ``` 我的持仓怎么样 ``` **AI 执行步骤:** **Step 1 — 读取持仓数据** 从 `data/positions_portfolio.json` 读取 **Step 2 — 运行分析脚本** ```bash python <SKILL_ROOT>/scripts/stock_analysis_core.py ``` **Step 3 — AI 综合研判** 结合脚本输出的指标数据,AI 给出: - 大盘环境判断(强势/震荡/偏弱) - 每只持仓的技术面评分 + 操作建议 - 整体仓位建议 --- ## 持仓数据格式 ```json { "last_updated": "2026-03-29", "source": "微信截图识别", "portfolio": [ { "code": "600584", "name": "长电科技", "quantity": 400, "cost_price": 39.53, "current_price": 45.92, "market_value": 18368.4, "profit_pct": -13.92, "asset_type": "stock" } ] } ``` --- ## 技术指标说明 | 指标 | 计算参数 | 含义 | |------|---------|------| | RSI | 14日 | >75超买/<25超卖,>60偏强/<40偏弱 | | MACD | 12/26/9 | DIF>0多头,红柱扩张更强势 | | KDJ | 9/3/3 | >80超买/<20超卖,K>D金叉看多 | | 布林带 | 20日/2σ | 突破上轨注意回调,跌破下轨关注反弹 | | 均线 | 5/10/20/60日 | 多头排列=强势,空头排列=弱势 | --- ## 分析建议判断逻辑 ``` IF 偏空信号 > 2 AND tech_view == '偏空': 建议: 减仓/止损 ELIF 偏多信号 > 2 AND tech_view == '偏多': 建议: 持有/关注加仓机会 ELIF RSI超卖 OR 跌破布林下轨: 建议: 超卖关注,暂持有等反弹 ELIF RSI超买 OR 突破布林上轨: 建议: 注意止盈 ELSE: 建议: 持有观望 ``` --- ## 微信对话中的操作指令 | 用户说 | AI 行为 | |--------|--------| | 发送持仓截图 | 识别并更新持仓数据 | | "分析持仓" / "我的持仓怎么样" | 运行完整技术分析 | | "更新持仓" + 截图 | 更新持仓并确认 | | "列出我的持仓" | 显示当前持仓列表 | | "清空持仓" | 清空所有持仓数据 | --- ## 注意事项 - AKShare 数据为免费实时行情,部分 ETF 可能不在实时行情列表中 - 技术分析仅供参考,不构成投资建议 - 持仓数据存储在 skill 目录,升级 QClaw 时注意备份 --- ## 环境依赖与故障排查 ### 依赖清单 本 skill 需要以下环境支持: | 依赖 | 版本 | 用途 | 安装方式 | |------|------|------|---------| | Python 3 | 3.10+ | 技术指标计算 | 系统 Python 或 `winget install Python.Python.3.12` | | pip | 最新 | Python 包管理 | 随 Python 自动安装 | | AKShare | 最新 | 股票数据源 | `pip install akshare pandas` | | Node.js | 18+ | 图片处理(sharp) | `winget install OpenJS.NodeJS.LTS` | | sharp | 0.30+ | 图片读取与处理 | `npm install sharp -g` | | Tesseract OCR | 5.0+ | 备用 OCR 识别 | `winget install UB-Mannheim.TesseractOCR` | | chi_sim.traineddata | 最新 | 中文 OCR 语言包 | 随 Tesseract 自动安装或者claw自己安装 | ### 常见问题排查 #### 问题 1:图片无法读取(`Cannot find package 'sharp'`) **症状**: ``` Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'sharp' imported from ... ``` **原因**: - sharp 未安装或安装位置不在 OpenClaw 的 node_modules 搜索路径中 - Node.js 全局安装的 sharp 在 `%APPDATA%\npm\node_modules\` 中,OpenClaw 进程找不到 **解决方案**: 1. **检查 sharp 是否已安装** ```bash npm list sharp -g ``` 2. **若未安装,全局安装 sharp** ```bash npm install sharp -g --prefer-offline ``` 3. **创建 junction 链接**(Windows) ```powershell New-Item -ItemType Junction ` -Target "$env:APPDATA\npm\node_modules\sharp" ` -Path "C:\Program Files\QClaw\resources\openclaw\node_modules\sharp" ``` 4. **重启 OpenClaw** ```bash openclaw gateway restart ``` 5. **验证** ```bash node -e "require('sharp'); console.log('ok')" ``` #### 问题 2:Tesseract 命令找不到 **症状**: ``` tesseract : 无法将"tesseract"项识别为 cmdlet、函数、脚本文件或可运行程序的名称 ``` **原因**: - Tesseract 未安装或未加入 PATH **解决方案**: 1. **安装 Tesseract** ```bash winget install UB-Mannheim.TesseractOCR ``` 2. **验证安装** ```bash "C:\Program Files\Tesseract-OCR\tesseract.exe" --version ``` 3. **检查中文语言包** ```bash Get-ChildItem "C:\Program Files\Tesseract-OCR\tessdata\chi_sim.traineddata" ``` 4. **若语言包缺失,重新安装 Tesseract** #### 问题 3:Python 依赖缺失(`ModuleNotFoundError: No module named 'akshare'`) **症状**: ``` ModuleNotFoundError: No module named 'akshare' ``` **原因**: - akshare 或 pandas 未安装 **解决方案**: 1. **安装依赖** ```bash pip install akshare pandas ``` 2. **验证** ```bash python -c "import akshare; print('ok')" ``` #### 问题 4:图片识别失败(OCR 乱码或无输出) **症状**: - Tesseract 输出乱码(如 `锟斤拷`) - OCR 识别结果为空 - 报错 `Error opening data file .../chi_sim.traineddata` **原因**: - 图片质量差或格式不支持 - Tesseract 参数不匹配 - 中文语言包未安装或未正确配置 **解决方案**: 1. **检查图片格式** ```bash file <image_path> # 确保是 JPEG/PNG ``` 2. **安装 Tesseract OCR** ```bash winget install UB-Mannheim.TesseractOCR ``` 3. **下载中文语言包**(Windows 需要) Tesseract 默认安装目录可能没有中文语言包,需要手动下载: ```powershell # 创建用户 tessdata 目录 New-Item -ItemType Directory -Path "$env:USERPROFILE\tessdata" -Force # 下载中文简体语言包 Invoke-WebRequest -Uri "https://github.com/tesseract-ocr/tessdata/raw/main/chi_sim.traineddata" -OutFile "$env:USERPROFILE\tessdata\chi_sim.traineddata" # 复制英文语言包(中英文混合识别需要) Copy-Item "C:\Program Files\Tesseract-OCR\tessdata\eng.traineddata" "$env:USERPROFILE\tessdata\eng.traineddata" -Force ``` 4. **配置 TESSDATA_PREFIX 环境变量** 方法一:临时设置 ```powershell $env:TESSDATA_PREFIX = "$env:USERPROFILE\tessdata\" tesseract <image_path> stdout --oem 1 --psm 6 -l chi_sim+eng ``` 方法二:永久设置(推荐) ```powershell [System.Environment]::SetEnvironmentVariable("TESSDATA_PREFIX", "$env:USERPROFILE\tessdata\", "User") ``` 5. **验证语言包安装** ```powershell $env:TESSDATA_PREFIX = "$env:USERPROFILE\tessdata\" & "C:\Program Files\Tesseract-OCR\tesseract.exe" --list-langs ``` 6. **运行中文 OCR 识别** ```powershell $env:TESSDATA_PREFIX = "$env:USERPROFILE\tessdata\" & "C:\Program Files\Tesseract-OCR\tesseract.exe" <图片路径> stdout --oem 1 --psm 6 -l chi_sim+eng ``` 7. **若仍失败,使用 AI 多模态识别**(推荐) #### 问题 5:持仓数据文件不存在 **症状**: ``` FileNotFoundError: [Errno 2] No such file or directory: '.../positions_portfolio.json' ``` **原因**: - 首次使用,持仓数据文件未创建 **解决方案**: 1. **手动创建初始文件** ```bash python <SKILL_ROOT>/scripts/portfolio_update.py --list ``` 2. **或通过 AI 识别截图自动创建** - 发送持仓截图,AI 自动生成 positions_portfolio.json 3. **或手动添加持仓** ```bash python <SKILL_ROOT>/scripts/portfolio_update.py --add 600584 长电科技 400 39.53 ``` #### 问题 6:AKShare 数据获取超时 **症状**: ``` [WARN] 指数数据获取失败: ... ``` **原因**: - 网络连接不稳定 - AKShare 服务器响应慢 **解决方案**: 1. **检查网络连接** ```bash ping github.com ``` 2. **重试分析**(AKShare 有内部重试机制) 3. **若持续失败,检查 AKShare 服务状态** - 访问 https://github.com/akfamily/akshare/issues #### 问题 7:跨平台路径错误 **症状**: ``` FileNotFoundError: [Errno 2] No such file or directory: 'C:\Users\...\...' ``` **原因**: - 脚本在 macOS/Linux 上运行,但路径使用了 Windows 格式 **解决方案**: - 所有脚本已使用 `pathlib.Path` 和 `Path.home()` 动态推断路径 - 无需手动修改路径 - 若仍出现错误,检查 `SKILL_ROOT` 和 `WORKSPACE_DIR` 的推断逻辑 --- ## 开发者笔记 ### 关键设计决策 1. **路径动态推断** - 使用 `Path(__file__).parent.parent` 相对 skill 目录 - 使用 `Path.home()` 获取用户主目录(跨平台) - 避免硬编码路径,确保可移植性 2. **持仓数据优先级** - 优先读 skill 内置 `data/positions_portfolio.json`(跟随 skill 更新) - 不存在则读 `~/.qclaw/workspace/data/positions_portfolio.json`(升级保护) - 确保用户数据不会因 skill 升级而丢失 3. **图片识别优先级** - 优先 AI 多模态识别(无需额外工具) - 备用 Tesseract OCR(需安装) - 若都失败,引导用户手动输入 4. **跨平台支持** - Windows / macOS / Linux 全部支持 - 自动检测系统(`platform.system()`) - 自动推断 Python 解释器(`sys.executable`) ### 常见改动陷阱 ⚠️ **多文件改动时务必完整检查** 当修改脚本时,必须同步更新: - SKILL.md 中的路径说明 - analysis_prompt_template.md 中的命令示例 - 所有文档中的硬编码路径 **检查清单**: - [ ] 脚本改动后,SKILL.md 路径说明是否需要更新? - [ ] 新增依赖后,是否更新了"依赖清单"表格? - [ ] 改了路径推断逻辑后,是否更新了"路径约定"? - [ ] 新增故障排查项后,是否补充了解决方案? ### 测试流程 1. **环境检测** ```bash python <SKILL_ROOT>/scripts/stock_analysis_core.py ``` 2. **持仓管理** ```bash python <SKILL_ROOT>/scripts/portfolio_update.py --list ``` 3. **图片识别** - 发送截图,验证 AI 多模态识别 - 若失败,手动运行 Tesseract 验证 4. **完整流程** - 发送截图 → AI 识别 → 更新持仓 → 运行分析 → 输出报告

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 stock-analysis-china-1775942052 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 stock-analysis-china-1775942052 技能

通过命令行安装

skillhub install stock-analysis-china-1775942052

下载 Zip 包

⬇ 下载 stock-analysis-china v0.1.1

文件大小: 16.14 KB | 发布时间: 2026-4-12 11:32

v0.1.1 最新 2026-4-12 11:32
A股持仓深度技术分析,具备如下几个特点:
1. 使用简便:只需将微信/飞书持仓截图发送至Qclaw/openclaw并通过脚本生成专属深度技术分析报告
2. 泛用性强:同时支持Qclaw和openclaw,其中Qclaw主要支持微信,openclaw支持一切图片来源
3. 智能运行:若环境缺失,第一次运行自动配置部分环境(OCR等)

使用注意事项:第一次执行会自动安装部分环境配置,可能等待时间较长

Initial release of stock-analysis-china.

- Provides A股持仓深度技术分析 via AI, activating on screenshots or investment-related intents.
- Supports AI-based image recognition of WeChat/Feishu portfolio screenshots, with fallback to Tesseract OCR.
- Manages portfolio data in positions_portfolio.json, auto-updating from images or user input.
- Runs technical analysis with AKShare (RSI, MACD, KDJ, Bollinger Bands, moving averages) and generates operation suggestions.
- Outputs structured analysis reports directly in chat, including market index overview and individual stock signals.
- Includes detailed environment setup and troubleshooting guidance for common installation and runtime issues.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部