# quant-risk：逐课讲义与练习册

版本 content-v2；每课有独立讲解、操作、题设和答案。全部数值/规则为合成教学假设，不代表官方服务或真实业绩。允许本地纸面完成，不要求开户、入金或真实交易。

模块：VaR 框架 / 回撤约束 / 实盘监控

## VaR 框架

### 概念
历史VaR从损失样本取分位，参数VaR依分布假设。相同置信度、持有期、币种与符号才可比较。正态近似不代表尾部真实正态；ES关注超过阈值的尾部规模，不称“保证不会超过”的上界。

### 带数据推演
20个损失18个0、2、8，nearest-rank95% VaR=2，最坏5%均值=8。若另一实现对分位插值，须注明差异。对日收益均值0、波动1%的正态模型，95%单侧损失近似1.645%，不含跳空保证。

### 作业题设
运行风险示例，对照历史和正态近似，明确loss=-return；记录分位算法、样本量、极端值及局限。手算20点例。

### 检查限制
小样本ES不稳定；实际限额需独立专业评审，不直接采用课程阈值。

### 本模块课时
- m1-l1：VaR 计算方法
- m1-l2：Expected Shortfall
- m1-l3：VaR 计算练习

### m1-l1 VaR 计算方法

#### 本课讲解
VaR以给定置信水平和持有期描述损失分位，不是最坏损失。历史分位的算法在小样本会显著影响结果，必须明确排序与取整。

#### 操作顺序
收益转损失正号→按升序排→用nearest-rank的ceil(p×n)位置→给样本量/持有期→另做尾部压力。

#### 独立作业
损失排序−2/−1/0/1/2/3/4/5/6/10，按nearest-rank求90%VaR。

#### 自查要求
提交算式/表格/记录与假设；按答案册逐项检查关键结果、证据边界和未运行项。自评不是自动批改或能力认证。

### m1-l2 Expected Shortfall

#### 本课讲解
ES描述规定尾部的平均损失。有限样本下“严格超过VaR”与“取最坏k项”可能不同，重复分位值时尤须写清约定。

#### 操作顺序
与VaR同损失号和持有期→声明尾部集合→计算均值→列重复值和小样本限制→不混用定义。

#### 独立作业
对上一组10项损失，本课定义90%ES取最坏ceil(10%×10)=1项。ES多少？

#### 自查要求
提交算式/表格/记录与假设；按答案册逐项检查关键结果、证据边界和未运行项。自评不是自动批改或能力认证。

### m1-l3 VaR 计算练习

#### 本课讲解
VaR实操要验证单调、符号和小样本边界。代码返回数字不代表输入有意义，无数据、非有限值和错误置信水平应拒绝。

#### 操作顺序
运行自检→手算10项样例→改95%再算→测试空数组/NaN→输出算法与错误，不吞异常。

#### 独立作业
同样10项损失求95%nearest-rank VaR；置信度1.2和空样本怎样处理？

#### 自查要求
提交算式/表格/记录与假设；按答案册逐项检查关键结果、证据边界和未运行项。自评不是自动批改或能力认证。

## 回撤约束

### 概念
Pre-trade风险检查在提交前验证输入有限、报价新鲜、合约单位、规模上限、累计暴露和账户状态。拒绝理由应结构化。回撤状态机使用稳定峰值和预设恢复，不因重启程序丢峰值或重复触发危险操作。

### 带数据推演
虚构限额：总规模≤1000单位，已有600，新单500，总1100，应拒绝；报价时间超时也独立拒绝。不能只检查每单500低于1000。风险输入NaN不能视作0放行。

### 作业题设
运行研究脚本的风控用例，对1100暴露、过期报价、NaN和合法小单逐一检查；输出明确拒绝理由，任何真实订单发送器保持未接入。

### 检查限制
fail-open会把未知状态当安全；重启后应恢复或重新核实风险基准而非清零。

### 本模块课时
- m2-l1：Drawdown 算法
- m2-l2：Pre-trade Risk Check
- m2-l3：风控规则编码

### m2-l1 Drawdown 算法

#### 本课讲解
回撤算法逐点维护历史权益峰值，比较比例而不是绝对差。初始峰值、非正权益、现金流和缺估值都需要定义。

#### 操作顺序
验证权益序列→更新running max→算1−equity/peak→取最大→记录峰谷时点→现金流另调。

#### 独立作业
权益100/120/108/126/113.4，求两次谷值回撤及最大值。

#### 自查要求
提交算式/表格/记录与假设；按答案册逐项检查关键结果、证据边界和未运行项。自评不是自动批改或能力认证。

### m2-l2 Pre-trade Risk Check

#### 本课讲解
Pre-trade检查在请求进入执行层之前验证数据、数量、单笔与聚合限制。检查的是实际/潜在风险，不只是请求参数格式。

#### 操作顺序
验有限数与非负→核报价时间→核单笔→加存量/在途→拒绝并给原因→只把合格纸面请求交下一层。

#### 独立作业
上限250，已有180、新请求90；另一个请求数量NaN。给两条不同拒绝原因。

#### 自查要求
提交算式/表格/记录与假设；按答案册逐项检查关键结果、证据边界和未运行项。自评不是自动批改或能力认证。

### m2-l3 风控规则编码

#### 本课讲解
风控编码必须测阈值边界、错误类型与fail-closed。函数异常若默认允许，会把数据故障变成无限风险。

#### 操作顺序
先列正常/等于/超限/NaN/负值/过期/未知→实现纯函数→断言原因→确认拒绝不会发送订单。

#### 独立作业
编写纸面测试表：风险100与上限100、100.01、−1和NaN；注明比较规则为≤且风险非负有限。

#### 自查要求
提交算式/表格/记录与假设；按答案册逐项检查关键结果、证据边界和未运行项。自评不是自动批改或能力认证。

## 实盘监控

### 概念
监控区分市场风险、执行状态、数据质量和系统健康。每个指标要有时间戳、新鲜度、责任人和行动；没有最新数据时显示未知，不沿用旧绿灯。事件响应先停止新提交、保留证据、对账，再处理存量。

### 带数据推演
模拟10:00最后报价，10:05监控仍显示10:00净值。若新鲜度阈值30秒，应显示过期并拒绝新指令，不因为旧净值未超限而绿灯。订单状态未知须查询，不自动重复平仓。

### 作业题设
写监控与故障演练：断流、日志写失败、未知订单、风险超限四种事件，列检测、停止、对账、恢复证据。运行本地风险演练并保留日志。

### 检查限制
暂停策略不保证现有仓位已平；未经确认不能发出“风险已清零”通知。

### 本模块课时
- m3-l1：Risk Dashboard
- m3-l2：Incident Response
- m3-l3：监控方案设计

### m3-l1 Risk Dashboard

#### 本课讲解
Risk Dashboard应区分正常、超限、过期和未知，不用绿色零值替代没有数据。每条指标需要更新时间和来源，聚合后还需能钻取策略。

#### 操作顺序
列权益峰值/回撤/风险总量/报价年龄→给每项状态→模拟失联→验证告警和拒绝逻辑。

#### 独立作业
接口返回空持仓但账户请求超时，面板能否显示风险0、正常？应呈现什么？

#### 自查要求
提交算式/表格/记录与假设；按答案册逐项检查关键结果、证据边界和未运行项。自评不是自动批改或能力认证。

### m3-l2 Incident Response

#### 本课讲解
Incident Response包含发现、限制影响、调查、恢复与复盘。不能为恢复速度直接删除日志或无限重启，关键是把状态核清。

#### 操作顺序
记录事件ID/时间→冻结新增→保存证据→核存量/请求→修原因→隔离演练→人工批准恢复。

#### 独立作业
重复订单告警后，给出前三个动作以及一个不允许的“快捷恢复”。

#### 自查要求
提交算式/表格/记录与假设；按答案册逐项检查关键结果、证据边界和未运行项。自评不是自动批改或能力认证。

### m3-l3 监控方案设计

#### 本课讲解
监控方案验收看故障演练能否触发正确动作，不以页面能打开或告警图标好看为标准。离线方案和生产服务要分别陈述。

#### 操作顺序
给五类故障注入→核检测/阻断/证据/恢复→记录漏检与误报→指定复核责任→列真实集成缺口。

#### 独立作业
交报价过期、NaN规模、总量超限、订单未知、日志失败五张处置卡，各含恢复条件。

#### 自查要求
提交算式/表格/记录与假设；按答案册逐项检查关键结果、证据边界和未运行项。自评不是自动批改或能力认证。
