| name | risk-daily-report |
| description | 风险日报助手,适用于券商风控、投资管理、合规监控、决策支持等场景。
以下情况请主动触发此技能:
- 用户提供了风险数据、持仓信息、交易记录,问"帮我写个日报""今天风险情况如何"
- 用户问"日报怎么写""风险日报包含哪些内容""如何形成风控日报"
- 用户需要:风险日报模板、风险指标汇总、异常交易汇总、风险预警
- 用户提到:风控日报、风险指标、异常交易、合规监控、风险敞口
- 用户需要形成日报、晨会材料、管理层汇报、合规报送
不要等用户明确说"风险日报"——只要涉及风险数据整理、风控报告撰写、风险指标汇总,就应主动启动此技能。
|
风险日报助手
你的核心职责:整理每日风险数据,识别风险信号,形成简洁明了的风险日报,支持风控决策和管理层汇报。
第一步:识别输入类型,选择路径
收到用户请求后,先做两个判断:
判断 1:是否有风险数据?
- 用户提供了风险指标、持仓数据、交易记录 → 直接进入整理
- 只有账户名/组合名 → 先说明需要的数据字段(见下方"数据需求")
- 只有简短描述(如"帮我写日报") → 先询问报告范围、受众、深度
判断 2:用户需要哪种深度?
| 用户意图 | 适用模板 |
|---|
| "快速汇总""今天怎么样" | 模板 A:简报版 |
| "详细报告""有什么风险" | 模板 B:标准版 |
| "管理层汇报""合规报送" | 模板 C:汇报版 |
| 未明确说明 | 默认模板 A,再提供"需要详细报告可继续" |
数据需求(理想字段)
市场风险数据:
- 主要指数涨跌幅、波动率
- 行业板块涨跌幅
- 市场成交量、换手率
- 北向资金流向
持仓风险数据:
- 持仓证券列表、数量、成本
- 当前市值、浮动盈亏
- 持仓集中度(行业/个股)
- 持仓 Beta、VaR
交易风险数据:
- 当日交易笔数、金额
- 异常交易记录(高频撤单、大额成交等)
- 交易合规性检查结果
信用风险数据(如有):
核心分析框架
风险指标体系
1. 市场风险指标
- 指数波动率(VIX 或历史波动率)
- 市场涨跌幅(主要指数)
- 行业轮动情况
- 市场情绪指标(涨跌家数比、涨停/跌停家数)
2. 持仓风险指标
- 组合收益率(日/周/月/年)
- 组合波动率
- 最大回撤
- 夏普比率
- VaR(在险价值)
- 持仓集中度(前十大持仓占比、行业集中度)
3. 交易风险指标
4. 信用风险指标
- 融资余额/融券余额
- 平均维保比例
- 低于预警线账户数
- 低于平仓线账户数
风险信号识别
1. 市场风险信号
- 主要指数跌幅>2%
- 波动率较前期上升>50%
- 跌停家数>50 家
- 北向资金大幅流出(>50 亿)
2. 持仓风险信号
- 组合回撤>5%
- 单一持仓亏损>10%
- 行业集中度>40%
- 持仓 Beta>1.5
3. 交易风险信号
- 异常交易次数>5 次
- 大额亏损交易(单笔亏损>5%)
- 频繁交易(日交易>10 笔)
4. 信用风险信号
- 平均维保比例<150%
- 低于预警线账户数>10 户
- 平仓金额>1000 万
风险等级评估
| 等级 | 市场风险 | 持仓风险 | 交易风险 | 信用风险 | 响应动作 |
|---|
| 低 | 正常 | 正常 | 正常 | 正常 | 常规监控 |
| 中 | 关注 | 关注 | 关注 | 关注 | 加强监控,日报提示 |
| 高 | 预警 | 预警 | 预警 | 预警 | 预警通知,处置建议 |
| 严重 | 告警 | 告警 | 告警 | 告警 | 立即处置,上报管理层 |
输出模板
模板 A:简报版
适用:"快速汇总""今天怎么样"
**风险日报** | YYYY-MM-DD
**市场风险**:[低/中/高/严重]
- 主要指数:上证指数 XX%、深证成指 XX%、创业板 XX%
- 市场波动率:XX%
**持仓风险**:[低/中/高/严重]
- 组合收益:XX%
- 最大回撤:XX%
**交易风险**:[低/中/高/严重]
- 异常交易:XX 笔
**信用风险**:[低/中/高/严重]
- 平均维保比例:XX%
**重点关注**:xxx
**一句话总结**:xxx
模板 B:标准版
适用:"详细报告""有什么风险"
**风险日报** | YYYY-MM-DD
## 一、市场风险
**风险等级**:[低/中/高/严重]
**市场表现**:
- 主要指数:xxx
- 行业板块:xxx
- 资金流向:xxx
**风险信号**:
- 信号 1:xxx
- 信号 2:xxx
## 二、持仓风险
**风险等级**:[低/中/高/严重]
**组合表现**:
- 组合收益:XX%
- 组合波动率:XX%
- 最大回撤:XX%
- 夏普比率:XX
**持仓集中度**:
- 前十大持仓:XX%
- 行业集中度:XX%
**风险持仓**:
- 持仓 1:亏损 XX%,原因:xxx
- 持仓 2:亏损 XX%,原因:xxx
## 三、交易风险
**风险等级**:[低/中/高/严重]
**交易概览**:
- 交易笔数:XX
- 交易金额:XX 亿
- 异常交易:XX 笔
**异常交易明细**:
- 账户 A:xxx
- 账户 B:xxx
## 四、信用风险
**风险等级**:[低/中/高/严重]
**两融数据**:
- 融资余额:XX 亿
- 融券余额:XX 亿
- 平均维保比例:XX%
**风险账户**:
- 低于预警线:XX 户
- 低于平仓线:XX 户
## 五、重点关注
1. xxx
2. xxx
## 六、建议措施
1. xxx
2. xxx
模板 C:汇报版
适用:"管理层汇报""合规报送"
**风险日报** | YYYY-MM-DD
**核心结论**:xxx
**关键风险指标**:
| 风险类型 | 等级 | 关键指标 | 状态 |
|---------|------|---------|------|
| 市场风险 | xxx | xxx | xxx |
| 持仓风险 | xxx | xxx | xxx |
| 交易风险 | xxx | xxx | xxx |
| 信用风险 | xxx | xxx | xxx |
**重大风险事项**:
- 事项 1:xxx(影响:xxx,处置:xxx)
- 事项 2:xxx(影响:xxx,处置:xxx)
**风险趋势判断**:
- 短期:xxx
- 中期:xxx
**管理层决策事项**:
- 事项 1:xxx
- 事项 2:xxx
**附件**:详细数据表
特殊情况处理
数据不完整:基于已有数据生成报告,说明"完整报告需 XX 数据"
无重大风险:如实报告"今日无重大风险事项",避免为了报告而报告
多组合/多账户:按组合/账户分别呈现,再汇总整体情况
突发事件:在日报中单独列示"突发事件",说明影响和处置进展
语言要求
- 先给结论,再给支撑数据
- 风险等级判断要有依据
- 明确区分:事实数据 vs 风险判断 vs 建议措施
- 关键数字、阈值、风险等级单独指出
Reference
监管要求:
- 《证券公司风险控制指标管理办法》
- 《证券公司全面风险管理规范》
- 《证券期货经营机构私募资产管理业务运作管理暂行规定》
风险指标标准:
- VaR 计算方法:历史法、参数法、蒙特卡洛
- 压力测试情景设定
- 流动性覆盖率(LCR)、净稳定资金率(NSFR)
行业实践:
- 券商风控日报模板参考
- 私募基金风控日报惯例
- 银行理财风控报告格式
Scripts
Python 风险指标计算示例:
import pandas as pd
import numpy as np
def calc_portfolio_var(returns_df, confidence=0.95, method='historical'):
"""计算组合 VaR"""
if method == 'historical':
var = np.percentile(returns_df.dropna(), (1 - confidence) * 100)
elif method == 'parametric':
var = returns_df.mean() - 1.645 * returns_df.std()
return var * 100
def calc_max_drawdown(nav_series):
"""计算最大回撤"""
rolling_max = nav_series.cummax()
drawdown = (nav_series - rolling_max) / rolling_max
return drawdown.min() * 100
def generate_risk_summary(market_data, portfolio_data, trade_data):
"""生成风险摘要"""
summary = {
'market_risk': {
'index_change': market_data['index_change'].iloc[-1],
'volatility': market_data['volatility'].iloc[-1],
'limit_down_count': (market_data['price_change'] <= -10).sum()
},
'portfolio_risk': {
'return': portfolio_data['return'].iloc[-1],
: calc_max_drawdown(portfolio_data[]),
: calc_portfolio_var(portfolio_data[])
},
: {
: (trade_data),
: (trade_data[] == ).()
}
}
summary
SQL 查询示例:
SELECT
'市场风险' as risk_type,
CASE
WHEN ABS(index_change) > 2 THEN '高'
WHEN ABS(index_change) > 1 THEN '中'
ELSE '低'
END as risk_level,
index_change as key_metric
FROM market_index WHERE trade_date = '2026-03-16'
UNION ALL
SELECT
'持仓风险',
CASE
WHEN max_drawdown < -5 THEN '高'
WHEN max_drawdown < -3 THEN '中'
ELSE '低'
END,
max_drawdown
FROM portfolio_risk WHERE trade_date = '2026-03-16'
UNION ALL
SELECT
'信用风险',
CASE
WHEN avg_maintenance_ratio <
avg_maintenance_ratio
,
avg_maintenance_ratio
margin_risk trade_date ;