牧羊人指标(股票 · A股 次日行情判断)
这个 skill 解决什么
老板的 StockSignal 项目里有一层"情绪极值信号"(modules/sentiment_edge.py),
经过 2007–2026 全历史 walk-forward 验证,只有一条规律站得住:
> 极端恐慌出清(跌停占比达历史前 10% 分位)→ 次日容易出现反弹(红盘)
其它普通日子,现有情绪评分与次日收益 IC≈-0.031(负相关、基本是噪声),
方向不可预测。所以本 skill 的核心纪律是:能说的时候才说,不能说就老实弃权。
何时用
- 用户问"明天行情怎么走""次日涨跌""恐慌会不会反弹""牧羊人情绪现在到极值了吗"。
- 用户给了今日涨跌停家数,要你判断第二天方向。
- 用户在跑策略/写晨报,需要把"情绪极值"作为一条可解释的因子。
用法(让 AI 执行命令,不要自己编数字)
通过命令行调用自带脚本(自带 Python 即可,无需额外依赖,纯标准库):
# 1) 给定今日数据,判断次日方向(JSON 传当日广度)
python <skill目录>/scripts/next_day_edge.py \
--today '{"up_count":1200,"down_count":3800,"flat_count":200,"limit_down":85,"touch_down":140,"limit_up":30,"hb_wave10":60}'
# 2) 自动从 StockSignal 当日快照取数(需 STOCKSIGNAL_ROOT 指向仓库)
python <skill目录>/scripts/next_day_edge.py --auto
# 3) 只看校准证据链(这个规律为什么可信)
python <skill目录>/scripts/next_day_edge.py --summary
- 脚本优先加载 StockSignal 仓库的
modules.sentiment_edge(单一真理源,活校准件);
若仓库不在,则回退到本 skill 自带的冻结引擎 + 校准件,保证可独立运行。 - 用环境变量
STOCKSIGNAL_ROOT或--root指定 StockSignal 仓库根目录
(默认E:/project/ks/StockSignal)。
输入字段(--today 的 JSON 键)
| 字段 | 含义 | 是否必须 |
|---|---|---|
up_count |
当日上涨家数 | 建议给(算分母) |
down_count |
当日下跌家数 | 建议给 |
flat_count |
当日平盘家数 | 可选 |
limit_down |
当日跌停家数 | 核心(判恐慌) |
touch_down |
当日触及跌停家数 | 可选(弱波动提示) |
limit_up |
当日涨停家数 | 可选 |
hb_wave10 |
沪深300等波幅代理(可选) | 可选 |
> 分母 = up_count + down_count + flat_count。分母缺失时,占比类特征算不出,直接弃权(不臆造)。
输出与诚实口径(务必照实呈现给用户)
脚本返回 JSON,关键字段:
- triggered=true:恐慌反弹信号触发。看 prob(次日红盘概率)、base_rate(基准)、
edge_pp(边际百分点)、hits[].n(触发样本天数)、hits[].z。
必须同时告知用户:这是统计概率,不是确定性预测。
- abstain=true 且 triggered=false:当日未进入极值区间(或数据不全)→ 本模块不表态方向,
请如实告诉用户"普通日子方向不可预测,无法给出可靠判断",不要替它编一个偏多/偏空。
- available=false:校准件缺失,直接说明无法判定。
能力边界(写进产品/回答,不藏)
- ✅ 可信:极端恐慌 → 次日红盘概率显著高于基准(约 +13pp,全历史 296 天 z=+4.36)。
- ✅ 弱可信:触及跌停占比与次日波动幅度弱正相关(IC≈0.13~0.16)→ 仅作风险提示。
- ❌ 不可信:普通日子里次日涨跌方向(现有引擎无法超越基准率,勿硬猜)。
红线
- 绝不外推到无统计依据的结论。没有触发极值,就老实说"看不出方向",不要为了显得有用而编造方向。
- 概率就是概率,措辞里必须保留"历史规律 / 概率 / 非保证"。
- 不读密钥、不联网、不写用户文件、不删文件。
适用场景 / 常见疑问 / 反模式 / 快速示例
- 适用场景:见上方 SKILL.md 正文(受众 + 触发词 + 能力边界)。
- 常见疑问:能天天给买卖信号吗?→ 不喊单、不保证收益,仅在样本充足时给唯一可发布规律,否则诚实返回无法判断。
- 反模式:不要把它当万能工具;数据/样本不足时按设计诚实返回「无法判断」,请勿强行要求结论。
- 快速示例:见 SKILL.md 中的命令 / 脚本用法与模板。