Skill Hub · 诺亚 AI 能力中心 静态参考版

让每一个技能成为可信资产 —— 诺亚 Agent 生态的技能资产中心:统一注册、检测把关、按需复用。本站为 skill-hub.noahgroup.com 于 2026-08-21 的全量数据镜像。

镜像采集 2026-08-2166 个已发布技能18 个分类 · 3 条分发渠道含技能包 SKILL.md 全文
← 返回目录

个股资金流分析

SKILL_445958819 · vv1.0 · iARK 线上 · Owner:— · 发布于 2026-08-17
调用 99 下载 0 点赞 0 浏览 0
简介
基于脚本客观计算并输出个股近7日主力趋势、多空情绪与散户占比,严禁预测涨跌或提供操作建议。
触发词
资金流分析,主力趋势,散户情绪,小单占比,多空情绪
分发渠道
ARK Engine
功能测试
✅ 通过 · 业务评审:✅ 通过
技能包文件
stock-fund-flow-analysis/SKILL.md、stock-fund-flow-analysis/scripts/stock_fund_flow_analysis.py
使用示例:分析腾讯控股近7日的主力资金流向和散户情绪变化。

SKILL.md 全文

Frontmatter

name个股资金流分析
description个股资金流多空情绪分析技能。当用户要求生成个股资金流分析、判断主力资金对近7个交易日趋势的影响(延续/扭转/加速)、分析散户情绪与小单占比变化时触发。调度 Job 负责决定触发时间;Skill 收到任务后必须实际获取资金流和 K 线数据。核心机制是"脚本计算衍生字段 + LLM 生成结构化总结"。不适用于股价预测、点位判断、买卖操作建议或适当性判断。

个股资金流多空情绪分析技能(stock-fund-flow-analysis)

基于个股资金流数据,通过脚本计算衍生字段(主力口径、小单占比、近7日趋势),LLM 将只读数值组织为结构化 JSON 分析。不做股价预测或估值判断,仅描述客观资金流方向与规模。

职责

| 职责 | 说明 | |:----|:------| | 触发时机 | 由外部 Job 或主控决定;Skill 内不查询或限制市场开闭状态 | | 资金流数据获取 | 调用 Noah MCP 资金流 + K线接口获取原始数据 | | 确定性计算 | 脚本计算衍生字段,LLM 不心算 | | 结构化输出 | 将脚本只读字段组织为 JSON 响应 | | 合规护栏 | 不预测涨跌、不出操作建议 |

输入

定时触发模式(Step 1→Step 5)

入口判断:由外部定时 Job 决定何时发起;Skill 不校验交易日、市场状态或开盘时段
由主控传入:

用户主动查询模式(Step 1→Step 5)

入口判断:用户主动请求某个股的资金流分析;无论市场状态如何均执行数据获取
由主控传入(stock_name 和 stock_code 至少提供一个即可触发,缺失的由 Step 1 自动补全):

引用路由表

| 用户意图 | 加载参考文件 | |:---------|:------------| | 脚本计算逻辑与衍生字段定义 | {skill_root}/scripts/stock_fund_flow_analysis.py(只读) |

输出

直接返回结构化 JSON 响应消息(Schema 见 Step 5),在内存中拼接,不写磁盘文件。

⛔ 执行流程(强制检查点,按顺序执行,禁止跳步)

全局规则
- 每个检查点必须完成后才能进入下一个,未输出📋行视为执行失败
- 禁止跳步铁律:Step 1→2→3→4→5 必须严格按序执行,不得以任何理由跳过中间步骤。即使 LLM 认为"可以直接用原始数据生成输出",也必须先调用 Step 3 脚本。违反此规则视为执行失败。
- 所有 📋 Step N … 检查点行严禁出现在面向用户的最终 JSON 响应中
- 面向用户的最终响应必须且仅能是一个合法 JSON 对象(从 { 开始到 } 结束),不得在 JSON 前后附加任何字符(包括空行、换行、Markdown 代码块标记 \\\json / \\\、自然语言文字、📋检查点文本)
- 任何中途终止/失败场景,一律输出降级 JSON(success=false),不得输出自然语言提示或空对象
- 脚本强制执行铁律:Step 3 的 stock_fund_flow_analysis.py 脚本调用是整个流程的必经环节,不可省略、不可替代、不可用 LLM 心算代替。未执行脚本就生成 desc 视为严重违规。
- 脚本调用必须使用 execute_bash + stdin 管道,严禁 fs_write/str_replace 创建临时文件
- search_stock 仅限 Step 1 标的校验使用,Step 2 及之后禁止调用
- 脚本输出的衍生字段为只读常量,LLM 不得覆盖、心算或二次加工
- desc 数据来源铁律:Step 5 中 desc 的所有数值(金额、倍数、百分比、方向词)必须且只能来自 Step 3 脚本输出的 derived_fields 中的 7 个字段。禁止直接引用 Step 2 原始接口返回的数值(如 inFlow、superInFlow、capitalFlowItemTime 等原始字段)。
- 任何数据必须来自 MCP 接口真实返回,严禁用记忆/训练数据填充;缺失标注「数据缺失」
- 合规红线贯穿全流程:禁止预测涨跌/点位/目标价;禁止操作建议;禁止适当性判断

Step 1:触发判定与标的校验

操作: 1. 判断输入是否提供 stock_name 或 stock_code(至少一个即可触发),且请求属于资金流分析类。 2. 强制调用 search_stock 查询标的基本信息,确定搜索关键词(按优先级尝试):

3. 从返回结果中选取目标标的:优先取 uniqueCode 精确等于用户输入 stock_code 的那条;若无精确匹配,取 generaType=1001(正股)的首条,并补全: 4. 标的校验成功后,立即进入 Step 2:不调用 get_market_state,不调用 request_trading_days,不根据市场开闭、是否交易日、盘前盘后或触发时间终止或降级。

内嵌规则

自检点(仅内部验证,禁止输出到最终响应):

📋 Step 1 标的校验:✅/❌ | stock_name=... | stock_code=... | market=[HK/US] | search_stock=[成功/失败] | 下一步=[Step 2]

失败处理

Step 2:数据获取(资金流 + K线)

强制取数门控:Step 1 标的校验成功后,必须并行实际调用本步骤两项接口;不得基于市场状态、交易日、盘前盘后或历史经验预判接口无数据并跳过调用。

操作: 1. 并行调用 get_capital_flow(num=8)和 get_cur_kline(K_DAY, QFQ, num=8)。 2. 以接口实际返回为准,按日期对齐并校验可用于计算的交易日数据覆盖≥7日。

MCP 调用编排:

| # | 接口 | 入参 | 取什么 | 用途 | |---|------|------|--------|------| | 1 | get_capital_flow | stock_code, num=8 | superInFlow/bigInFlow/midInFlow/smlInFlow/capitalFlowItemTime | 各档资金流 | | 2 | get_cur_kline | code, ktype=K_DAY, autype=QFQ, num=8 | turnover/tradeDateTime/closePrice | 成交额(占比分母)+ 日期对齐 |

Error Handling

| 场景 | 策略 | |:-----|:-----| | capital_flow 接口实际失败或返回空 | 重试一次;仍失败才输出降级 JSON | | kline 接口实际失败或返回空 | 重试一次;仍失败才输出降级 JSON | | 可对齐数据不足7日 | 输出降级 JSON |

核心原则

自检点(仅内部验证,禁止输出到最终响应):

📋 Step 2 数据获取:✅/❌ | capital_flow=[已调用,N条] | kline=[已调用,N条] | 日期范围=[...] | 完整性=[完整/缺失说明]

Step 3:确定性计算(脚本衍生字段)⚠️ 不可跳过

⚠️ 本步骤为流程硬性必经环节:无论 Step 2 数据多么"直观"或"简单",LLM 都必须调用脚本而非自行计算。
没有 Step 3 的 derived_fields 输出,Step 4 和 Step 5 的所有后续操作均为非法。

操作(依赖 Step 2): 1. 将 Step 2 获取的原始数据拼接为 JSON,通过 stdin 管道调用脚本:

   echo '{"capital_flow_raw": [...], "kline_raw": [...], "stock_name": "..."}' | \
     python3 {skill_root}/scripts/stock_fund_flow_analysis.py
   
2. 读取 stdout JSON,提取 derived_fields 对象,包含 7 个只读字段:

| 字段 | 含义 | 格式示例 | |:-----|:-----|:--------| | today_main_net | 当日主力净流入金额 | -1.5亿340万 | | today_dir | 方向 | 净流入 / 净流出 | | today_vs_avg | 当日相对6日均值倍数 | 0.2倍1.8倍 | | today_impact | 定性判断 | 延续 / 扭转 / 加速 | | flow_7d_change | 7日主力变化描述 | 从34.6亿降至-1.5亿(-104%) | | trend_7d | 7日趋势描述 | 净流入(累计60.6亿) | | retail_ratio_trend | 散户占比趋势 | 0%-2%,最新2%(上升) |

3. 门控校验:确认 stdout 返回的 JSON 中存在 derived_fields 且 7 个字段均非空。任何字段缺失 → 重试一次,仍失败则输出降级 JSON。

脚本计算逻辑(LLM 不可替代):

自检点(仅内部验证,禁止输出到最终响应):

📋 Step 3 脚本计算:✅/❌ | today_main_net=[值] | today_dir=[方向] | today_impact=[判定] | trend_7d=[值] | retail_ratio_trend=[值] | 执行=[成功/失败]

失败处理:脚本输出 error / 超时 / 解析失败 → 重试一次,仍失败则输出降级 JSON

Step 4:规则分析(要点组装)

前置门控:进入本步骤前,必须确认 Step 3 的 derived_fields 已成功获取。若 Step 3 未执行或失败,禁止进入本步骤。

操作: 1. 使用 Step 2 实际返回并经 Step 3 对齐计算的最近7个交易日数据,固定使用全部5个要点。 2. 基于 Step 3 的衍生字段生成标题和描述所需的客观结论;不使用市场状态或开盘时长判定分析范围。

五大要点(字段值必须原样引用 Step 3 脚本 derived_fields 输出,禁止改写数值、禁止用原始接口数据替代): 1. 当日主力动向:{today_main_net}{today_dir}),规模为均值的 {today_vs_avg}。 2. 当日对近7日格局影响:{today_impact}。 3. 主力近7日趋势:{flow_7d_change},整体呈 {trend_7d}。 4. 散户情绪:小单占比 {retail_ratio_trend}。 5. 博弈透视:基于1-4客观数据的定性分析(LLM 生成)。

禁止行为

自检点(仅内部验证,禁止输出到最终响应):

📋 Step 4 规则分析:✅/❌ | 分析窗口=[最近7个交易日] | 要点=[1,2,3,4,5] | 数值来源=[全部来自derived_fields] | 数值校验=[通过]

Step 5:合成输出(结构化 JSON)

操作(依赖 Step 1~4): 1. 生成 title:动态摘要,概括近7日主力方向、末日影响判定与散户情绪关键变化,≤25字。 2. 生成 desc:整合全部5个要点为一段约150-200字连贯自然语言正文。 3. 生成 3 个 questions(追问问题)。 4. 组装最终 JSON 5. 对照禁用词做最终扫描

输出 JSON Schema(唯一权威定义)

⚠️ 最终响应发射协议(纯净输出铁律):在所有工具调用、计算和内部自检完成后,最终面向用户的响应必须直接以 { 作为第一个字符,并且有且仅有一个合法 JSON 对象,以 } 作为最后一个字符。
禁止生成过程叙述:最终响应前禁止写任何步骤状态、完成确认、计划或解释,例如“步骤 3 已完成”“步骤 4/5:组装最终 JSON”“脚本返回了全部字段”“以下为结果”。这些文字即使事实正确也属于违规输出。
禁止在 JSON 前后输出任何字符,包括但不限于:空行、换行、空格、Markdown 代码块标记(\\\json / \\\)、自然语言说明、📋检查点文本、注释。违反此规则视为执行失败。
JSON 结构分隔符必须使用英文标点:字段之间的逗号必须是英文半角逗号 ,(U+002C),禁止使用中文全角逗号 (U+FF0C)作为 JSON 结构分隔符。字符串值内部的中文逗号不受限制,但字段与字段之间、数组元素之间的分隔符必须严格为英文逗号。
最终发射前静默自检:仅在内部确认“首字符为 {、末字符为 }、可被 JSON.parse() 解析、没有过程叙述”后,才输出 JSON;不要把自检结论写入响应。

标准输出示例(成功场景):

{"success":true,"title":"腾讯控股主力扭转流出散户上升","updateTime":"08/12 10:16","desc":"腾讯控股今日主力资金为-1.5亿,方向为净流出,规模为近6日均值的0.2倍,对7日资金格局形成扭转。从7日变化看,主力资金从34.6亿降至-1.5亿(-104%),但7日累计仍呈净流入(累计60.6亿),说明短线方向与阶段累计方向出现分化;小单占比处于0%-2%,最新2%(上升),散户参与度有所抬升,需继续观察后续资金结构是否延续分化。","questions":[{"prompt":"请分析HK-00700:主力结构如何","title":"主力结构如何"},{"prompt":"请分析HK-00700:小单占比变化","title":"小单占比变化"},{"prompt":"请分析HK-00700:多日趋势延续吗","title":"多日趋势延续吗"}]}

字段完整定义:

{
  "success": true,
  "title": "动态摘要≤25字",
  "updateTime": "MM/DD HH:mm",
  "desc": "约150-200字连贯段落",
  "questions": [
    {"prompt": "请分析[stock_code]:问题≤15字", "title": "问题≤15字"}
  ]
}

字段约束

降级 JSON(数据不可用 或 任何中途失败时):

{"success":false,"title":"[stock_name]资金流数据暂不可用","updateTime":"MM/DD HH:mm","desc":"当前资金流数据源暂不可用,无法生成分析。","questions":[]}

自检点(仅内部验证,禁止输出到最终响应):

📋 Step 5 合成输出:✅/❌ | JSON完整=[是] | title字数=[N] | desc字数=[约N字] | questions=[3] | 禁用词=[通过]

通关标准: | 检查项 | 标准 | 禁止 | |:-------|:-----|:-----| | 纯净度 | 输出第一个字符为 {,最后一个字符为 } | JSON 前后有任何非 JSON 字符 | | 过程叙述隔离 | 最终响应只含 JSON,内部步骤状态保持静默 | “步骤已完成”/“组装 JSON”/“以下为结果”/脚本执行说明 | | 格式 | 严格符合 JSON Schema,可被 JSON.parse() 直接解析 | 非法 JSON / Markdown / 多余逗号 | | success | 正常为 true,降级为 false | 遗漏该字段 | | title | ≤25字动态摘要 | 固定模板/超长 | | updateTime | MM/DD HH:mm 格式 | 遗漏/格式错误 | | desc 字数 | 固定150-200字,覆盖全部5个要点 | 超长(>250字)/ 过短(<80字) | | desc 数据溯源 | 所有数值必须可追溯到 Step 3 脚本 derived_fields 的 7 个字段 | 引用原始接口数值 / 自行心算 / 出现原始时间戳格式 | | desc 金额格式 | 使用"X.X亿"/"X万"等脚本格式化值 | 出现未格式化的原始数字(如 43287472.46) | | desc 日期格式 | 使用 MM/DD 或"今日"/"近7日"等可读格式 | 出现原始时间戳(如 20260804100823) | | questions | 3个,每个含 prompt+title | 数量错/缺 prompt/含操作词 | | 检查点隔离 | JSON 中无📋文本 | 检查点外泄 | | 脚本执行验证 | Step 3 脚本已实际调用且返回成功 | 跳过脚本直接生成 desc |

禁用词红线(输出前逐条对照):