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

20 週均線策略:100 日、3 條規則與測試方法

20 週均線約涵蓋 100 個交易日。只有規則寫得精確、帶成本在期貨 K 棒上測試、以回撤而非淨損益對照買進持有,並證明相鄰長度表現一致時,它才是可用的趨勢濾網。

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

目錄
  1. 20 週均線策略是有用的交易規則嗎?
  2. 20 週均線是幾天?
  3. 有哪些簡單規則可以測試:收盤在上、收盤在下,還是交叉?
  4. 價格跌破 20 週均線時,該賣出嗎?
  5. 這條規則與買進持有相比如何,回撤顯示了什麼?
  6. 為什麼只看一個長度會誤導你,應該檢查哪些相鄰數值?
  7. 如何在指數期貨上回測 20 週均線?
  8. 常見問題
  9. 參考文獻

20 週均線策略是有用的交易規則嗎?

20 週均線策略要成為可用的趨勢濾網,必須做到四項檢查:規則寫得精確、在期貨 K 棒上計入手續費與滑價測試、以回撤而非淨損益與買進持有比較,並證明 20 週附近的均線長度表現一致。少了這四項,它只是圖上的一條線,不是規則。

移動平均線是最近 N 根 K 棒收盤價的平均值,每出現一根新 K 棒就重算一次,所以線會跟著價格移動。20 週均線是交易人在指數圖上追蹤的最慢均線之一。它的作用不在找進場點,而是告訴你目前處於長期上漲,還是長期下跌。這正是本文要檢驗的主張:慢速均線若有價值,會出現在回撤上,而不是報酬上。

上述四項檢查,同樣適用於可實際檢驗的技術分析指標中的任何一條線。移動平均線有一項優勢:規則簡短,含糊的定義無處可藏。

20 週均線是幾天?

20 週均線約涵蓋 100 個交易日,所以日 K 棒上的 100 日簡單移動平均畫出的線幾乎相同,而 20 日均線則是另一條快得多的規則。一週有五個交易日,20 週乘以 5 天等於 100 天。交易所假日會讓任何 20 週區間少掉幾天,所以在日 K 棒上,兩者是接近而非完全相同。

兩條線即使涵蓋相同的 100 天,也不完全一樣。週 K 棒上的 20 週均線只用週五收盤價;日 K 棒上的 100 日均線則用每一天的收盤價。日線版本較平滑,每個交易日都更新,也就是說,它可以在週中發出訊號,不必等到週五。期貨回測以日 K 棒較為實用:訊號 K 棒較多,而且可以在下一個交易日開盤成交。

20 日均線涵蓋約一個月。它的長度只有五分之一,價格穿越它的次數多得多,以它建立的規則,交易頻率大約是同一規則改用 20 週線時的五倍。交易越多,手續費與滑價越多,所以這兩個長度不是同一策略的兩種設定,而是成本結構不同的兩個策略。

回看長度20 日均線20 週均線
涵蓋的 K 棒20 根日 K 棒,約一個月20 根週 K 棒,或約 100 根日 K 棒,約五個月
訊號頻率交叉頻繁交叉少,常相隔數月
成本敏感度高:每年一買一賣的次數多低:每年一買一賣的次數少
典型用途波段進場與出場長期趨勢濾網
20 週均線用 20 根週 K 棒,100 日均線在同樣的五個月內用約 100 根日 K 棒,而 20 日均線只涵蓋這段期間中的約一個月 20 週 ≈ 100 個交易日 同樣五個月,兩種 K 棒週期 20 週 100 日 20 日 ≈ 1 個月 20 日是另一條更快的規則。 所以:當成獨立策略測試。
二十根週 K 棒與約 100 根日 K 棒涵蓋同一段日曆時間。20 日均線只涵蓋其中一個月,訊號也多得多。

有哪些簡單規則可以測試:收盤在上、收盤在下,還是交叉?

多數慢速均線的用法可歸成三種規則,每一種都必須寫明由哪一根 K 棒觸發訊號、由哪一根 K 棒成交。只寫「均線之上買進」的規則無法檢驗,因為回測不知道該在觸及均線、收盤,還是下一根 K 棒確認收盤時動作。

  1. 收盤在均線之上/之下的規則。昨日收盤在均線之上就做多,在均線之下就空手(或做空)。訊號在該根 K 棒收盤時產生,在下一根 K 棒開盤成交。這是完整的趨勢濾網。
  2. 只做跌破出場。用其他規則進場,或從一開始就持有,在 K 棒收盤跌破均線時出場。再進場依原本的進場規則,而不是等價格重新穿越回均線之上。憑主觀判斷的交易人問「該不該在跌破時賣出」,多半指的就是這個版本。
  3. 快線交叉。交叉是指一條均線由另一條均線之下穿越到之上的時刻。這裡由較快的均線(例如 20 日線)穿越 20 週線。因為要等兩條平滑線交叉,交易時點比規則 1 晚,但會略過許多單根 K 棒短暫跌破慢線的情形。

交叉規則裡,快線的選擇會改變落後程度。DEMA 指標縮短 EMA 落後,交叉比同長度的簡單平均更早出現,以較少的遲到訊號換來較多的早到訊號。請檢驗這個取捨;不要預設落後越少越好。

三條均線規則,收盤在上、跌破與交叉,都在 K 棒收盤時讀取訊號、在下一根 K 棒成交,所以沒有任何規則使用到交易不到的價格 先訊號 K 棒,再成交 K 棒 三條規則的時序相同 均線 訊號 成交 1 收盤在上 2 跌破 3 交叉 沒有規則用到未見過的價格。 所以:每條規則寫明兩根 K 棒。
三條可檢驗的規則。訊號 K 棒是讀取條件的地方;成交 K 棒是下一根,所以沒有任何規則使用到交易不到的價格。

價格跌破 20 週均線時,該賣出嗎?

跌破 20 週均線是一種慢速出場,常在一大段跌勢已經發生後才觸發,在盤整市場中又迅速反轉。因此在把它採用為賣出規則之前,先數出過去的跌破中,有多少次是來回洗盤,有多少次是真正的趨勢轉變。來回洗盤是指訊號發出後不久即反轉的情形:你出場,價格回頭向上,你再進場時的價位比出場時更高。

兩種現象都源於均線太慢。在長期上漲中,100 日均線遠低於價格,所以收盤跌破它時,指數通常已經回吐數月的漲幅。在盤整市場,同一條線穿過價格中段,收盤每隔幾週就穿越一次。Brock、Lakonishok 與 LeBaron(1992)發現,在長期的道瓊歷史上,均線規則在線的兩側產生的報酬都與隨機不同;Park 與 Irwin(2007)回顧後續研究,指出把成本與測試過的規則數量納入考量後,結果會減弱。因此這項出場的價值取決於你的市場與你的成本,必須實際計數,不能預設。

  1. 列出每一根收盤由均線之上轉到之下的 K 棒。
  2. 對每一次跌破,記錄一直空手到再進場訊號出現的結果,並與持有不動的結果比較。
  3. 空手造成損失時,把該次跌破標為來回洗盤;空手省下損失時,標為真正的趨勢轉變。
  4. 兩組加總。只有在扣除每一次出場與再進場的成本後,真正跌破省下的金額大於來回洗盤損失的金額,這條規則才值得保留。

假設性範例

假設在指數期貨上做十年測試,100 日跌破出場規則產生 20 次跌破。其中十五次是來回洗盤,每次因錯過反彈損失約 2% 的指數價值,外加兩次一買一賣的成本;五次是真正的趨勢轉變,每次避開約 12% 的後續跌幅。來回洗盤合計損失約 30%;真正的跌破合計省下約 60%。規則予以保留,但以 5 比 15 計算,測試也記錄了四個訊號中有三個是錯的。

價格線與慢速均線的示意圖:盤整階段中四次短暫跌破均線屬於來回洗盤,之後一次跌破均線則開啟長期下跌,才是真正的趨勢轉變 多數跌破是來回洗盤 示意圖,非真實資料 4 次來回洗盤 1 次真正跌破 均線 一次真跌破補回洗盤損失。 所以:採信前先計算兩者。
慢速均線下方的多數跌破,是盤整市場中的短暫穿越。規則靠長期下跌前的那一次跌破,來抵付這些成本。

若來回洗盤的次數偏高,賣出前再加第二個條件是值得檢驗的做法,前提是它寫成規則。部位資料就是候選之一:商品部位報告(COT)測試成規則示範如何把每週發布的資料變成可檢驗的濾網,黃金 COT 報告的部位規則則針對單一市場逐步演練。

這條規則與買進持有相比如何,回撤顯示了什麼?

在同一份期貨資料上,用最大回撤與持倉時間把規則與買進持有比較,不要只看淨損益,因為趨勢濾網的報酬通常低於在長期上漲中一路持有,它唯一的防線是較小的回撤。買進持有是在第一根 K 棒進場、永不出場的比較策略。最大回撤是從權益高點到下一個低點的最大跌幅,在創下新高之前計算。使用免費的最大回撤計算機,即可從任何權益序列讀出。

在期貨上,買進持有代表持有一口合約並每季轉倉,所以比較基準要建立在規則所用的同一條連續月、回溯調整的序列上。接著把兩條權益曲線並排,讀四個數字:

衡量項目重要原因有效濾網的表現
淨損益期間內的總獲利在長期上漲中常低於買進持有
最大回撤你會一路承受的最大跌幅明顯小於買進持有
持倉時間有部位的 K 棒占比較低;濾網在下跌時空手
每單位持倉時間的損益持倉期間賺到的獲利若空手的期間正是不好的期間,則高於買進持有

假設性範例

在十年測試中,指數期貨的買進持有獲利 $100,000,最大回撤 $40,000,持倉時間 100%。100 日收盤在上規則獲利 $70,000,最大回撤 $18,000,持倉時間 60%。它的總獲利較少,但每單位曝險的獲利較高,最糟的跌幅也不到一半深。這樣的取捨值不值得,取決於你的帳戶與心理承受力能扛多少回撤;這才是趨勢濾網真正回答的問題。

買進持有(設為 100%)與均線規則比較的示意圖:規則的淨損益略低,最大回撤大幅降低,持倉時間約為一半 獲利較少,跌幅較小 示意圖:買進持有 = 100% 買進持有 規則 淨損益 最大回撤 持倉時間 濾網的價值在回撤。 所以:看回撤,不看淨損益。
趨勢濾網放棄一部分漲幅,換來最深跌幅的縮減。曲線下方的長條讓這項取捨一目了然。

為什麼只看一個長度會誤導你,應該檢查哪些相鄰數值?

100 日表現好、90 日與 110 日卻差的結果,只是幸運的尖峰,所以請在 20 週附近的一段長度範圍內執行規則,只在相鄰設定表現相近時才保留。市場並不知道 20 週有什麼特別。若優勢確實存在,95 日或 105 日的均線應能抓到大部分相同的趨勢與大部分相同的來回洗盤,結果應落在一片高原上。高原是結果相近的一段設定範圍;尖峰則是單一設定遠高於相鄰設定。

尖峰是挑選造成的。當你試了多個長度、只報告最好的那一個,最好結果中有一部分是剛好貼合這段歷史的雜訊。Bailey、Borwein、López de Prado 與 Zhu(2014)指出,最佳候選策略的預期樣本外結果,會隨著測試的候選數增加而下降。實務上的解讀簡單:高原越寬,代表是規則在起作用,而不是那個數字。判讀參數曲面的完整方法見參數穩定度:高原還是幸運尖峰。

  1. 以 80、90、100、110 與 120 日執行同一條規則,成本與成交規則相同。
  2. 比較五次執行的淨損益、最大回撤與交易筆數,不要只看淨損益。
  3. 五個結果的正負與大小相近就保留;若有一個長度獨自突出,就捨棄。
  4. 用高原中央的設定交易,而不是最高點。
80 到 120 日五種均線長度結果的示意圖:左側五根高度相近的長條構成高原,右側 100 日有一根高長條,高於其他四根矮長條,是幸運尖峰 高原,還是幸運尖峰? 80 至 120 日的結果,示意圖 高原 幸運尖峰 相鄰設定相近:規則有效。 所以:用高原中央的設定。
五個相鄰長度高度相近,代表規則有效;一根特別高的長條,代表那個數字只是在這段歷史上走運。

如何在指數期貨上回測 20 週均線?

先設好 K 棒週期、交易時段、合約每點價值、手續費、滑價與下一根 K 棒成交,再對完整歷史執行這條規則,檢視交易、回撤與樣本外區段。以那斯達克 100 測試為例,就是 NQ 日 K 棒、全時段(讓收盤價是交易所結算時間的收盤價),以及每指數點 $20 的每點價值,這是 CME 合約規格所訂。交易所會不定期調整合約價值;請以交易所的合約頁確認。

  1. 選擇商品與 K 棒週期:NQ 日 K 棒,建立在連續月、回溯調整的序列上。
  2. 設定交易時段與每點價值:全時段,每點 $20。
  3. 設定每筆交易的手續費與滑價,並套用到每一次進場與出場。
  4. 寫出精確規則:在收盤讀取的條件、下一根開盤的成交,以及再進場條件。
  5. 對完整歷史執行,並將最後一段保留作為樣本外。
  6. 讀取交易筆數、最大回撤,以及樣本外區段與其餘區段的比較。

步驟 3 是均線測試最常略過的一步,因為慢速規則交易稀少,成本看起來偏小。它們每年確實不多,但會決定上面跌破出場測試中的來回洗盤次數,所以從一開始就要放進每一次執行。AlphaPrime(Valynox)在每次評估中計入手續費與滑價,並在下一根 K 棒成交,所以慢速均線與快速均線的回測,在比較時本就處在相同的成本基準上。

NQ 日 K 棒上的六個回測步驟:商品、交易時段、成本、精確規則、完整執行、讀取結果;結果不佳就回到步驟 4 修改規則,而不是修改資料 先設定,規則在後 NQ 日 K 棒的六個步驟 1 商品 2 交易時段 3 成本 4 規則 5 執行 6 讀結果 結果不佳?回到步驟 4。 所以:改規則,不改資料。
先設定,再寫規則,最後執行。結果不如預期時,迴圈回到規則,絕不回到資料或日期。

下面這次執行,展示上述六個步驟在 NQ 日 K 棒上的輸出是什麼樣子。它沒有測試 20 週均線。它測試的是一條替代規則:以標準指標組成的均值回歸半衰期(Mean-Reversion Half-Life)規則,作為唯一的進場與出場,多空皆做,沒有停損、停利或濾網。圖中的候選策略,是搜尋在它嘗試的 1,024 個中保留下來的那一個,依報酬對回撤的比較挑選;事後挑出保留的那個,會讓它看起來比實際好,所以請把這張表當成績效報表的範例,不要當成這條規則或任何均線的成績,也不是讀者可預期的結果。

來源:AlphaPrime 產品引擎(CPU),2026-10-31 執行。NQ 日線,2019-01-02 至 2025-06-30,多空都做,1 口,每筆手續費 $20、滑價 $10。

數字結果
淨利(已平倉)$208,535
最大回撤$73,565
交易筆數252
勝率56.35%
獲利因子1.407
平均每筆$827.52
在場時間50.5%

那張表有三行,是檢視任何規則(包括 20 週均線)時該讀的。交易筆數(約六年半共 252 筆)告訴你樣本是否大到足以判斷。最大回撤($73,565)相對淨損益($208,535),就是買進持有那一節的報酬對回撤比較。持倉時間(50.5%)顯示規則在這段期間有多少時間暴露在市場中,這正是趨勢濾網應該壓低的數字。

留意樣本外標記前後的斜率,以及陰影回撤與上升段相比的深度。20 週均線測試也應從同樣三處來讀。
留意樣本外標記前後的斜率,以及陰影回撤與上升段相比的深度。20 週均線測試也應從同樣三處來讀。 NQ · 日 K · 2019-01-02 至 2025-06-30 · CPU 引擎回測

下一步,是用你自己的指數期貨資料與實際負擔的成本執行 100 日收盤在上規則,再以 80、90、110 與 120 日重跑,把五個最大回撤與同一序列的買進持有回撤並排。若五個結果集中,且都明顯小於買進持有,這條規則就通過了最重要的兩項檢驗。若不然,你用一個下午就知道,不必等一個熊市。

常見問題

20 週均線是幾個交易日?

約 100 個交易日,因為一週有五個交易日,20 乘以 5 等於 100。交易所假日會讓任何實際的 20 週區間少掉幾天,所以日 K 棒上的 100 日均線是接近而非完全相同。在週 K 棒上,均線只用 20 根週五收盤價,所以比日線版本稍微粗糙。

價格跌破 20 週均線時,我該賣出嗎?

只有在你的市場測試顯示,扣除成本後,出場所避開的跌幅大於它造成的來回洗盤損失時才該賣。這個跌破在長期下跌中觸發得晚,在盤整市場中又常反轉。採用前,先在完整歷史上計算兩組次數;若來回洗盤次數偏高,可考慮再加第二個以規則寫成的條件。

20 週均線和 100 日均線一樣嗎?

兩者涵蓋相同的時間,畫出的線也幾乎相同,但並不完全一樣。20 週版本每週更新一次,用的是週五收盤價;100 日版本每個交易日更新,用的是每一天的收盤價。期貨回測較適合用日線版本,因為每個交易日都有訊號 K 棒與下一根 K 棒的成交。

如何在期貨上回測 20 週均線?

寫規則之前,先設定 K 棒週期、交易時段、每點價值、手續費、滑價與下一根 K 棒成交。規則要寫到哪一根 K 棒:讀哪一個收盤、在哪一個開盤成交。對完整歷史執行,並保留一段樣本外,把它的回撤與持倉時間和同一份資料上的買進持有比較,再用 80 到 120 日重複,確認結果是高原,而不是單一幸運的長度。

參考文獻

  • Brock, W., Lakonishok, J., & LeBaron, B. (1992). Simple Technical Trading Rules and the Stochastic Properties of Stock Returns. The Journal of Finance, 47(5), 1731–1764.
  • Park, C.-H., & Irwin, S. H. (2007). What Do We Know About the Profitability of Technical Analysis? Journal of Economic Surveys, 21(4), 786–826.
  • 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.
  • CME Group. E-mini Nasdaq-100 Futures Contract Specs. https://www.cmegroup.com/markets/equities/nasdaq/e-mini-nasdaq-100.contractSpecs.html