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

MACD 與 RSI 策略:組合規則、參數與公平回測

MACD 與 RSI 策略以 MACD 交叉作為進場訊號,並以 RSI 作為濾網,在價格已經過度延伸時擋下進場。只有在相同資料、相同成本與相同成交方式下,勝過單用 MACD 與單用 RSI,而且 RSI 濾網剔除虧損交易的速度快過剔除獲利時,這組搭配才值得保留。

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

目錄
  1. MACD 與 RSI 怎麼組合成一個策略?
  2. 兩個指標各量什麼?為什麼這組搭配這麼常見?
  3. MACD 與 RSI 的組合規則長什麼樣子?
  4. 如何設定 MACD 與 RSI 參數而不過度最佳化?
  5. MACD 加 RSI 比單用一個指標更好嗎?
  6. 如何用成本與樣本外檢驗回測 MACD RSI 策略?
  7. 常見問題
  8. 參考文獻

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 兩個副圖。MACD 是快慢兩條平均線之間的差距,RSI 顯示近期收盤有多偏向一方。一根被標出的 K 棒顯示 MACD 向上交叉,而 RSI 已經讀到 74,高於 70 線。 兩個問題,一根 K 棒 標出:MACD 向上,RSI 74 價格 MACD 快慢線差距 RSI 偏向一方的收盤 動能轉向;價格已延伸。 所以:RSI 濾網略過此進場。
MACD 與 RSI 讀的是同一批 K 棒,回答的卻是不同的問題。被標出的 K 棒,正是濾網存在的理由:動能轉向上,價格卻已經延伸。

MACD 與 RSI 的組合規則長什麼樣子?

可測試的版本,把進場訊號、濾網水位、方向、成交與出場寫成同一份有順序的清單,讓 K 棒收盤時沒有任何需要判斷的空間。以下是多單這一邊,採用常見參數;空單這一邊是鏡像。

  1. 進場訊號:一根 K 棒收盤時,MACD 線(12, 26)向上穿越其訊號線(9)。
  2. 濾網:同一個收盤上的 RSI(14) 低於 65。RSI 若在 65 以上,就不進場。
  3. 成交:在下一根 K 棒開盤買進一口。
  4. 出場:MACD 線向下穿回訊號線之後,在下一根 K 棒開盤賣出。基本版沒有停損或停利,所以比較的只是進場濾網,沒有別的因素。
  5. 空單這一邊:MACD 線向下穿越訊號線,RSI(14) 高於 35,在下一根開盤放空,待 MACD 線向上穿回後回補。
組合規則依序檢查:先看 MACD 進場訊號,再看 RSI 濾網,然後在下一根開盤成交。多單:MACD 向上交叉、RSI 低於 65,買進。空單為鏡像:MACD 向下交叉、RSI 高於 35,賣出。任何一項檢查未通過就不交易,出場是反向的 MACD 交叉。 先看交叉,再看 RSI 然後在下一根開盤成交 訊號 濾網 下根開盤 多單 空單 向上交叉 RSI < 65 買進 向下交叉 RSI > 35 賣出 任一檢查未過:不交易 順序相同,空單為鏡像。 所以:反向 MACD 交叉就出場。
組合規則的檢查順序。先問 MACD 交叉,再問 RSI 水位,成交一律落在下一根 K 棒。

為了公平比較,把兩個單一指標的規則寫成同樣的形式。下方每個版本都用相同的出場、相同的下一根 K 棒成交,以及相同的成本,所以唯一的差別是進場條件。

版本多單進場空單進場出場
單用 MACDMACD 線向上穿越訊號線MACD 線向下穿越訊號線反向 MACD 交叉,下一根開盤
單用 RSIRSI(14) 向上穿越 35RSI(14) 向下穿越 65反向 MACD 交叉,下一根開盤(三個版本出場相同)
組合MACD 向上交叉,且 RSI(14) 低於 65MACD 向下交叉,且 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 次中的最佳者更好,所以組合的勝出者,在你相信它之前,需要做高原檢查與樣本外檢查。

每個參數各取 8 個值時,單用 MACD 有 512 種變體,單用 RSI 有 64 種,組合規則約三萬三千種(示意數量)。RSI 水位對 MACD 快線長度的兩張格網:高原,也就是一大片設定都給出相近的良好結果,值得信任;尖峰,也就是一堆不佳的格子中只有一格表現好,則不值得信任。 五個參數,搜尋量巨大 各 8 個值,示意數量 僅MACD 512 僅RSI 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 為 200 筆交易、淨利約八千美元、平均每筆 40 美元;單用 RSI 為 120 筆交易、不到四千美元、30 美元;組合為 100 筆交易、約七千美元,平均每筆 70 美元最高。淨利以指數表示,單用 MACD 為 100。如果利潤和交易筆數掉得一樣快,濾網就只是讓策略變小。 交易變少,平均變大 每年、扣除成本後,假設性 MACD RSI 組合 交易筆數 淨利指數 平均每筆 200 120 100 100 45 88 $40 $30 $70 濾網砍掉的多是虧損單。 利潤同樣下滑?就捨棄。
有效的濾網剔除交易的速度快過剔除利潤,所以平均每筆上升。若利潤與交易筆數下滑一樣快,濾網就只是讓策略變小。

還有兩項檢查,能分辨有用的濾網與僥倖的濾網。第一,看濾網剔除了哪些交易:列出組合規則略過的單用 MACD 交易,確認它們的總和為負,而不只是確認保留下來的交易為正。第二,分開看多單與空單,因為在多半上漲的市場中,對多單進場有幫助的 RSI 水位,可能傷害空單進場,而完全來自單邊的組合結果,比看起來弱。若組合版本淨利勝出、平均每筆卻輸,或是只因為濾網略過了一筆大額虧損才勝出,就把單一指標規則當作基準情況,濾網視為未經證實。

如何用成本與樣本外檢驗回測 MACD RSI 策略?

三個版本都用相同的手續費與滑價、下一根 K 棒成交,以及在第一次執行前就寫下的時間切分,再用事先訂好的規則,把樣本外的平均每筆損益拿來和樣本內的比較。下一根 K 棒成交,是指在訊號 K 棒收盤之後,以下一根 K 棒的開盤價成交,這是你實際上最早能成交的價格。樣本外(OOS)資料是歷史後段、排除在參數搜尋之外的部分,用固定下來的設定只執行一次。

  1. 先設定成本。輸入手續費,以及流動性高的指數期貨每邊至少一個跳動點的滑價,每個版本都用相同的數字。
  2. 設定下一根 K 棒成交。在產生訊號的同一個收盤成交,用的是你實際上無法成交的價格。
  3. 寫下切分日期與通過條件。約 70% 的歷史用來選擇設定,其餘用來評判。現在就決定怎樣算通過:例如,扣除成本後的樣本外平均每筆損益必須大於零,並且至少是樣本內數字的一半。
  4. 執行三個版本。相同資料、相同成本、相同出場。用樣本外部分比較,不要用樣本內部分,因為樣本內的勝出者,正是搜尋被設計來找出的那一個。
任何結果之前的四個步驟:1 設定手續費與滑價,2 使用下一根 K 棒成交,3 寫下切分日期與通過條件,4 用相同設定執行三個版本。歷史分成約 70% 的樣本內部分用來選擇設定,與約 30% 的樣本外部分,後者原封不動地執行並只評判一次。 結果之前先定規則 四個步驟,然後一次切分 1 設定成本 2 下一根成交 3 切分、通過條件 4 三版全測 樣本內 70% 樣本外30% 選擇設定 只評判一次 樣本外才是可交易的結果。 所以:三個版本在此評判。
回測步驟的順序,以及資料切分的位置。成本與成交方式在任何一次執行之前就設好;切分日期與通過條件,在看到任何結果之前就寫好。

為了呈現這個流程結束時報表長什麼樣子,以下是一次真實的執行。它沒有測試 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%,代表這條規則幾乎一直持有部位,對於以反向訊號出場、又沒有停損的規則,屬於正常現象。績效報表中的權益曲線,是檢查表格無法呈現的兩件事的地方:樣本外區段是否維持與樣本內部分相近的斜率,以及最深的回撤是集中在一小段時期,還是分散在整段期間。

先鎖定通過條件:依序六個回測步驟,寫下規則、設定成本與成交、依日期切分、看結果前先訂通過條件、執行三個版本,最後依書面規則接受或拒絕 先鎖定通過條件 六個步驟,依此順序 1 2 3 4 5 6 寫下規則 設定成本、成交 依日期切分 訂通過條件 執行 3 個版本 接受或拒絕 看結果前先定標準。 所以:測試後不可更動。
找出標示的樣本外區段,將它的斜率與前一段比較,再找出最深的回撤,記下曲線花了多久爬回。決定保留哪一個之前,對你的三個版本各做一次同樣的檢查。 NQ · 日 K 棒 · 2019-01-02 至 2025-06-30 · CPU 引擎回測

下一步:把切分日期與通過條件寫在紙上,用相同的成本與下一根 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.