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,用于后续量化分析。
- 公式测试:在「公式管理器」中编写预处理公式,通过「历史回测」验证效果。
以上方法覆盖量化交易数据预处理的核心环节,结合通达信的公式与工具可高效完成数据清洗。
请 登录 后参与回答