20 週均線策略:100 日、3 條規則與測試方法
20 週均線約涵蓋 100 個交易日。只有規則寫得精確、帶成本在期貨 K 棒上測試、以回撤而非淨損益對照買進持有,並證明相鄰長度表現一致時,它才是可用的趨勢濾網。
作者 Soren Huang · 發佈 · 更新於 · 編輯原則
目錄
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 棒,約五個月 |
| 訊號頻率 | 交叉頻繁 | 交叉少,常相隔數月 |
| 成本敏感度 | 高:每年一買一賣的次數多 | 低:每年一買一賣的次數少 |
| 典型用途 | 波段進場與出場 | 長期趨勢濾網 |
有哪些簡單規則可以測試:收盤在上、收盤在下,還是交叉?
多數慢速均線的用法可歸成三種規則,每一種都必須寫明由哪一根 K 棒觸發訊號、由哪一根 K 棒成交。只寫「均線之上買進」的規則無法檢驗,因為回測不知道該在觸及均線、收盤,還是下一根 K 棒確認收盤時動作。
- 收盤在均線之上/之下的規則。昨日收盤在均線之上就做多,在均線之下就空手(或做空)。訊號在該根 K 棒收盤時產生,在下一根 K 棒開盤成交。這是完整的趨勢濾網。
- 只做跌破出場。用其他規則進場,或從一開始就持有,在 K 棒收盤跌破均線時出場。再進場依原本的進場規則,而不是等價格重新穿越回均線之上。憑主觀判斷的交易人問「該不該在跌破時賣出」,多半指的就是這個版本。
- 快線交叉。交叉是指一條均線由另一條均線之下穿越到之上的時刻。這裡由較快的均線(例如 20 日線)穿越 20 週線。因為要等兩條平滑線交叉,交易時點比規則 1 晚,但會略過許多單根 K 棒短暫跌破慢線的情形。
交叉規則裡,快線的選擇會改變落後程度。DEMA 指標縮短 EMA 落後,交叉比同長度的簡單平均更早出現,以較少的遲到訊號換來較多的早到訊號。請檢驗這個取捨;不要預設落後越少越好。
價格跌破 20 週均線時,該賣出嗎?
跌破 20 週均線是一種慢速出場,常在一大段跌勢已經發生後才觸發,在盤整市場中又迅速反轉。因此在把它採用為賣出規則之前,先數出過去的跌破中,有多少次是來回洗盤,有多少次是真正的趨勢轉變。來回洗盤是指訊號發出後不久即反轉的情形:你出場,價格回頭向上,你再進場時的價位比出場時更高。
兩種現象都源於均線太慢。在長期上漲中,100 日均線遠低於價格,所以收盤跌破它時,指數通常已經回吐數月的漲幅。在盤整市場,同一條線穿過價格中段,收盤每隔幾週就穿越一次。Brock、Lakonishok 與 LeBaron(1992)發現,在長期的道瓊歷史上,均線規則在線的兩側產生的報酬都與隨機不同;Park 與 Irwin(2007)回顧後續研究,指出把成本與測試過的規則數量納入考量後,結果會減弱。因此這項出場的價值取決於你的市場與你的成本,必須實際計數,不能預設。
- 列出每一根收盤由均線之上轉到之下的 K 棒。
- 對每一次跌破,記錄一直空手到再進場訊號出現的結果,並與持有不動的結果比較。
- 空手造成損失時,把該次跌破標為來回洗盤;空手省下損失時,標為真正的趨勢轉變。
- 兩組加總。只有在扣除每一次出場與再進場的成本後,真正跌破省下的金額大於來回洗盤損失的金額,這條規則才值得保留。
假設性範例
假設在指數期貨上做十年測試,100 日跌破出場規則產生 20 次跌破。其中十五次是來回洗盤,每次因錯過反彈損失約 2% 的指數價值,外加兩次一買一賣的成本;五次是真正的趨勢轉變,每次避開約 12% 的後續跌幅。來回洗盤合計損失約 30%;真正的跌破合計省下約 60%。規則予以保留,但以 5 比 15 計算,測試也記錄了四個訊號中有三個是錯的。
若來回洗盤的次數偏高,賣出前再加第二個條件是值得檢驗的做法,前提是它寫成規則。部位資料就是候選之一:商品部位報告(COT)測試成規則示範如何把每週發布的資料變成可檢驗的濾網,黃金 COT 報告的部位規則則針對單一市場逐步演練。
這條規則與買進持有相比如何,回撤顯示了什麼?
在同一份期貨資料上,用最大回撤與持倉時間把規則與買進持有比較,不要只看淨損益,因為趨勢濾網的報酬通常低於在長期上漲中一路持有,它唯一的防線是較小的回撤。買進持有是在第一根 K 棒進場、永不出場的比較策略。最大回撤是從權益高點到下一個低點的最大跌幅,在創下新高之前計算。使用免費的最大回撤計算機,即可從任何權益序列讀出。
在期貨上,買進持有代表持有一口合約並每季轉倉,所以比較基準要建立在規則所用的同一條連續月、回溯調整的序列上。接著把兩條權益曲線並排,讀四個數字:
| 衡量項目 | 重要原因 | 有效濾網的表現 |
|---|---|---|
| 淨損益 | 期間內的總獲利 | 在長期上漲中常低於買進持有 |
| 最大回撤 | 你會一路承受的最大跌幅 | 明顯小於買進持有 |
| 持倉時間 | 有部位的 K 棒占比 | 較低;濾網在下跌時空手 |
| 每單位持倉時間的損益 | 持倉期間賺到的獲利 | 若空手的期間正是不好的期間,則高於買進持有 |
假設性範例
在十年測試中,指數期貨的買進持有獲利 $100,000,最大回撤 $40,000,持倉時間 100%。100 日收盤在上規則獲利 $70,000,最大回撤 $18,000,持倉時間 60%。它的總獲利較少,但每單位曝險的獲利較高,最糟的跌幅也不到一半深。這樣的取捨值不值得,取決於你的帳戶與心理承受力能扛多少回撤;這才是趨勢濾網真正回答的問題。
為什麼只看一個長度會誤導你,應該檢查哪些相鄰數值?
100 日表現好、90 日與 110 日卻差的結果,只是幸運的尖峰,所以請在 20 週附近的一段長度範圍內執行規則,只在相鄰設定表現相近時才保留。市場並不知道 20 週有什麼特別。若優勢確實存在,95 日或 105 日的均線應能抓到大部分相同的趨勢與大部分相同的來回洗盤,結果應落在一片高原上。高原是結果相近的一段設定範圍;尖峰則是單一設定遠高於相鄰設定。
尖峰是挑選造成的。當你試了多個長度、只報告最好的那一個,最好結果中有一部分是剛好貼合這段歷史的雜訊。Bailey、Borwein、López de Prado 與 Zhu(2014)指出,最佳候選策略的預期樣本外結果,會隨著測試的候選數增加而下降。實務上的解讀簡單:高原越寬,代表是規則在起作用,而不是那個數字。判讀參數曲面的完整方法見參數穩定度:高原還是幸運尖峰。
- 以 80、90、100、110 與 120 日執行同一條規則,成本與成交規則相同。
- 比較五次執行的淨損益、最大回撤與交易筆數,不要只看淨損益。
- 五個結果的正負與大小相近就保留;若有一個長度獨自突出,就捨棄。
- 用高原中央的設定交易,而不是最高點。
如何在指數期貨上回測 20 週均線?
先設好 K 棒週期、交易時段、合約每點價值、手續費、滑價與下一根 K 棒成交,再對完整歷史執行這條規則,檢視交易、回撤與樣本外區段。以那斯達克 100 測試為例,就是 NQ 日 K 棒、全時段(讓收盤價是交易所結算時間的收盤價),以及每指數點 $20 的每點價值,這是 CME 合約規格所訂。交易所會不定期調整合約價值;請以交易所的合約頁確認。
- 選擇商品與 K 棒週期:NQ 日 K 棒,建立在連續月、回溯調整的序列上。
- 設定交易時段與每點價值:全時段,每點 $20。
- 設定每筆交易的手續費與滑價,並套用到每一次進場與出場。
- 寫出精確規則:在收盤讀取的條件、下一根開盤的成交,以及再進場條件。
- 對完整歷史執行,並將最後一段保留作為樣本外。
- 讀取交易筆數、最大回撤,以及樣本外區段與其餘區段的比較。
步驟 3 是均線測試最常略過的一步,因為慢速規則交易稀少,成本看起來偏小。它們每年確實不多,但會決定上面跌破出場測試中的來回洗盤次數,所以從一開始就要放進每一次執行。AlphaPrime(Valynox)在每次評估中計入手續費與滑價,並在下一根 K 棒成交,所以慢速均線與快速均線的回測,在比較時本就處在相同的成本基準上。
下面這次執行,展示上述六個步驟在 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%)顯示規則在這段期間有多少時間暴露在市場中,這正是趨勢濾網應該壓低的數字。

下一步,是用你自己的指數期貨資料與實際負擔的成本執行 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

