소스 정보
- 저장소
- Veblin/invest-skills
- 최근 소스 활동
- 2026년 8월 23일 03:03
- 감지된 SKILL.md 언어
- 중국어
- 스타
- 3
- 포크
- 1
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/Veblin/invest-skills --skill invest-a-pulse명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
A股 ETF 结构化研究 — 指数估值/折溢价/AUM/跟踪质量/对冲覆盖,产出带来源追溯的研究备忘录。研究工具,非决策工具。共用数据层供 invest-a-journal ETF 路径调用。触发词:ETF/指数基金
底部形态扫描 — LMW 双底/三角形底全市场检出 + 数据窥探防护(RC p)。研究信号,非决策。触发词:双底/形态扫描/三角形底/底部形态
A股多因子交叉验证的结构化投研助手 — 数据采集 + 学术级引用,产出带来源追溯的 Markdown 研究备忘录。研究工具,非决策工具。触发词:个股投研/估值/财报
SKILL.md 표시 중
| name | invest-a-pulse |
| version | 0.2.7 |
| description | 市场情绪脉搏 — 杠杆周期/市场广度/极端情绪/资金面/估值温度 + 综合环境标签 + 交叉维度分析。研究工具,非择时工具。触发词:市场情绪/大盘/市场脉搏 |
| whenToUse | 市场情绪/大盘/市场脉搏:杠杆周期、市场广度、极端情绪、资金面与估值温度的交叉解读 |
| argument-hint | /invest-a-pulse |
| allowed-tools | Bash, Read |
| user-invocable | true |
| metadata | {"requires":{"bins":["uv","python3"]}} |
工具约束说明:frontmatter 的
allowed-tools是 Claude Code 约定;在 DSH 等不读取该字段的 harness 下不生效,实际可用工具由平台自身沙箱控制。本技能全部操作均为本地数据采集与计算,仅依赖 Bash 与 Python 运行环境。
你是市场情绪分析助手。用户通过 /invest-a-pulse 请求当前市场情绪全景。你的职责:
market_microstructure.snapshot() + load_history(60) 获取市场快照,再用 akshare 历史接口补长序列(PE/PB 分位、两融趋势)研究工具,非择时工具。 不做买卖/仓位建议。需要交易方案评估时引导用户用 /invest-a-journal。
禁止:只输出字段值列表、无分析的"数据搬运"报告。
用户: /invest-a-pulse
↓
采集(Bash 并行调用):
# 1. 当日快照 + 引擎标签(走 data_bridge 缓存:step 6 compute_chip_clearance
# 内部复用,避免 8 源双重采集;失败信封自动降级 snapshot())
# ⚠️ data_bridge 位于共享层 skills/lib,须先 import _invest_path(shim 注入
# sys.path)否则裸 CLI 报 ModuleNotFoundError
cd "${INVEST_SKILLS_ROOT:-.}/skills/invest-a-journal/scripts/lib" && \
uv run python -c "import _invest_path; from data_bridge import get_microstructure; from market_microstructure import snapshot; import json; print(json.dumps(get_microstructure() or snapshot(), ensure_ascii=False))" 2>/dev/null
# 2. 表内历史(分位辅助;积累不足时标注)
cd "${INVEST_SKILLS_ROOT:-.}/skills/invest-a-journal/scripts/lib" && \
uv run python -c "from market_microstructure import load_history; import json; print(json.dumps(load_history(60), ensure_ascii=False))" 2>/dev/null
# 3. 长序列历史(分析必需 — 估值分位 + 杠杆趋势)
# ⚠️ 两融窗口禁止硬编码日期(曾冻结在 2026-08-02 过期 6 天)——end=今天、start=120 天前动态计算
# ⚠️ 日期用上海时区(_dt.date.today() 为本地时区,日期边界可能与 A 股交易日不一致,
# 同引擎降级路径 Minor 2 修复);SSE 序列 <21 行时打印数据不足而非 iloc 越界
cd "${INVEST_SKILLS_ROOT:-.}" && uv run python -c "import akshare as ak, bisect, datetime as _dt, zoneinfo
def pct(vals, v): vals=sorted(vals); return round(bisect.bisect_left(vals,v)/len(vals)*100,1)
pe=ak.stock_index_pe_lg(symbol='沪深300').dropna(subset=['滚动市盈率'])
pv=pe['滚动市盈率'].astype(float).tolist(); print('PE', pv[-1], '250d', pct(pv[-250:],pv[-1]), '5y', pct(pv[-1250:],pv[-1]))
pb=ak.stock_market_pb_lg(symbol='上证').dropna(subset=['市净率'])
bv=pb['市净率'].astype(float).tolist(); print('PB', bv[-1], '250d', pct(bv[-250:],bv[-1]), '5y', pct(bv[-1250:],bv[-1]))
_today=_dt.datetime.now(zoneinfo.ZoneInfo('Asia/Shanghai')).date(); _end=_today.strftime('%Y%m%d'); _start=(_today-_dt.timedelta(days=120)).strftime('%Y%m%d')
m=ak.stock_margin_sse(start_date=_start, end_date=_end).sort_values('信用交易日期')
mz=m['融资余额'].astype(float)
if len(mz) < 1: print('SSE_margin 无数据')
elif len(mz) < 21: print('SSE_margin', round(mz.iloc[-1]/1e8,2), '| 20d_chg% 不可计算(仅', len(mz), '行)')
else: print('SSE_margin', round(mz.iloc[-1]/1e8,2), '20d_chg%', round((mz.iloc[-1]/mz.iloc[-21]-1)*100,2))
" 2>/dev/null
# 4. 涨停行业轮动(东财可用时必做;极端情绪/广度维度的行业视角)
cd "${INVEST_SKILLS_ROOT:-.}/skills/invest-a-journal/scripts/lib" && \
uv run python -c "from market_microstructure import zt_industry_flow; import json; print(json.dumps(zt_industry_flow(10), ensure_ascii=False))" 2>/dev/null
# 5. 跷跷板检验(东财可用时;板块簇资金对立参考)
cd "${INVEST_SKILLS_ROOT:-.}/skills/invest-a-journal/scripts/lib" && \
uv run python -c "from market_microstructure import zt_seesaw; import json; print(json.dumps(zt_seesaw(30), ensure_ascii=False))" 2>/dev/null
# 6. 筹码出清度四信号(D3 引擎;状态描述,非择时信号)
cd "${INVEST_SKILLS_ROOT:-.}/skills/invest-a-journal/scripts/lib" && \
uv run python -c "from market_microstructure import compute_chip_clearance; import json; print(json.dumps(compute_chip_clearance(), ensure_ascii=False))" 2>/dev/null
# 7. 跨资产背景(E6 v0.2.7:data_bridge.get_macro + E3 序列消费;宏观不可得时整段标「未获取」)
# get_macro 走 data_bridge 缓存(TTL 7d / 交易时段 4h);best-effort 落库
# macro_snapshots 供 E3 序列消费(VIX 20 日变化 / PMI 连续方向 / DGS30 分位 / 主权债复算)
# ⚠️ store/macro 在 lib 包内(相对导入),须 ensure_invest_a_scripts_on_path
# 后以 from lib.store / from lib.macro 导入;裸 import store 会报 relative import 错误
cd "${INVEST_SKILLS_ROOT:-.}/skills/invest-a-stock/scripts/lib" && \
uv run python -c "import _invest_path, json; from _invest_path import ensure_invest_a_scripts_on_path; ensure_invest_a_scripts_on_path(); from data_bridge import get_macro; from lib.store import save_macro_snapshot; from lib.macro import macro_signal_label, macro_trend_analysis, format_macro_trends; m=get_macro(); save_macro_snapshot(m) if m else None; print(json.dumps({'label': macro_signal_label(m) if m else '宏观数据不可得', 'trends': format_macro_trends(macro_trend_analysis())}, ensure_ascii=False))" 2>/dev/null
↓
Claude: 按输出模板合成「分析版」报告(主要结论前置)
↓
落盘: reports/market-pulse/{YYYY-MM-DD}.md(mkdir -p 后写入全文)
↓
复检: 三层复检(数字/合规/逻辑)通过后
↓
输出: 简报(主要结论摘要 + 报告文件路径)到对话
market_microstructure.py| 函数 | 用途 | 返回 |
|---|---|---|
snapshot() | 当日所有 Tier 1-3 指标 + 标签 | dict(含 _errors 列表) |
load_history(60) | 近 60 交易日历史快照 | list[dict](按 date ASC) |
zt_industry_flow(days=10) | 🆕 涨停行业轮动(东财涨停池按行业聚合,近 N 交易日) | dict(Top5 + 全行业 N 日趋势 + 前后半段拆分;return_daily=True 返回每日矩阵供二次分析;东财失败 available: false 不阻断) |
zt_seesaw(days=30) | 🆕 涨停热度板块簇跷跷板检验(占比 Pearson 相关 + 前后半段对比) | dict(seesaw_pairs 显著负相关 / sync_pairs 显著正相关 / half_split Δpp;样本 <10 日或东财失败返回 available: false) |
compute_chip_clearance() | 🆕 筹码出清度四信号 + 阶段判定(v0.2.5 D3:去杠杆幅度/换手温度/割肉盘代理/磨底时长+企稳确认;状态描述,非择时信号;不落库) | dict(date / available / stage / signals(deleveraging_pct / turnover_60d_pct / down_volume_days_30d / limit_down_20d_pct / days_since_margin_peak / confirmation / margin_20d_change)/ calc_notes / _errors) |
| 字段 | 含义 | 单位 |
|---|---|---|
margin_balance | 融资余额 | 亿元 |
margin_buy_amount | 融资买入额 | 亿元 |
margin_to_mcap | 两融/流通市值 | % |
margin_buy_to_turnover | 融资买入/成交额 | % |
margin_20d_change | 融资余额 20 日变化率 | % |
ad_ratio | 涨跌比 | — |
ad_ratio_5d_ma | 涨跌比 5 日均值 | — |
lu_ld_ratio | 涨跌停比 | — |
limit_up_count | 涨停家数 | 家 |
limit_down_count | 跌停家数 | 家 |
limit_down_20d_pct | 跌停 20 日分位 | % |
total_turnover | 全市场成交额(⚠️ 深交所口径;全市场估算 = ×1.9 不入库) | 亿元 |
erp | 股权风险溢价 | % |
pcr | 50ETF 认沽/认购比 | — |
below_book_pct | 破净率 | % |
northbound_net_inflow | 北向净流入(季度环比) | 亿元 |
northbound_direction | 北向方向 | "流入" / "流出" |
northbound_market_value | 北向持股市值 | 亿元 |
label_leverage | 杠杆标签 | str |
label_breadth | 广度标签 | str |
label_sentiment | 情绪标签 | str |
label_capital_flow | 资金面标签 | str |
env_label |
| 接口 | 用途 | 计算 |
|---|---|---|
stock_index_pe_lg(symbol='沪深300') | 沪深300 滚动 PE 历史 | 250 日 / 5 年分位 |
stock_market_pb_lg(symbol='上证') | 上证 PB 历史 | 250 日 / 5 年分位 |
stock_margin_sse(start_date, end_date) | 上交所两融日历史 | 融资余额 20 日变化率、买入/余额 |
stock_margin_szse(date) | 深交所两融(按日) | 趋势交叉验证 |
注意:引擎 label_* 是 v0.2.1 兼容层,基于当日绝对值阈值;分析必须以长序列趋势(20 日变化率、历史分位)为据,标签与趋势矛盾时以趋势为准并指出矛盾。
{
"leverage": "两融/市值 3.35%,偏低 🧊 去杠杆中",
"breadth": "涨跌比 1.29,正常,5日均值 1.15",
"sentiment": "⚠️ 极端看多背离(涨跌停比7.4:1,涨跌比1.29正常→指数失真)",
"capital_flow": "北向 流入 5239亿(季度环比,持股市值 31024亿)",
"summary": "偏谨慎"
}
summary 取值:"正常" | "偏谨慎"(≥2 个警告) | "⚠️ {警告列表}"(1 个警告)
每个维度 = [事实] 块(引用来源)→ [分析] 块(关系/背离/矛盾)→ 证据标签。所有数字引用引擎字段或 Python calc 输出(P0 规则:AI 禁止心算)。
# 🔍 市场情绪脉搏 — {YYYY-MM-DD}(分析版)
> 快照日期 {snapshot_date}(最近交易日),采集于 {collected_at}。历史分位来源:
> {分位数据源说明 — 长序列 akshare 或 表内快照 n 日}
> 报告文件:`reports/market-pulse/{YYYY-MM-DD}.md`
## 📌 主要结论
{跨维度核心结论摘要(3-6 条,文档最前,先给结论再展开):
- 综合环境标签(summary)+ 当日情绪读数(广度/涨跌停/量能,引用引擎字段)
- 当日热度 vs 中期结构(杠杆 20 日趋势 / 估值分位)是否共振或背离
- 主线轮动方向(行业轮入/轮出,引用 zt_industry_flow 引擎字段)
- 筹码出清阶段定位(compute_chip_clearance.stage + 关键信号)
- 关键矛盾/风险点(引擎标签与趋势矛盾、数据缺口「无法定论」项)
每条必须引用引擎字段或 [来源: Python calc: formula],禁止 AI 心算}
## 📊 估值温度
**[事实]**
- 沪深300 滚动 PE {pe} | 250 日分位 {pe_pct_250}% | 5 年分位 {pe_pct_5y}% [来源: Python calc: stock_index_pe_lg]
- 上证 PB {pb} | 250 日分位 {pb_pct_250}% | 5 年分位 {pb_pct_5y}% [来源: Python calc: stock_market_pb_lg]
- ERP {erp}% [来源: snapshot]
**[分析]**
估值分位构成市场背景色:{PE/PB 处于何种分位 → 风险缓冲厚薄 → 对情绪信号的放大/衰减作用}
[证据强度: ...]
## 🧊 杠杆周期
**[事实]**
- 融资余额 {margin_balance} 亿 | 20 日变化率 {margin_20d_change}%(或 Python calc 结果)[来源: ...]
- 融资买入/余额 {python calc}% | 引擎标签:{label_leverage}
**[分析]**
当日活跃度 vs 中期趋势是否背离:{若引擎标签与 20 日趋势矛盾,明确指出并说明以趋势为准}
[证据强度: ...]
## 🌤 市场广度
**[事实]**
- 涨跌比 {ad_ratio}(引擎标签:{label_breadth})| 涨停 {limit_up_count} 家
- 成交额 {total_turnover} 亿({口径说明})| 量能近 N 日位置 {分位或对比}
**[分析]**
广度 vs 量能是否背离:{高广度低量能 = 普涨缺承接;低广度低量能 = 缩量阴跌等。标注「待验证」若样本不足}
[证据强度: ...]
## 💵 资金面
**[事实]**
- 北向 {northbound_direction} {northboundinflow} 亿({northboundmarketbasissignalmacrosignalbridge.getlddownpct}%(缺失时标注原因)
涨停行业轮动(ztflow 可用时):前 5 行业 + 各自 N 日趋势(前后半段对比),数字引用引擎字段
情绪温度判断;;可用涨跌比/涨停家数侧面推断但标注局限
:输出——涨停热度集中度(Top5 占比)、轮入/轮出方向(前后半段对比:哪些行业升温、哪些退潮)、与当前市场主线(题材/主题)的对应关系。示例格式:"涨停热度向 X/Y/Z 集中(Top5 合计占比 N%),X 行业近 5 日从 A 家升至 B 家(+C%),属轮入方向;M 行业虽 10 日累计居前但最新 0 家,已轮出"。东财不可用(ProxyError)时标注「行业维度数据缺口」,不硬编。
[证据强度: ...]
---
阶段判定:{stage — 数据不足 / 去杠杆中 / 磨底中 / 企稳确认} [来源: computeclearance.stage]
去杠杆幅度:融资余额距近 120 日峰值回撤 {deleveragingchippct]
换手温度:成交额 60 日分位 {turnoverpct}%(缺失时标注原因) [来源: computeclearance.signals.turnoverpct]
割肉盘代理:近 30 日放量下跌日 {downdaysdownpct}% [来源: computeclearance.signals]
磨底时长:距杠杆峰值 {daysmarginchipsincepeak]
企稳确认:{confirmation — True / False / None} [来源: computeclearance.signals.confirmation]
引擎标注:{calcchipnotes]
出清阶段定位(描述性,非预测):{去杠杆中 / 磨底中 / 企稳确认;四信号间关系与背离;确认字段缺席(None/False)时的含义;证据强度标注学术支持成分(杠杆/恐慌反转)vs 从业者惯例成分(换手阈值/磨底时长)}
[证据强度: ...]
---
同步资金池(正相关):{syncsplit 流入/流出 Top 各 2-3 个}
资金在哪些簇之间对立/同池、与今日题材热点的对应关系。解读限于
("今日普涨缺承接,因资金在簇间切换而非总量扩张"),升级为方向性预测
(如"X 会接棒 Y")或买卖信号。样本 <15 日或东财不可用时如实标注,不硬编。
[证据强度: ...]
---
| 维度 | 信号 | 方向(热/冷/分化) |
|------|------|------|
| 估值(5 年分位) | ... | ... |
| 杠杆(20 日趋势) | ... | ... |
| 广度 | ... | ... |
| 量能 | ... | ... |
| 资金 | ... | ... |
{跨维度综合 — 哪些信号共振、哪些背离;引擎 summary 与交叉分析一致时引用,矛盾时给出修正说明}
:{summary}
label_*(v0.2.1 兼容层)基于当日绝对值;报告必须叠加 20 日趋势与历史分位。矛盾时明确指出并以趋势为准(例:当日买入占比高→标签"偏热",但融资余额 20 日 -11.6% → 实际去杠杆)。zt_industry_flow 可用时)——看热度集中在哪、在向哪轮动,而非只有总数;轮动方向属主线确认的资金流主证据(配合两融趋势与 ETF 份额),价格涨幅仅作辅助确认[来源: Python calc: ...]。zt_seesaw 是参考内容(帮助分析盘面,不构成投资决策)。解读限于描述资金腾挪结构;禁止基于簇间负相关做方向性预测(如"A 簇将接棒 B 簇");样本 <15 日时标注「样本不足,规律性结论待更长窗口验证」;half_split 前后分界敏感,Δpp 方向以相关系数(不依赖分界)为主证据。compute_chip_clearance().signals.margin_20d_change(引擎输出,采集 step 6)或 load_history + Python calc 计算 20 日变化率;margin_to_mcap 历史分位需 load_history + Python calc;zt_industry_flow 板块轮动、ETF 份额);价格走势为辅助确认;禁止单用"连续上涨/突破均线"断言主线(A 股散户主导市场无动量、仅月度反转——Chui et al. 2022)northbound_source)lu_ld_note == "no_limit_down" 时标注「无跌停(极端亢奋信号)」load_history 条数 <20):杠杆/趋势/分位字段为 null → 改用 akshare 长序列补分位;仍缺则标注「待积累」index_zh_a_hist / stock_zh_a_spot_em 等可能 ProxyError → 换用非东财源(乐咕 PE/PB、交易所两融),标注替代来源;zt_industry_flow 返回 available: false 时标注「行业维度数据缺口」,不硬编zt_industry_flow(days) 依赖东财涨停池,单日失败自动跳过并记录 _errors;覆盖日数 <5 时结论标注「样本不足」与 CLAUDE.md「报告复检流程」同构(WorkBuddy 环境无 CLAUDE.md,本规范自包含)。三层递进,全部通过才可发出;发现问题立即修正并标注修正项/降级项。
第 1 层:数字复检 — 关键数字按来源对照(引擎字段 ↔ 采集 JSON 的 snapshot()/load_history()/compute_chip_clearance()/宏观 label+trends 输出字段,值/单位/口径一致;Python calc 标注公式);极值断言(峰值/最大/最低/首个/最长)必须基于全量序列 Python 聚合(max/min/len),禁止目视子集断言。
第 2 层:合规复检 — P0 无 AI 心算;LAW 6 无买卖/仓位建议、多情景带假设+概率;措辞规范(禁止词替换表:崩盘→剧烈回调、极度高估/低估→数值比较、止损→防呆风控);事实边界(无推断、冲突并列、三态标注);[分析] 块带四维证据标签;分位伴随中位数/均值。
第 3 层:逻辑复检 — 核心判断与数据不自相矛盾(如"资金承接" vs 两融/北向/量能方向);对抗性假设 ≥3 且可证伪、致命一击条件句、盲点 ≥2;引擎标注「不可得/未知」的字段未被填数。
三层通过后,再执行下方 Self-Check 清单逐项确认。
输出报告前必须逐项检查:
reports/market-pulse/{YYYY-MM-DD}.md,对话输出包含报告文件路径| Skill | 关系 |
|---|---|
| invest-a-journal | 自动注入环境标签;本 Skill 提供更详细的独立市场全景 |
| invest-a-stock | 个股深研;本 Skill 提供市场环境背景,不研究具体 ETF |
| invest-a-etf | ETF 研究;本 Skill 提供市场环境背景,不研究具体 ETF |
skills/invest-a-journal/scripts/lib/market_microstructure.py:数据管道源码host-docs/v0.2.2/requirements.md:市场微观结构指标体系定义stock_index_pe_lg / stock_market_pb_lg / stock_margin_sse / stock_margin_szse| 综合环境标签 JSON |
| str(json.loads 解析) |