美股投資研究與學習

MACD 金叉策略回測教學:如何用 SPY、QQQ 建立公平比較

MACD 金叉策略能否比買入持有更好,不能從幾張漂亮圖決定。先固定訊號、成交、成本、股息及基準,才知道兩者是否在同一條起跑線上。本文提供 SPY、QQQ 的回測規格設計與待填結果表,沒有執行市場資料回測,也不提供虛構勝率。

研究的第一份產物應是規格書,而非績效曲線。即使最後得到較低報酬,也可能發現較少市場曝險或不同風險;這些都要實算,不能因想要某個結論而改變比較方式。

回測先對齊四件事;訊號與執行;資產與基準;結果留待實算
研究設計,尚無 SPY/QQQ 績效結果 點擊圖片可開啟大圖。

進出場規則要寫到哪一步?把訊號與成交拆開

先採單純的做多/現金模型:日線收市確認前根 DIF≤DEA、當根 DIF>DEA,空手時才建立買入候選;前根 DIF≥DEA、當根 DIF<DEA,持倉時才建立退出候選。不加碼、不放空,無新事件就維持原狀。相等不自動產生交叉。

DIF=EMA12(收市價)−EMA26(收市價),DEA=EMA9(DIF),柱體=DIF−DEA,未乘 2。以第一筆收市價作兩個 EMA 種子,第一筆 DIF、DEA 為零;使用額外前置資料計算,與正式計分期間分開。參數期間指日線根數。

當日收市才知道的訊號,預定在下一交易日開盤模擬成交,另加不利滑價及費用。若下一日停牌或缺資料,就按預先訂好的等待或取消規則處理。不要一面用收市確認,一面假設同一收市價必定成交;開盤模擬也不是實際可成交價格的保證。

SPY、QQQ 資料怎樣選?先統一企業行動與股息

選擇有授權且可匯出 OHLC、拆股及配息紀錄的來源,保存原始檔、擷取日期與欄位定義。SPY 和 QQQ 分別使用State Street 官方產品資料與Invesco 官方產品資料核對研究對象;基金目標與成分差異,不應用一個標的結果代表另一個。

可採一種透明設計:訊號用拆股調整收市價;成交與部位以原始 OHLC 配合拆股時的股數調整;股息按除息與付款流程記為現金,是否再投資及何時投資另外固定。若使用已含股息調整的報酬序列,就不能再把同一股息加一次。

另一條可行路徑是使用一致的調整資料框架,但須完整說明價格、成交和基準如何對齊。最危險的是訊號用含息調整價、成交用未調整價格,再直接比較兩者的美元差距;拆股前後尤其容易出現不可能的盈虧。

比較哪些指標?收益、路徑與市場曝險一起看

至少報告成本後期末資產、年化複合報酬、最大回撤、完整交易數、持倉時間比例及周轉。買入持有也要按相同起日、初始資金、股息、成本和期末估值方式計算;策略空手時的現金利息則需明說計零或採什麼可重現利率。

CAGR=(期末資產÷期初資產)1/年數−1。純算式檢查:若假設兩年由 10,000 變為 12,100,CAGR=10%;這不是本文策略或任何基金的回報。最大回撤則由每期資產除以截至當時的歷史最高資產再減一,取最負值的幅度,不是最差單筆交易。

結果表留白,待合法資料與程式實算後填寫
標的/版本 CAGR 最大回撤 交易數/持倉比例
SPY 金叉策略/買入持有 待計算 待計算 待計算
QQQ 金叉策略/買入持有 待計算 待計算 待計算

少承擔市場曝險的策略,和全期持有未必處於同一風險尺度。先如實呈現差異,再決定是否做風險匹配;不要為追上收益而事後加入槓桿,卻仍稱為原本的金叉策略。

避免過度擬合:保留時間上較後的資料

先固定參數與版本,再按時間分開開發、驗證及保留評估期。所有門檻、退出與成本模型只能在允許的開發階段決定,保留期不得看到失敗後再修。若你已反覆看過該期間表現,就不應稱它為從未使用的樣本外證據。

應檢查不同市場環境,以及成本提高、延遲一根或初始化資料改變時結果是否敏感。這些測試不是預先假定策略會失敗,而是讓結論具有可檢查的範圍。TradingView 策略官方文件說明模擬成交、成本及測試偏差;工具能產生報表,不代表預設值已符合你的研究。

實作:先完成規格書,再准許程式讀取結果

  1. 列出 SPY、QQQ、研究起迄、下載日期、授權來源、日線及正常交易時段。
  2. 固定前置資料、EMA 種子、交叉不等式、持倉狀態與次日成交規則。
  3. 填妥費用、滑價、股息、現金利息、拆股和期末未平倉估值方式。
  4. 指定開發與保留期間,保存設定檔及原始資料雜湊,日後才能確認是否換了輸入。
  5. 先用數根假設資料測試金叉、死叉、無交易與缺值分支,確認沒有偷看未來,再處理歷史資料。

另外保存逐筆事件與成交表,包括訊號日、執行日、價格、股數、費用、股息及現金餘額。若摘要回報很好,卻無法核對其中一筆,先查資料與程式,而不是直接發布績效結論。

失敗反例:績效改善,可能只是比較口徑錯了

若策略資產包含股息,基準卻只用收市價漲跌,所謂超額收益便混入不同計算口徑。若信號來自日收市,成交卻安排在當日最低價,也把當時未知的資訊放進過去。這些錯誤即使只發生幾次,也可能大幅改變曲線。

另一個限制是長期單邊上漲中,做多/現金策略可能因反覆退出而落後;這是應由結果呈現的情境,不能只截震盪期證明有效。可先回到MACD 基本公式核對訊號,再用技術指標研究比較不同問題,避免把回測設計誤當已完成的驗證。

常見問題

MACD 金叉長期能打敗買入持有嗎?

本文沒有這個結果。須在指定標的、期間、成本和規則下實算,並報告保留期間表現;不能從少量圖例下結論。

回測要包含股息嗎?

應先決定研究價格報酬或總報酬,策略與基準保持一致。若資料已含息調整,不要再把同一筆配息重複加回。

次日開盤成交可以忽略滑價嗎?

不應把它預設為無摩擦成交。需說明開盤價格的模擬用途,加上合理、可檢查的成本假設,並測試較不利情境。

本文供投資研究與學習參考,不構成個別投資建議;指標與假設算例不保證未來報酬,投資可能損失本金。