以比特幣 2021 年雙頂結構為例:談什麼是「未來數據洩漏(Look-ahead bias)」

以比特幣 2021 年雙頂結構為例:談什麼是「未來數據洩漏(Look-ahead bias)」

前言

  • 談「未來數據洩漏(Look-ahead bias)」的概念
  • 談交易領域中的命門:過度擬合(Overfitting)
  • 2021 年雙頂:對於刻舟求劍而言最大的考驗
  • 三個指標與一個模型的戰績回顧

來數據洩漏(Look-ahead bias)

試想一個情境: 「假設我開發了一個交易策略,並將這個策略嚴謹的回測過去 50 年, 回測時間是 1975 ~ 2024,並且得到很不錯的回測績效。 於是,我便決定在 2025 年啟用這一套策略。」

各位讀者對於以上描述,有人看出哪裡有毛病嗎?

如果真的只做 1975 ~ 2024 的回測,其實就很容易陷入「未來數據洩漏」的陷阱之中。因為我們單純只用了「至今為止」所有的數據來做回測,這會導致我們訓練出來的策略參數,很可能「不耐打」。

更嚴謹的作法是,舉例而言:可以再針對「1975 ~ 2023」(假設我們人在 2024 年),並以訓練後的策略,去回測 2024 年整年的績效;當然還可以用 1975 ~ 2022 時段的數據去訓練策略,然後再拿訓練後的策略去回測 2023、2024 的績效。

更精確來說,我們可以透過「滾動回測」或「步進回測」的方式,去盡可能的避免「未來數據洩漏」。

這樣做的好處是「確保訓練後的策略,可以接受未來的考驗


度擬合(Overfitting):最致命的毒藥

只要是稍微有基礎量化策略開發概念的人,就會知道 overfitting 能帶來的問題有多嚴重。所謂 overfitting,用通俗的話語來說就是「刻舟求劍」,這會讓回測數據很好看(訓練誤差低),但卻難以應用於實戰(測試誤差高)。

在此我打算引入一個數學的概念來解釋(看到數學就頭疼的讀者,可以直接跳到下一段看結論)

假設有一數列:「1 , 2 , 4 , 8 , 16 , ?」

對數字稍微有點敏感的讀者,應該都會覺得下一個數字是 32,因為前五項數據明顯與「2 的次方」有明顯關聯。

但事實上,我們其實無法預測下一個數字是多少,因為從數學的角度,我們完全可以利用 Lagrange 插值法,構建另一個高次多項式,讓第六個數據不是 32,但也滿足規律。這意味著:「單純基於有限數據點進行外推的預測,是不可靠的」。


2021 年第二頂:對於多數指標而言最大的考驗

講完無聊的理論觀念,接著我們來聊實戰。

以下,我將拿出三個鏈上數據指標,以及一個我個人開發的模型,為各位讀者進行講解:

1. MVRV(本段必讀)

我相信稍微有研究鏈上數據的讀者,一定都聽過 MVRV,很早之前我也寫過關於 MVRV 的介紹:MVRV 是什麼?

MVRV

如上圖,這是 MVRV 的歷史數據圖表。圖中標記的 1、2、3、4,分別對應 13 年、17 年的頂部,以及 2021 年的兩次頂部。

我們可以明顯看到:每一輪頂部的 MVRV 高點是「遞減」的,我聽過很多人會用以下方法,針對高點遞減的現象做處理:「我知道是遞減,所以在判斷頂部的時候,我會抓一個更保守、更低的閥值當作警訊。」

現在問題來了:

  1. 更保守的閥值怎麼設定?
  2. 如果我們回到 2021 年 4 月,能看到的歷史數據只有 13、17 年,保守設定後的閥值能在 21 年 4 月觸發嗎?
  3. 用這種方式設定的閥值,能在 2021 年第二頂觸發嗎?
  4. 如果不認為 2021 年 4 月是頂部,那 2021 年第二頂就更不可能逃頂了,對吧?

我想說的是:正因為 BTC 歷史數據的樣本數太少,並且若單純考慮前幾次週期,其實很可能陷入「未來數據洩漏」的陷阱中。

身處 2021 年 4 月(第一頂)的人,不會知道當時的 MVRV 數值,其實就是那一輪週期的最高點,因為他只能看到 13、17 年的數據;同理,在 2021 年第二頂出現的時候,MVRV 數值更是處於極低的位置,如果第一頂不逃,那自然不可能根據第二頂的數據去逃頂,如此便會錯失 2021 年逃頂的最佳時機。

2. AVIV

AVIV 算是修正過的、考慮更週詳的 MVRV,並且相較於 MVRV,存在更明顯「均值回歸」的特徵。但即便如此,「峰值(高點)遞減」的現象仍然很明顯:

AVIV

圖中標記的 1、2、3、4,分別對應 13 年、17 年的頂部,以及 2021 年的兩次頂部。

同樣的問題,我就直接複製上面的文字了,供各位讀者思考:

  1. 更保守的閥值怎麼設定?
  2. 如果我們回到 2021 年 4 月,能看到的歷史數據只有 13、17 年,保守設定後的閥值能在 21 年 4 月觸發嗎?
  3. 用這種方式設定的閥值,能在 2021 年第二頂觸發嗎?
  4. 如果不認為 2021 年 4 月是頂部,那 2021 年第二頂就更不可能逃頂了,對吧?

3. RUP

曾有讀者詢問:「同意背離的邏輯,但是否應該一併考慮 RUP 曾經到過的歷史高位?」我相信這個問題,在讀者閱讀至此之後,應該都能獲得解答。這邊我也順便補充 RUP 的歷史圖表:

RUP

圖中標記的 1、2、3、4,分別對應 13 年、17 年的頂部,以及 2021 年的兩次頂部。

可以看到,即便是針對市值做過標準化處理的 RUP,還是存在峰值遞減的現象。

再來一次靈魂拷問:

  1. 更保守的閥值怎麼設定?
  2. 如果我們回到 2021 年 4 月,能看到的歷史數據只有 13、17 年,保守設定後的閥值能在 21 年 4 月觸發嗎?
  3. 用這種方式設定的閥值,能在 2021 年第二頂觸發嗎?
  4. 如果不認為 2021 年 4 月是頂部,那 2021 年第二頂就更不可能逃頂了,對吧?

Cointime Price Deviation 模型

Cointime Price Deviation 模型,是我個人設計、用以觀測頂部的模型之一。

相關內容可以參考以下連結:
嶄新的 BTC 定價方法論 – Cointime Price 應用方法
Cointime Price 偏離度模型: BTC 頂部價格測算

Cointime Price Deviation 模型

中標記的 1、2、3、4,分別對應 13 年、17 年的頂部,以及 2021 年的兩次頂部。

各位讀者可以用這張圖片,和前三張圖片進行比較:

  1. 2021 第二頂的數值,與前三次頂部的數值差距更小
  2. 四次頂部的數值差距不大(但仍有遞減跡象)
  3. 將 BTC 逐年遞減的波動率納入考量

這也是為什麼我更傾向於對數據賦予邏輯、進行加工,只有這樣才能盡可能避免 overfitting、未來數據洩漏的問題。


結語

寫得有點長了,但如果是對於數學不感興趣的讀者,可以跳過中間那段,直接閱讀有圖片的段落。

此外,很多文字部分是重複的,核心概念我都聚集在 MVRV 那段,相信讀完那段之後,後續的閱讀速度會大幅提升。

本文主要是針對「Overfitting」、「避免未來數據洩漏」這兩大觀念進行科普與解釋,同時引入 2021 年特殊的狀況,作為我的講解範例。


學習討論群組

親愛的讀者,你可能在思考:「這些深入的分析方法和珍貴的資料分享,我要到哪裡去學習和看到?」 不必再四處尋找!除了 DA Labs 網站優質的內容外,我們建立了完整的社群生態系統,邀請想學習金融科技、區塊鏈/加密貨幣的朋友一同加入:

在 DA 交易者聯盟的各個社群平台中,有來自不同領域的專業講師和交易者,每日不停歇地討論市場資訊。動動你的手指,跟著我們踏上精彩的投資學習之旅吧!

DA Labs —— Bridge the Fintech Gaps