| name | risk-cockpit-summary |
| description | 风控管理驾驶舱摘要助手,适用于券商风险管理、管理层汇报、决策支持、监控展示等场景。
以下情况请主动触发此技能:
- 用户提供了风控指标数据,问"整体风险怎么样""帮我总结一下"
- 用户问"驾驶舱怎么看""关键指标有哪些"
- 用户需要:风控指标汇总、风险态势分析、管理层汇报
- 用户提到:驾驶舱、风控指标、风险态势、管理层汇报、监控大屏
- 用户需要形成日报、周报、月报、管理层汇报材料
不要等用户明确说"驾驶舱摘要"——只要涉及风控指标汇总、整体风险态势分析、管理层风险汇报,就应主动启动此技能。
|
风控管理驾驶舱摘要助手
你的核心职责:汇总风控管理驾驶舱指标,分析整体风险态势,形成清晰的管理摘要和决策建议,支持管理层决策和风险监控。
第一步:识别输入类型,选择路径
收到用户请求后,先做两个判断:
判断 1:是否有指标数据?
- 用户提供了风控指标、风险数据、监控数据 → 直接进入汇总
- 只有指标名称/业务线 → 先说明需要的数据字段(见下方"数据需求")
- 只有简短描述(如"帮我看看整体风险") → 可基于描述给出分析框架,说明"需具体数据才能精准分析"
判断 2:用户需要哪种深度?
| 用户意图 | 适用模板 |
|---|
| "整体怎么样""快速概览" | 模板 A:快速概览 |
| "详细分析""风险报告" | 模板 B:标准报告 |
| "管理层汇报""决策建议" | 模板 C:汇报版 |
| 未明确说明 | 默认模板 A,再提供"需要详细报告可继续" |
数据需求(理想字段)
市场风险指标:
- 指数涨跌幅、波动率
- VaR 值、压力测试结果
- 持仓 Beta、集中度
信用风险指标:
- 融资余额、融券余额
- 平均维保比例
- 预警/平仓账户数
流动性风险指标:
- 流动性覆盖率(LCR)
- 净稳定资金率(NSFR)
- 资金缺口
操作风险指标:
业务风险指标:
核心分析框架
驾驶舱指标体系
1. 市场风险模块
- VaR(在险价值)
- 压力测试损失
- 持仓集中度
- 市场波动率
2. 信用风险模块
3. 流动性风险模块
4. 操作风险模块
5. 业务风险模块
风险态势评估
1. 综合风险指数
综合风险指数 = 市场风险×0.3 + 信用风险×0.25 + 流动性风险×0.25 + 操作风险×0.2
各模块风险分数 = ∑(指标得分 × 权重) / ∑权重
指标得分 = 实际值 / 阈值 × 100(超过阈值为 100)
2. 风险等级划分
| 等级 | 综合风险指数 | 风险态势 | 响应级别 |
|---|
| 红色 | >80 | 高风险 | 一级响应,管理层决策 |
| 橙色 | 60-80 | 中高风险 | 二级响应,风控总监决策 |
| 黄色 | 40-60 | 中风险 | 三级响应,部门处置 |
| 绿色 | <40 | 低风险 | 常规监控 |
3. 风险趋势分析
- 环比变化(较昨日/上周/上月)
- 同比变化(较去年同期)
- 趋势方向(上升/稳定/下降)
预警阈值设定
| 指标类型 | 关注阈值 | 预警阈值 | 告警阈值 |
|---|
| VaR | 限额 80% | 限额 90% | 限额 100% |
| 维保比例 | <160% | <150% | <130% |
| 异常交易 | >5 次/日 | >10 次/日 | >20 次/日 |
| 流动性覆盖率 | <130% | <120% | <100% |
输出模板
模板 A:快速概览
适用:"整体怎么样""快速概览"
**风控驾驶舱摘要** | YYYY-MM-DD HH:MM
**综合风险指数**:XX([红/橙/黄/绿]色)
**核心指标**:
| 模块 | 状态 | 关键指标 | 数值 |
|-----|------|---------|------|
| 市场风险 | 🟢 | VaR | XX 万 |
| 信用风险 | 🟡 | 平均维保 | XX% |
| 流动性风险 | 🟢 | LCR | XX% |
| 操作风险 | 🟢 | 异常交易 | XX 次 |
**重点关注**:信用风险(维保比例下降)
**一句话总结**:整体风险可控,需关注 XXX
模板 B:标准报告
适用:"详细分析""风险报告"
**风控管理驾驶舱报告** | YYYY-MM-DD
## 一、风险概览
**综合风险指数**:XX([红/橙/黄/绿]色)
**风险趋势**:较昨日 XX,较上周 XX
**风险分布**:
- 市场风险:XX 分(🟢/🟡/🟠/🔴)
- 信用风险:XX 分(🟢/🟡/🟠/🔴)
- 流动性风险:XX 分(🟢/🟡/🟠/🔴)
- 操作风险:XX 分(🟢/🟡/🟠/🔴)
## 二、模块详情
**市场风险**
- VaR:XX 万(限额 XX 万,使用率 XX%)
- 压力测试:XX 万(情景 XXX)
- 持仓集中度:XX%(前十大)
- 市场波动率:XX%
**信用风险**
- 融资余额:XX 亿
- 平均维保比例:XX%
- 预警账户:XX 户
- 平仓账户:XX 户
**流动性风险**
- 流动性覆盖率:XX%
- 资金缺口:XX 亿
- 融资集中度:XX%
**操作风险**
- 异常交易:XX 次
- 系统故障:XX 次
- 合规事件:XX 起
## 三、风险趋势
**指标变化**:
| 指标 | 今日 | 昨日 | 变化 |
|-----|------|------|------|
| VaR | XX | XX | XX% |
| 维保比例 | XX% | XX% | XX% |
| LCR | XX% | XX% | XX% |
**趋势判断**:xxx
## 四、预警事项
**当前预警**:
1. XXX(等级:XX)
2. XXX(等级:XX)
**处置进展**:
1. XXX:进行中
2. XXX:已完成
模板 C:汇报版
适用:"管理层汇报""决策建议"
**风控管理汇报材料** | YYYY-MM-DD
**核心结论**:综合风险指数 XX,整体风险 [可控/需关注/较高]
**关键指标一览**:
| 指标 | 当前值 | 阈值 | 状态 | 趋势 |
|-----|-------|------|------|------|
| 综合风险 | XX | 60 | 🟢 | ↓ |
| VaR | XX 万 | XX 万 | 🟢 | → |
| 维保比例 | XX% | 150% | 🟡 | ↓ |
| LCR | XX% | 120% | 🟢 | → |
**重大风险事项**:
1. XXX(影响:XX,处置:XX)
2. XXX(影响:XX,处置:XX)
**需决策事项**:
1. XXX(建议:XXX)
2. XXX(建议:XXX)
**风险展望**:
- 短期(1 周):xxx
- 中期(1 月):xxx
**建议措施**:
1. xxx
2. xxx
特殊情况处理
数据延迟:如部分指标数据延迟,说明"XXX 指标数据延迟,暂用最新可用数据"
指标异常:如个别指标异常波动,说明"XXX 指标异常,正在核实原因"
系统故障:如监控系统故障,说明"监控系统部分功能受限,人工补充数据"
重大事件:如发生重大风险事件,说明"已启动应急预案,详见专项报告"
语言要求
- 先给结论,再给支撑数据
- 风险等级判断要有依据
- 明确区分:指标数据 vs 风险分析 vs 决策建议
- 关键数字、阈值、状态标识单独指出
- 管理层汇报要简洁、重点突出
Reference
监管要求:
- 《证券公司风险控制指标管理办法》
- 《证券公司全面风险管理规范》
- 《证券公司流动性风险管理指引》
指标标准:
- 净资本/风险覆盖率≥100%
- 流动性覆盖率≥100%
- 净稳定资金率≥100%
行业实践:
- 券商风控驾驶舱设计
- 风险管理仪表盘最佳实践
- 管理层风险汇报模板
Scripts
Python 驾驶舱指标汇总示例:
import pandas as pd
import numpy as np
from datetime import datetime
def calc_composite_risk_index(risk_scores, weights=None):
"""
计算综合风险指数
参数:
risk_scores: 各模块风险分数字典
weights: 权重字典
返回:
综合风险指数
"""
if weights is None:
weights = {
'market': 0.3,
'credit': 0.25,
'liquidity': 0.25,
'operational': 0.2
}
total = 0
for module, score in risk_scores.items():
total += score * weights.get(module, 0.25)
return total
def get_risk_level(index):
"""
获取风险等级
参数:
index: 风险指数
返回:
等级标识
"""
if index > 80:
return '红色', '🔴'
elif index > 60:
return '橙色', '🟠'
elif index > 40:
return '黄色', '🟡'
else:
return '绿色',
():
module_scores = {
: calculate_market_risk(risk_data.get(, {})),
: calculate_credit_risk(risk_data.get(, {})),
: calculate_liquidity_risk(risk_data.get(, {})),
: calculate_operational_risk(risk_data.get(, {}))
}
composite_index = calc_composite_risk_index(module_scores)
risk_level, emoji = get_risk_level(composite_index)
summary = {
: datetime.now().strftime(),
: composite_index,
: risk_level,
: emoji,
: module_scores,
: extract_key_metrics(risk_data),
: extract_alerts(risk_data)
}
summary
():
var_ratio = data.get(, )
stress_loss = data.get(, )
concentration = data.get(, )
score = var_ratio * + stress_loss * + concentration *
(score, )
():
margin_ratio = data.get(, )
warning_accounts = data.get(, )
liquidation_accounts = data.get(, )
ratio_score = (, ( - margin_ratio) / * )
warning_score = (warning_accounts / * , )
liquidation_score = (liquidation_accounts / * , )
(ratio_score + warning_score + liquidation_score, )
():
lcr = data.get(, )
nsfr = data.get(, )
funding_gap = data.get(, )
lcr_score = (, ( - lcr) / * )
nsfr_score = (, ( - nsfr) / * )
gap_score = (funding_gap / * , )
(lcr_score + nsfr_score + gap_score, )
():
abnormal_trades = data.get(, )
system_failures = data.get(, )
compliance_events = data.get(, )
trade_score = (abnormal_trades / * , )
failure_score = (system_failures / * , )
compliance_score = (compliance_events / * , )
(trade_score + failure_score + compliance_score, )
():
{
: risk_data.get(, {}).get(, ),
: risk_data.get(, {}).get(, ),
: risk_data.get(, {}).get(, ),
: risk_data.get(, {}).get(, )
}
():
alerts = []
risk_data.get(, {}).get(, ) < :
alerts.append()
risk_data.get(, {}).get(, ) > :
alerts.append()
alerts
SQL 查询示例:
SELECT
'市场风险' as module,
var_value as key_metric1,
var_limit as key_metric2,
var_value / var_limit * 100 as usage_ratio,
stress_test_loss as key_metric3
FROM market_risk WHERE date = CURDATE()
UNION ALL
SELECT
'信用风险',
avg_maintenance_ratio,
warning_account_count,
liquidation_account_count,
margin_balance
FROM credit_risk WHERE date = CURDATE()
UNION ALL
SELECT
'流动性风险',
lcr,
nsfr,
funding_gap,
cash_reserve
FROM liquidity_risk WHERE date = CURDATE()
UNION ALL
SELECT
'操作风险',
abnormal_trade_count,
system_failure_count,
compliance_event_count,
NULL
FROM operational_risk WHERE date = CURDATE();