VALYNOXSTRATEGY RESEARCH TECHNOLOGY
AlphaPrimeAlphaPrime
策略學院 / 指標與訊號

均值回歸是什麼:公式與可測試的期貨範例

均值回歸押注價格偏離近期平均後會往平均靠攏。用 z 分數衡量偏離程度,z =(價格 − 平均)÷ 標準差,例如在 −2 以下買進、回到 0 附近出場。寫出明確的進出場規則,再在扣除成本、趨勢期間、鄰近設定與其他市場上檢驗。

作者 · 發佈 · 更新於 · 編輯原則

目錄
  1. 什麼是均值回歸?
  2. 均值回歸的公式是什麼?
  3. 如何把均值回歸轉成回測能照做的規則?
  4. 為什麼均值回歸策略在趨勢市場會失靈?
  5. 交易成本如何改變均值回歸的回測?
  6. 如何確認結果不是靠運氣湊出來的設定?
  7. 常見問題
  8. 參考文獻

什麼是均值回歸?

均值回歸的概念是:價格偏離近期平均很遠之後,傾向往平均靠攏。你用 z 分數衡量偏離幅度:價格減去移動平均,再除以同一段 K 棒的標準差。一條可測試的期貨規則是在 z 低於 −2 時買進、接近 0 時出場,並在扣除成本後進行檢驗。

想像一條綁在柱子上的橡皮筋。拉得很遠,它往往會彈回來。均值回歸策略等橡皮筋被拉得很遠,再押注它會彈回。順勢策略則下相反的注:離開平均的走勢會持續下去。兩種想法都可以測試,但沒有哪一種在每個市場、每段期間都成立。它的進場訊號通常來自衡量與平均值距離的技術指標。

在期貨上,交易者常用兩種方式運用這個概念。一種用在單一合約的價格,例如在平靜的交易時段內漲跌過頭的指數期貨。另一種用在兩個相關合約之間的價差。本文採用第一種,因為它最容易轉成明確的規則。

均值回歸的公式是什麼?

衡量均值回歸的標準方式是 z 分數,它表示價格距離平均有幾個標準差。z 分數是一個數字,用來說明某個值相對於近期數值有多不尋常。標準差則是衡量價格在同一段 K 棒內圍繞平均分散程度的指標。標準差指標頁面說明了它的計算方式。

公式如下:

z = (P − M) / S

  • P 是目前的收盤價。
  • M 是最近 N 根收盤價的平均,通常用簡單移動平均。
  • S 是同樣 N 根收盤價的標準差。
  • N 是回看期間,也就是計算 M 與 S 所用的 K 棒數量。

z 分數為 0 表示價格正好在平均上。z 分數為 −2 表示價格比平均低兩個標準差。如果在 20 根 K 棒的平均上下畫出 +2 與 −2 的線,就得到預設設定的常見布林通道。z 分數是同樣的資訊,只是濃縮成一個數字,很容易放進規則裡。

在完美的鐘形分布中,大約 95% 的數值落在平均值兩個標準差之內。但價格資料的尾部比這更肥。超出 ±2 的走勢出現得比鐘形曲線所暗示的更頻繁,其中有些還會繼續延伸。所以 ±2 是用來測試的起點,不是統計上保證會反彈的承諾。

同一段價格的兩種呈現:上圖中價格跌破均線周圍的下軌;下圖中 z 分數跌破負 2 時規則進場買進,回到 0 時規則出場 −2 買進,0 出場 同一價格,兩種視角 買進 出場 價格 z 分數 0 −2 z 把偏離幅度化為一個數字。 所以:規則寫在 z 上,別憑感覺。
同一份價格的兩種呈現:圖表上圍繞平均的通道,以及下方的 z 分數。規則在 z 穿越 −2 時行動,在 z 回到 0 時出場。

如何把均值回歸轉成回測能照做的規則?

均值回歸的想法只有在每個決定都寫下來之後才能測試,包括何時認輸。「看起來超賣就買」無法測試,一組明確的條件才可以。以下是針對 30 分鐘 K 棒的指數期貨的一套完整規則:

  1. 計算:在每根 K 棒收盤時,用最近 20 根收盤價計算 M 與 S,再算出 z。
  2. 做多進場:當 z 收盤低於 −2 時,在下一根 K 棒的開盤買進。
  3. 做空進場:當 z 收盤高於 +2 時,在下一根 K 棒的開盤賣出。
  4. 一般出場:當 z 穿越回 0 時,在下一根 K 棒的開盤出場。
  5. 使用停損:設在距離進場價固定的距離。
  6. 使用時間停損:如果兩種出場都沒發生,就在 10 根 K 棒後出場。時間停損是指經過設定的 K 棒數之後,不論價格如何都平掉部位的出場方式。
  7. 只在你選定的交易時段交易,並在該時段結束時空手。

有兩個細節決定這個回測是否誠實。第一,規則在 K 棒收盤時做決定,在下一根 K 棒成交。若在產生訊號的同一個收盤價成交,就是用了你根本無法成交的價格。第二,在 z = 0 出場,部分原因是平均往價格靠近,而不只是價格往平均靠近。因此每筆損益常常比進場價到起始平均的距離來得小。

假設範例

20 根 K 棒的平均是 4,800.0,標準差是 10 點。某根 K 棒收在 4,778.0,所以 z = (4,778 − 4,800) / 10 = −2.2。規則在下一個開盤 4,779.0 買進。六根 K 棒後,平均已降到 4,794.0,某根 K 棒收在 4,795.0,所以 z 回到 0 以上。規則在下一個開盤 4,794.5 賣出。獲利為 15.5 點。平均下降了 6 點,所以價格不必一路爬回 4,800。

均值回歸規則通常是勝率高、虧損少但單次金額較大。光看高勝率什麼也說明不了。請用勝率與期望值計算器,輸入你的平均獲利與平均虧損,它會告訴你每筆交易平均值多少。

市場出現趨勢時,均值回歸會失靈,因為被拉開的價格會繼續被拉開,而不是彈回來。趨勢行情是指價格穩定朝同一方向移動的期間,每根新 K 棒都傾向延伸這段走勢。在劇烈下跌中,z 可能連續好幾根 K 棒收在 −2 以下。規則買進、被停損、再買進、再被停損。

同一個均值回歸規則在兩種市況:盤整市場中,低點買進會變成小幅獲利;下跌市場中,每次買進後持續下跌並被停損出場 同一規則,兩種市況 區間買進 vs 急跌 盤整 小幅獲利 下跌 被停損 趨勢行情一再觸發停損。 所以:在趨勢期間測試規則。
同一條規則在兩種行情:盤整市場中小幅獲利,下跌市場中反覆被停損。
市場表現z 分數的行為規則的典型結果
橫向盤整在 ±2 之間來回擺盪並回到 0頻繁的小額獲利
緩慢趨勢較長時間停留在 0 的同一側在 0 出場的次數較少,時間停損較多
強勢趨勢或消息衝擊連續多根 K 棒停留在 ±2 之外連續反覆觸發停損

你無法消除這個弱點,但可以衡量並限制它。以下四個步驟有幫助:

  1. 找出歷史中的趨勢期間,例如急劇崩跌或長期上漲,並逐筆檢視規則在當時的交易。
  2. 保留停損與時間停損。沒有它們,回測可能掩蓋一筆足以讓帳戶出清的虧損交易。
  3. 測試趨勢濾網,例如:當 100 根 K 棒的平均低於 20 根 K 棒前的水準時,略過做多進場。只有當濾網在未經調校的資料上也有幫助時,才保留它。
  4. 檢視最糟的連續虧損,而不只是總結果。你必須熬過的就是那段連虧。

交易成本如何改變均值回歸的回測?

成本對均值回歸的打擊比多數策略類型更重,因為它需要大量交易,而每次目標都很小。規則在接近平均時出場,所以每筆的獲利有限。但每一次一買一賣(來回)仍要付手續費、交易所費用與滑價。滑價是回測假設的價格與你實際成交價之間的差距。

第二項成本藏在成交假設裡。許多均值回歸交易者用限價單在下跌時買進。若回測讓每張限價單一碰到價格就成交,結果會偏樂觀。在急跌中,成交的單往往是持續虧損的那些,而本來會賺錢的單常常成交不了。下一根 K 棒的市價成交加上合理的滑價,是較安全的預設。AlphaPrime(Valynox) 的回測採下一根 K 棒成交,並套用你設定的手續費與滑價,均值回歸的進場看的是實際成交得到的價格,不是訊號當下的價位。

假設範例

假設每跳動點價值為 $12.50,每次一買一賣(來回)的手續費與規費為 $5,每邊各有一個跳動點的滑價。這樣每次來回成本為 $30。這條規則的 5 分鐘版本平均每筆毛利為 3 個跳動點,也就是 $37.50。扣除成本後剩 $7.50。若滑價加倍為每邊兩個跳動點,成本變成 $55,平均每筆虧損 $17.50。30 分鐘版本平均每筆毛利為 12 個跳動點,也就是 $150。扣除一般成本後剩 $120,滑價加倍後剩 $95。

較快的版本看起來更活躍、更平滑,但大部分優勢都被成本吃掉。較慢的版本撐得過成本壓力測試。關於設定手續費與滑價的完整方法,請見回測中的交易成本:手續費、滑價與平均每筆損益。

如何確認結果不是靠運氣湊出來的設定?

值得信賴的均值回歸結果,在稍微改變設定、換到其他市場時仍然成立。回看期間 N 與進場門檻都是你的選擇。如果測試了許多組合再挑最好的一組,它的部分結果就是運氣。對技術交易規則的研究顯示,在同一份資料上測試許多規則,其中最好的一條光靠機率就可能看起來很強(Sullivan, Timmermann & White, 1999)。你嘗試的變化越多,最佳回測往往越高,即使沒有任何一個變化真的有優勢(Bailey, Borwein, López de Prado & Zhu, 2014)。

跑一個鄰近設定的小格子,看它的形狀,而不只看最好的那一格:

你改變的項目範例值好的跡象壞的跡象
回看期間 N10、20、30、40 根 K 棒相鄰的值結果相近只有一個值有效
進場門檻1.5、2.0、2.5交易較少,但每筆結果相近結果在不同值之間正負翻轉
K 棒週期15、30、60 分鐘結果方向相同只在一種 K 棒週期有效
市場其他流動性佳的指數期貨較弱,但扣除成本後仍為正在其他地方全部失敗
期間每一個獨立的年份大多數年份可接受全靠某一年撐起
相鄰設定的兩組結果格:左側多數格為正,形成高原,顯示可能有真實效果;右側負值包圍中只有一格為正,顯示只是設定碰巧幸運 相信高原,別信尖峰 相鄰設定的結果 − + + + − + + + + + − + + + − − − − − − − − + − − − − − − − 鄰近結果一致 僅一格幸運 真正的優勢在相鄰設定下依然成立。 所以:選高原中間的設定。
一片結果相近的平台(左)暗示真實的效應。一個亮格子被表現不佳的鄰居包圍(右)則暗示是運氣好的設定。

接著,在未經調校的資料上測試所選的設定。推進分析是一種檢驗:在一段資料視窗上調校規則,原封不動交易下一段視窗,然後把兩個視窗一起往前推並重複。推進分析:為什麼一次回測不夠說明了如何選擇視窗。在 AlphaPrime中,你可以在策略生成裡描述規則的進出場條件與要探索的參數範圍。接著可以在策略檢驗中,以你自己的門檻執行推進分析與其他檢查。

如果你使用 AlphaPrime,這代表:在第一次執行之前,先設定好合理的手續費、滑價,以及你的交易時段(下一根 K 棒成交是固定規則),讓均值回歸的候選策略在扣除成本後排名。然後依據鄰近設定的形狀與推進分析的結果來評判它們,而不是看單一最佳的回測。

常見問題

均值回歸的公式是什麼?

常見的公式是 z 分數:z =(價格 − 平均)÷ 標準差,平均與標準差取自同樣數量的近期 K 棒。z 分數為 −2 表示價格比近期平均低兩個標準差。均值回歸規則通常在 z 越過 ±2 等門檻時進場,並在 z 回到 0 附近時出場。

均值回歸的「均值回歸」是什麼意思?

均值回歸描述價格,或兩個價格之間的價差,在大幅偏離平均之後傾向回到平均的現象。在交易中,它是「在被拉低時買進、在被拉高時賣出」這類策略的基礎。

均值回歸在期貨上有效嗎?

這取決於市場、K 棒週期、期間與成本,唯一的判斷方法就是測試。均值回歸規則在盤整期間往往表現良好,在強勢趨勢中表現不佳。在依賴它之前,請在合理的成本下、鄰近設定上、其他市場上,並搭配推進分析來檢驗。

均值回歸與順勢交易有什麼差別?

均值回歸押注遠離平均的價格會往平均靠攏。順勢交易押注離開平均的走勢會持續。兩者常在相反的市場條件下表現良好,所以有些交易者會把它們放在同一個投資組合中一起測試。

均值回歸策略該用多長的回看期間?

沒有唯一正確的回看期間。20 根 K 棒的視窗是常見的起點,因為它與布林通道的預設值一致。請測試一系列鄰近的值,例如 10 到 40 根 K 棒,並偏好扣除成本後相鄰值結果相近的設定。

參考文獻

  • Sullivan, R., Timmermann, A., & White, H. (1999). Data-Snooping, Technical Trading Rule Performance, and the Bootstrap. The Journal of Finance, 54(5), 1647–1691.
  • Bailey, D. H., Borwein, J., López de Prado, M., & Zhu, Q. J. (2014). Pseudo-Mathematics and Financial Charlatanism: The Effects of Backtest Overfitting on Out-of-Sample Performance. Notices of the American Mathematical Society, 61(5), 458–471.