ETF哑铃型投资策略(慢慢赚会更快)
把 A 股板块投资从「凭感觉追热点」变成「按分位做纪律」。本 skill 提供一套完整可执行的框架:选什么(板块)、什么时候买(低分位)、买多少(仓位纪律)、什么时候卖(高分位)、以及如何用定时任务持续跟踪。
三条公理(所有输出必须符合)
- 只买板块,不碰个股。 任何结论必须落到「具体场内 ETF 代码 + 场内价格区间」,禁止出现「关注半导体板块」这类无法下单的表述。
- 选板块只用两个条件:低估值 + 前景好。 缺一个就只观察不下手。估值分位 < 30% 进候选池,< 20% 为重点关注区;前景评分 ≥ 7 分(满分 10)才可推荐。
- 越涨越怕,越跌越买。 分位上升 / 情绪过热 / 溢价扩大 → 减仓或不追;分位下降 / 恐慌下跌 → 分批低吸。宁可错过,不可追高。
何时使用
| 用户说的话 | 对应工作流 |
|---|---|
| 「半导体现在能买吗」「红利贵不贵」 | A. 单次板块研判 |
| 「帮我看看持仓」「我的组合温度多少」 | A. 单次板块研判(带持仓模式) |
| 「这周该配什么板块」「全市场扫一遍」 | C. 板块轮动扫描 |
| 「帮我建立每日监控」「每天早上提醒我」 | B. 建立监控体系 |
| 「复盘一下今天的判断」 | B. 盘中验证 |
| 用户提到 KOSPI / 海力士 / 台积电 / 恒生科技与 A 股联动 | 读 references/indicators.md 后研判 |
第 0 步:确认配置(首次使用必做)
检查 ~/.workbuddy/sector-etf-dumbbell/config.json 是否存在:
ls ~/.workbuddy/sector-etf-dumbbell/config.json 2>/dev/null || \
python3 scripts/init_config.py
- 不存在 → 运行
scripts/init_config.py生成模板,然后询问用户:监控哪些板块、当前持有哪些 ETF 及仓位、是否需要微信推送(PushPlus / Server酱 / Webhook)。把答案写入配置文件的watchlist与holdings。 - 存在 → 读取配置,后续所有分析都用配置里的板块池与持仓,不要自行改动。
- 用户没有持仓信息时,只输出板块信号,不计算加减仓量。
配置文件结构见 references/config.example.json。
工作流 A:单次板块研判
A1. 取数据
逐项查询(数据源按当前环境可用的行情/基金接口,见「数据获取」):
- 估值分位:目标板块的 PE 或 PB 当前值 + 近 10 年历史分位。周期股(有色、煤炭、化工、钢铁、航运)必须用 PB 分位,PE 在周期股上会因盈利波动而失真。
- ETF 层面:对应场内 ETF 的现价、当日涨跌幅、折溢价、规模、成交额、份额变化。
- 板块走势:近 20 / 60 日均线位置、距 MA60 偏离度、近 5 日与 20 日涨跌幅。
- 领先指标(按板块相关性取,详见
references/indicators.md):
- 半导体 / AI / 科创 → KOSPI、SK 海力士、三星电子、台积电、费城半导体、英伟达
- 全部成长板块 → 美债 10Y 收益率、美元指数、离岸人民币
- A 股开盘方向 → 富时中国 A50 期指
- 港股科技 → 恒生科技指数、南向资金净流入
- 黄金 / 能源 → 伦敦金、WTI 原油 - 资金面:该板块 ETF 的份额申赎(机构态度)、两融余额趋势、股指期货基差(IF/IC/IM)。
A2. 算温度 + 出动作
python3 scripts/temperature.py \
--board "半导体:35:512480" \
--board "红利:48:510880" \
--hold "半导体:20" --hold "红利:25"
参数:--board 板块名:分位:ETF代码,--hold 板块名:当前仓位%,--max-pct 单板块上限(默认 30)。
脚本按四档纪律输出动作与仓位指引,直接用它的结论,不要自行改成别的档位划分。
A3. 输出结构
## 结论先行
| 板块 | ETF | 分位 | 温度 | 动作 | 参考价区间 |
(一屏内给出买/卖/持有的明确答案)
## 估值与温度
温度计表格 + 分位变化趋势(近 1 月 / 3 月 / 1 年)
## 前景评分(0-10)
| 因子 | 权重 | 打分 | 依据 |
盈利景气 30% / 资金态度 25% / 政策催化 20% / 领先指标 15% / 技术位置 10%
先写三句景气逻辑,再落分数。
## 领先指标交叉验证
韩股 / 台积电 / 美债 / A50 / 港股 与本板块的联动解读
## 资金面
ETF 份额(跌 + 份额增 = 机构越跌越买)/ 两融 / 基差
## 操作计划
落到 ETF 代码 + 参考价区间 + 分批档位(至少 3 批)+ 溢价提示
## 风险与不买理由
什么情况下这个判断会错,什么信号出现要推翻
## 📚 投资学习要点
价格区间怎么给:不要凭感觉。用三类锚点取交集——①近期关键支撑/压力(前低、MA60、成交密集区)②按分位对应的加仓档位 ③整数关口。给出「低吸档 / 加仓档 / 反弹减仓档」三档,每档注明触发条件。
工作流 B:建立监控体系(定时任务)
用户要求「每天自动盯盘」时,用 automation 工具创建任务。每个任务的 prompt 必须自包含——未来运行时看不到当前对话,所有板块池、ETF 代码、纪律规则、档案路径都要写进 prompt。
六时点任务表
| 时点 | rrule | 任务要点 |
|---|---|---|
| 09:15 | FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR;BYHOUR=9;BYMINUTE=15 |
隔夜美股 + 韩股早盘(韩股 08:00 开盘,此时已交易 1 小时)+ 台积电 + A50 期指 + 美债汇率 + 消息面 + 温度计快照 → 写入当日预判档案 |
| 09:40 | ...BYHOUR=9;BYMINUTE=40 |
读档案,用真实盘面验证 9:15 的 5 条预判,逐条判定 ✅/⚠️/❌ 并解释偏差 |
| 12:55 | ...BYHOUR=12;BYMINUTE=55 |
半日成交与领涨跌复盘 + 港股午间 + 韩股盘中 → 下午预案 |
| 13:10 | ...BYHOUR=13;BYMINUTE=10 |
验证午间的下午预判 |
| 16:02 | ...BYHOUR=16;BYMINUTE=2 |
等港股 16:00 收盘后做全天对账 + 恒生科技与南向资金 + 温度计更新 + 次日倾向 |
| 00:00 | ...BYHOUR=0;BYMINUTE=0 |
美股收盘 + 大宗商品 + 美债汇率 → 映射次日 A 股 → 写入次日预判档案 |
> 16:02 而非 15:05 的原因:港股比 A 股晚 1 小时收盘,恒生科技是 A 股科技次日的领先指标,等港股定格才能得到完整信息。
周报 / 月报
| 任务 | rrule | 要点 |
|---|---|---|
| 板块雷达周报 | FREQ=WEEKLY;BYDAY=MO;BYHOUR=8;BYMINUTE=30 |
31 个申万一级行业 + 主题板块全扫描 → 推荐池 / 观察池 / 规避榜 + 温度计周变动 + 事件日历 |
| 板块月度展望 | FREQ=MONTHLY;BYMONTHDAY=1;BYHOUR=8;BYMINUTE=30 |
上月推荐验证复盘 + 温度计全景 + 哑铃两端调仓窗口 |
每个任务 prompt 必须包含的 5 块内容
- 投资公理:只买板块 ETF、双因子筛选、越涨越怕越跌越买(三条原文写入)
- 板块池与 ETF 映射:
名称(代码)全列传进去,不要让未来的自己再去查 - 温度计纪律:四档分位区间 + 单板块 ≤30% + 至少分 3 批 + 溢价 >1% 不追
- 本时点的具体数据清单:该时点该看什么(参考上面的六时点表)
- 档案路径与推送要求:档案写入
deliverables/trading-agent/daily-forecast-YYYY-MM-DD.md,推送用scripts/push.py
必须写明「错过不自动补跑」:若因关机/离线错过触发时间,不得事后启动、不得顺延补做、不得在后续时点顺带补齐先前时段;档案缺失时标注【未验证】降级运行;用户明确要求补看时才执行。这条规则的作用是防止用「已知结果」倒推「预判」,让复盘数据失真。
模板见 references/report-templates.md。
工作流 C:板块轮动扫描(周报)
- 范围:31 个申万一级行业 + 重点主题(半导体、AI、创新药、黄金、红利、恒生科技、机器人、电池等)。
- 筛估值:分位 < 30% 进候选池,< 20% 标为重点;> 60% 直接进规避榜。
- 评前景(仅对候选池打分,避免浪费时间在贵板块上):五因子加权,≥7 分进推荐池,5–7 分观察池,<5 分淘汰。
- 交叉验证:候选池板块逐个用领先指标确认景气方向(韩股/台积电/美债/港股)。
- 出榜:推荐池 / 观察池 / 规避榜 + 温度计周变动 + 事件日历 + 哑铃两端配置建议。
规避榜和推荐榜同等重要——知道不买什么,比知道买什么更能避免亏损。
数据获取
按当前环境可用的工具依次尝试,取到即止:
- 环境中已安装的金融数据 skill / MCP 连接器(如行情、基金、估值分位接口)。
- 网络搜索(
WebSearch)补充政策、事件、财报等定性信息。 - 用户直接提供的截图或数据。
关键约束:
- 每份报告必须标注数据时点(如「数据截至 10:25」),因为盘中数据每秒在变。
- 查不到的数据写「未获取」,绝不编造数字。估值分位这类核心数据缺失时,明确说明「分位未获取,本结论仅基于技术面与资金面」,并降低结论强度。
- ETF 折溢价口径:很多接口返回的「基金净值」是上一交易日收盘净值,不是实时 IOPV。用它算溢价会在板块当日大涨时算出虚高溢价,误判「溢价过高勿追」。优先取实时 IOPV;只有旧净值时,改用「ETF 当日涨跌幅 − 跟踪指数当日涨跌幅」判断溢价方向,并标注口径。
推送(可选)
python3 scripts/push.py --file report.md --title "【哑铃监控·9:15】2026-10-28"
优先读 ~/.workbuddy/sector-etf-dumbbell/config.json 的 push 段。支持 PushPlus / Server酱 / 通用 Webhook。
脚本会先校验字节数再发送:超过上限(默认 15,000 字节)直接拒绝并指出最占空间的章节,避免反复试错。超限时的做法是生成「紧凑版」——保留全部表格、压缩叙述、学习要点压到 3 条,完整版留在文件与对话中。
推送失败(网络问题)不影响分析任务本身,忽略即可。
输出规范
- 语言:中文,结构化表格,结论明确(买 / 加 / 减 / 持有 / 不追)。
- 必带:ETF 代码、价格区间、分批档位、数据时点、免责声明。
- 必带【📚 投资学习要点】:每份报告末尾提炼 2–5 条(盘中验证类 2–3 条,盘前/晚间/周报 3–5 条)。每条三要素:结论 + 本次报告的具体数据举例 + 可迁移的做法。禁止写「要注意风险」这类空话。写法见
references/report-templates.md第八节。 - 不给模棱两可的答案。如果数据不足,明确说「数据不足,无法判断」,而不是给出「可能上涨也可能下跌」。
红线清单(每次输出前自查)
| 检查项 | 不合格表现 |
|---|---|
| 是否给了 ETF 代码 | 「关注半导体板块」← 无法下单 |
| 是否给了分位与温度档 | 只讲技术面不讲估值 |
| 是否追高 | 分位 > 80% 还建议买入 |
| 是否一把梭 | 建议一次性满仓,没有分批 |
| 是否忽略溢价 | 溢价 2% 还建议买入 |
| 周期股是否用 PB | 用 PE 分位判断煤炭/有色 |
| 是否标注数据时点 | 报告里没有时间戳 |
| 是否编造数据 | 分位查不到就自己估一个数字 |
| 是否有学习要点 | 报告止于操作建议 |
参考文件
| 文件 | 何时读 |
|---|---|
references/methodology.md |
需要解释策略原理、回答「为什么这样做」、复盘认知偏差时 |
references/indicators.md |
判断领先指标如何解读、影响哪个板块时 |
references/etf-map.md |
需要选具体 ETF、核对跟踪指数与流动性时 |
references/report-templates.md |
生成任一报告、写预判档案、写学习要点时 |
references/config.example.json |
配置字段含义参考 |
免责声明:本框架为投资研究参考,所有输出不构成投资建议。市场有风险,决策需自负。