返回 López de Prado

研究回顧 · López de Prado · 研究 02

Fractional Differentiation

在真實的加密貨幣、股票與外匯價格序列上重現 López de Prado 的固定寬度 fractional differencing

標準做法是將價格序列差分至整數階一, 即取報酬, 以使其達到 stationary。這有效,但會抹去水平: 報酬序列基本上與其來源的價格不相關,因此模型可利用的記憶就此消失。López de Prado 的解法是差分至一個實數、 分數階 d ∈ [0, 1],在保留大部分記憶的同時換取 stationarity。本文在真實資料上重現這個概念, 先是 BTC,接著是一個 505 對的加密貨幣橫斷面,然後是股票與外匯, 並報告它在何處成立、在何處不成立。 下方的探索器讓你在瀏覽器中沿著真實的 BTC 掃描移動 d

來源

Advances in Financial ML,第 5 章

López de Prado (2018) · fractional differentiation

程式碼與引擎

github.com/DaruFinance/lopez-de-prado-work-review

the claim

López de Prado 的主張

  • 將價格序列差分至整數階 1(取報酬)使其達到 stationary 但抹去水平, 預測模型可利用的記憶就此消失;而保留價格不作差分則保留記憶,但屬非 stationary,會破壞大多數學習。
  • 他的解法:差分至一個實數、分數階 d ∈ [0,1]。算子 (1−B)^d 在達到 stationarity 的同時保留大部分記憶。關鍵量是 ADF 檢定首次拒絕單位根的最小 d*, 他報告在股票/外匯上 d* 通常約為 0.3–0.6,且在 d* 處與水平高度相關。

our result

我們的發現

  • 關於記憶的主張是壓倒性的,而非邊際的:橫跨 505 個幣安永續合約,d* 中位數為 0.15,在 d* 處與價格水平的相關性中位數為 0.98,而一般報酬(d=1)僅約 0.01, 整數差分摧毀了 FFD 所保留的約 99% 的水平記憶。這在加密貨幣、股票與外匯上的表現完全一致。
  • 他約 0.3–0.6 的 d* 數字在此無法重現:在統一的 1 小時頻率下,加密貨幣、股票(0.15)與外匯(0.10)全都接近或低於 0.15,單筆最高讀數為 0.25。我們坦誠標示這一點, 部分差距源於 ADF 的檢定力與頻率,而非資產類別。
  • 這是一項特徵構建研究;我們尚未檢驗基於 FFD 特徵的模型在樣本外是否勝過基於報酬的模型。

三行說明結果

~0.98 對 ~0.01

報酬摧毀了記憶

在剛好 stationary 的階數上做 fractional differencing 可保持與價格水平約 0.98 的相關性;一般報酬僅保持約 0.01。整數差分為了一個本可以遠更廉價取得的 stationarity 而丟棄了約 99% 的水平資訊。

3 個市場 · 517 條序列

記憶結果具有普遍性

相同的圖景在 505 個加密永續、9 檔股票 ETF 與 3 個外匯對上完全一致,皆為 1h:在 d* 處保留約 0.98–1.00 的記憶,在報酬處約 0.01。這是第 5 章中經得起真實資料檢驗的部分。

d* ≈ 0.10–0.15

一個誠實的未獲證實

在 1h 下,最小階數遠低於 LdP 對股票/外匯所引述的 0.3–0.6, 且此處股票/外匯並不高於加密貨幣。此差距可由抽樣頻率與序列長度解釋,因此我們將其報告為對該水平的反駁,而非對記憶的反駁。

概述

保留價格不作差分可保留其全部記憶,但會留下單位根,從而破壞大多數統計學習。整數差分修正了單位根但丟棄了水平。 Fractional differencing 介於兩者之間:算子 (1 − B)^d 展開為對滯後值的無窮加權和, 其二項式權重會衰減卻永不完全歸零。固定寬度視窗 FFD 在一個很小的閾值處截斷該權重向量,產生一個因果的、回溯的濾波器, 可在保留大部分記憶的同時達到 stationary。關注的量是最小階數 d*, ADF 檢定首次拒絕單位根的最小 d

親手移動 d

下方的探索器由本研究真實的 BTCUSDT 1h 掃描驅動。當你把 d 從 0(原始水平)提高至 1(一般報酬)時, ADF 統計量會穿過其 95% 臨界線而急劇下墜, 而與價格水平的相關性也隨之下降。這兩條曲線就是全部故事: stationarity 很廉價,但越過剛好 stationary 的點之後,你會以本不必花費的記憶為其付出代價。

示範:fractional differentiation 探索器

拖動差分階數 d, 觀察以記憶為代價換取 stationarity 的過程,基於本研究真實的 BTCUSDT 1h 掃描。序列在 d* = 0.15 處變為 stationary,仍與價格水平保持約 99% 的相關性。

btc_adf_vs_d.csv
d,差分階數0.15
0,水平1,報酬
是否 stationary?(ADF vs 95% 臨界值)
是,通過
ADF 統計量
-3.66
保留記憶(與水平的相關性)
98.7%
FFD 視窗(根數)
3,901
STATIONARITY,ADF 統計量95% 臨界值 ≈ -2.862-2-6-10-1400.250.50.751d
記憶,與價格水平的相關性99%10.750.50.25000.250.50.751d

在最佳點 d* = 0.15 處,序列首次通過 ADF(剛好 stationary),同時仍與價格水平保持 98.7% 的相關性,幾乎不損失記憶即達成 stationarity。

Fig. 1:BTCUSDT 1h。ADF 統計量(下降中)在 d* = 0.15 處穿過 95% 臨界線;該處與對數價格水平的相關性(亦標示)仍為 0.987。一個很小的分數階即足以達到 stationary 並保留近乎全部的記憶。

重現, BTC

對於 1h 的 BTCUSDT,ADF 統計量在 d* = 0.15 處穿過 95% 臨界線, 此處與對數價格水平的相關性仍為 0.987。這正是 López de Prado 所描繪的形狀: 一個很小的分數階換取了 stationarity,而幾乎全部記憶得以存續。

具體而言,FFD(d*) 序列明顯呈 stationary, 圍繞一個平坦水平均值回歸, 但仍追蹤其來源價格的體制結構。

Fig. 2:BTC 對數價格水平與其 FFD(d*) 變換。差分後的序列呈 stationary(圍繞一個平坦均值振盪),同時保留水平的大致體制形狀。
Fig. 3:1h 下 505 個加密永續的最小階數 d*。分布集中且偏低, 幾乎整個橫斷面在 d = 0.20 前即達到 stationary。

規模化, 505 個加密貨幣對

橫跨整個加密貨幣橫斷面,最小階數出奇地低且集中:d* 中位數為 0.15(Q1 0.10,Q3 0.15),觀察到的最大值僅為 0.25,且 100% 的對在某個 d < 1 處達到 stationary。在 d* 處的記憶中位數為 0.981, 而在 d = 1 處的絕對相關性中位數僅為 0.010

記憶對 stationarity 的前緣將一切串連起來。約在 d = 0.20 時,幾乎每一對都已是 ADF-stationary, 而與水平的相關性中位數仍接近 0.9,只有當 d → 1 時才崩塌至零。一般報酬位於該崩塌的最右端, 這是唯一值得帶走的圖。

Fig. 4:加密貨幣橫斷面上的記憶前緣。stationarity 在小 d 處即達成(幾乎所有對在 d ≈ 0.20 前通過),而與水平的相關性中位數維持在高位,僅在 d → 1(報酬)時才崩塌至零。

加密貨幣 vs 股票 vs 外匯

López de Prado 的實例落在 d* ≈ 0.3–0.6,明顯高於加密貨幣 0.15 的中位數。 為了檢驗這究竟是市場效應還是樣本範圍與頻率的人為產物,我們以完全相同的 pipeline, 相同的網格、相同的 tau、相同的 ADF 規格、相同的記憶指標, 在統一的 1h 頻率下對 9 檔股票 ETF 與 3 個外匯對執行。

市場nd* 中位數IQR% d*<1記憶 @ d*|記憶| @ d=1
加密貨幣5050.1500.100–0.150100%0.9810.010
股票90.1500.000–0.150100%0.9970.007
外匯30.1000.050–0.125100%0.9940.010
Fig. 5:按市場劃分的 d*,並以陰影標示 LdP 的 0.3–0.6 參考帶。三個市場在 1h 下皆位於該帶以下;股票與加密貨幣相當,外匯更低。

在 1h 下,股票與外匯的 d* 皆不高於加密貨幣, 股票與其相當,為 0.15, 外匯則更低,為 0.10。若干工具在原始對數水平上已是 stationary:波動率產品 VXX 與 UVXY、能源 ETF XLE, 以及區間震盪的 EUR/GBP 交叉盤。整個擴充中單筆最高讀數為 QQQ 的 0.25,仍低於 LdP 的下界。在這套完全一致、 共享的方法下,0.3–0.6 的數字對這些 1h 的股票與外匯序列無法重現。

相對地,記憶的情節則具普遍性。在每一個市場中,d* 處的 FFD 與對數價格水平 保持約 0.98–1.00 的相關性,而一般報酬的絕對值僅保持約 0.01。核心主張, 即 fractional differencing 以 幾乎不損失記憶換取 stationarity,而整數差分則丟棄記憶, 在加密貨幣、股票與外匯上的表現完全一致。

Fig. 6:三個市場中在 d* 處保留的記憶(~0.98–1.00)對在 d=1 處保留的記憶(~0.01)。記憶結果是本章中明顯經得起真實資料檢驗的部分。

如何解讀 d* 的差距

誠實的解讀是,d* 受抽樣頻率與序列長度的支配,多於受資產類別的支配。 ADF 的檢定力隨樣本長度增長,而此處的股票與外匯序列很長(常達 55k–88k 根),這會使其 d* 偏低;與 LdP 實例的比較也混淆了市場與 K 線大小,因為他的實例並非全是 1h。 儲存庫中的加密貨幣頻率研究已顯示 d* 隨頻率而變。因此我們並不主張股票具有永久偏低的 d*, 僅是在統一的 1h 頻率下,三個市場皆落在 0.10–0.25 附近,而跨市場的持久發現 是記憶結果,而非 d* 的水平。

方法

  • 全程因果:第 t 根的輸出僅使用第 t 根及之前的 K 線,作用於真實的 OHLCV 對數價格, 無合成序列、無 lookahead。
  • 固定寬度視窗 FFD,採用二項式權重 w_k,在第一個 |w_k| < tau 處截斷(tau = 1e-5),形成一個固定寬度的回溯濾波器。已驗證 d=1 精確重現一般差分,d=0 為恒等。
  • 以 ADF 檢定(迴歸 "c",maxlag=1)對照 95% 臨界值判定 stationarity;d* 是其 ADF 統計量落於該臨界值以下的最小網格階數。
  • 記憶以 FFD 序列與對數價格水平在重疊支撐上的 Pearson 相關性衡量, 即 LdP 本人的診斷。
  • 規模化執行:一個 568 對的加密貨幣橫斷面(505 對符合條件)在 32 核上逐序列串流,隨後以完全相同的 pipeline 在統一的 1h 頻率下應用於 9 檔 Algoseek 股票 ETF 與 3 個外匯對。

可重現性

共享的 FFD 函式庫、分析腳本與本文的原始碼都彙集於配套儲存庫 lopez-de-prado-work-review (研究 02)。pipeline 中任何環節皆無隨機性:重跑這兩個腳本可逐位元穩定地重現每一張圖、每一張表與每一個數字。 本頁的探索器直接編碼了已發表的 BTC 掃描,因此每次載入都能精確重現。

引用

另見

這是對 López de Prado 方法在真實資料上的持續回顧中的一篇。更廣泛的研究索引請見 研究