Files
sanguo_quant_live/guanyu-risk/common

通用风控模块 - 个股利好利空风险监控

模块说明

news_risk_monitor.py + structural_market_risk.py 是通用模块,适配A股结构化行情,可被各个策略共享使用。

核心功能

基于公开数据,提前预判潜在消息面风险和板块风险:

监控维度 预警规则 预判逻辑
量价异常 近5日放量下跌 >7%,无公开消息 可能利空提前泄露,资金先跑
成交量放天量 >2倍,但股价不涨 可能利好兑现,主力出货
向下跳空缺口未回补 技术面偏空,趋势向下
融资变化 一周融资余额减少 >20% 杠杆资金出逃,不看好后市
融资买入占成交额 >20% 杠杆比例过高,波动风险大
龙虎大宗 机构大额卖出上榜 机构出逃,看空
大宗折价 >8% 大股东折价出货,利空
舆情监控 讨论量突然暴涨 >5倍 热度太高,往往见顶
舆情情感分 < -0.5 市场一致看空,情绪偏空
国际联动 A+H股H股隔夜跌幅 >3% A股大概率跟随下跌
大宗商品股对应期货跌幅 >4% 个股价格承压
美股隔夜跌幅 >2% A股开盘承压,系统性风险
重大国际利空消息 直接预警,建议降仓
结构化行情风控 单板块仓位 >15% 提示减仓分散
板块累计涨幅 >50% 风险评分放大,警惕利好出尽
单一风格仓位 >40% 提示超配风险
冷门板块连续大跌 >20% 如果基本面没问题,提示低吸机会
热点板块消息 风险评分放大2倍,灵敏度提高

量化规则

风险等级划分:

总分 等级 操作建议
≥40 🔴 EXIT 建议清仓离场
25~40 🟠 REDUCE 建议减仓
10~25 🟡 WATCH 继续观察,不新开仓
<10 🟢 SAFE 安全,按计划操作

整合进五维风险评估:

原来四个维度 + 消息风险维度:

  1. 流动性风险 (15%)
  2. 估值风险 (20%)
  3. 技术面风险 (20%)
  4. 基本面风险 (20%)
  5. 消息面风险 (25%) → 权重更高,因为黑天鹅危害大

使用方法

# 导入通用模块
import sys
sys.path.append("../../../guanyu-risk/common/")
from news_risk_monitor import NewsRiskMonitor, StockNewsData, FiveDimensionRiskAssessment

# 初始化监控器
monitor = NewsRiskMonitor()

# 填充数据
data = StockNewsData(
    code="600000",
    name="浦发银行",
    recent_vol_change=1.2,       # 成交量较20日均变化
    recent_pct_change=-8.5,      # 近5日涨跌幅%
    gap_down=True,              # 是否有向下缺口
    finance_balance_change=-0.25, # 融资余额周变化比例
    has_large_order=False,       # 龙虎榜是否大额卖出
    has_bulk_discount=False,      # 是否有大宗折价
    discussion_count_change=3.0,  # 讨论量较上周变化倍数
    sentiment_score=-0.6,         # 舆情情感分-1~1
    # 国际联动数据
    is_ah=False,
    ah_hk_overnight_change=0,
    is_commodity_related=False,
    commodity_future_overnight_change=0,
    us_index_overnight_change=-1.2,
    has_major_international_news=False
)

# 分析
result = monitor.analyze_stock(data)
print(monitor.get_risk_report(result))
print(f"风险等级: {result.risk_level}")
print(f"建议: {result.suggestion}")

# 整合到五维风险评估
five_dim = FiveDimensionRiskAssessment(monitor)
eval_result = five_dim.calculate_total_risk(
    liquidity_risk=0.2,
    valuation_risk=0.5,
    technical_risk=0.3,
    fundamental_risk=0.4,
    news_data=data
)
print(f"综合风险分: {eval_result['total_risk_score']:.2f}")
print(f"建议: {eval_result['suggestion']}")

数据获取说明

公开数据都可以从这些渠道获取:

  • 量价、融资:东方财富、TuShare、AkShare 直接接口
  • 龙虎榜:交易所官网、东方财富
  • 大宗交易:交易所、TuShare
  • 舆情:雪球、股吧公开数据,可以用爬虫获取讨论量

设计思路

核心思想:A股很多消息会提前泄露,从量价、资金、情绪上能提前发现痕迹,不等公告出来再反应,提前减仓规避黑天鹅。

层层设防:就算技术面、基本面都没问题,消息面不对劲,直接降仓,把风险拦在前面。

作者

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