一、金融时序数据基础
各位同学好,我是老张。今天咱们聊聊金融时序数据。说实话,这个领域我摸爬滚打了十几年,踩过的坑比吃过的盐还多。但别担心,我会把最核心的东西掰开揉碎了讲给你听。
金融时序数据,说白了就是按时间顺序排列的金融观测值。你打开股票软件,看到的那根K线图,就是最典型的时序数据。但金融数据跟普通时序数据不一样,它有自己的脾气——非平稳、自相关、异方差,这三个词你记牢了,后面所有模型都绕不开它们。
核心要点:金融时序数据的三大特性——非平稳性(均值/方差随时间变化)、自相关性(今天涨跌影响明天)、异方差性(波动率会聚集)。
1.1 时间序列的定义
时间序列,就是一组按时间顺序排列的随机变量。数学上写成 {X_t, t ∈ T},其中T是时间索引集。但咱们做量化的人,不需要搞那么复杂。你只要记住:时间序列 = 时间 + 数值。
举个例子,我每天收盘后记录上证指数的收盘价:
2024-01-02 2962.28
2024-01-03 2967.25
2024-01-04 2954.35
...
这就是一个典型的时间序列。每一行代表一个时间点,后面的数字是观测值。嗯,这里要注意:时间间隔必须一致。如果你今天用日线,明天用周线,那模型就乱套了。
我的经验:做特征工程时,我习惯先把数据对齐到统一的时间频率。比如所有数据都转成日频,缺失值用前向填充。这一步看似简单,但80%的模型错误都源于时间对齐问题。
1.2 金融数据的特殊性
金融数据为什么难搞?因为它不听话。普通时序数据(比如气温、水位)往往有稳定的统计特性,但金融数据就像个叛逆少年——你永远猜不到它下一步要干嘛。
非平稳性
非平稳性,就是数据的统计特性(均值、方差)随时间变化。你看A股,2007年上证指数冲到6124点,2015年又到5178点,平时就在3000点晃悠。这均值明显不是常数。
为什么会这样?因为金融市场受太多因素影响:政策、经济周期、市场情绪、黑天鹅事件...这些都会导致数据分布发生结构性变化。
避坑指南:我曾经犯过一个低级错误——直接用原始价格数据训练模型。结果模型在回测时表现完美,一到实盘就崩了。后来才发现,价格序列是非平稳的,模型学到的只是历史趋势,而不是真正的规律。记住:绝大多数模型要求数据平稳。
处理非平稳性的常用方法:
- 差分法:用价格变化量代替价格本身(比如今日收盘价 - 昨日收盘价)
- 对数收益率:ln(P_t / P_{t-1}),这是量化中最常用的变换
- 去趋势:减去移动平均或拟合趋势线
自相关性
自相关性,就是今天的价格跟昨天的价格有关。你想想看,如果今天大盘涨了2%,明天继续涨的概率是不是更大?这就是正自相关。但外汇市场往往有负自相关——涨多了会回调。
自相关性用ACF(自相关函数)来度量。我一般会先画个ACF图,看看数据在哪些滞后阶数上有显著相关性。这能帮你决定用多少期历史数据做特征。
# 计算自相关系数(伪代码)
lag_1_corr = corr(P_t, P_{t-1})
lag_2_corr = corr(P_t, P_{t-2})
...
我的习惯:做特征工程时,我会把自相关显著的滞后项作为特征加入模型。比如ACF显示滞后1、3、5期显著,我就构造这三个特征。但别贪多,太多滞后项会导致过拟合。
异方差性
异方差性,说白了就是波动率会变化。你看2020年疫情爆发时,美股一天熔断好几次,波动率爆表。但到了2021年,市场又变得风平浪静。这种波动率忽大忽小的现象,就是异方差。
金融数据还有一个特点:波动率聚集。大波动后面跟着大波动,小波动后面跟着小波动。就像暴风雨来临前,海面会先起浪,然后越来越大。
处理异方差性的经典模型是GARCH(广义自回归条件异方差模型)。但说实话,在深度学习时代,我更喜欢用LSTM或Transformer来捕捉波动率变化,效果往往更好。
1.3 常见金融数据源
做量化,数据是命根子。我见过太多人花大把时间调模型,结果数据源选错了,白忙活一场。下面是我常用的几类数据源:
| 数据源 | 特点 | 典型频率 | 注意事项 |
|---|---|---|---|
| 股票 | 高流动性、受公司基本面影响大 | 日频、分钟频 | 注意除权除息、停复牌 |
| 期货 | 杠杆交易、有交割日 | 日频、5分钟频 | 主力合约切换、升贴水 |
| 外汇 | 24小时交易、受宏观因素影响大 | 小时频、分钟频 | 点差成本、隔夜利息 |
| 加密货币 | 7×24交易、波动极大 | 分钟频、秒频 | 数据质量参差不齐、交易所差异 |
我个人建议:新手先从股票日线数据入手。为什么?因为日线数据最规范,容易获取,而且有足够的历史数据做回测。等把模型跑通了,再考虑期货、外汇这些更复杂的品种。
重要提醒:不同数据源的处理方式完全不同。比如期货有交割日,你不能像股票那样一直持有;外汇是24小时交易,你得考虑隔夜跳空;加密货币更是疯狂,一天涨跌50%都不稀奇。做特征工程时,一定要针对数据源的特点来设计。
知识体系总览
下面这张图,是我自己画的金融时序数据知识体系。你把它存下来,后面每学一章,就回来看看,保证思路清晰。
这张图把本章的核心内容串起来了。你从时间序列定义出发,理解三大特殊性,再对应到不同数据源的处理方式。后面每学一个新模型,都可以往这张图上加——比如ARIMA模型对应自相关性,GARCH对应异方差性,等等。
最后说一句:金融时序数据的基础,说白了就是理解数据的「脾气」。你摸清了它的非平稳、自相关、异方差,后面做特征工程、选模型、调参数,心里就有底了。别急着上复杂模型,先把数据吃透,这是最笨但最有效的方法。
公众号:蓝海资料掘金营,微信deep3321