MACD 與 RSI 策略:組合規則、參數與公平回測
MACD 與 RSI 策略以 MACD 交叉作為進場訊號,並以 RSI 作為濾網,在價格已經過度延伸時擋下進場。只有在相同資料、相同成本與相同成交方式下,勝過單用 MACD 與單用 RSI,而且 RSI 濾網剔除虧損交易的速度快過剔除獲利時,這組搭配才值得保留。
作者 Soren Huang · 發佈 · 更新於 · 編輯原則
目錄
MACD 與 RSI 怎麼組合成一個策略?
MACD 與 RSI 策略通常以 MACD 交叉作為進場訊號,再用 RSI 當濾網,在價格已經過度延伸時擋下進場。只有在相同資料、相同成本與相同成交方式下,組合表現優於單用 MACD 與單用 RSI,才值得保留這組搭配。
濾網是一種條件,本身不開倉,卻能阻止另一條規則開倉。在這個策略中,MACD 交叉說的是「動能剛轉向」,RSI 讀數說的是「但價格已經走得頗遠」,所以 RSI 偏高時略過多單進場,RSI 偏低時略過空單進場。這個想法合理,問題在於多加一個指標就多了參數,參數越多,越容易靠運氣找到貼合過去的設定。本文接下來提供可以測試的規則版本、值得嘗試的參數,以及分辨有用的濾網與只是讓交易明細變短的濾網的方法。
兩個指標各量什麼?為什麼這組搭配這麼常見?
MACD 與 RSI 針對同一批 K 棒回答兩個不同的問題,這就是交易人把兩者搭配的原因:MACD 問動能偏向哪一邊,RSI 問近期收盤有多偏向一方。MACD 指數平滑異同移動平均線是收盤價的快速與慢速指數移動平均線之間的差距,搭配訊號線(該差距的移動平均線)與柱狀圖(兩條線之間的距離)一起畫出。RSI 相對強弱指標以 0 到 100 的讀數,表示近期漲跌中有多少來自上漲收盤、多少來自下跌收盤,70 與 30 是常用的「過度延伸」水位。14 根 K 棒的長度來自該指標最初的說明(Wilder, 1978),多數看盤軟體至今仍以它為預設值;含 70/30 水位的 RSI 指標指南說明這兩個水位單獨使用時的表現。
兩個指標各有已知的盲點。MACD 反應偏晚,盤整時來回翻轉,所以在區間內會開出許多小額虧損交易。RSI 在強勢趨勢中早早就到達 70 並停留在那裡,所以在 70 賣出的規則,等於是逆著趨勢操作。交易人把兩者搭配,是希望 MACD 提供方向,RSI 擋下行情後段才出現的進場。兩者在每個平台都是免費的,也不需要額外資料,這說明了它流行的大部分原因。搭配是否改善結果,是回測能回答的問題,不是圖表能回答的。技術規則的調查發現,一旦把成本與嘗試過的規則數量納入考量,所報告的結果會縮小或消失(Park & Irwin, 2007),這正是要用同樣的紀律測試這組搭配的原因,如同你對待技術分析工具與哪些指標可以檢驗這篇指南中的任何規則。
MACD 與 RSI 的組合規則長什麼樣子?
可測試的版本,把進場訊號、濾網水位、方向、成交與出場寫成同一份有順序的清單,讓 K 棒收盤時沒有任何需要判斷的空間。以下是多單這一邊,採用常見參數;空單這一邊是鏡像。
- 進場訊號:一根 K 棒收盤時,MACD 線(12, 26)向上穿越其訊號線(9)。
- 濾網:同一個收盤上的 RSI(14) 低於 65。RSI 若在 65 以上,就不進場。
- 成交:在下一根 K 棒開盤買進一口。
- 出場:MACD 線向下穿回訊號線之後,在下一根 K 棒開盤賣出。基本版沒有停損或停利,所以比較的只是進場濾網,沒有別的因素。
- 空單這一邊:MACD 線向下穿越訊號線,RSI(14) 高於 35,在下一根開盤放空,待 MACD 線向上穿回後回補。
為了公平比較,把兩個單一指標的規則寫成同樣的形式。下方每個版本都用相同的出場、相同的下一根 K 棒成交,以及相同的成本,所以唯一的差別是進場條件。
| 版本 | 多單進場 | 空單進場 | 出場 |
|---|---|---|---|
| 單用 MACD | MACD 線向上穿越訊號線 | MACD 線向下穿越訊號線 | 反向 MACD 交叉,下一根開盤 |
| 單用 RSI | RSI(14) 向上穿越 35 | RSI(14) 向下穿越 65 | 反向 MACD 交叉,下一根開盤(三個版本出場相同) |
| 組合 | MACD 向上交叉,且 RSI(14) 低於 65 | MACD 向下交叉,且 RSI(14) 高於 35 | 反向 MACD 交叉,下一根開盤 |
單用 RSI 的版本以 RSI 當進場訊號,因為濾網無法單獨開倉。換用任何其他進場方式時,同樣要先把規則寫準確再測試,無論是以唐奇安通道突破與參數設定當進場訊號,還是寫成明確規則的 W 底(雙重底)型態這類圖形;三版本比較的作法不變。
如何設定 MACD 與 RSI 參數而不過度最佳化?
從常見的 MACD 與 RSI 設定出發(12、26、9 與 14,濾網水位 65 與 35),測試相鄰的數值,只保留落在高原上的設定。高原是一整塊相鄰設定、結果都相近,像平坦的山頂;尖峰則是單一設定看起來極好,旁邊的設定卻都不佳。尖峰幾乎都是雜訊,因為真實的市場行為不會在回看 12 時開啟、在 11 與 13 時關閉。
這個組合至少有五個參數:MACD 快線長度、慢線長度、訊號線長度、RSI 長度與 RSI 濾網水位(若多單與空單水位分開設定則為六個)。每多一個參數,變體數量就成倍增加;搜尋嘗試的變體越多,最佳者越可能被運氣墊高(Bailey, Borwein, López de Prado & Zhu, 2014)。合理的測試範圍:快線 8 到 16、慢線 20 到 32、訊號線 6 到 12、RSI 長度 10 到 20、濾網水位 55 到 75(對稱的另一側 25 到 45)。在AlphaPrime(Valynox)的策略生成設定中把這些設成範圍,搜尋會用同一組成本與同一種出場涵蓋整個格網,高原或尖峰一次就看得出來,不必手動修改幾十次再逐一執行。
假設性範例
讓每個參數都取 8 個值。單用 MACD 有三個參數,所以是 8 × 8 × 8 = 512 種變體。單用 RSI 有兩個(長度與水位),所以是 8 × 8 = 64 種變體。組合規則有五個,也就是 8 × 8 × 8 × 8 × 8,約 33,000 種變體。即使沒有一個真有優勢,33,000 次嘗試中的最佳者,看起來也會比 64 次中的最佳者更好,所以組合的勝出者,在你相信它之前,需要做高原檢查與樣本外檢查。
讀格網的實用方法:挑出你喜歡的組合設定,然後一次只改一個參數,上下調一到兩格,觀察扣除成本後的淨利。如果多數相鄰設定與所選結果的差距都在約三分之一以內,就是在高原上。如果有一個相鄰設定讓結果減半,就是站在尖峰上。
MACD 加 RSI 比單用一個指標更好嗎?
只有當 RSI 濾網剔除虧損交易的速度快過剔除獲利時,組合才比較好;判斷方法,是在相同的資料、成本與成交方式下執行三個版本,比較三個數字:交易筆數、扣除成本後的每年淨利,以及平均每筆損益。濾網一定會減少交易筆數,濾網本來就是這樣。真正的問題是,交易減少時,利潤會怎麼變。
假設性範例
單用 MACD:每年 200 筆交易,扣除成本後每年淨利 $8,000,平均每筆 $40。單用 RSI:120 筆交易,$3,600,平均每筆 $30。組合:100 筆交易,$7,000,平均每筆 $70。濾網剔除了一半的交易,卻保住大部分利潤,平均每筆從 $40 升到 $70,所以被剔除的交易多半是虧損單。再看相反的情況:組合是 100 筆交易、$3,800,平均每筆 $38。這時濾網砍掉利潤的速度幾乎和砍掉交易一樣快。它把獲利與虧損的交易一併剔除,只讓策略變小。
還有兩項檢查,能分辨有用的濾網與僥倖的濾網。第一,看濾網剔除了哪些交易:列出組合規則略過的單用 MACD 交易,確認它們的總和為負,而不只是確認保留下來的交易為正。第二,分開看多單與空單,因為在多半上漲的市場中,對多單進場有幫助的 RSI 水位,可能傷害空單進場,而完全來自單邊的組合結果,比看起來弱。若組合版本淨利勝出、平均每筆卻輸,或是只因為濾網略過了一筆大額虧損才勝出,就把單一指標規則當作基準情況,濾網視為未經證實。
如何用成本與樣本外檢驗回測 MACD RSI 策略?
三個版本都用相同的手續費與滑價、下一根 K 棒成交,以及在第一次執行前就寫下的時間切分,再用事先訂好的規則,把樣本外的平均每筆損益拿來和樣本內的比較。下一根 K 棒成交,是指在訊號 K 棒收盤之後,以下一根 K 棒的開盤價成交,這是你實際上最早能成交的價格。樣本外(OOS)資料是歷史後段、排除在參數搜尋之外的部分,用固定下來的設定只執行一次。
- 先設定成本。輸入手續費,以及流動性高的指數期貨每邊至少一個跳動點的滑價,每個版本都用相同的數字。
- 設定下一根 K 棒成交。在產生訊號的同一個收盤成交,用的是你實際上無法成交的價格。
- 寫下切分日期與通過條件。約 70% 的歷史用來選擇設定,其餘用來評判。現在就決定怎樣算通過:例如,扣除成本後的樣本外平均每筆損益必須大於零,並且至少是樣本內數字的一半。
- 執行三個版本。相同資料、相同成本、相同出場。用樣本外部分比較,不要用樣本內部分,因為樣本內的勝出者,正是搜尋被設計來找出的那一個。
為了呈現這個流程結束時報表長什麼樣子,以下是一次真實的執行。它沒有測試 MACD 與 RSI。它用標準差規則當代用規則,由標準指標建成,作為唯一的進場與出場,沒有停損、沒有停利、沒有濾網,資料是 2019-01-02 到 2025-06-30 的 NQ 日 K 棒,多空皆做,一口,每筆交易計入 $20 手續費與 $10 滑價。下方結果是搜尋嘗試的 1,024 個中留下的那一個候選策略,依報酬相對回撤的比例選出。事後挑出留下的候選策略,會讓它看起來比較好:其他候選策略表現較差,一千次嘗試中的最佳者,看起來永遠比方法應得的更好。這裡沒有任何一處表示這條規則賺到了那些錢,或是讀者可以預期同樣結果;這是一份用來學習閱讀的報表。
來源:AlphaPrime 產品引擎(CPU),2026-10-31 執行。NQ 日線,2019-01-02 至 2025-06-30,多空都做,1 口,每筆手續費 $20、滑價 $10。
| 項目 | 結果 |
|---|---|
| 淨利(已平倉) | $267,055 |
| 最大回撤 | $90,210 |
| 交易筆數 | 135 |
| 勝率 | 60.74% |
| 獲利因子 | 1.686 |
| 平均每筆 | $1,978.19 |
| 在場時間 | 86.03% |
用讀自己 MACD 與 RSI 執行結果的方式來讀這張表。交易筆數 135 筆,涵蓋六年半的日 K 棒,約每年 20 筆,足以看出型態,卻不足以密切信任每筆的數字,所以樣本外的區段值得你投入最多注意力。最大回撤 $90,210,對照淨利 $267,055,說明最糟的一段相對於整體結果有多深;若濾網確實剔除了虧損單,把交易筆數砍半的 MACD 加 RSI 組合版本,回撤應該比單用 MACD 淺。在場時間 86.03%,代表這條規則幾乎一直持有部位,對於以反向訊號出場、又沒有停損的規則,屬於正常現象。績效報表中的權益曲線,是檢查表格無法呈現的兩件事的地方:樣本外區段是否維持與樣本內部分相近的斜率,以及最深的回撤是集中在一小段時期,還是分散在整段期間。
下一步:把切分日期與通過條件寫在紙上,用相同的成本與下一根 K 棒成交,分別執行單用 MACD、單用 RSI 與組合規則,比較三者的樣本外平均每筆損益。如果組合版本在這個數字上沒有勝過兩個單一規則,就保留單一規則、拿掉濾網。
常見問題
同時使用 MACD 與 RSI 有效嗎?
取決於市場、K 棒週期與成本,只有三方比較的回測才能回答。用相同資料、相同手續費、滑價與下一根 K 棒成交,執行單用 MACD、單用 RSI 與組合規則,比較樣本外的平均每筆損益。當 RSI 濾網剔除虧損交易的速度快過剔除利潤,使平均每筆損益上升而交易筆數下降時,組合才有效。
MACD 與 RSI 的最佳設定是什麼?
從常見設定開始:MACD 12、26、9 與 RSI 14,RSI 濾網水位多單約 65、空單約 35。再測試相鄰的數值,例如快線 8 到 16、慢線 20 到 32、訊號線 6 到 12、RSI 長度 10 到 20、濾網水位 55 到 75。只在旁邊的數值也給出相近結果時,才保留該設定;單一設定若比相鄰設定好得多,通常是貼合了雜訊。
MACD 與 RSI 組合比單用一個指標更好嗎?
不會自動更好。加入 RSI 當濾網,一定會減少交易筆數,但只有被剔除的交易多半是虧損單時,才會改善策略。比較三個版本扣除成本後的每年淨利與平均每筆損益:如果組合規則用約一半的交易筆數保住大部分利潤,濾網就發揮了作用;如果利潤與交易筆數下滑一樣快,濾網就只是讓策略變小。
如何正確回測 MACD RSI 策略?
先設定手續費與滑價,使用下一根 K 棒成交,讓成交發生在訊號 K 棒之後的開盤,並在第一次執行前寫下切分日期與通過條件。在歷史較早的部分選擇設定,再把它們原封不動地用在較晚的部分,並以事先寫好的規則評判。單一指標的版本用相同設定執行,比較才公平,並從權益曲線讀出樣本外的斜率與最深的回撤。
參考文獻
- Wilder, J. W. (1978). New Concepts in Technical Trading Systems. Trend Research.
- 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.

