Files
sanguo_quant_live/guanyu-risk/research/06-data/research-data.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

4.9 KiB
Raw Blame History

风控研究数据准备

🎯 目标

准备风控研究所需的各类数据,保证研究的准确性和可验证性。


1. 所需数据类型

1.1 历史价格成交量数据

用途

  • 计算收益率
  • 计算波动率
  • 计算VaR/回撤等风险指标
  • 回测风控策略

要求

  • 时间范围:至少5年A股历史数据
  • 频率:日线数据足够(日内需要更高频)
  • 字段:代码、日期、开盘、最高、最低、收盘、成交量

来源

  • Akshare(免费)
  • TuShare(需要token
  • 聚宽数据导出

1.2 风险事件数据

用途

  • 验证极端风险应对
  • 压力测试
  • 案例分析

需要收集的风险事件

事件 时间 类型
2015年股灾 2015-06 ~ 2015-08 系统性风险
2016熔断 2016-01 流动性风险
2018贸易战熊市 2018-01 ~ 2018-12 系统性风险
2020新冠疫情 2020-02 ~ 2020-03 黑天鹅
2022俄乌战争 2022-02 ~ 2022-05 系统性风险
2023AI牛市 2023-01 ~ 2023-04 波动率变化

1.3 流动性数据

用途

  • 流动性分层研究
  • 流动性阈值设定
  • 冲击成本模型验证

需要数据

  • 日均成交额
  • 换手率
  • 流通市值
  • 买卖盘口数据(可选)

1.4 上市公司基本面数据

用途

  • 信用风险研究
  • ST/*ST识别
  • 退市风险识别
  • 质押比例数据

需要数据

  • 是否ST/*ST
  • 是否退市风险警示
  • 大股东质押比例
  • 财务指标

2. 数据预处理

2.1 数据有效性校验

使用我们开发的 DataValidityChecker

from sanguo.risk import DataValidityChecker

checker = DataValidityChecker()
is_valid = checker.check_dataframe(df)

校验内容

  • 价格不能为负
  • 最高价 ≥ 开盘价/收盘价 ≥ 最低价
  • 成交量不能为负
  • 日期连续性检查

2.2 收益率计算

对数收益率(推荐用于风险计算):

returns = np.log(close / close.shift(1)).dropna()

简单收益率

returns = (close / close.shift(1) - 1).dropna()

2.3 缺失值处理

  • 交易日缺失:A股本身有节假日,不需要填充
  • 价格缺失:删除该日数据,不影响计算
  • 停牌:停牌期间没有交易,不计算收益率

3. 数据集划分

3.1 时间划分

  • 训练集2016-01-01 ~ 2020-12-315年)
  • 验证集2021-01-01 ~ 2022-12-312年)
  • 测试集2023-01-01 ~ 当前(最新)

3.2 股票分层

按流动性分层测试:

  • 大盘层:日均成交额 > 10亿
  • 中盘层:1亿 < 日均成交额 ≤ 10亿
  • 小盘层:0.3亿 < 日均成交额 ≤ 1亿
  • 微盘层:日均成交额 ≤ 0.3亿

按市值分层测试:

  • 大盘:流通市值 > 500亿
  • 中盘100亿 < 流通市值 ≤ 500亿
  • 小盘:流通市值 ≤ 100亿

4. 数据存储方案

4.1 原始数据存储

risk-management/research/06-data/
├── raw/                      # 原始数据
│   ├── daily_prices/          # 日线价格数据
│   ├── risk_events/           # 风险事件数据
│   └── fundamentals/         # 基本面数据
└── processed/                # 预处理后数据
    ├── returns/              # 计算好的收益率
    ├── risk_metrics/         # 计算好的风险指标
    └── train_test_split/     # 训练测试划分

4.2 缓存机制

  • 原始数据缓存避免重复下载
  • 预处理结果缓存避免重复计算
  • 缓存文件格式:parquet(高效读写)

5. 数据质量保证

5.1 检查清单

  • 价格数据完整性检查
  • 收益率分布检查
  • 极值异常检查
  • 日期连续性检查
  • 涨跌停价格一致性检查

5.2 异常处理

  • 明显异常价格(比如一字跌停价格错误)→ 删除
  • 个别交易日缺失 → 忽略不影响
  • 连续多个交易日缺失 → 剔除该股票

6. 压力测试数据准备

6.1 历史情景压力测试

使用历史上真实发生过的风险事件:

情景 起始日期 结束日期 测试内容
2015股灾 2015-06-01 2015-08-26 极端回撤风控应对
2020新冠股灾 2020-02-01 2020-03-23 黑天鹅风控应对
2022俄乌战争 2022-02-24 2022-04-30 系统性风险应对

6.2 模拟压力测试

生成极端模拟情景:

  • 连续5日跌停单票
  • 整体市场连续3日跌停
  • 波动率突然翻倍
  • 单票集中度达到上限后暴跌

7. 总结

数据准备是风控研究的基础:

  1. 数据必须完整准确,否则研究结果不可靠
  2. 分层测试很重要,不同流动性股票风控参数不同
  3. 压力测试必须用历史真实情景+模拟极端情景
  4. 数据验证必须严格,避免垃圾数据污染研究结果

本章完 ⚔️