SkillHub

stockclaw-yingyan

v1.1.1

为该股票量化项目提供 OpenClaw 接入说明,支持股票量化图生成、股票行情问答、自然语言 AI 搜股与 WebSocket 实时监控信号推送。用户发送股票代码或名称时调用量化图接口;用户发送"股票代码或名称+行情"时调用行情分析接口,接口返回 TDX 截面数据与提示词,由 OpenClaw 大模型完成趋势诊断;用户发送自然语言选股条件时调用轻量版搜股接口,最多返回 20 只股票和固定字段;用户需要实时监控信号时,先调用监控流接口获取 WebSocket 连接模板,再由客户端优先使用原生 WebSocket 能力建立长连接,并按文档中的成功判定与排障规则执行。

Sourced from ClawHub, Authored by woshixihongtu-cyber

Installation

Please help me install the skill `stockclaw-yingyan` from SkillHub official store. npx skills add woshixihongtu-cyber/stockclaw-yingyan

stockClaw-yingyan

适用场景

  • 用户只发送股票名称或股票代码
  • 用户发送"股票名称/股票代码 + 行情"
  • 用户发送自然语言选股条件,想搜索某一类股票
  • 用户要查询今天有哪些涨停股
  • 用户要接收实时监控信号推送

输入规则

  1. 如果消息只包含股票名称或股票代码,调用 POST /api/openclaw/stock/message
  2. 如果消息包含"行情"关键词,调用 POST /api/openclaw/stock/message
  3. 如果消息是自然语言选股条件,调用 POST /api/openclaw/stock/query
  4. 如果用户明确要查询涨停股股票列表,调用 GET /api/openclaw/stock/limit-up
  5. 如果要接收实时信号推送,先调用 GET /api/openclaw/stock/monitor/stream 获取 WebSocket 连接模板

自然语言 AI 搜股意图识别

满足以下特征时,应优先判断为"自然语言 AI 搜股": - 用户在描述一类股票,而不是单只股票,例如:"涨幅超过 8% 的科技股"、"换手率高的深圳股票"、"近 20 日涨幅靠前的半导体股票" - 用户带有筛选、排序、区间、排除、前 N 名等表达,例如:"大于"、"小于"、"区间"、"按涨幅排序"、"取前 20 只"、"剔除 ST" - 用户意图是"找股票列表",而不是生成单只股票量化图,也不是诊断单只股票行情

不要误判为自然语言 AI 搜股的场景: - 纯股票名称或代码:如 平安银行000001 - 明确包含"行情"并指向单只股票诊断:如 平安银行行情 - 明确要求查询"涨停股"、"今日涨停股票"、"今天涨停股有哪些" - 仅要求连接实时监控、订阅监控信号

缺失凭证时的处理规则

  • 只要调用 POST /api/openclaw/stock/messagePOST /api/openclaw/stock/query 或建立 WebSocket 实时监控连接,就必须先确认 user_idapikey 已提供。
  • 如果 user_id 缺失,必须先提示用户补充 user_id,不要直接发起接口请求。
  • 如果 apikey 缺失,必须先提示用户补充 apikey,不要直接发起接口请求。
  • 如果 user_idapikey 都缺失,必须一次性告知用户这两个值都需要提供。
  • 提示用户获取方式:前往鹰眼量化站点,在"用户中心"的"开发 API"页面查看或生成这两个值。
  • 若用户不确定入口,可直接提示访问:https://yingyan.chatface.com/

建议提示话术:

要继续使用股票量化图、行情问答、自然语言搜股或实时监控功能,请先提供 user_id 和 apikey。

这两个值可以在鹰眼量化网站的“用户中心” -> “开发 API”页面获取:
https://yingyan.chatface.com/

调用约定

1. 量化图

请求:

{
  "message": "平安银行",
  "user_id": "your_user_id",
  "apikey": "YOUR_12_CHAR_KEY"
}

处理规则: - intent=chart:返回量化图 URL - ok=false:读取 error.codeerror.message

2. 行情问答

请求:

{
  "message": "平安银行行情",
  "user_id": "your_user_id",
  "apikey": "YOUR_12_CHAR_KEY"
}

处理规则: - intent=market_query:返回结构化 TDX 截面数据、system_promptuser_prompt - 收到响应后,你(OpenClaw 大模型)必须使用返回的 system_promptuser_prompt 来生成趋势诊断 - ok=false:读取 error.codeerror.message

3. 自然语言 AI 搜股

请求:

{
  "query": "涨幅超过8%的半导体股票,按换手率从高到低排序,取前20只",
  "user_id": "your_user_id",
  "apikey": "YOUR_12_CHAR_KEY"
}

处理规则: - 调用 POST /api/openclaw/stock/query - 该能力参考 web/query/queryFundamentals.html 的自然语言理解思路,但不要复用网页端 POST /api/query/tdx 接口 - OpenClaw 场景只返回轻量结果,最多 20 只 - 返回结果仅允许包含以下字段: - 代码 - 名称 - 涨幅% - 现价 - 涨跌 - 换手% - 细分行业 - 活跃度 - 连涨天 - 昨涨幅% - 3日涨幅% - 5日涨幅% - 10日涨幅% - 20日涨幅% - 60日涨幅% - 一年涨幅% - 月初至今% - 年初至今% - 近日指标提示 - OpenClaw 应直接把结构化股票列表返回给用户;如果接口同时返回摘要字段,可优先使用摘要,再附表格结果 - ok=false:读取 error.codeerror.message

4. 涨停股专用查询

请求:

GET /api/openclaw/stock/limit-up?user_id=your_user_id&apikey=YOUR_12_CHAR_KEY

处理规则: - 当用户明确要查"今天涨停股有哪些"、"涨停股票列表"时,优先调用该专用接口 - 不要把这类请求误走通用自然语言搜股 POST /api/openclaw/stock/query - 该接口按股票代码和名称对应的涨停阈值识别结果:主板约 10%,创业板/科创板约 20%,北交所约 30%,ST 约 5% - 返回结果为结构化股票列表,可直接展示给用户

5. WebSocket 实时监控

请求:

GET /api/openclaw/stock/monitor/stream?user_id=your_user_id

处理规则: - 返回 ws_url_template,模板中包含 {apikey}{user_id} 占位符 - 由客户端填入实际的 apikeyuser_id 后建立 WebSocket 长连接 - 连接地址格式:wss://yingyan.chatface.com/ws/monitor/open?apikey={apikey}&user_id={user_id} - 连接成功后将持续接收监控信号变化推送(JSON 数组格式) - 每条推送包含:ticker(代码)、name(名称)、prev_rating(原评级)、latest_rating(新评级)、close(现价)、zhangdie(涨跌幅比例)、latest_time(时间) - 信号过滤:当评级变为 await(等待)时,服务端不会推送通知,仅推送有实际买卖意义的信号变化

6. OpenClaw 自然语言 AI 搜股的执行要求

  • 若用户输入明显是选股条件,应调用 POST /api/openclaw/stock/query,不要误走单股量化图或单股行情诊断。
  • 搜股接口返回的是股票列表,不是自由发挥的分析长文;应以结构化结果为主。
  • 默认最多返回 20 只股票;即使用户要求更多,也应以接口上限为准。
  • 不要自行扩充返回字段,严格使用接口定义的固定字段集合。
  • 可识别的意图包括:涨幅筛选、换手率筛选、区间筛选、行业筛选、地区筛选、排序、前 N 名、排除 ST、排除北交所、排除科创板、排除创业板等。
  • 如果用户明确要的是"涨停股列表",应改走涨停股专用接口,而不是通用搜股接口。

7. OpenClaw 连接实时监控的推荐执行顺序

当用户要求"连接实时监控"、"配置 WebSocket 监控"、"接收实时监控信号"时,OpenClaw 应按以下顺序执行:

  1. 先确认 user_idapikey 已填写完整;若缺失,先提示用户去鹰眼量化站点的"用户中心" -> "开发 API"获取。
  2. 可先调用一次 POST /api/openclaw/stock/message 做轻量鉴权验证,例如消息用 000001平安银行
  3. 再调用 GET /api/openclaw/stock/monitor/stream 获取 ws_url_template
  4. 将模板中的 {apikey}{user_id} 替换为真实值。
  5. 优先使用原生 WebSocket 客户端能力建立连接,不要把安装 wscatwebsocatcurl WebSocket 插件当成默认流程。
  6. WebSocket onopen 或等价握手成功后,就应判定为"实时监控连接成功"。
  7. 连接成功后保持等待;如果暂时没有收到任何消息,不能据此判定失败。

8. OpenClaw 在实时监控场景下的强约束

  • 不要默认先尝试安装或调用 wscatwebsocatcurl 特殊模式;这些只可作为人工排障兜底方案,不是首选接入路径。
  • 若平台本身支持 WebSocket 客户端,应直接连接 ws_url_template 替换后的正式地址。
  • 服务端不会在连接建立后主动发送欢迎包、首包或心跳说明;连接后暂时沉默是正常现象。
  • 只有监控信号发生变化时,服务端才会推送 JSON 数组消息。
  • 当最新评级变为 await 时,服务端不会推送,所以"已连接但暂时无消息"通常代表当前没有有效买卖信号变化。
  • 如果连接被关闭且关闭码为策略拒绝(常见为 1008),应优先检查:apikey 是否和会员中心保存的一致、user_id 是否正确、会员状态是否有效、会员等级是否满足 monitor.html 权限要求。

9. 连接成功后的用户反馈要求

  • 一旦握手成功,应明确告诉用户:"WebSocket 连接已成功建立,当前正在等待实时监控信号。"
  • 如果几秒到几十秒内没有推送,应补充说明:"这是正常现象,服务端只在监控信号变化时推送。"
  • 如果收到 JSON 数组消息,再把结构化内容转述给用户。
  • 如果连接失败,不要笼统说"连接异常";要优先说明最可能的鉴权或权限原因。

返回处理

  • 如果返回 image_url,直接把图片 URL 返回给用户
  • 如果返回 render_markdown,优先把它作为聊天渲染内容返回给客户端
  • 如果返回 system_promptuser_prompt,按照下方"行情问答提示词"完成分析并返回
  • 如果返回自然语言搜股结果,优先返回精简表格或结构化列表,保留字段顺序与接口一致
  • 如果返回 candidates,提示用户从候选股票中进一步明确代码或名称

行情问答提示词

intent=market_query 时,API 返回 system_promptuser_prompt 字段。你应按如下方式使用:

系统提示词(system_prompt)

你是一个只基于给定 TDX 股票字段和规则摘要进行推理的 A 股趋势诊断器。

任务边界:
1. 只能使用输入中明确提供的字段、数值和规则侧摘要,不得虚构新闻、公告、财报细节、资金流细节或 K 线结构。
2. 若信号互相冲突、字段缺失较多、估值无法判断或趋势不稳,必须主动降低置信度并说明原因。
3. 趋势判断只能使用"偏强 / 震荡 / 偏弱"等概率性语言,禁止"必涨""一定反转""稳健翻倍"等绝对化表述。
4. 分析重点是未来短期(1-2 周)与中期(1-3 个月)的趋势倾向、观察条件和风险,不要写成长篇泛化研报。
5. 如果某个结论的支撑不足,就明确说"当前证据不足",不要硬给结论。

输出要求:
- 使用 Markdown。
- 严格按照以下标题输出,不要改标题名:

## 趋势判断
- 短期趋势:...
- 中期趋势:...
- 置信度:高 / 中 / 低,理由...

## 关键依据
- ...
- ...

## 风险与反证
- ...
- ...

## 操作建议
- ...
- ...

## 免责声明
- 仅基于最新 TDX 截面数据生成,不构成投资建议。

写作要求:
- 先结论,后依据。
- 每条依据尽量引用具体字段名和数值。
- 风险部分必须包含至少一个反证点;如果暂未发现极端风险,也要写"当前未见明显极端风险,但仍需继续观察 xxx"。
- 操作建议要与趋势和置信度一致,避免一边说高波动一边给出激进追涨建议。

用户提示词(user_prompt)

API 会返回基于 TDX 截面数据自动构建的用户提示词,包含以下结构化信息: - 诊断对象(股票名称、代码、行业、地区) - 规则侧预判(短期趋势、中期趋势、置信度、可用信号数、主要冲突) - 行情快照(现价、涨幅、今开、最高、最低等) - 短线动量信号(涨幅、量比、换手率、近日指标提示等) - 中线趋势信号(20/60 日涨幅、强弱度、连涨天等) - 资金与基本面信号(主力资金、估值、财务概况等) - 已识别风险

请直接将 user_prompt 作为用户消息,配合上方系统提示词完成趋势诊断。

参考资料

  • 接口字段说明见 reference.md
  • 调用示例见 examples.md