ID: treasury-yield-asset-map-20260813-fd9236cf56
Status: pending
Kind: create
Skill: treasury-yield-asset-map
Target: /root/.openclaw/workspace/skills/treasury-yield-asset-map/SKILL.md
Scanner: clean
name: "treasury-yield-asset-map"
description: "美债收益率 × 股票板块映射表,医药拆为上行/下行友好双池,含阈值预警和哑铃组合。"
status: proposal
version: "v2"
date: "2026-08-13T07:39:27.327Z"
Treasury Yield × Asset Map Skill
把"美债收益率(10Y/2Y/30Y)与各股票板块的关系"封装为可复用的资产映射工具。
何时使用
用户问到以下任一场景时调用此 skill:
- "美债涨/跌利好/利空什么板块"
- "现在该买科技/医药/银行/地产"
- "美债 4.5% 该怎么调仓"
- "软着陆/硬着陆/再通胀下的资产配置"
- "10Y 突破 4.85% 该怎么做"
⚠️ v1.1 重要修正:医药双池识别
医药整体是美债友好板块,但要区分"上行友好池"和"下行友好池":
| 美债方向 | 受益医药子赛道 | 弹性 | 逻辑 |
|---|---|---|---|
| ↑ 涨(避险) | 中药龙头、大型企业、医疗器械 | +0.4 ~ +0.5 | 股息 + 现金流 + 防御 |
| ↓ 跌(宽松) | 港股 Biotech、CRO/CDMO、创新药 | +0.8 ~ +1.5 | 融资成本 ↓ + 久期长 |
| 横盘 | 医疗器械、仿制药 | +0.2 ~ +0.3 | 看国内政策 |
医药久期差异:
Biotech (15年) > 创新药 (12年) > CRO (8年) > 器械 (7年) > 中药 (5年) > 仿制药 (4年)
- 久期 15 年的 Biotech:美债 ↓ 1% → 估值 +15-20%
- 久期 5 年的中药:美债 ↓ 1% → 估值 +5-6%
输入参数
- 当前 10Y 美债收益率(必填,单位 %)
- 当前 30Y 美债收益率(可选)
- 当前 VIX 恐慌指数(可选)
- 美债变动方向(涨/跌/横盘)
- 涨的原因("经济强预期" / "通胀恐慌" / "避险买盘")
输出结构
- 三大力量分析:贴现率压力 / 经济强信号 / 避险溢价
- 板块敏感性矩阵:5 大板块 + 子赛道 + 弹性系数
- 医药双池识别(v1.1):上行友好池 vs 下行友好池
- 当前区间策略:基于 10Y 阈值的具体操作
- A 股映射建议:每个板块对应 A 股龙头标的
- 触发调整信号:关键美债/VIX 阈值
- 哑铃组合方案:进攻 + 防御配置(含医药双池权重)
核心映射表(10Y 区间 → 策略)
| 10Y 区间 | 美股策略 | A 股映射 | 关键风险 |
|---|---|---|---|
| < 4.0% | 🟢 重仓科技/AI | DeepSeek 绑定 + 港股 Biotech | 通胀失控 |
| 4.0-4.5% | 🟢 正常科技仓位 | 逢回调加 + CRO/创新药 | 美联储转鹰 |
| 4.5-4.75% | 🟡 谨慎做多 | 减 30% 现金 + 中药/器械 | AI 业绩证伪 |
| 4.75-5.0% | 🔴 减科技,增中药+银行 | 清 AI,加红利/银行/中药 | 硬着陆信号 |
| > 5.0% | 🔴🔴 只持现金 + 中药 | 空仓观望 | 系统性风险 |
板块子赛道映射(A 股标的)
科技/AI
- 高敏感:海光信息、寒武纪、金山办公
- 中敏感:紫光股份、浪潮信息、中兴通讯
- 低敏感:兆易创新、北方华创、航锦科技
医药(v1.1 双池划分)
上行友好池(美债↑受益):
- 大型药企:恒瑞医药
- 中药龙头:片仔癀、同仁堂、云南白药
- 医疗器械:迈瑞医疗、联影医疗
- 仿制药:华海药业、科伦药业
下行友好池(美债↓受益):
- 港股 Biotech:百济神州、信达生物
- 创新药 A 股:科创板 18A
- CRO/CDMO:药明康德、凯莱英
- 创新医疗器械:微电生理
银行/金融(美债↑利好)
- 国有大行:工商银行、建设银行、农业银行、中国银行
- 招商银行、平安银行(息差弹性最大)
防御板块
- 公用事业:长江电力、中国核电
- 必需消费:贵州茅台、伊利股份
利空板块
- 房地产:万科 A、保利发展
- 半导体(高久期)
医药双池调仓信号(v1.1)
| 美债信号 | 上行池 | 下行池 |
|---|---|---|
| 10Y 突破 4.85% | 🟢 加仓 | ⚪ 减仓 |
| 10Y 跌破 4.30% | ⚪ 减仓 | 🟢 加仓 |
| 10Y 跌破 4.00% | 🔴 减仓 | 🟢🟢 重仓 |
| VIX 突破 25 | 🟢 重仓 | ⚪ 减仓 |
| Fed 降息 50bp | 🔴 减仓 | 🟢🟢 全面加仓 |
关键阈值预警
- 10Y 4.75%:科技估值压力临界
- 10Y 4.85%:科技→医药转换信号
- 10Y 5.0%:硬着陆警报
- 10Y 4.0%:风险偏好全面打开
- 10Y 4.30%:下行友好池加仓信号
- 30Y - 10Y 利差 > 50bp:衰退信号
- VIX > 25:重仓中药+必需消费
使用方式
被调用时,agent 应:
1. 读取用户提供的当前美债数据(如果没有,先调 treasury-yield-monitor skill 拿最新)
2. 按"三大力量分析 + 板块矩阵 + 医药双池识别 + 当前区间策略"四段式输出
3. 末尾给出"科技-医药哑铃比例"(医药部分拆分成"上行/下行友好池"两个权重)
4. 标注关键阈值监控点(含医药双池切换信号)
版本变更
- v1.0 (2026-08-13): 初版,医药统一归为"美债友好板块"
- v1.1 (2026-08-13): 医药拆分为"上行友好池"和"下行友好池",增加双池切换信号
Support files:
--- references/sector_matrix.md ---
美债 × 板块 敏感性矩阵(详细版 · v1.1 含医药双池)
1. 科技股子赛道敏感性
| 子赛道 | 美债 ↑ 弹性 | 原因 | A 股代表 |
|---|---|---|---|
| AI 软件应用层 | -1.5 | 高久期,估值压缩重 | 金山办公、福昕软件 |
| AI 算力(半导体) | -0.8 | 有真实订单,业绩对冲 | 寒武纪、海光信息 |
| AI 服务器 | -0.5 | 订单确定 | 浪潮信息、紫光股份 |
| AI PCB | -0.6 | 配套需求确定 | 沪电股份、生益科技 |
| 端侧 AI | -0.4 | 弹性大 | 美格智能 |
| 软件外包 | -0.7 | 中等久期 | 中科软 |
2. 医药股子赛道敏感性(v1.1 双池)
上行友好池(美债↑受益,避险 + 股息)
| 子赛道 | 美债 ↑ 弹性 | 美债 ↓ 弹性 | 原因 | A 股代表 |
|---|---|---|---|---|
| 大型药企 | +0.4 | +0.2 | 股息率高,类债券 | 恒瑞医药 |
| 中药龙头 | +0.5 | +0.3 | 政策红利+消费防御 | 片仔癀、同仁堂、云南白药 |
| 仿制药 | +0.2 | -0.1 | 集采出清,集中度提升 | 华海药业、科伦药业 |
| 医疗器械 | +0.3 | +0.1 | 国产替代 + 刚需 | 迈瑞医疗、联影医疗 |
| 疫苗 | +0.1 | +0.2 | 防御属性 | 智飞生物、康希诺 |
下行友好池(美债↓受益,融资松 + 久期长)
| 子赛道 | 美债 ↓ 弹性 | 美债 ↑ 弹性 | 原因 | A 股代表 |
|---|---|---|---|---|
| 港股 Biotech | +1.5 | -0.8 | 融资成本敏感 | 百济神州、信达生物 |
| 创新药 A 股 | +1.2 | -0.6 | 一级市场回暖 | 科创板 18A |
| CRO/CDMO | +0.8 | -0.2 | 全球药企研发支出 | 药明康德、凯莱英 |
| 创新医疗器械 | +0.6 | -0.1 | 高研发投入估值修复 | 微电生理 |
3. 金融板块敏感性
| 子赛道 | 美债 ↑ 弹性 | 原因 |
|---|---|---|
| 国有大行 | +0.7 | 净息差扩大 |
| 招商/平安 | +0.8 | 零售业务息差弹性最大 |
| 保险 | +0.6 | 投资收益增加,准备金释放 |
| 证券 | +0.3 | 交易活跃度上升 |
| 多元金融 | +0.4 | 资产端收益提升 |
4. 周期/工业板块敏感性
| 子赛道 | 美债 ↑ 弹性 | 原因 |
|---|---|---|
| 有色金属 | +0.3 | 美元/利率双向 |
| 煤炭/石油 | +0.2 | 通胀对冲 |
| 化工 | -0.3 | 需求端敏感 |
| 钢铁 | -0.5 | 地产链下行 |
5. 防御板块敏感性
| 子赛道 | 美债 ↑ 弹性 | 原因 |
|---|---|---|
| 公用事业 | +0.4 | 稳定现金流 + 股息 |
| 必需消费 | +0.3 | 防御属性 |
| 高速公路 | +0.5 | 类债券 |
| 港口/机场 | -0.2 | 经济周期敏感 |
6. 利空板块(美债 ↑ 重伤)
| 子赛道 | 美债 ↑ 弹性 | 原因 |
|---|---|---|
| 房地产 | -1.2 | 高杠杆 + 利率敏感 |
| 物业管理 | -1.0 | 估值压缩 |
| 家居/建材 | -0.8 | 地产链下游 |
| 半导体(纯设计) | -0.9 | 高久期 + 融资成本 |
| 互联网 | -0.6 | 现金流久期长 |
7. 医药双池久期差异(v1.1 新增)
久期长度:
Biotech 15年 > 创新药 12年 > CRO 8年 > 器械 7年 > 中药 5年 > 仿制药 4年
贴现率敏感性:
- Biotech: 美债 ↓ 1% → 估值 +15-20%
- 中药: 美债 ↓ 1% → 估值 +5-6%
→ 同一个美债变化,不同医药子赛道反应差异巨大
→ 配置医药时必须先判断美债方向,再选对应子池
--- references/regime_playbook.md ---
宏观情景 × 资产配置 Playbook(v1.1 含医药双池)
情景 A:软着陆(概率 50%)
信号:通胀降温 + GDP 弱增长 + 失业率小幅上升
资产配置
| 资产类别 | 权重 |
|---|---|
| 美股科技(AI 业绩兑现) | 35% |
| A 股 AI 绑定(航锦/兆易) | 15% |
| 港股 Biotech + 创新药(下行池) | 15% |
| 中药 + 大型药企(上行池) | 10% |
| 美债长端 | 15% |
| 黄金 | 5% |
| 现金 | 5% |
情景 B:再通胀(概率 30%)
信号:CPI > 3.5% 持续 + 油价涨 + Fed 鹰派
资产配置
| 资产类别 | 权重 |
|---|---|
| 能源/资源 | 25% |
| 银行/金融 | 20% |
| 中药 + 大型药企(上行池) | 20% |
| 必需消费 | 15% |
| 美债短端 | 10% |
| 黄金 | 5% |
| 现金 | 5% |
情景 C:硬着陆(概率 20%)
信号:失业率飙升 + 信贷违约 + Fed 紧急降息
资产配置
| 资产类别 | 权重 |
|---|---|
| 美债长端 | 35% |
| 黄金 | 25% |
| 中药 + 大型药企(上行池) | 15% |
| 港股 Biotech(下行池,紧急降息 → 弹性) | 10% |
| 必需消费 | 10% |
| 现金 | 5% |
情景 D:滞胀(概率 15%)
信号:经济停滞 + 通胀粘性
资产配置
| 资产类别 | 权重 |
|---|---|
| 黄金 | 35% |
| 能源/资源 | 25% |
| 中药 + 大型药企(上行池) | 20% |
| 必需消费 | 10% |
| 美债短端 | 5% |
| 现金 | 5% |
当前(2026-08-13)判断
- 当前区间:4.5-4.75%
- 最大概率:情景 A 软着陆(50%)
- 次概率:情景 B 再通胀(30%)
- 推荐配置:科技 40% + 医药上行池 20% + 医药下行池 10% + 金融 15% + 现金 15%
- 关键:当前美债方向震荡偏横盘 → 上下池都保留,比例 2:1(上行:下行)
--- references/yardstick_thresholds.md ---
美债关键阈值监控(v1.1 含医药双池信号)
10Y 国债收益率关键点位
| 阈值 | 含义 | 操作 |
|---|---|---|
| 3.5% | 极宽松环境 | 重仓科技 + 港股 Biotech + 创新药 |
| 4.0% | 中性偏松 | 正常科技仓位 + CRO 加仓 |
| 4.30% | 下行池加仓信号 | 港股 Biotech / CRO / 创新药 加仓 |
| 4.5% | 中性 | 开始谨慎 |
| 4.75% | 估值压力临界 | 减科技 20%,加 中药+大型药企(上行池) |
| 4.85% | 调仓信号 | 科技 → 医药双池转换(上行池主导) |
| 5.0% | 硬着陆警报 | 只持现金 + 中药+大型药企(避险) |
| 5.25% | 金融危机级别 | 空仓 |
医药双池调仓信号(v1.1)
| 信号 | 上行池(中药+大型药企+器械) | 下行池(Biotech+CRO+创新药) |
|---|---|---|
| 10Y 突破 4.85% | 🟢 加仓 | ⚪ 减仓 |
| 10Y 突破 5.0% | 🟢🟢 重仓 | 🔴 清仓 |
| 10Y 跌破 4.30% | ⚪ 减仓 | 🟢 加仓 |
| 10Y 跌破 4.00% | 🔴 减仓 | 🟢🟢 重仓 |
| VIX 突破 25 | 🟢 重仓 | ⚪ 减仓 |
| Fed 降息 50bp | 🔴 减仓 | 🟢🟢 全面加仓 |
| Fed 加息 50bp | 🟢 加仓 | 🔴 清仓 |
30Y - 10Y 利差(曲线形态)
| 利差 | 含义 |
|---|---|
| > 100bp | 正常向上倾斜 |
| 50-100bp | 平坦(衰退前兆) |
| < 50bp | 倒挂警报 |
| < 0 | 严重倒挂(衰退概率 90%+) |
2Y - 10Y 利差(衰退信号)
| 利差 | 含义 |
|---|---|
| > 100bp | 健康 |
| 0-100bp | 警告 |
| < 0 | 衰退信号(历史上 100% 准确) |
VIX(恐慌指数)
| VIX | 含义 |
|---|---|
| < 15 | 极度贪婪 |
| 15-20 | 正常 |
| 20-25 | 紧张 |
| 25-35 | 重仓医药(上行池) |
| > 35 | 危机 |
综合信号判定
| 信号 | 触发条件 | 操作 |
|---|---|---|
| 🟢 全仓科技 | 10Y<4.5% + VIX<20 + 2Y-10Y>50bp | 重仓进攻 |
| 🟡 标配 | 10Y 4.5-4.75% + VIX 15-25 | 均衡配置 |
| 🟠 防御 | 10Y>4.75% 或 VIX>25 | 减科技加医药(上行池主导) |
| 🔴 现金为主 | 10Y>5.0% 或 2Y-10Y<0 | 只持现金 + 中药 |
--- scripts/yield_asset_advisor.py ---
!/usr/bin/env python3
"""
Treasury Yield × Asset Map Advisor (v1.1)
输入:当前 10Y 美债收益率(必填)、30Y、VIX、美债变动方向
输出:板块策略 + A 股标的 + 哑铃组合 + 触发信号(含医药双池识别)
Usage:
python3 yield_asset_advisor.py --ten_y 4.688 --thirty_y 5.276 --vix 18
python3 yield_asset_advisor.py --ten_y 4.688 --direction up
python3 yield_asset_advisor.py --ten_y 4.688 --json
"""
import argparse
import json
from datetime import datetime
========== 板块子赛道敏感性矩阵 ==========
医药 v1.1 双池
PHARMA_UP_POOL = { # 上行友好池(美债↑受益)
"大型药企": 0.4, "中药龙头": 0.5, "仿制药": 0.2,
"医疗器械": 0.3, "疫苗": 0.1,
}
PHARMA_DOWN_POOL = { # 下行友好池(美债↓受益)
"港股 Biotech": 1.5, "创新药 A 股": 1.2, "CRO/CDMO": 0.8, "创新医疗器械": 0.6,
}
科技/AI
TECH_SECTORS = {
"AI 软件应用": -1.5, "AI 算力半导体": -0.8, "AI 服务器": -0.5,
"AI PCB": -0.6, "端侧 AI": -0.4, "软件外包": -0.7,
}
金融
FINANCE_SECTORS = {
"国有大行": 0.7, "招商/平安": 0.8, "保险": 0.6, "证券": 0.3, "多元金融": 0.4,
}
防御
DEFENSIVE_SECTORS = {
"公用事业": 0.4, "必需消费": 0.3, "高速公路": 0.5, "港口/机场": -0.2,
}
利空板块
NEGATIVE_SECTORS = {
"房地产": -1.2, "物业": -1.0, "家居/建材": -0.8,
"半导体纯设计": -0.9, "互联网": -0.6,
}
10Y 区间策略
YIELD_REGIMES = [
(4.0, "4.0% 以下", "🟢", "重仓科技/AI", "全力做多 DeepSeek + 港股 Biotech", "通胀失控"),
(4.5, "4.0-4.5%", "🟢", "正常科技仓位", "逢回调加 + 加仓 CRO/创新药", "美联储转鹰"),
(4.75, "4.5-4.75%", "🟡", "谨慎做多", "减仓 30% 留现金 + 加仓中药/器械", "AI 业绩证伪"),
(5.0, "4.75-5.0%", "🔴", "减科技,增中药+大型药企+银行", "清 AI,加红利/银行/中药", "硬着陆信号"),
(float("inf"), "5.0% 以上", "🔴🔴", "只持现金 + 中药+大型药企", "空仓观望", "系统性风险"),
]
def get_regime(ten_y):
for threshold, label, color, action, a_share, risk in YIELD_REGIMES:
if ten_y < threshold:
return {
"label": label, "color": color, "action": action,
"a_share": a_share, "risk": risk,
}
return {
"label": YIELD_REGIMES[-1][1], "color": YIELD_REGIMES[-1][2],
"action": YIELD_REGIMES[-1][3], "a_share": YIELD_REGIMES[-1][4],
"risk": YIELD_REGIMES[-1][5],
}
def get_pharma_pool_signal(ten_y):
"""医药双池识别"""
if ten_y >= 4.75:
return {
"推荐池": "上行池",
"理由": f"10Y {ten_y:.3f}% ≥ 4.75%,美债高位 → 加仓中药/大型药企/器械",
"上行池权重": 0.7, "下行池权重": 0.3,
}
elif ten_y <= 4.30:
return {
"推荐池": "下行池",
"理由": f"10Y {ten_y:.3f}% ≤ 4.30%,美债下行 → 加仓 Biotech/CRO/创新药",
"上行池权重": 0.3, "下行池权重": 0.7,
}
else:
return {
"推荐池": "均衡",
"理由": f"10Y {ten_y:.3f}% 区间震荡,上下池都保留 5:5",
"上行池权重": 0.5, "下行池权重": 0.5,
}
def get_barbell_allocation(ten_y, vix=None):
"""科技-医药哑铃比例(含医药双池拆分)"""
if ten_y < 4.0:
return {"科技": 60, "医药上行池": 10, "医药下行池": 15, "金融": 10, "现金": 5}
elif ten_y < 4.5:
return {"科技": 50, "医药上行池": 10, "医药下行池": 20, "金融": 15, "现金": 5}
elif ten_y < 4.75:
return {"科技": 40, "医药上行池": 20, "医药下行池": 15, "金融": 15, "现金": 10}
elif ten_y < 5.0:
return {"科技": 25, "医药上行池": 35, "医药下行池": 10, "金融": 25, "现金": 5}
else:
return {"科技": 10, "医药上行池": 45, "医药下行池": 5, "金融": 30, "现金": 10}
def format_report(ten_y, thirty_y=None, vix=None, direction="flat", cause=None):
lines = []
now = datetime.now()
lines.append(f"🦞 美债 × 板块策略报告 (v1.1) {now.strftime('%m-%d %H:%M')}")
lines.append(f"当前 10Y: {ten_y:.3f}% | 30Y: {(thirty_y or 'N/A')} | VIX: {vix or 'N/A'}")
lines.append(f"变动方向: {direction} | 原因: {cause or '未知'}")
lines.append("")
# 当前区间
regime = get_regime(ten_y)
lines.append(f"## 🎯 当前区间策略")
lines.append(f"**{regime['color']} {regime['label']}**")
lines.append(f"美股动作:{regime['action']}")
lines.append(f"A 股映射:{regime['a_share']}")
lines.append(f"关键风险:{regime['risk']}")
lines.append("")
# 医药双池识别(v1.1 重点)
pharma = get_pharma_pool_signal(ten_y)
lines.append(f"## 💊 医药双池识别(v1.1 核心)")
lines.append(f"**推荐池:{pharma['推荐池']}**")
lines.append(f"理由:{pharma['理由']}")
lines.append(f"上行池权重:{pharma['上行池权重']*100:.0f}% | 下行池权重:{pharma['下行池权重']*100:.0f}%")
lines.append("")
lines.append("### 上行友好池(美债↑受益)")
for sub, elastic in PHARMA_UP_POOL.items():
arrow = "🟢" if elastic > 0.3 else ("🟡" if elastic > 0 else "⚪")
lines.append(f" {arrow} {sub}: {elastic:+.1f} ← 避险+股息+防御")
lines.append("")
lines.append("### 下行友好池(美债↓受益)")
for sub, elastic in PHARMA_DOWN_POOL.items():
arrow = "🟢🟢" if elastic > 1.0 else ("🟢" if elastic > 0.5 else "🟡")
lines.append(f" {arrow} {sub}: {elastic:+.1f} ← 融资松+久期长")
lines.append("")
# 其他板块矩阵
lines.append("## 📊 其他板块敏感性")
lines.append("### 科技/AI")
for sub, elastic in TECH_SECTORS.items():
arrow = "🔴" if elastic < -1 else ("🟡" if elastic < 0 else "🟢")
lines.append(f" {arrow} {sub}: {elastic:+.1f}")
lines.append("")
lines.append("### 金融(美债↑受益)")
for sub, elastic in FINANCE_SECTORS.items():
arrow = "🟢" if elastic > 0.5 else "🟡"
lines.append(f" {arrow} {sub}: {elastic:+.1f}")
lines.append("")
lines.append("### 防御")
for sub, elastic in DEFENSIVE_SECTORS.items():
arrow = "🟢" if elastic > 0.3 else "🟡"
lines.append(f" {arrow} {sub}: {elastic:+.1f}")
lines.append("")
lines.append("### 利空板块")
for sub, elastic in NEGATIVE_SECTORS.items():
lines.append(f" 🔴 {sub}: {elastic:+.1f}")
lines.append("")
# 哑铃组合
barbell = get_barbell_allocation(ten_y, vix)
lines.append("## 🏋️ 哑铃配置建议(含医药双池拆分)")
for k, v in barbell.items():
bar = "█" * (v // 5)
lines.append(f" {k:<14} {bar} {v}%")
lines.append("")
# 触发信号
lines.append("## 🚨 触发调整信号")
signals = []
if ten_y >= 5.0:
signals.append("🔴🔴 10Y ≥5.0%,硬着陆警报")
elif ten_y >= 4.85:
signals.append("🔴 10Y ≥4.85%,科技→医药双池转换信号(上行池主导)")
elif ten_y >= 4.75:
signals.append("⚠️ 10Y ≥4.75%,减科技 20% 加 上行池")
elif ten_y >= 4.5:
signals.append("🟡 10Y 4.5-4.75%,谨慎做多")
elif ten_y >= 4.30:
signals.append("🟡 10Y ≤4.30%,下行池加仓信号")
elif ten_y >= 4.0:
signals.append("🟢 10Y 4.0-4.30%,正常仓位")
else:
signals.append("🟢🟢 10Y <4.0%,风险偏好全面打开")
# 医药双池切换信号
if ten_y >= 4.85:
signals.append("💊 医药:加 上行池,减 下行池")
elif ten_y <= 4.30:
signals.append("💊 医药:加 下行池(Biotech/CRO/创新药),减 上行池")
else:
signals.append("💊 医药:上下池均衡(5:5)")
if vix and vix > 25:
signals.append(f"⚠️ VIX {vix}>25,重仓 上行池(中药+必需消费)避险")
for s in signals:
lines.append(f" {s}")
return "\n".join(lines)
def main():
parser = argparse.ArgumentParser(description="Treasury Yield × Asset Map Advisor v1.1")
parser.add_argument("--ten_y", type=float, required=True, help="当前 10Y 美债收益率 (%)")
parser.add_argument("--thirty_y", type=float, help="当前 30Y 美债收益率 (%)")
parser.add_argument("--vix", type=float, help="当前 VIX 恐慌指数")
parser.add_argument("--direction", default="flat", choices=["up", "down", "flat"],
help="美债变动方向")
parser.add_argument("--cause", help="变动原因:经济强预期 / 通胀恐慌 / 避险买盘")
parser.add_argument("--json", action="store_true", help="输出 JSON 格式")
args = parser.parse_args()
if args.json:
result = {
"regime": get_regime(args.ten_y),
"pharma_pool": get_pharma_pool_signal(args.ten_y),
"barbell": get_barbell_allocation(args.ten_y, args.vix),
"ten_y": args.ten_y,
"thirty_y": args.thirty_y,
"vix": args.vix,
"direction": args.direction,
"cause": args.cause,
}
print(json.dumps(result, ensure_ascii=False, indent=2))
else:
print(format_report(args.ten_y, args.thirty_y, args.vix, args.direction, args.cause))
if name == "main":
main()