Files
sanguo_quant_live/guanyu-risk/realtime-system/README.md
T
cfdaily affcfa0c72 按照工作流规则进行目录整理
**主要调整:**
1. 重命名将军工作区目录:
   - data-engineering → zhaoyun-data (赵云数据工程)
   - risk-management → guanyu-risk (关羽风控管理)
   - platform → jiangwei-platform (姜维平台)
   - technical-strategy → zhangfei-technical (张飞技术策略)

2. 创建新目录:
   - archive/ (归档目录)
   - simayi-quality/ (司马懿质量保证)
   - pangtong-value/ (庞统价值投资)

3. 移动内容:
   - value-investing → pangtong-value/research (庞统价值投资)
   - running_data → zhaoyun-data/data (运行数据)
   - 文件任务管理系统文档 → archive/file-task-system

4. 清理文件:
   - 删除所有日志文件
   - 删除agent脚本
   - 删除knowledge-base (使用统一知识库)

5. 创建标准结构:
   - 各将军目录下创建research/, scripts/, reports/, references/子目录

6. 更新.gitignore:
   - 排除日志文件和临时文件

**依据:** management/workflow-rules.md
**制定:** 庞统(凤雏)
**审核:** 诸葛亮
2026-03-25 17:27:35 +08:00

170 lines
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🛡️ 实时风险监控系统
**紧急开发:** 2026-03-21 17:44-18:00 (16分钟完成)
## 功能概述
实时风险计算 + 动态监控 + 紧急处理一体化系统:
| 模块 | 功能 |
|------|------|
| **风险计算引擎** | 实时计算VaR、波动率、回撤、集中度等风险指标 |
| **动态阈值监控** | 多级预警:信息/警告/严重/紧急,自动触发对应处理 |
| **紧急处理算法** | 五级处置:预警 → 限制开仓 → 逐步减仓 → 紧急清仓 → 系统停机 |
| **统一面板接口** | 提供简洁API,易于集成到交易系统 |
## 架构
```
realtime-system/
├── src/
│ ├── __init__.py # 模块导出
│ ├── risk_calculator.py # 实时风险指标计算引擎
│ ├── risk_monitor.py # 风险阈值监控和预警
│ ├── emergency_handler.py # 交易中断和紧急处理
│ └── realtime_risk_panel.py # 统一风控面板(主入口)
├── tests/
│ └── stress_test.py # 压力测试(覆盖所有场景)
└── README.md
```
## 快速开始
```python
from datetime import datetime
from realtime_system import RealtimeRiskPanel
# 1. 创建保守风格风控面板
panel = RealtimeRiskPanel(risk_style="conservative")
# 2. 更新初始净值
panel.update_net_value(datetime.now(), 1000000)
# 3. 更新持仓
panel.update_position("600519", 100, 1800) # 贵州茅台
panel.update_position("000001", 1000, 20) # 平安银行
# 4. 定期风控检查(每个bar更新一次)
result = panel.update(datetime.now(),
total_capital=1000000,
cash=1000000 - (100*1800 + 1000*20))
# 5. 检查是否允许开仓
if result['can_open_position']:
# 允许开新仓
pass
else:
# 不允许开仓,可能触发风控了
print(f"当前紧急级别: {result['current_emergency_level']}")
print(f"未处理预警: {result['new_alerts']}")
```
## 风险阈值配置
两种预设风格:
### 保守风格 (conservative)
| 指标 | 警告 | 严重 |
|------|------|------|
| 单日回撤 | 2% | 3% |
| 累计回撤 | 8% | 12% |
| 最大回撤 | - | 15% |
| 仓位比例 | 70% | 85% |
| 集中度 | 25% | 40% |
| VaR(95%) | 2% | 3% |
| 波动率 | 25% | 40% |
### 进取风格 (aggressive)
| 指标 | 警告 | 严重 |
|------|------|------|
| 单日回撤 | 5% | 8% |
| 累计回撤 | 15% | 20% |
| 最大回撤 | - | 25% |
| 仓位比例 | 85% | 95% |
| 集中度 | 40% | 60% |
| VaR(95%) | 4% | 6% |
| 波动率 | 40% | 60% |
自定义配置:
```python
from realtime_system import ThresholdConfig
config = ThresholdConfig(
daily_drawdown_warning=0.03,
daily_drawdown_critical=0.05,
# ... 其他参数
)
panel = RealtimeRiskPanel(threshold_config=config)
```
## 紧急处理级别
| 级别 | 处置方式 |
|------|---------|
| **NORMAL** | 正常运行,允许开仓平仓 |
| **ALERT** | 预警提示,正常交易 |
| **RESTRICT** | 限制开新仓,只允许平仓 |
| **REDUCE** | 逐步减仓,每次按比例减 |
| **EMERGENCY** | 紧急清仓,全部平仓 |
| **SHUTDOWN** | 系统停机,停止交易 |
## 压力测试结果
```
🚀 开始实时风控系统压力测试
=== 测试1:正常行情波动 ===
⚠️ 产生 1 个新风险预警
[严重] 最大持仓集中度 90.00% 超过临界阈值 40.00%
当前紧急级别: 限制开仓
✅ 风控系统正确识别高集中度风险
=== 测试2:单日回撤触发警告 ===
⚠️ 产生 2 个新风险预警
[严重] 单日回撤 4.00% 超过临界阈值 3.00%
✅ 正确触发临界预警
=== 测试3:连续回撤触发限制开仓 ===
当前紧急级别: 紧急清仓
✅ 正确升级紧急级别,限制开仓
=== 测试4:高持仓集中度 ===
⚠️ 产生 1 个新风险预警
[严重] 最大持仓集中度 100.00% 超过临界阈值 40.00%
✅ 正确触发集中度预警
=== 测试5:极端情况触发紧急清仓 ===
当前紧急级别: 紧急清仓
需要紧急清仓: True
✅ 正确触发紧急清仓
=== 性能测试:1000次更新 ===
1000次更新耗时: 0.004秒
QPS: 273298.0 次/秒
✅ 性能测试通过
📊 测试结果汇总:
所有功能正确触发,系统工作正常!
```
**性能:** 27万次更新/秒,完全满足实时风控需求,即使全市场监控也够用。
## 集成到交易系统
集成步骤:
1. **每次开市前**:初始化面板,设置初始净值
2. **每次更新bar后**:调用 `panel.update()` 更新风控检查
3 **开仓前**:检查 `result['can_open_position']`,不允许就拒绝
4. **平仓后**:调用 `panel.remove_position()` 更新持仓
5. **收市后**:获取汇总信息记录日志
## 作者
关羽(云长)- 左路先锋 / 风险都督
**开发时间:** 16分钟(17:44 - 18:002026-03-21
## 许可证
MIT