65 lines
2.1 KiB
Plaintext
65 lines
2.1 KiB
Plaintext
标题: 量化回测中的常见陷阱及规避方法
|
||
链接: https://www.joinquant.com/view/community/detail/3
|
||
分类: 回测框架
|
||
================================================================================
|
||
|
||
# 量化回测中的常见陷阱及规避方法
|
||
|
||
## 一、数据相关陷阱
|
||
|
||
### 1.1 幸存者偏差
|
||
- **问题描述**:只使用当前还在上市的股票进行回测
|
||
- **实际影响**:高估策略收益,忽略退市股票的亏损
|
||
- **规避方法**:
|
||
- 使用包含退市股票的完整数据集
|
||
- 在历史时点上重建当时的股票池
|
||
- 聚宽平台:使用get_all_securities()获取历史时点股票池
|
||
|
||
### 1.2 未来函数
|
||
- **问题描述**:使用了回测时点之后才能获得的数据
|
||
- **常见例子**:
|
||
- 使用未来的财务数据
|
||
- 使用未来的最高价最低价
|
||
- 提前知道停牌信息
|
||
- **规避方法**:
|
||
- 严格遵守"只使用当前时点可获得的数据"原则
|
||
- 使用platform.get_trading_dates()确认日期
|
||
- 仔细检查数据获取的时间点
|
||
|
||
## 二、回测设置陷阱
|
||
|
||
### 2.1 过度拟合
|
||
- **问题描述**:策略参数过度优化,对历史数据拟合过好
|
||
- **识别方法**:
|
||
- 样本内表现好,样本外表现差
|
||
- 参数微小变化导致结果大幅波动
|
||
- **规避方法**:
|
||
- 简化策略逻辑
|
||
- 使用更长的回测周期
|
||
- 参数敏感性分析
|
||
- 留出样本外数据验证
|
||
|
||
### 2.2 交易成本设置不合理
|
||
- **问题描述**:手续费、滑点设置不符合实际
|
||
- **规避方法**:
|
||
- 双边手续费:0.03%-0.05%
|
||
- 滑点设置:0.1%-0.2%或固定金额
|
||
- 根据实际券商费率调整
|
||
|
||
## 三、策略逻辑陷阱
|
||
|
||
### 3.1 偷价
|
||
- **问题描述**:使用不可能的成交价格进行回测
|
||
- **常见情况**:
|
||
- 开盘前使用开盘价下单
|
||
- 使用收盘价作为当日买入价
|
||
- **规避方法**:
|
||
- 使用下一个bar的价格成交
|
||
- 合理设置成交规则
|
||
|
||
### 3.2 涨跌停忽略
|
||
- **问题描述**:回测时没有考虑涨跌停限制
|
||
- **规避方法**:
|
||
- 检查当日是否涨跌停
|
||
- 考虑成交量限制
|
||
- 使用更真实的成交模拟 |