老师好,股票量化交易中的数据清洗和预处理有哪些方法呢?在通达信软件

152 次浏览 1 个回答

1 个回答

一、缺失值处理

  • 前向/后向填充:针对空值,用相邻非空值填充。通达信公式示例:CLOSE = IF(ISNULL(CLOSE), REF(CLOSE,1), CLOSE)(前向填充);CLOSE = IF(ISNULL(CLOSE), BACKSET(CLOSE,1), CLOSE)(后向填充)。
  • 均值/中位数填充:用窗口内统计值替换缺失值。通达信公式示例:CLOSE = IF(ISNULL(CLOSE), MA(CLOSE,5), CLOSE)(5日均值填充);CLOSE = IF(ISNULL(CLOSE), MEDIAN(CLOSE,5), CLOSE)(5日中位数填充)。

二、异常值处理

  • 标准差法:用±3倍标准差识别极端值,替换为均值。通达信公式示例:stdval = STD(CLOSE,20); upper = MA(CLOSE,20)+3stdval; lower = MA(CLOSE,20)-3stdval; CLOSE = IF(CLOSE>upper OR CLOSE<lower, MA(CLOSE,20), CLOSE)
  • 分位数法:用1%/99%分位数过滤异常值。通达信公式示例:q1 = QUARTILE(CLOSE,20,1); q99 = QUARTILE(CLOSE,20,99); CLOSE = IF(CLOSE<q1 OR CLOSE>q99, (q1+q99)/2, CLOSE)

三、数据标准化与归一化

  • Min-Max归一化:缩放到[0,1]区间。通达信公式示例:normclose = (CLOSE - LLV(CLOSE,60))/(HHV(CLOSE,60)-LLV(CLOSE,60))
  • Z-score标准化:转换为均值0、方差1分布。通达信公式示例:zclose = (CLOSE - MA(CLOSE,20))/STD(CLOSE,20)

四、时间序列预处理

  • 周期转换:日线转周/月线。通达信操作:菜单栏「分析」→「周期转换」选择目标周期;公式示例:周线close = REF(CLOSE, MOD(DAYBARPOS,5))(需注意非完整周处理)。
  • 时间对齐:确保多标的时间戳一致。通达信操作:导入数据时勾选「对齐时间序列」;公式示例:filtered_data = IF(DATE=REF(DATE,1), CLOSE, NULL)(筛选连续日期数据)。

五、特征工程预处理

  • 衍生特征构造:生成MA、RSI等指标。通达信公式示例:MA5 = MA(CLOSE,5); RSI14 = RSI(CLOSE,14); MACD = MACD(CLOSE,12,26,9)
  • 特征选择:筛选高相关性特征。通达信操作:通过插件工具(如「相关性分析」)计算皮尔逊系数;公式示例:corr = CORREL(CLOSE, VOL, 20)(收盘价与成交量20日相关性)。

六、通达信工具辅助

  • 数据导出:通过「系统」→「数据导出」将清洗后的数据导出为CSV,用于后续量化分析。
  • 公式测试:在「公式管理器」中编写预处理公式,通过「历史回测」验证效果。

以上方法覆盖量化交易数据预处理的核心环节,结合通达信的公式与工具可高效完成数据清洗。