> "规则比感觉重要——把可以提前算清楚的事,写在能照着执行的清单里。"
用户输入 →
├─ 提到"持仓 / 我的票 / 盘前简报"
│ → 模式 P:持仓模式(读 portfolio + 7 步法)
│
├─ 只提到 1 只股票("看下 X / 分析 X")
│ → 模式 S:单股深度模式(技术面 + 操作位)
│
├─ 提到 2 只及以上("X 和 Y 谁好 / 这几只票")
│ → 模式 M:多股对比模式(横向对比 + 排序推荐)
│
└─ 不确定时 → 优先问一句确认,不要默认
| 维度 | 模式 P(持仓) | 模式 S(单股) | 模式 M(多股) |
|---|---|---|---|
| ------ | :---: | :---: | :---: |
| 数据源 | portfolio + 实时 + K线 | 实时 + K线 + 个股资金流 | 实时 + K线(精简) |
| 输出篇幅 | 长(含融资体检) | 中(含基本面+技术面) | 短(对比表为主) |
| 止损规则 | 完整三档(含重仓收紧) | 标准三档 | 不强制止损 |
| 融资体检 | ✅ 必做 | ❌ | ❌ |
| 特色 | 全面、防漏 | 深、详 | 横向、快 |
| 场景 | 触发 |
|---|---|
| ------ | :---: |
| 持仓盘前/盘中简报 | ✅ P |
| "看下 600519 / 帮我分析 X" | ✅ S |
| "X 和 Y 哪个好 / 这几只票排序" | ✅ M |
| "今天买什么 / 推荐股票" | ❌(这不是本 skill 职责,应转给"选股 skill") |
| "X 公司基本面怎么样" | ⚠️ 单股模式可附带基本面,但不是核心 |
| 港美股 / 期货 / ETF | ❌ |
Step 1 解析用户输入 → 识别模式 P/S/M + 提取股票代码
Step 2 拉实时行情 → 优先腾讯接口(最稳)
Step 3 拉历史 K 线 → AKShare stock_zh_a_hist (qfq, 近 60 日)
Step 4 计算关键位 → MA5/10/20/30 + 近 N 日高低 + 量能
Step 5 判断态势 → 杀跌 / 冲高 / 震荡 / 趋势上行 / 趋势下行
Step 6 生成操作位 → 止损位(模式 P/S)或 排序推荐(模式 M)
Step 7 模式专属动作 → P:融资体检 | S:深度分析 | M:横向对比
每步都必须执行,不能省略。
- 6 位数字 → 直接当代码(沪:60xxxx/68xxxx;深:00xxxx/30xxxx)
- 中文名称 → 用 ak.stock_zh_a_spot_em 查找代码(懒查询,缓存)
- 拼音简称(如 GLY)→ 不强制识别,要求用户输入完整名或代码
- 模糊匹配 → 命中多个时列出让用户选
| 用户输入 | 模式 |
|---|---|
| ---------- | :---: |
| "盘前简报" / "我的持仓今天怎么样" | P |
| "看下罗博特科" / "分析一下 300757" | S |
| "罗博特科和源杰哪个好" / "300757 688498 排序" | M |
| "茅台 五粮液 泸州老窖" | M |
| "拉一下我自选股的数据" | P 或 M(看 watchlist 是否存在) |
| 优先级 | 数据源 | 调用方式 | 备注 |
|---|---|---|---|
| :---: | -------- | --------- | ------ |
| 1️⃣ | 腾讯财经 | data_fetcher._tencent_realtime_quote(code) | 最稳。即使 AKShare 主源超时也能拿到数据 |
| 2️⃣ | 新浪财经批量 | data_fetcher._sina_batch_quotes([codes]) | 适合一次拉多只(模式 M 优先) |
| 3️⃣ | AKShare 主源 | ak.stock_zh_a_spot_em | 经常超时,timeout=15s 必须,不要硬等 |
踩过的坑:AKShare 主源 82.push2.eastmoney.com 在交易日早盘经常超时(实测 50 分钟没出结果)。默认走腾讯,不要先尝试 AKShare。
import akshare as ak
df = ak.stock_zh_a_hist(
symbol='300757', period='daily',
start_date='20260101', end_date='20260421',
adjust='qfq'
)
历史 K 线用 AKShare 没问题(走的是历史接口,非实时推送)。
| 模式 | 额外数据 |
|---|---|
| :---: | --------- |
| P | 担保比例(用户提供)+ 大盘指数 + 一仓公告扫描(TinyFish) |
| S | 个股资金流向 / 北向持股 / 财务摘要(可选) |
| M | 仅基础数据,不补充(保持轻量) |
优先级:TinyFish Search → gsk web_search 兑底
TINYFISH_API_KEY 或 secrets 文件严格时效过滤(v2.4 重点修复)
担保比例 = (持仓总市值 + 融资买入证券市值) / 融资余额
警戒线:
| 均线 | 含义 | 适合做什么 |
|---|---|---|
| ------ | ------ | ----------- |
| MA5 | 短期支撑/压力 | 强势股的预警线 |
| MA10 | 短期趋势线 | 多数股的风控线 |
| MA20 | 中期生命线 | 跌破常意味着趋势反转 |
| MA30 | 中期趋势 | 与 MA20 共振时确认信号更强 |
预警线:当日跌 5% 或跌破 MA5(一般股)/ MA10(重仓股)→ 减 1/3
风控线:跌破 MA10(一般股)/ 成本 -15%(重仓股)→ 再减 1/3
清仓线:跌破成本 -25%,或融资担保比例 < 150% → 全部清掉 + 还融资
仓位调整因子:
输出包含 5 个块:
输出 = 横向对比表 + 综合排序
对比维度(按重要性):
排序规则(轻量打分):
score = +当日涨跌幅 ÷ 2
+ 短期强弱(MA5偏离) × 1.5
+ 中期趋势(MA20偏离) × 1
+ 量价共振分(放量涨 +2 / 缩量涨 +0 / 放量跌 -2)
最高分给"⭐ 推荐关注",最低分给"⚠️ 注意风险",绝不直接说"买/卖"。
# 📊 盘前持仓简报 — YYYY-MM-DD HH:MM
## 一、当日态势速览
[一句话总结今天的市场+持仓状态]
## 二、个股实时态势
| 股票 | 现价 | 今开 | 高/低 | 涨跌幅 | 备注 |
## 三、关键均线 + 三档止损
### 🎯 [股票A](重点)
| 均线 | 价位 | 距现价 |
**止损位**:预警 / 风控 / 清仓
## 四、⚠️ 真正该担心的事
[按风险等级排序,不按持仓顺序]
## 五、📋 今天上午可执行的操作
✅ 不要做 / 🎯 设条件单 / 🔥 融资硬规则
## 六、今晚问自己 3 个问题
# 🔍 [股票名] [代码] 实时分析 — YYYY-MM-DD HH:MM
## 一、态势速判
[一句话定性:突破 / 回踩 / 震荡 / 顶背离 / 底部企稳]
## 二、基本面快照(可选)
| 维度 | 数值 | 行业对比 |
| PE / PB / 市值 / 行业 / 主营 |
## 三、技术面分析
- 当日:现价 ↑ x.xx% | 量比 x.x | 换手 x.xx%
- 均线结构:MA5/10/20/30 + 一句话点评
- 关键位:上方阻力 / 下方支撑 / 整数关
- 量价:放量涨 / 缩量涨 / 放量跌 / 缩量跌
## 四、操作位建议
| 类型 | 价位 | 触发动作 |
| 介入位 | xxx | 站稳后小仓位试探 |
| 加仓位 | xxx | 突破前高确认 |
| 止损位 | xxx | 跌破后减仓 |
| 止盈位 | xxx | 触及后落袋 1/3 |
## 五、风险提示 + 跟踪要点
- 短期风险:……
- 关注信号:……
# 📊 多股对比分析 — YYYY-MM-DD HH:MM
## 一、横向对比表
| 排名 | 股票 | 现价 | 涨跌幅 | MA5偏离 | MA20偏离 | 量比 | 40日涨幅 | 综合分 | 标签 |
|:---:|------|-----:|-------:|-------:|--------:|-----:|--------:|------:|------|
| 1 | A | ... | ... | ... | ... | ... | ... | 8.5 | ⭐ |
| 2 | B | ... | ... | ... | ... | ... | ... | 6.2 | 🟡 |
| 3 | C | ... | ... | ... | ... | ... | ... | 3.1 | ⚠️ |
## 二、关键差异点
- A vs B:A 强在……,B 强在……
- B vs C:……
## 三、给你的判断(不构成投资建议)
- ⭐ **优势更明显**:A — 理由:……
- 🟡 **保持观察**:B — 理由:……
- ⚠️ **谨慎对待**:C — 理由:……
推荐出手/不出手时要仔细区分两个概念:
好公司 = 业绩好 + 政策好 + 估值低 + 赛道好
好股票 = 技术面强势 + 资金推动 + 有短期催化剂
两者不一定同时成立。
| 象限 | 公司面 | 股票面 | 应对策略 |
|---|---|---|---|
| ------ | :---: | :---: | --------- |
| 🚀 | ✅好 | ✅好 | 重仓持有 |
| ⚠️ | ✅好 | ❌差 | 机会成本贼—业绩好但技术面磨底,双重陷阱 |
| 🎲 | ❌差 | ✅好 | 游资烒作股,要参与必须快进快出 |
| ⛔ | ❌差 | ❌差 | 远离不出手 |
如果一只股票同时满足以下条件,它就是典型的“鸡肋股”:
不是 “公司不好 → 卖”
是 “股票点不火 → 换手仓位”
资金重新配置逻辑:
1. 不要等“业绩兑现”(可能要等 1-2 年)
2. 借任何反弹机会清仓
3. 金额划转到“势最强”的持仓或现金储备
4. “少赚 5%” 不是亏,“错过 30%” 才是亏
EV(持有) = P(业绩兑现) × 预期涨幅 - P(错过机会) × 机会値
EV(卖出换手) = 当前价 × (1+换仓后预期涨幅) - 交易成本
简化版:
如果 你其他持仓平均上涨趋势 > 该股预期上涨趋势,
则 卖出换手始终比持有有利
遇到“持仓里的机会成本贼”时,不要说:
要说:
| ❌ 错误 | ✅ 正确 |
|---|---|
| -------- | -------- |
| "建议谨慎操作" | "跌破 500 减 1/2,跌破 482 清融资部分" |
| "情绪面不佳" | "当日成交额 4.79 亿,量比 0.62(早盘缩量)" |
| 把所有股票按输入顺序列一遍 | 按"重要性 / 紧迫度"排序 |
| 模式 P 不算融资担保比例 | 必须算,且单独成段 |
| 用 AKShare 主源超时还硬等 | 立即切腾讯接口(≤15s) |
| 给"目标价"但不给"止损价" | 永远是"止损 + 仓位管理"组合 |
| “公司好就该拿着” 不考虑机会成本 | 区分“好公司” 与 “好股票”(话 § 8) |
| 让用户盘中盯价 | 让用户昨晚或开盘前设好条件单 |
| 模式 M 直接说"买 A" | 用"⭐ 优势更明显"+ 理由 |
# 模式 P:持仓
python3 ~/.openclaw/workspace/skills/stock-realtime-brief/scripts/run_brief.py \
--mode portfolio \
--portfolio /home/work/.openclaw/workspace/data/portfolio.json
# 模式 S:单股
python3 ~/.openclaw/workspace/skills/stock-realtime-brief/scripts/run_brief.py \
--mode single \
--code 300757
# 模式 M:多股对比
python3 ~/.openclaw/workspace/skills/stock-realtime-brief/scripts/run_brief.py \
--mode multi \
--codes 300757,688498,688234,600519
# 自动模式:让脚本根据输入数量自判
python3 ~/.openclaw/workspace/skills/stock-realtime-brief/scripts/run_brief.py \
--auto --codes 300757,688498
~/.openclaw/workspace/stock-agents/data_fetcher.py 拉数据weekly-position-review — 周末复盘 + 下周剧本(待建)evening-trading-log — 收盘后交易日志整理(待建)realtime-position-monitor — 盘中实时风险监测(待建)stock-screener — 选股 skill(待建,本 skill 不做选股)Q: 用户说"看下茅台"怎么处理?
A: 茅台→600519,模式 S 单股深度。
Q: 用户给一堆代码不指定模式?
A: ≥2 只默认走模式 M,输出对比表 + 排序。
Q: 用户问港股 / 美股?
A: 直接拒绝:"本 skill 仅支持 A 股,港美股请用 xx skill。"
Q: 模式 M 输出多少只股票合适?
A: 2-10 只最佳。≥10 时建议拆分为多个对比组。
Q: 简报里能不能直接说"买/卖"?
A: 绝不。永远用"介入位 / 减仓位 / 止损位 / 落袋"等条件性表达。
用户反馈:仅看技术面+减持公告 → 错失天岳 +60% 上涨
权重:
总分 >= +3:强买 / 加仓
总分 +1 ~ +3:持有 / 观察
总分 -2 ~ 0:谨慎 / 减仓部分
总分 < -2:强减 / 清仓
天岳 5/6 减持公告(已知利空) → 单维度看空 ≠ 全部看空
其他 6 维都偏多 → 应继续持有 → 实际涨到 180
用户指导原则(来自实战教训):
> "实时的分析就不要考虑周期性,更多从技术、资金、板块、重点落在量价关系"
之前的混淆:把"盘中即时分析"和"盘后/单股长期评估"混在一起 → 给出不可执行的建议。
| 模式 | 何时用 | 核心维度 | 输出 |
|---|---|---|---|
| --- | --- | --- | --- |
| 盘中实时模式 | 交易时段(9:30-15:00)询问"现在怎么样" | 量价/资金/技术/板块 | 当下状态 + 趋势预判 + 立即可做的策略 |
| 盘后/单股研究 | 收盘后 / 深度调研 / 周末分析 | 多周期/业绩/研报/估值 | 仓位策略 + 中长期判断 |
调用:realtime_analyzer.py
核心维度(按重要性):
评分加权:
状态分级:
盘中模式触发:
盘后模式触发:
罗博特科 5/22 09:55 盘中:
而盘后模式会说:
两个结论看似矛盾,实际是不同时间维度的合理结合:
数据与消息的时效性 = 决策的前置条件
来源:2026-05-26 用户经过实战教训后明确建立
任何建议前必须确认:
见 ~/.openclaw/workspace/memory/principle-data-freshness.md
共 3 个版本