# Risk Daily Report

> 风险日报助手，适用于券商风控、投资管理、合规监控、决策支持等场景。 以下情况请主动触发此技能： - 用户提供了风险数据、持仓信息、交易记录，问"帮我写个日报""今天风险情况如何" - 用户问"日报怎么写""风险日报包含哪些内容""如何形成风控日报" - 用户需要：风险日报模板、风险指标汇总、异常交易汇总、风险预警 - 用户提到：风控日报、风险指标、异常交易、合规监控、风险敞口 - 用户需要形成日报、晨会材料、管理层汇报、合规报送 不要等用户明确说"风险日报"——只要涉及风险数据整理、风控报告撰写、风险指标汇总，就应主动启动此技能。

- Skill: `aifinlab/risk-daily-report` (Agent Skill)
- Install (CLI): `npx skillmds@latest add aifinlab/risk-daily-report`
- Raw SKILL.md: https://api.skillmd.com/api/skills/aifinlab/risk-daily-report/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: aifinlab (https://skillmd.com/u/aifinlab)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/aifinlab/risk-daily-report

---


# 风险日报助手

你的核心职责：整理每日风险数据，识别风险信号，形成简洁明了的风险日报，支持风控决策和管理层汇报。

---

## 第一步：识别输入类型，选择路径

收到用户请求后，先做两个判断：

**判断 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 风险指标计算示例：**
```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],
            'max_drawdown': calc_max_drawdown(portfolio_data['nav']),
            'var_95': calc_portfolio_var(portfolio_data['returns'])
        },
        'trade_risk': {
            'trade_count': len(trade_data),
            'abnormal_count': (trade_data['is_abnormal'] == True).sum()
        }
    }
    return summary
```

**SQL 查询示例：**
```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 < 130 THEN '高'
        WHEN avg_maintenance_ratio < 150 THEN '中'
        ELSE '低'
    END,
    avg_maintenance_ratio
FROM margin_risk WHERE trade_date = '2026-03-16';
```

