2. 金融时序数据基础

在进入 Walk-Forward 验证与滚动训练之前,必须先建立对金融时间序列数据本身的正确认知。很多回测失真、模型过拟合、验证结果虚高的问题,根源并不在模型结构,而在于数据的时间特性被忽略、频率被混用、对齐方式错误。本节围绕三个基础问题展开:金融时序有哪些区别于普通数据的特性?常见金融数据类型各自意味着什么?不同频率的数据如何正确对齐?

一、核心原理:金融时间序列的四个关键特性

金融时间序列不是普通的独立同分布样本,它带有强烈的时间结构。理解以下四个特性,是后续所有验证设计的前提。

  • 非平稳性:均值、方差、相关性随时间变化。价格序列通常是非平稳的,而收益率序列更接近弱平稳。直接对价格建模容易得到虚假的高相关。
  • 自相关与波动聚集:收益率的方向自相关往往很弱,但绝对收益或平方收益存在显著自相关,表现为“大波动跟着大波动”,即波动聚集(Volatility Clustering)。
  • 时序依赖与信息泄漏:未来信息不能出现在特征中。任何使用未来数据构造的特征、标准化参数、缺失值填充,都会造成前视偏差(Look-ahead Bias)。
  • 非同步与缺失:不同市场、不同资产、不同频率的数据在时间戳上并不天然一致,存在停牌、休市、时区差异和缺失值。
关键结论:Walk-Forward 验证的本质,是在时间维度上模拟“只用过去信息预测未来”。因此,数据的平稳性处理、频率选择和对齐方式,直接决定了验证是否可信。

二、金融数据常见类型与频率体系

金融数据可按“内容类型”和“时间频率”两个维度划分。内容类型决定建模目标,频率决定样本密度与噪声水平。

数据类型 典型字段 常见频率 建模用途
行情数据 开高低收、成交量、成交额 tick、1min、5min、日线 价格预测、波动率、技术因子
基本面数据 营收、利润、ROE、估值 季度、年度 横截面选股、价值因子
宏观数据 利率、CPI、PMI、M2 月度、季度 择时、风险暴露
另类数据 新闻情绪、搜索指数、资金流 日、小时、事件驱动 情绪因子、事件策略

频率越高,样本越多,但噪声、微观结构效应和交易成本占比也越高。日频数据适合中低频因子研究,分钟级数据适合日内与执行优化,但需要更严格的对齐与去噪处理。

三、数据频率与对齐方法

多源数据进入同一模型前,必须统一到同一时间轴。对齐的核心原则是:只能把“当时已经可得”的信息放到该时间点上。常见操作包括重采样、前向填充和时区统一。

import pandas as pd

# 假设 df 为分钟级行情,索引为带时区的时间戳
df = df.tz_convert("Asia/Shanghai")

# 重采样为日频:取每日最后一条收盘价与成交量之和
daily = df.resample("1D").agg({
    "close": "last",
    "volume": "sum"
})

# 基本面季度数据对齐到日频:使用前向填充,避免未来信息
fund = fund.reindex(daily.index, method="ffill")

# 合并多源数据,保留日频时间轴
merged = daily.join(fund, how="left")
前向填充(ffill)适用于低频基本面数据对齐到高频时间轴;但绝不能使用后向填充(bfill)或插值来“补未来”,否则会引入前视偏差。

四、案例场景:日频与季度数据的对齐陷阱

假设我们用季度 ROE 预测下月收益率。若把财报公告日当作数据可用日,而不是报告期末日,就会提前使用尚未公布的信息。正确做法是以“公告日”为对齐基准,并在公告日之后才允许该数据进入特征。

再比如,将与 A 股数据合并时,两者交易时段和节假日不同。若简单按日期合并,会出现大量空值或错位。应先统一时区,再按各自交易日历对齐,最后在共同交易日上取交集或使用前向填充。

多源数据频率对齐:从原始时间轴到统一建模时间轴 分钟行情 季度基本面 Q1公告 Q2公告 Q3公告 统一日频轴 对齐原则:低频数据在公告日之后才可用,高频数据重采样到统一时间轴

五、误区与复盘

  • 误区一:用价格直接做回归。价格非平稳,容易产生伪回归。应先转为收益率或做差分。
  • 误区二:全局标准化。用全样本均值和方差做标准化,会把未来信息带入训练集。应使用滚动窗口或扩展窗口统计量。
  • 误区三:忽略公告日。基本面数据必须按公告日对齐,而不是报告期末日。
  • 误区四:频率混用不检查。分钟、日、季度数据合并后,必须检查时间戳、时区和缺失情况,避免错位。
在 Walk-Forward 验证中,任何对齐操作都必须在每个训练窗口内独立完成。若在窗口外统一做填充或标准化,验证结果将不可信。

掌握本节的数据特性、类型与对齐方法后,后续的滚动训练与验证才有可靠的数据基础。数据层面的严谨程度,往往比模型选择更能决定最终策略的稳健性。