sector-rotation-monitor · git:20261103.b2d79fa · 2026-11-03 · sha256 b1d3adec56e023c1

sector-rotation-monitor git:20261103.b2d79faA

Immutable. This exact content never changes and is served at /api/v1/blob/b1d3adec56e023c1.

---
name: sector-rotation-monitor
description: >
  MUST USE when 定时分析港股“金融 vs 科技”轮动、恒指风格切换,或监控相对强弱/
  美债利率/人民币/南向资金并生成告警。触发词:轮动/金融科技/恒指风格/定时分析/
  监控/告警/金融跑赢/科技跑输/rotation monitor。只做状态监控,不预测涨跌,
  不构成交易建议。
---

# 金融 vs 科技轮动监控技能

> 目标:把“金融和科技会不会轮动”变成**每天可复算的状态表**,而不是拍脑袋。
> 一句话:**先定口径,再看相对强弱,最后看宏观触发;表格里每个数字都必须写清含义。**

## 何时用

- 每日/每周定时分析港股金融与科技的相对强弱;
- 回答“现在是不是该从金融切科技 / 科技切金融”;
- 监控美债 10Y、USD/CNY、HIBOR、南向资金是否出现轮动触发;
- 给邮件/报告生成“金融 vs 科技”监控段落。

不适用:个股基本面(走 `equity-analysis`);策略显著性/回测(走 `hypothesis-validation`);
指数权重/归因(走 `market-diagnostics`)。

## 快速运行

```bash
python3 scripts/rotation_monitor.py
python3 scripts/rotation_monitor.py --alert
python3 scripts/rotation_monitor.py --out output/rotation_monitor/latest.md
```

- `--alert`:有强标记时 exit 1,便于 cron/CI 发告警。
- 输出:`output/rotation_monitor/YYYY-MM-DD.md` + `.json`。
- 代码:`scripts/rotation_monitor.py`。

## 输出硬要求(用户指定)

**所有数字必须放在表格里,并同步解释含义。** 不允许只给一串数字。

必须至少有三张表:

### 1. 相对强弱
| 指标 | 数值 | 含义 | 当前读法 |
|---|---:|---|---|
| 金融篮子累计 | 例:+108.6% | 2020 以来等权金融股累计涨跌 | 金融长期占优 |
| 科技篮子累计 | 例:+53.3% | 2020 以来等权科技股累计涨跌 | 科技落后 |
| 20/60/120/252d 相对 | 例:+11.9% | 金融相对科技的超额 | 金融/科技/持平 |
| 相对强弱分位 | 例:100% | 当前相对强弱在 2020 以来历史位置 | 极值高位/中性/低位 |
| 60d 相关性 | 例:0.47 | 两篮子日收益同步度;越低越分散 | 低/中/高相关 |

### 2. 宏观与资金
| 指标 | 数值 | 含义 | 当前读法 |
|---|---:|---|---|
| 美债 10Y | 5.26% | 全球无风险利率锚;上行压科技估值 | 20d +51bp,利率上行 |
| USD/CNY | 6.654 | 人民币汇率;数值升=人民币贬 | 20d −0.8%,大致稳定 |
| HIBOR 3M | 3.21% | 香港短期资金成本;升=流动性收紧 | 20d −2.9bp,成本下降 |
| 南向 20d | −9.3 HK$bn | 南向估算净买入;正=流入 | 流出,承接力偏弱 |

### 3. 状态标记
| 标记 | 触发条件 | 当前是否触发 | 解释 |
|---|---|---|---|
| `FIN_CROWDED` | 1y 相对 ≥+50% 且分位 ≥90 | 是/否 | 金融拥挤,赔率下降 |
| `TECH_WEAK` | 1y 相对 ≥+30% | 是/否 | 科技相对弱,等催化 |
| `CORR_LOW` | 60d 相关 <0.45 | 是/否 | 分散度上升,轮动迹象 |
| `RATE_UP` | 美债 10Y 20d ≥+30bp | 是/否 | 科技估值受压,银行 NIM 受益 |
| `RATE_DOWN` | 美债 10Y 20d ≤−30bp | 是/否 | 反向 |
| `CNY_WEAK` | USD/CNY 20d ≥+1% | 是/否 | 外资/科技风险偏好受压 |
| `CNY_STRONG` | USD/CNY 20d ≤−1% | 是/否 | 利好外资/科技 |
| `SOUTHBOUND_OUT` | 南向 20d ≤−20bn | 是/否 | 港股承接力下降 |
| `SOUTHBOUND_IN` | 南向 20d ≥+20bn | 是/否 | 港股承接力上升 |

最后必须有一句**条件化结论**,例如:

> 金融相对拥挤且美债利率上行:这是“金融仍强、科技继续受压”的组合;
> 轮动到科技需要利率见顶或科技盈利超预期,当前未确认。

## 口径(写死,不要改)

- 金融篮子:HSBC、工行、建行、招行、平安、友邦、中行、中银香港、港交所,**等权**。
- 科技篮子:腾讯、阿里、小米、美团、网易、中芯、京东、百度、快手、联想,**等权**。
- 相对强弱 = 金融累计净值 ÷ 科技累计净值。
- 收益:前复权、日频;不计成本、股息、成分变化。
- 历史起点:2020-01-02;分位按 2020 以来。
- 这是**自建篮子**,不是官方行业指数。

## 数据源

| 数据 | 文件 | 更新 |
|---|---|---|
| 金融/科技股价 | `data/hk_broad/snapshot/*.pkl` | 每日快照 |
| 美债 10Y | `data/us_market_snapshot/treasury_yield.pkl` | 每日快照 |
| USD/CNY | `data/cnh_hibor/usdcny.csv` | 每日 |
| HIBOR 3M | `data/cnh_hibor/hibor_hkd.csv` | 每日 |
| 南向持股 | `data/southbound_holdings/southbound_long.csv` | 每日/周 |
| 银行 NIM/NPL/CET1 | `data/bank_reports/bank_metrics.csv` | 季/年 |
| 科技盈利/AI 资本开支 | 年报/季报 | 季 |
| 中国社融/信贷 | akshare 宏观接口 | 月 |

## 定时调度

每个交易日港股收盘后跑一次(HKT 17:30 左右):

```bash
30 9 * * 1-5 cd /data/fortune && python3 scripts/rotation_monitor.py --alert
```

- exit 1 时触发邮件/CI 告警;
- 周报:每周五跑一次,附上 20/60/120/252d 相对强弱;
- 月报:加中国社融、银行 NIM/NPL、科技财报;
- 告警只提醒“状态变化”,不自动下单。

## 基本面补充(不要日频硬编)

- **银行**:NIM、NPL、拨备覆盖、CET1、分红率;季/年更新。
- **科技**:营收/经营利润、AI 资本开支、游戏/广告增速;季度更新。
- **中国信用**:社融、信贷、地产销售;月度更新。
- 基本面数据没有更新时,报告中必须写“未更新”,不得用旧值假装当期。

## 硬规则

```
G1 只给数字、不解释含义                     → FAIL
G2 用日频价格代替基本面判断                 → FAIL(只能做状态,不做价值结论)
G3 把监控标记当买卖信号                     → FAIL
G4 不写口径(等权/起点/复权/成本)           → FAIL
G5 不写数据缺口(NPL/CET1/财报未更新)       → FAIL
G6 取单一窗口最好结果当结论                 → FAIL
G7 结论无“适用范围”                         → FAIL
```

## 限制

- 自建等权篮子 ≠ 官方行业指数;
- 阈值是监控规则,不是回测出来的 alpha;
- 只有 2020 以来样本,不能据此预测下次轮动日期;
- 未计交易成本、股息、成分调整;
- 不构成买卖建议。

## 文件

- 脚本:`scripts/rotation_monitor.py`
- 输出:`output/rotation_monitor/YYYY-MM-DD.md` / `.json`
- 相关技能:`market-diagnostics`(权重/归因)、`hypothesis-validation`(显著性)、`equity-analysis`(个股基本面)