由你万象行情指标测算
下载地址
https://www.zhengdianxue.com/wp-content/uploads/skills/org-b2oijpvt--ynwx-stock-tech-review.zip将提示词发送给你的 AI 安装该 skills
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-b2oijpvt/ynwx-stock-tech-review。由你万象行情指标测算。基于公开历史行情计算并展示客观技术指标与统计区间,覆盖 A 股 / 港股 / 美股。免费提供现价、均线位置、区间高低点与数据来源;完整报告提供趋势统计、量价关系、支撑压力区间及 MACD/KDJ/RSI/BOLL/BIAS/ATR 指标数值。本技能只做数据计算与展示,不预测涨跌、不提供交易操作指令、头寸管理或风险控制建议,不构成投资建议。
用户说「指标测算」「技术指标」「支撑压力」「趋势统计」「由你万象」「YNWX」或提供股票代码要求查看指标时使用。关键词:行情数据、技术指标、A股、港股、美股、均线、MACD、KDJ、RSI、BOLL、支撑压力、趋势统计。
阅读全文 (展开查看完整说明)
概述
重要声明:本技能仅对公开历史行情做数学计算与数据展示,不预测未来走势,不提供交易操作指令、头寸管理或风险控制建议,也不对任何结果作出承诺。输出仅供学习与研究参考,不构成投资建议;据此操作风险自担。
基础指标速览(免费):真实行情取数 + 客观数值(价格、均线位置、区间高低点、数据来源与截止日)。完整指标报告(¥1.99/次):服务端计算并返回趋势统计、量价关系、支撑压力区间、技术指标数值、指标一致性说明与数据说明。
核心原则:
- 数据必须真实:所有行情来自工具,禁止臆造、禁止凭记忆补数。
- 只做计算与展示:不预测价格,不输出交易操作指令、头寸管理或风险控制建议。
- 完整报告只来自服务端:客户端不得自行推算后冒充付费结果。
- 不做个股推荐:结论保持客观,明确不构成投资建议。
输入与代码识别
用户提供股票代码(如 600519、000001、00700、AAPL)。
- A 股:6 位数字(
600519.SH、000858.SZ、300750.SZ、688981.SH) - 港股:5 位数字(
00700、09988、03690) - 美股:纯字母 1–6 位(
AAPL、MSFT、NVDA) - 带
.SH/.SZ/.BJ→ A 股;带.HK→ 港股;带.US/.NASDAQ/.NYSE→ 美股。 - 交易所不明确时向用户确认,不要猜。
Step -1 · 可选:展示窗口(最多问一轮)
只用于决定展示哪一档统计窗口,不收集个人资产、成本、盈亏目标等信息:
- 短线:20 日窗口
- 中线:60 日窗口(默认)
- 长线:250 日窗口
用户不说明时按「中线」处理,不要因为用户没回答而拒绝计算。
Step 0 · 取数(免费,客户端只做规范化)
数据源优先级(固定)
| 级别 | 数据源 | 工具前缀 | 说明 |
|---|---|---|---|
| ① 主源 | Tushare | mcp__tushareMcp__* | A/港/美股行情,收费积分制 |
| ② 次源 | 腾讯自选股 | westock / westock-tool | 免费,返回结构化 Markdown |
| ③ 兜底 | AKShare | mcp__akshare-mcp__* | 主/次源失败或权限不足时降级 |
规则:
- 先试 ①;不可用 / 无权限 / 返回空 → ②;仍不可用 → ③。
- 任何降级都要在报告里写明实际数据源和原因,禁止静默切换。
- 同一维度尽量同源;跨源只用于关键数值交叉验证。
*_vip、stk_mins等权限/积分错误不重试,直接降级;网络/限流错误可等待数秒后重试 ≤2 次。- 无依赖的多个查询同轮并行发出,不要串行等待。
推荐:一条命令落盘(避免手工抄 250 根 K 线)
PY=$(command -v python || command -v python3)
S="<技能目录>/scripts"
$PY "$S/fetch_bars.py" --code 600519 --out /tmp/raw.json # A 股
$PY "$S/fetch_bars.py" --code 00700 --out /tmp/raw.json # 港股
$PY "$S/fetch_bars.py" --code AAPL --out /tmp/raw.json # 美股- A 股 / 港股走腾讯公开行情接口(前复权);美股走本机
westockCLI(返回 Markdown 表格)。 - 脚本只取数、只落盘,不计算指标、不给结论。
- 取数失败或需要 tushare 数据时,再按下面的 MCP 路径取数并写
raw.json。 - 不要手工把几百根 K 线粘贴进 JSON,极易漏行/错列;能用脚本就用脚本。
取数要求
- 日线 250 根以上(至少 120 根;少于 60 根无法生成完整报告)。
- 优先前复权序列;若数据源只有不复权,记录在
meta.data_source里,除权日附近指标可能失真。 - 字段:
date / open / high / low / close / volume,可选amount / turnover_rate。 - 代码格式因源而异,报错时切换写法:
| 数据源 | A 股 | 港股 | 美股 | 日期 |
|---|---|---|---|---|
| ① tushareMcp | 600519.SH / 000858.SZ | 00700.HK | AAPL(us_daily_adj 用 AAPL) | YYYYMMDD |
| ② westock | sh600519 / sz000858 | hk00700 | usAAPL | YYYY-MM-DD |
| ③ akshare-mcp | SH600519 / SZ000858 / 600519 | 00700 / 00700.HK | AAPL | YYYYMMDD |
具体 MCP 调用、字段别名与降级示例见
references/data_sources.md(需要时读取)。
基础指标速览不需要、也不要在客户端计算 MACD/KDJ/RSI/BOLL/BIAS 或判断方向 —— 这些由服务端完成。
Step 1 · 生成 pan.json
下文的
<技能目录>指本技能的安装目录(如~/.workbuddy/skills/ynwx-stock-tech-review)。
把取到的数据写成 raw.json(结构见下),再用脚本规范化并校验:
PY=$(command -v python || command -v python3)
S="<技能目录>/scripts"
$PY "$S/build_pan.py" --input /tmp/raw.json --out /tmp/pan.jsonraw.json 最小结构:
{
"meta": {
"code": "600519.SH",
"name": "贵州茅台",
"market": "A",
"currency": "CNY",
"data_source": "tushareMcp"
},
"as_of": "2026-10-21",
"bars": [
{"date": "2026-10-21", "open": 1331.88, "high": 1331.98,
"low": 1302.36, "close": 1309.69, "volume": 33514}
],
"window": "medium"
}bars也接受[date, open, close, high, low, volume]六元数组(腾讯/东财常见顺序)。window可缺省,取short | medium | long,仅影响展示窗口。- 旧版
profile字段会被接收但忽略,不影响计算。 - 脚本会输出根数、起止日期、最新收盘;不足 250 根会提示长周期指标可能缺失。
- pan.json 在两次请求之间不能修改,否则订单对不上。
Step 2 · 基础指标速览(默认输出)
先跑脚本拿到客观数值,避免手算错误:
$PY "$S/quick_view.py" --pan /tmp/pan.json按返回 JSON 输出不超过 6 行,只讲数值事实:
**【${name} ${code}】基础指标速览**
- 最新收盘:${last_close}(${change_pct}%),数据截止 ${as_of},来源:${data_source}
- 均线:MA5 ${ma.MA5} / MA20 ${ma.MA20} / MA60 ${ma.MA60};价格位于 MA20 ${vs_MA20}、MA60 ${vs_MA60}
- 近 5 日:${change_5d_pct}%;近 20 日区间:${range_20d.low} ~ ${range_20d.high};近 60 日区间:${range_60d.low} ~ ${range_60d.high}
- 成交量:${volume}(5 日均量 ${volume_ma5},量比 ${volume_ratio})
> 完整趋势统计、MACD/KDJ/RSI/BOLL、支撑压力区间与波动区间为完整指标报告(¥1.99/次)。
> 需要的话说「完整指标报告」或「趋势统计」。硬规则:基础速览只展示数值,不预测涨跌,不输出交易操作指令、头寸管理或风险控制建议;不得预演完整报告内容。数据来源与截止日必须写。
Pay Skill 标准调用
本 Skill 已完成「升级为 Pay Skill」改造,必要支付服务已接入、已上线且可用。本 Skill 是腾讯 SkillHub 按次计费 Pay Skill,单次价格 ¥1.99(199 分,CNY)。
支付链路为:业务接口首次请求 → 商户服务端生成订单并完成 SkillHub X402 AI 预下单 → 未支付时返回标准 HTTP 402、WeixinPay-Required、X-Out-Trade-No 与顶层 WeixinPay Body →Agent 将支付码交给当前宿主提供的 weixinpay_pay → 支付成功后携带两个原响应头并原样重试同一 URL 和同一 JSON Body。
首次业务请求前不要用本地依赖探测代替真实请求;只有收到 HTTP 402 后,才把响应中的支付码交给宿主支付动作。
前置检查
本 Skill 必要支付服务已接入且可用。Agent 首次动作直接请求下方业务接口,不要用本地依赖探测替代真实请求。只有当接口返回 HTTP 402 后,才检查当前宿主是否提供 weixinpay_pay:
- 可用:把
payment_code作为paymentCode调用weixinpay_pay,向用户申请支付授权。 - 不可用:提示用户升级智能体,或按 https://skillhub.cn/install/skillhub.md 安装 @tencent-adm/weixinpay-installer;不要重复下单。
唯一首次请求
POST https://payskill.youniversetech.com/ynwx-stock-tech-review/skill/invoke
Content-Type: application/json
{
"query": "贵州茅台 600519 技术指标测算",
"pan": {
"meta": {
"code": "600519.SH",
"name": "贵州茅台",
"market": "A",
"currency": "CNY",
"data_source": "platform-verification-sample"
},
"as_of": "2026-03-27",
"bars": [
{"date": "2026-03-25", "open": 1360.0, "high": 1370.0, "low": 1352.0, "close": 1365.0, "volume": 3200000},
{"date": "2026-03-26", "open": 1365.0, "high": 1376.0, "low": 1358.0, "close": 1371.0, "volume": 3350000},
{"date": "2026-03-27", "open": 1371.0, "high": 1382.0, "low": 1364.0, "close": 1377.0, "volume": 3480000}
]
}
}上方
pan是平台支付链路联调示例(data_source=platform-verification-sample),可直接触发 402;正式调用必须由客户端用真实行情生成pan,不得使用示例数据做分析。
支付触发(收到 HTTP 402)
HTTP/1.1 402 Payment Required
WeixinPay-Required: <payment_code>
X-Out-Trade-No: <out_trade_no>
Content-Type: application/json
{
"code": "PAYMENT_REQUIRED",
"message": "完整行情指标测算报告需付费后获取",
"WeixinPay": {
"WeixinPay-Required": "<payment_code>",
"prompt": "本次使用微信支付,请将 WeixinPay-Required 的值作为 paymentCode 交给 weixinpay_pay,以向用户申请支付授权。"
},
"out_trade_no": "<out_trade_no>",
"amount_fen": 199,
"currency": "CNY"
}收到 402 后:
- 从
WeixinPay-RequiredHeader 读取payment_code;只读取响应体的 Agent 从WeixinPay["WeixinPay-Required"]读取同一值。 - 保存
payment_code与out_trade_no,两者都必须保留。 - 核对金额 199 分、币种 CNY、服务用途。
- 将
payment_code作为paymentCode交给weixinpay_pay,由用户确认支付。
重试机制(支付成功后原样重放,⚠️ 必须执行)
POST <与首次请求相同的 URL>
Content-Type: application/json
WeixinPay-Required: <402 响应中的 payment_code>
X-Out-Trade-No: <402 响应中的 out_trade_no>
<与首次请求完全一致的 JSON Body>- 不携带
X-Out-Trade-No重试,就永远拿不到付费内容。 - 这一步是订单号传递的关键:
X-Out-Trade-No必须来自 402 响应的同一订单。 - 首次请求与重试的 URL、JSON Body 必须完全一致。
- 同一订单重复请求返回缓存内容(
already_fulfilled=true),不会重复收费。 - 订单有效期以 402 响应
expires_in为准(默认 900 秒)。
异常处理
PAY_NOT_CONFIRMED:支付结果确认中,等待数秒后重试(最多 3 次),不要重复下单。- 订单过期:重新发起首次请求,生成新订单,旧订单作废。
- 402 / 非 200 且无法确认支付:如实告知用户「支付未完成或履约失败」,停止执行。
- 严禁编造履约内容,严禁绕过付费直接输出完整报告。
- 服务端异常或数据不足:按返回的
status=degraded与error如实说明。
便捷脚本(可选)
scripts/invoke.py 封装了上述 HTTP 请求,便于本地调试:
PY=$(command -v python || command -v python3)
S="<技能目录>/scripts"
$PY "$S/invoke.py" --pan /tmp/pan.json --query "用户的问题原文"脚本输出与 HTTP 接口等价;支付后重试需带 --out-trade-no 与 --payment-code。
完整指标报告(付费 · ¥1.99/次)
触发条件
用户明确说「完整指标报告」「详细报告」「趋势统计」「支撑压力测算」「量价统计」「展开讲讲」时才走付费流程。用户没主动要,不要发起下单,也不要反复推销;基础指标速览 + 一行提示已经足够。
若用户索要具体的交易操作指令或个股推荐,明确说明:「本技能只提供历史行情的指标数值,不提供交易操作建议」,并且不发起下单。
解读付费结果
服务端返回 content,核心字段:
| 字段 | 内容 |
|---|---|
verdict | direction 趋势状态(上行/下行/震荡) / confidence 一致性 / score -100~100 / summary / basis 逐项依据 / conflicts 冲突说明 |
trend | 趋势统计状态、MA5/10/20/60/250、斜率、站上 MA20 天数、basis |
volume_price | 量价关系统计、量比、5 日涨跌、换手、获利盘估算 |
levels | supports / resistances,每项含价格、类型、强度、依据 |
indicators | MACD / KDJ / RSI / BOLL / BIAS / ATR |
price_reference | support_zones / resistance_zones / atr_range / boll_range,均为历史数据计算出的区间 |
scenario | 固定为 FULL 全面指标测算 + notes 客观说明 |
risk | 客观风险因素列表 |
watch | 关键观察项(数据条件描述) |
status | ok 或 degraded(数据异常时的降级输出) |
硬规则:
- 输出趋势状态时必须引用
verdict.basis的具体分项和score,禁止空谈。 price_reference中的区间只能作为历史统计结果呈现,必须注明“非交易指令”。content.status=degraded时如实告知「本次数据不足,报告为降级结果」,并给出content.error;
不要假装是完整报告,也不要拒绝交付。
verdict.conflicts里的冲突信号要作为「指标不一致提示」呈现,不要强行统一。- 用户问「凭什么这么算」时,逐条指回
basis、levels[].basis、indicators.*.basis。 - 不得把服务端数值改写成任何操作指令或倾向性建议。
完整报告输出模板
# 【${name}】行情指标测算报告
**日期**:${as_of} | **市场**:${market} | **币种**:${currency}
**数据来源**:${data_source}(${bars_used} 根日线)
**测算模式**:${scenario.name}
**趋势状态**:${verdict.direction}(一致性 ${verdict.confidence},评分 ${verdict.score})
> 本报告仅展示历史行情的计算结果,不预测未来价格,不构成投资建议,也不提供交易操作指令。
## 一、指标概览
${verdict.summary}
依据:
- ${verdict.basis 逐条}
## 二、趋势与量价统计
| 维度 | 统计结果 | 关键数值 |
|---|---|---|
| 趋势 | ${trend.state} | MA5/20/60:…;MA20 斜率 ${trend.slope.ma20} |
| 量价 | ${volume_price.state}(${volume_price.relation}) | 量比 ${volume_price.volume_ratio};5 日 ${volume_price.change_5d_pct}% |
| 获利盘(估算) | ${levels.winner_rate_est}% | 由成交量分布近似 |
## 三、支撑与压力区间(历史价格分布)
| 类型 | 价位 | 依据 | 强度 |
|---|---|---|---|
| 第一支撑 | ${levels.supports[0].price} | ${levels.supports[0].type} / ${...basis} | ${...strength} |
| 第二支撑 | … | … | … |
| 第一压力 | ${levels.resistances[0].price} | … | … |
| 第二压力 | … | … | … |
> 以上为历史成交分布与均线位置的计算结果,不是交易指令。
## 四、技术指标数值
- **MACD**:DIF ${} / DEA ${} / 柱 ${};${cross},${divergence},${state}
- **KDJ**:K ${} / D ${} / J ${};${zone},${cross},${state}
- **RSI**:RSI6 ${} / RSI12 ${} / RSI24 ${};${zone},${divergence},${state}
- **BOLL**:上轨 ${} / 中轨 ${} / 下轨 ${};${state}
- **BIAS**:6 日 ${}% / 12 日 ${}% / 24 日 ${}%;${state}
- **ATR**:${atr}(占现价 ${atr_pct}%)
## 五、波动区间(计算结果)
| 区间 | 下沿 | 上沿 | 计算依据 |
|---|---|---|---|
| ATR 波动区间 | ${price_reference.atr_range.low} | ${price_reference.atr_range.high} | ${price_reference.atr_range.basis} |
| BOLL 区间 | ${price_reference.boll_range.low} | ${price_reference.boll_range.high} | ${price_reference.boll_range.basis} |
## 六、指标组合说明
${scenario.notes 逐条}
## 七、指标不一致提示
${verdict.conflicts 逐条;无则写「各维度方向一致,未发现显著冲突」}
## 八、风险因素与观察项
**风险因素**:${risk 逐条}
**观察项**:${watch 逐条}
---
**免责声明**:本报告基于历史行情与规则化指标计算自动生成,只反映数据计算结果,
不预测未来走势,不构成投资建议,也不提供交易操作、头寸管理或风险控制建议。
历史数据与计算结果可能存在延迟或误差,请以交易所及数据源官方信息为准。工具快速参考
| 分析需求 | ① tushareMcp | ② westock | ③ akshare-mcp |
|---|---|---|---|
| 快速落盘 | — | scripts/fetch_bars.py(A/港用腾讯公开接口,美股用 westock) | — |
| 标的基础资料 | stock_basic / hk_basic / us_basic | westock search / quote | stock_individual_info_em |
| 日 K 线 | daily / hk_daily / us_daily_adj | westock kline --period day | stock_zh_a_hist / stock_hk_hist / stock_us_hist |
| 估值/换手/量比 | daily_basic | westock quote | stock_individual_spot_xq |
| 筹码/资金流(可选) | cyq_perf / moneyflow | westock fund flow | stock_individual_fund_flow |
westock 命令以
westock --help实际输出为准;输出已是 Markdown 表格,直接读取,不要用
grep/head/sed截断。无依赖查询同轮并行。
注意事项(硬规则)
- 先确认窗口:默认中线;用户未指定不影响计算。
- 数据源优先级固定:tushareMcp → westock → akshare-mcp;降级必须标注。
- 数据必须真实:禁止编造 K 线、均线、指标或新闻;缺失字段如实说明。
- 至少 60 根日线才能下单;可补取到 250 根以获得长周期指标。不足会在建单前被服务端拒绝(不扣费)。
- 代码格式因源而异,报错时切换写法。
- 完整报告只来自服务端:不得用客户端推算结果冒充
content,也不得伪造content字段。 - 支付流程:支付码不展示、支付成功必须带
X-Out-Trade-No取内容、body 必须一致。 - 不做个股推荐、不预测涨跌、不提供交易操作指令:结论保持客观,明确不构成投资建议。
- 不主动推销:基础速览后只提示一次付费入口;用户拒绝就不再提。
- 用户索要交易操作建议时明确拒绝,不进入付费流程。