--- name: pharma-daily-report description: > 生成 A 股医药行业日报:从新浪财经抓取 20 只核心医药股实时行情,分析 7 大细分赛道排名、涨跌榜 TOP 3、资金流向,然后通过飞书发送富文本日报。 覆盖恒瑞医药、百济神州、智飞生物、药明康德、迈瑞医疗、片仔癀、云南白药等 20 只核心标的。 当用户需要 医药日报、医药行业日报、pharma daily report、 新浪财经医药数据、A 股医药板块分析、飞书推送医药数据、 制药行业快报 时触发。也适用于"帮我看一下今天医药板块"、 "给飞书发一份今天的医药数据"等口语化请求。 --- # 医药行业日报 从新浪财经免费公开接口抓取 A 股医药板块实时行情,分析后通过飞书发送日报。 ## 这个 skill 做什么 1. 抓取 20 只核心医药股实时数据(新浪 `hq.sinajs.cn`,GBK 编码,免费无需认证) 2. 计算赛道排名、涨跌榜 TOP 3、资金流向估算 3. 生成飞书富文本日报(含涨跌颜色、赛道奖牌) 4. 通过 lark-cli 发送到指定飞书对话 5. 在原始数据目录保存当日快照 JSON ## 能力边界 **能做的:** - A 股医药行业 20 只核心标的的实时快照 - 7 大细分赛道对比(创新药 / CXO / 医疗器械 / 中药 / 综合医药 / 医疗服务 / 生物制品) - 飞书 markdown 美化的日报输出 **不能做的:** - 不提供投资建议(日报自带免责声明) - 不抓取付费/Paywall 内容(只用新浪免费接口) - 不保证数据无误(来源标注为新浪,交易决策请多方交叉验证) ## 前置条件 - Python 3.8+(只用 stdlib 的 `urllib`,无需 pip 装任何包) - lark-cli 已安装且已登录飞书账号 - 能访问 `hq.sinajs.cn` 如果用户没装 lark-cli: ```bash npm install -g @larksuite/cli lark-cli auth login --recommend ``` 注意:飞书是国内服务,lark-cli 命令行前必须加 `LARK_CLI_NO_PROXY=1`。 ## 使用流程 ### Step 1:确认参数 问用户确认: - **飞书 profile**:用哪个飞书账号发?如果不清楚自己有哪些 profile,运行 `lark-cli profile list` 查看(详见 `references/feishu_profiles.md`) - **飞书对话**:发到哪个群/人?用户如果不清楚自己的 chat_id,帮他查: ```bash LARK_CLI_NO_PROXY=1 lark-cli im +chat-search --query " " --page-size 20 ``` 发给自己就用 Feishu Assistant 对话。发给群就搜群名。 - **股票池**:默认用 20 只医药核心标的(见 `references/stock_pool.md`)。用户可以说"只看创新药"或"加上某某股票"来定制。 ### Step 2:运行数据管线 直接执行 `scripts/daily_pipeline.py`: ```bash python3 scripts/daily_pipeline.py \ --feishu-profile <你的飞书profile名> \ --feishu-chat-id <你的飞书chat_id> ``` 脚本一气呵成:抓数据 → 分析 → 生成日报 → 发飞书 → 存快照。 ### Step 3:向用户汇报结果 告诉用户关键数据: - 几只上涨 / 几只下跌 / 平均涨跌幅 - 最强赛道和最弱赛道 - 领涨和领跌 TOP 3 - 飞书是否发送成功 ## 数据管线详解 ### 新浪财经实时行情接口 ``` http://hq.sinajs.cn/list=sh600276,sz300122,... ``` 返回 GBK 编码文本,每行格式: ``` var hq_str_sh600276="股票名称,今开,昨收,现价,最高,最低,...,成交金额,...,日期,时间" ``` 32 个逗号分隔字段。关键字段(从 0 开始数): | 位置 | 含义 | 示例 | |------|------|------| | 0 | 股票名称 | 恒瑞医药 | | 2 | 昨收 | 45.60 | | 3 | 现价 | 46.10 | | 4 | 今日最高 | 46.50 | | 5 | 今日最低 | 45.30 | | 9 | 成交金额(元) | 850000000 | **代码前缀规则**:6 开头 = `sh`,其他 = `sz`。 完整字段速查见 `references/sina_api.md`。 ### 赛道分类 20 只股票分为 7 个赛道(见 `references/stock_pool.md`),分析时按赛道聚合涨跌幅和成交额。 ### 资金流向估算 新浪免费接口不提供买卖方向数据。脚本用"涨的股票的成交额 - 跌的股票的成交额"粗略估算净流向,报告中标注为"估算"。 ## 常见问题 ### 股票名称出现空格 新浪返回的个别名称带空格(如"新 和 成"),脚本内置归一化。 ### 飞书消息太长 飞书 markdown 消息有约 4096 字节限制。超长自动截断并标注。 ### 非交易时段 交易时间 9:30-15:00 外,新浪返回上一个收盘价,涨跌幅接近 0。报告仍会显示,但数据时间可以判断是否实时。 ### 网络问题 新浪不可达时脚本报错退出,不使用缓存(金融数据宁可没有也不能是旧的)。 ## Next Step: 定时发送 日报做好后,用户可能想每天自动发送。建议: > 日报测试发送成功!要不要设置每天早上 9:03 自动发到飞书? > > A) 设工作日 9:03 — 每个交易日开盘前收到(推荐) > B) 设每天 9:03 — 周末也发(数据不动但能看到) > C) 暂时不设,手动跑就行