1 个回答
数据缺失的检测步骤
- 利用通达信公式系统的ISNULL函数定位缺失数据,例如判断收盘价缺失:
ISNULL(CLOSE); - 导出数据至Excel/Python,通过筛选空值或异常值批量检测缺失点;
- 查看通达信数据管理模块(工具→数据管理),获取缺失时间段或股票代码的完整性报告。
行情数据缺失的处理方法
针对K线、成交量等行情数据缺失:
- 向前/向后填充:用
REF(CLOSE,1)取前一日收盘价填充,或FORWARD(CLOSE,1)取后一日数据(需注意逻辑合理性); - 线性插值:对连续缺失时段,通过前后已知数据计算中间值(可结合Python pandas库处理后导入通达信);
- 删除缺失周期:若缺失占比<5%,直接剔除含缺失值的交易周期(适用于非关键时段)。
财务/因子数据缺失的处理方法
针对财务指标、因子数据缺失:
- 行业均值填充:用同申万行业其他股票的同类数据均值替代;
- 回归预测填充:通过相关因子(如PE、ROE)建立回归模型,预测缺失值(需Python等外部工具实现);
- 标记缺失并容错:在策略代码中加入缺失标记,例如
IF(ISNULL(PE),0,PE),避免策略崩溃。
通达信量化的特殊适配技巧
- 手动补数据:通过“工具→下载数据”功能,补充缺失的行情/财务数据;
- 编写容错公式:在策略中加入条件判断,如
IF(ISNULL(MA5),MA10,MA5),确保信号连续; - 外部数据对接:若内部数据不足,通过Tushare、聚宽等接口获取完整数据,导入通达信后使用。
注意事项
- 一致性优先:填充逻辑需与策略逻辑匹配,避免因数据失真导致回测结果偏差;
- 回测说明:需在回测报告中明确缺失数据的处理方式;
- 实时应急:实时交易中若出现数据缺失,设置暂停交易或备选数据机制。
请 登录 后参与回答