
欢迎加入专注于财经数据与量化投研的【数据科学实战】知识星球!在这里,您将获取持续更新的《财经数据宝典》和《量化投研宝典》,这两部宝典相辅相成,为您在量化投研道路上提供明确指引。 我们提供了精选的国内外量化投研的 250+ 篇高质量文章,并每日更新最新研究成果,涵盖策略开发、因子分析、风险管理等核心领域。 无论您是量化投资新手还是经验丰富的研究者,星球社区都能帮您少走弯路,事半功倍,共同探索数据驱动的投资世界!
你是否好奇,为什么有些量化交易策略能跑赢大盘,而有些却总是"跟着感觉走"?传统策略大多依赖相关性分析,但相关性并不等于因果关系。今天这篇文章,我将为你解读一篇最新的量化交易研究论文,看看如何用 Python 结合波动率聚类和因果推断,挖掘出真正有预测力的交易信号。
这篇论文的核心思路是:不再只看"谁和谁一起涨跌",而是搞清楚"谁带动了谁",以及"该在什么时候下单"。
很多配对交易(Pairs Trading)和动量策略,容易把随机的价格同步误当成真正的因果关系。论文作者 Ivan Letteri 提出,要获得稳健的交易信号,必须做到以下三点:
整个方法分为四个紧密衔接的阶段,每一步都可以用 Python 实现。
首先,计算每只股票的历史波动率,常用的波动率估计方法有 Parkinson、Garman-Klass、Rogers-Satchell、Yang-Zhang 等。然后,用高斯混合模型(GMM)把股票分成低、中、高三个波动率组。
核心发现:中等波动率组的股票,风险收益比最优,最适合做预测性交易。
下面是一个简单的 Python 示例:
import numpy as npfrom sklearn.mixture import GaussianMixture# 假设 volatility_data 是一个包含各股票波动率的二维数组# 每行代表一只股票,每列代表一个波动率指标volatility_data = np.array([ [0.02, 0.03, 0.025, 0.028], # 股票 A [0.05, 0.06, 0.055, 0.058], # 股票 B [0.08, 0.09, 0.085, 0.088], # 股票 C# ... 更多股票])# 使用高斯混合模型进行聚类,分成 3 组gmm = GaussianMixture(n_components=3, random_state=42)labels = gmm.fit_predict(volatility_data)# 输出每只股票的分组标签print("股票分组标签:", labels)这一步是整个框架的核心,分为四个小步骤:
(1)格兰杰因果检验(Granger Causality Test)
检验一只股票的历史价格,是否能在统计上"预测"另一只股票的走势。论文发现,45 天的回溯窗口效果最佳。
(2)PCMCI 过滤
用 PCMCI(Peter-Clark Momentary Conditional Independence)方法,过滤掉虚假的因果关系,构建有向无环图(DAG)。
(3)有效转移熵(Effective Transfer Entropy)
量化信息流的真实方向和强度,确认因果关系的稳健性。
(4)动态时间规整 + KNN
用 DTW(Dynamic Time Warping)对齐时间序列,再用 KNN 分类器预测最佳交易滞后天数。
下面是格兰杰因果检验的 Python 示例:
from statsmodels.tsa.stattools import grangercausalitytestsimport pandas as pd# 假设 df 是包含两只股票收盘价的 DataFrame# 列名为 'stock_A' 和 'stock_B'df = pd.DataFrame({'stock_A': [100, 101, 102, 103, 104, 105, 106, 107, 108, 109],'stock_B': [50, 51, 52, 53, 54, 55, 56, 57, 58, 59]})# 进行格兰杰因果检验,最大滞后期为 5# 检验 stock_A 是否"格兰杰因果"stock_Btest_result = grangercausalitytests(df[['stock_B', 'stock_A']], maxlag=5, verbose=True)论文选取了 9 只美股大盘科技和汽车股票,回测区间为 2020 年 5 月至 2023 年 6 月,并剔除了新冠疫情等异常时段。
交易规则很简单:当"领先股"出现趋势信号后,按照预测的滞后天数,对"滞后股"进行同向交易。
回测区间:2023 年 6 月 8 日至 2023 年 8 月 12 日
亮点:策略不仅大幅跑赢买入持有,而且风险(回撤)更低,表现非常稳健。
虽然回测结果亮眼,但样本窗口较短(仅 45 天),实际应用时需在更长周期和更多资产上验证,同时考虑交易成本、滑点等现实因素。
这篇论文为量化交易提供了一个全新思路:用波动率分组 + 因果推断 + 机器学习,挖掘真正有预测力的交易信号。对于 Python 学习者来说,这也是一个绝佳的数据科学实战案例。
如果你对量化交易感兴趣,不妨动手复现这个框架,用 Python 玩转波动率和因果推断,开启你的 Alpha 之旅吧!
加入专注于财经数据与量化投研的知识星球【数据科学实战】,获取本文完整研究解析、代码实现细节。
核心权益如下:
星球已有丰富内容积累,包括量化投研论文、财经高频数据、 PyBroker 视频教程、定期直播、数据分享和答疑解难。适合对量化投研和财经数据分析有兴趣的学习者及从业者。欢迎加入我们!
好文推荐
1. 用 Python 打造股票预测系统:Transformer 模型教程(一)
2. 用 Python 打造股票预测系统:Transformer 模型教程(二)
3. 用 Python 打造股票预测系统:Transformer 模型教程(三)
4. 用 Python 打造股票预测系统:Transformer 模型教程(完结)
6. YOLO 也能预测股市涨跌?计算机视觉在股票市场预测中的应用
9. Python 量化投资利器:Ridge、Lasso 和 Elastic Net 回归详解
好书推荐