题材情绪看板/涨停跌停看板/题材复盘/数据分析 Agent
下载地址
https://www.zhengdianxue.com/wp-content/uploads/skills/xyousmart--theme-sentiment-board-agent.zip将提示词发送给你的 AI 安装该 skills
请根据 https://skillhub.cn/install/skillhub.md,安装 @xyousmart/theme-sentiment-board-agent。阅读全文 (展开查看完整说明)
概述
首牛题材情绪看板 · 私募数据分析(数据分析 Agent)
完整的「题材情绪看板」单页 Web 应用交付技能:云端数据库存储 + 实时行情自动判定涨跌停 + AI 复盘 + 发布上线。参考实现(功能完整、可直接复用):assets/index.html(单文件 HTML,约 800 行)。
何时使用
- 用户要新建/复刻一个「题材情绪看板」「涨停跌停看板」「题材复盘 Agent」类应用;
- 用户要维护、改版式、加功能到基于本技能构建的看板(如 C:UsersWWorkBuddy*theme-sentiment-board)。
应用功能清单(验收标准)
- 行情自动调取:输入 6 位股票代码自动拉取名称/现价/涨跌幅,按板块规则判定涨跌停(主板 ±10%、创业/科创 ±20%、北交所 ±30%、ST ±5%,按昨收复算涨停价);涨停=红色股票全称,跌停=绿色填充;
- 版式:题材名称在左侧第一列(sticky 行表头、题材配色),日期在顶部第一行(列表头,含周几与删除✕),每日涨停/跌停家数为底部统计行;
- 备注区:底部备注行,每交易日一列 textarea,失焦自动保存;
- 题材列表/添加/删除:删除后自动重排(sort_order 归一化 0..n-1)并同步本地状态(列立即消失,不残留);
- 题材内个股添加(调用行情)+「个股管理」面板(按个股聚合查看、整只删除、快速添加到最新交易日);
- 统计时间段选择:起止日期 + 近5/10/20日/全部快捷键,表格与折线图联动;
- 折线图:涨停/跌停家数两条曲线(红/绿),完全由表中数据生成(Canvas 手绘,无图表库依赖);
- AI 分析:把时间段内看板数据组装 payload 交给云端大模型,流式输出情绪周期/主线题材/重点个股/风险提示;
- 云端存储:PostgreSQL 三表 + RLS,多端打开数据同步。
实施步骤
1. 开通云服务(workbuddy_cloud_service 工具)
先 action:"inspect",无应用则 action:"activate" + applicationMode:"create"(appName 如「题材情绪看板」,domainPrefix 如 theme-sentiment-board)。激活后得到 publicConfig(endpoint + publishableKey,可安全写入前端)。
2. 建表(每条单独执行,migrate 模式)
CREATE TABLE themes (id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, name TEXT NOT NULL, color TEXT DEFAULT '#f7d774', sort_order INT DEFAULT 0, created_at TIMESTAMPTZ NOT NULL DEFAULT now());
CREATE TABLE stock_records (id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, theme_id BIGINT NOT NULL, trade_date TEXT NOT NULL, stock_code TEXT NOT NULL, stock_name TEXT, price NUMERIC, pct_chg NUMERIC, limit_up BOOLEAN DEFAULT false, limit_down BOOLEAN DEFAULT false, tag TEXT, remark TEXT, created_at TIMESTAMPTZ NOT NULL DEFAULT now());
CREATE TABLE daily_notes (id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, trade_date TEXT NOT NULL UNIQUE, content TEXT DEFAULT '', updated_at TIMESTAMPTZ NOT NULL DEFAULT now());RLS 两道门(缺 GRANT 会报形似策略失效的 42501),三张表都要:
ALTER TABLE <表> ENABLE ROW LEVEL SECURITY;
GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE <表> TO authenticated, anon;
CREATE POLICY <表>_all ON <表> FOR ALL TO authenticated, anon USING (true) WITH CHECK (true);注意:接口不支持多语句,一条一条执行;mode 决定角色(migrate 绕过 RLS / write 走授权角色)。
3. 页面实现(复用 assets/index.html)
- 云 SDK:
<script src="https://cdn.jsdelivr.net/npm/@tencent-ai/workbuddy-cloud-sdk@dev/lib/index.global.js">,用WorkBuddyCloud.createWorkBuddyCloud({ endpoint, publishableKey })初始化;数据库 API 为cloud.database.from(表).select/insert/update/delete().eq(...);LLM 为cloud.llm.models.list()+cloud.llm.chat.completions.create({ model, messages, stream:true })(for-await 消费 delta); - 行情获取三路兜底(浏览器直连,无后端):① 东方财富 push2 fetch → ② 东财 JSONP(
&cb=回调名)→ ③ 腾讯行情qt.gtimg.cn(script 标签加载,GBK 返回v_shXXXXXX变量,字段 p[1]名称/p[3]现价/p[4]昨收/p[32]涨跌幅,天然绕过跨域)。实测只用 fetch 会因浏览器跨域被拦截报「行情获取失败」,腾讯兜底必须有; - 涨跌停判定:
limitPctOf(code,name)按代码前缀/ST 定阈值,price 与round(昨收×(1±阈值),2)比较(1e-6 容差); - 新名称发布后记得同步改
<title>、<h1>与应用登记名(.wbapp_*.genie 的 name 字段)。
4. 发布(workbuddy_sites_deploy 工具)
action:"deploy",必须复用云服务激活返回的 applicationId 作为 appId(新建应用会换域名导致云端 Origin 校验失败),entryHtml 指向 index.html,language "static"。发布后 curl 验证 200 + 关键代码片段,并提醒用户强刷(Ctrl+F5)。
常见坑
| 坑 | 处理 |
|---|---|
| 行情获取失败 | 三路兜底缺一不可;失败提示用户强刷缓存或用「手动录入」降级 |
| 删除题材后列残留 | 云删成功后必须同步过滤本地 S.themes/S.records 再 render |
| SQL 多语句报错 | exec_sql 不支持多语句,逐条执行;长 SQL 用 sqlBase64 |
| GRANT 漏掉 42501 | 先 GRANT 再 CREATE POLICY,两步都要 |
| 版式转置后备注丢失 | 备注区要跟着移到底部统计行,data-note 事件绑定保留 |
交付与打包
- 交付物:单目录(index.html 为核心)+ 线上链接;源码在
{workspace}/theme-sentiment-board/; - 用户偏好:命名「首牛题材情绪看板 / 私募数据分析(小字副标)」,页面结构遵循左侧题材列版式。
安全说明(SkillHub 发布)
publishableKey为应用级公开密钥(服务端按 Origin 强校验),可随前端分发,不含敏感凭据;- 外部依赖仅两处 CDN/行情域名:jsdelivr(云 SDK)、push2.eastmoney.com / qt.gtimg.cn(行情);
- 无命令执行、无文件系统访问、无额外遥测;确认弹窗仅用于删除类破坏性操作。