结构化适配动态多因子 - 风控择时模块
功能说明
本模块为「结构化适配动态多因子」策略实现完整风控择时:
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