MiX个人持仓日报工作台
下载地址
https://www.zhengdianxue.com/wp-content/uploads/skills/org-dzobs9ce--personal-holdings-daily-report.zip将提示词发送给你的 AI 安装该 skills
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-dzobs9ce/personal-holdings-daily-report。个人持仓日报工作台(Personal Holdings Daily Report)。用于搭建、运行或定制一套面向个人投资者的 A 股持仓每日跟踪系统:读取持仓登记表,自动采集行情/财务/估值/新闻,输出组合健康度、市场环境、明日操作清单、解套路径测算与逐只标的状态标签,生成手机可看的单文件 HTML 日报。当用户提到「持仓日报」「持仓工作台」「每天监测持仓」「盯盘工具」「持仓分析」「组合健康度」「解套」「持仓涨跌提醒」「帮我搭个投资跟踪工具」,或提供持仓与成本要求每日跟踪、生成日报时使用。
支持股票 / ETF / 场外基金三类标的。港美股不在支持范围。
阅读全文 (展开查看完整说明)
概述
个人持仓日报工作台
用途
为一套个人 A 股持仓建立每日自动跟踪:填一张 CSV,跑一条命令,得到一份可直接在手机上阅读的 HTML 日报。
覆盖三类标的:股票 / ETF / 场外基金。全部数据源免注册、免密钥。
何时使用
触发场景:
- 用户要求「搭一个持仓跟踪/盯盘/投资日报工具」
- 用户提供持仓与成本,要求每日监测涨跌并给出操作建议
- 用户已有工作台,要求运行、解读、定制或排障
- 用户问「组合健康度」「我的持仓怎么样」「明天该怎么办」「套了怎么解」
不适用:
- 单只股票的买点研究(应使用个股分析类技能)
- 港美股持仓(数据源覆盖有限,需单独适配)
- 纯行情查询、财务尽调
核心约定(不可违背)
- 单文件、零密钥、零个人环境依赖 —— 主脚本刻意做成自包含单文件,便于复制给他人使用。新增功能时保持这一约束,不要引入第三方技能依赖。
- 绝不编造数据 —— 任何取不到的字段标注"暂不可获取"或直接省略,禁止使用"约 / 估算 / 推算"填充。数据缺失时静默跳过该标的,并在控制台列出。
- 不输出"涨跌概率" —— 四维权重与刻度未经回测校准,只能用强弱评分(0~100,50 为分界)表述,并标注"不代表涨跌概率"。
- 不接入任何交易接口,不执行买卖动作。
- 面向中老年用户在手机阅读 —— 正文基准字号 17px,列数尽量少,结论前置,次要信息折叠。
工作流
场景一:部署新工作台
- 确认目标目录(用户指定,未指定则询问)
- 运行部署脚本:
python <skill>/scripts/init_workspace.py <目标目录>该脚本会建目录、复制主脚本与持仓表模板、检查依赖、打印下一步。
- 引导用户填写
持仓登记表.csv(字段说明见references/说明文档.md第三节) - 运行一次生成首份日报,确认通路正常
场景二:运行日报
- 定位工作台目录(含
持仓日报.py与持仓登记表.csv) - 用带 baostock / akshare / pandas 的 Python 解释器运行:
python 持仓日报.py若当前解释器缺依赖,先
pip install baostock akshare pandas。脚本内部已自动清除
HTTP_PROXY等代理变量,无需外部env -u。
- 读取生成的
归档/持仓日报_<日期>.html,向用户汇报:- 组合健康度分数与心情符号
- 市场环境结论
- 每只标的的强弱分、盈亏率、状态标签
- 触发风险提示的标的
- 若有标的采集失败,明确指出是哪些
- 用
present_files展示 HTML 日报
场景三:定制与排障
修改 持仓日报.py。注意:
- 改代码块务必用编辑工具或按行号切片。用字符串
index()定位锚点前必须确认唯一性 —— 曾因index(' return out')命中前面的同名语句导致切片为空,str.replace('', new)把文件撑到 42 万行。 - 替换整块代码前,先列出该块内定义的所有局部变量,确认哪些被后续代码引用(曾漏掉
strength_color导致 NameError)。 - 所有动态文本写入 HTML 必须经
html.escape()—— 文案中含MA5<MA10<MA20这类裸<会被浏览器当标签解析。
常见需求与改法:
| 需求 | 位置 |
|---|---|
| 调触发阈值、权重 | 文件开头 CONFIG |
| 加数据字段 | 对应 fetch_* 函数 + compute() + 渲染模板 |
| 改视觉 | build_html 末尾的 tpl 模板(CSS 为普通单大括号,用 __TOKEN__ 占位符替换,非 .format()) |
| 改判定规则 | judge() |
| 改健康度 | build_health() |
| 改操作清单 | action_list() |
| 改解套测算 | rescue_plan() |
目录结构
personal-holdings-daily-report/
├── SKILL.md
├── scripts/
│ ├── 持仓日报.py 主脚本(自包含,约 2250 行)
│ ├── init_workspace.py 一键部署
│ └── 回测校准.py 评分有效性回测(选装)
├── references/
│ ├── 说明文档.md 面向使用者的完整说明(问题/用法/操作/提示词)
│ ├── 使用说明.md 日报各模块的解读手册
│ └── 数据源与接口.md 接口速查 + 技术坑
└── assets/
└── 持仓登记表模板.csv日报包含什么
| 模块 | 回答的问题 |
|---|---|
| 组合健康度 | 这个组合还扛不扛得住(四因子:强弱分 35% / 盈亏结构 25% / 趋势健康 20% / 风险敞口 20%) |
| 市场环境 | 今天该进攻还是防守(三大指数 MA20 位置) |
| 持仓一览 | 现价、当日、盈亏率、强弱分、状态标签 |
| 需要重点关注 | 触发异动的标的集中列出 |
| 明日操作清单 | if-then:触发线 → 动作 |
| 逐只详解 | 操作建议 → 行情持仓 → 当天大事件 → 解套测算 → 支撑/压制 → 基本面与估值 → 维度得分(折叠) |
卡片内区块按"决策相关性"排序,变化慢的沉底。
快速排障
| 现象 | 原因 | 处理 |
|---|---|---|
全部标的采集失败,报 ProxyError | 环境注入了代理 | 脚本已内置清除;若仍失败检查 os.environ.pop 是否在导入数据源之前执行 |
ETF 报 RemoteDisconnected | fund_etf_hist_em 不稳定 | 已改用 fund_etf_hist_sina,检查是否被改回 |
| 盈亏率与券商 App 差很多 | 复权口径错误 | 必须用 adjustflag='3'(不复权)。BaoStock 语义:1=后复权、2=前复权、3=不复权 |
| 财务数据是几年前的 | 漏传 year/quarter | 脚本会回溯最多 6 个季度找最近一期 |
| 基金净值比股票晚一天 | 场外基金净值当晚才公布 | 正常。Hero 区会点名滞后标的,不要前向填充 |
| 中文字段读不到 | Excel 另存 CSV 带 BOM | 读取用 encoding='utf-8-sig' |
| 某标的静默消失 | 采集失败被跳过 | 控制台会打印失败清单,向用户说明 |
更完整的技术细节见 references/数据源与接口.md。
输出纪律
- 汇报时只讲日报里有的,不补充日报未包含的判断
- 用表格呈现多标的对比,用结论前置的方式汇报
- 涉及买卖动作时附加风险提示
- 不使用"上涨概率""大概率""预计涨到"等表述