Files
sanguo_quant_live/strategies/structured-dynamic-factors-20260327

结构化适配动态多因子 - 风控择时模块

功能说明

本模块为「结构化适配动态多因子」策略实现完整风控择时:

1. 个股风险评估

五维基础风险 + 消息提前监控 + 国际联动风险:

维度 说明 权重
波动风险 个股波动率 15%
基本面风险 基本面质量差扣分 20%
流动性风险 流动性差扣分 15%
估值风险 估值过高扣分 20%
消息面风险 量价/融资/龙虎/舆情/国际联动 30%

消息监控预警规则(参数可配置):

  • 近5日放量下跌 >7% → 警惕利空提前泄露
  • 融资一周减少 >20% → 杠杆资金出逃
  • 龙虎榜机构大额卖出 → 预警
  • 大宗折价 >8% → 大股东出货预警
  • 讨论量暴涨 >5倍 → 热度异常,警惕见顶
  • A+H股H股跌 >3% → A股跟随风险
  • 大宗商品期货跌 >4% → 个股承压
  • 美股跌 >2% → 系统性风险预警

2. 择时适配结构化

规则 阈值(默认) 操作
单板块仓位 >15% 提示减仓分散
板块累计涨幅 >50% 提示警惕过热,提高止盈标准
板块累计涨幅 30%~50% 提示提高风控警惕
板块累计跌幅 -20% ~ -40% 基本面没问题提示低吸机会

3. 风控适配结构化

规则 阈值(默认)
单板块最大仓位 25%
单一风格最大仓位 40%
所有热点板块合计最大 50%
热点板块消息风险 涨幅>50% → 风险评分放大2倍
涨幅30%~50% → 放大1.5倍

4. 全参数抽象化

所有阈值、比例都集中在 RiskConfig 数据类中,修改方便,支持参数优化:

@dataclass
class RiskConfig:
    # 个股消息监控参数
    vol_alert_threshold: float = 2.0
    drop_alert_threshold: float = -7.0
    ...
    # 权重配置
    weight_volatility: float = 0.15
    weight_fundamental: float = 0.20
    ...
    # 风险等级阈值
    threshold_exit: float = 0.7
    threshold_reduce: float = 0.4
    ...

使用自定义配置:

from risk_control import StructuredDynamicFactorsRiskControl, RiskConfig

my_config = RiskConfig(
    single_sector_high_position=0.20,  # 改成20%
    sector_rally_risk=60.0,  # 改成60%才预警
    hot_risk_multiplier=1.8  # 调整放大倍数
)
rc = StructuredDynamicFactorsRiskControl(my_config)

使用示例

from risk_control import (
    StructuredDynamicFactorsRiskControl,
    IndividualStockRisk,
    SectorInfo,
    default_config
)

# 初始化风控
rc = StructuredDynamicFactorsRiskControl(default_config)

# 评估单个股
stock = IndividualStockRisk(
    code="600000",
    name="浦发银行",
    volatility=0.3,
    fundamental=0.2,
    liquidity=0.1,
    valuation=0.4,
    # 消息数据
    recent_vol_change=1.5,
    recent_pct_change=-8.5,
    gap_down=True,
    finance_balance_change=-0.25,
    # 板块数据
    sector_name="银行",
    sector_style="金融",
    sector_total_gain=15.0,
    sector_position_ratio=0.18
)
result = rc.assess_stock(stock)
print(f"风险: {result['total_risk']:.2f}, 建议: {result['suggestion']}")

# 板块择时报告
sectors = [
    SectorInfo(name="AI算力", style="AI", recent_gain=65, position_ratio=0.22, stock_count=4, is_hot=True),
    SectorInfo(name="新能源", style="新能源", recent_gain=-25, position_ratio=0.10, stock_count=2, is_hot=False)
]
print(rc.get_sector_timing_report(sectors))

# 整体组合评估
portfolio_result = rc.assess_portfolio([stock], sectors)
print(rc.get_risk_report(portfolio_result))

风险等级划分

总分 等级 建议
≥0.7 🔴 EXIT 清仓离场
0.4~0.7 🟠 REDUCE 减仓控制风险
0.2~0.4 🟡 WATCH 继续观察,不新开仓
<0.2 🟢 SAFE 安全,按计划操作

作者

关羽(云长)
风险都督
2026-03-27