Strategy Quant X 內建指標 : Schaff Trend Cycle (沙夫趨勢週期)

Schaff Trend Cycle (沙夫趨勢週期) 的雙重隨機平滑算法與超買超賣實戰

在系統化量化交易與策略開發中,技術指標的「滯後性」與「敏感度」始終是一場難以妥協的博弈。為了讓指標能既快速反應趨勢轉折,又能提供流暢平滑的曲線以過濾雜訊,Doug Schaff 於 1990 年代後期開發出了著名的 Schaff Trend Cycle (沙夫趨勢週期指標,簡稱 SCHTC 或 STC)。它完美融合了 MACD 的趨勢追隨特性與隨機指標(Stochastic)的超買超賣週期優勢,是順勢突破與週期轉折交易的利器。本文將為您詳盡解構 STC 的底層算法、核心參數與實戰應用。

一、Schaff Trend Cycle 指標概述

沙夫趨勢週期指標 (Schaff Trend Cycle, SCHTC 或 STC) 是由道格·沙夫 (Doug Schaff) 於 1990 年代後期開發的先進技術分析工具。它是一種旨在識別市場趨勢方向和週期性轉折點的混合型震盪指標。STC 的核心設計思想,是結合移動平均線收斂發散指標 (MACD) 的穩定趨勢追蹤能力,與隨機指標 (Stochastic Oscillator) 的高靈敏超買超賣特性。透過一套極富巧思的雙重平滑算法,STC 成功加快了信號反應速度、大幅減少了傳統趨勢指標的滯後性,這使它成為高波動與具備規律週期性市場(如外匯、加密貨幣及特定指數)中,極具參考價值的领先型工具。

在 Strategy Quant X (SQX) 中:Schaff Trend Cycle 指標被定義為一個 BuildingBlock 條件區塊,其模組名稱為 (SCHTC) Schaff Trend Cycle。其附帶的幫助文本簡明地標注為:"Schaff TrendCycle help text"。

二、Schaff Trend Cycle 指標的組成部分與參數

該 STC 指標主要在副圖輸出一個數值區間,其底層計算涉及對 MACD 數據進行兩次隨機指標運算與雙重指數平滑。以下為其核心引數與構造:

組件類型 組件名稱 預設值與底層運作邏輯說明
主要輸出 (Output) Value (SCHTC 線) 波動於 0 到 100 固定範圍內的平滑震盪曲線,代表最終計算出的趨勢週期值。
核心參數 (Parameter) Input (數據源) 計算指標的原始價格數據序列。在 SQX 預設使用收盤價(Input.Close)。
核心參數 (Parameter) StochPeriod (隨機指標週期) 用於指標內部進行雙重隨機平滑運算的回顧週期長度。在 SQX 預設值為 10
核心參數 (Parameter) FastPeriod (快速 EMA 週期) 用於內部 MACD 計算中的短期指數移動平均線週期。在 SQX 預設值為 20
核心參數 (Parameter) SlowPeriod (慢速 EMA 週期) 用於內部 MACD 計算中的長期指數移動平均線週期。在 SQX 預設值為 50

運作機制與底層計算公式(純文字 HTML 版)

  • 第一步:計算基礎 MACD
    • 利用 Input 收盤價、FastPeriod(預設 20)與 SlowPeriod(預設 50)參數,計算出標準的 MACD 差離值主線:
    • MACD = 20週期EMA - 50週期EMA
  • 第二步:第一次隨機指標運算 (Frac1)
    • 將第一步得出的 MACD 序列視為輸入數據,對其應用一次基於 StochPeriod(預設 10)週期的隨機指標計算,得其百分比排名(類似 %K 值):
    • Frac1 = (當前MACD - 10週期內最低MACD) / (10週期內最高MACD - 10週期內最低MACD)
  • 第三步:第一次指數平滑處理 (PF)
    • 為防止數值過度波動,對 Frac1 進行一次簡單的指數類型平滑(平滑因子固定為 0.5):
    • PF = PF(前一期) + 0.5 * (Frac1 - PF(前一期))
  • 第四步:第二次隨機指標運算 (Frac2)
    • 將上一步計算出的平滑序列 PF 作為新的輸入源,對其再應用一次基於 StochPeriod(預設 10)週期的隨機指標計算:
    • Frac2 = (當前PF - 10週期內最低PF) / (10週期內最高PF - 10週期內最低PF)
  • 第五步:第二次指數平滑處理 (最終 Value)
    • 對 Frac2 進行第二次指數平滑(平滑因子同為 0.5),並乘以 100,所得即為最終數值:
    • 最終 STC Value = [ STC(前一期) + 0.5 * (Frac2 - STC(前一期)) ] * 100

這種「隨機指標的隨機指標再平滑」的二階遞歸結構,是道格·沙夫的智慧結晶。它保留了 MACD 的中長線趨勢方向,又巧妙地融入了 KD 的靈敏特質,能有效篩除市場在盤整期或隨機波動下的微小假突破,進而提供快而穩定的變盤警示。

三、Schaff Trend Cycle (沙夫趨勢週期) 指標的數值範圍 (有界性)

Schaff Trend Cycle (SCHTC) 是一套經過高度標準化(Normalization)的「有界震盪系統」:

  • 標準化區間與中值
    • 其計算結果被嚴格設計與鎖定在 0 到 100 之間。在 SQX 程式碼中 min=0, max=100,步長為 0.01。
    • 其代表多空平衡狀態的中心分水嶺為 50 (middleValue=50)。
  • 關鍵超買與超賣警戒線
    • 超買警戒區: 實戰中常設定為 75 或 80 以上。當 STC 線攀升並高懸於此區域,代表上升趨勢已極度延伸,面臨獲利回吐的修正風險。
    • 超賣警戒區: 實戰中常設定為 25 或 20 以下。當 STC 線跌深並趴在此區域,代表空頭賣壓極度擴張,市場隨時可能迎來技術性超賣反彈。

四、Schaff Trend Cycle (沙夫趨勢週期) 指標的解讀與應用

Schaff Trend Cycle 指標因其出色的去遲滯與降噪特徵,在實戰中展現出高勝率的趨勢起步與轉折過濾優勢:

  • 1. 識別超買/超賣狀態與週期轉折
    • 超買過熱: 當 STC 線躍升至 75(或 80)以上,多頭踩油門過猛,代表上升週期過度拉升,應提防價格橫盤或翻空回落。
    • 超賣低迷: 當 STC 線暴跌至 25(或 20)以下,空頭大肆宣洩,代表下行週期過度延伸,隨時有報復性起漲反彈的可能。
  • 2. 產生經典的高勝率反轉交易信號
    • 看漲多頭進場點: 當 STC 線於超賣區(25 以下)築底,隨後掉頭向上並「強勢突破 25(或 20)臨界線」時,代表空頭力竭、多頭週期正式接管,釋出高勝率買入信號。
    • 看跌空頭進場點: 當 STC 線於超買區(75 以上)見頂,隨後轉向並「向下跌破 75(或 80)臨界線」時,代表買盤力道衰退、空頭週期接管,釋出看跌做空訊號。
    • 前瞻性優勢: 由於雙重隨機算法的去遲滯設計,這些臨界線的反彈穿越訊號,在理論與實戰上往往比傳統隨機指標(KD)或 MACD 的雙線交叉,出現得更早、更平滑。
  • 3. 利用 50 中值線進行多空趨勢確認
    • 當 STC 線能夠穩定運行於 50 中值線之上,特別是在超買高檔強勢徘徊時,說明市場大格局由多頭主導。
    • 當 STC 線持續被壓制在 50 中值線之下,說明市場主導權掌控在空頭手中,整體偏向看跌。
  • 4. 核心參數調校與實戰濾網配置
    • StochPeriod 的調節: 預設值 10 提供了極靈敏的反應;縮短此週期會使 STC 高頻震盪,容易產生較多噪聲;拉長此週期會使其極為平滑、適合長週期策略,但訊號略有滯後。
    • FastPeriod 與 SlowPeriod 調整: 控制內部 MACD 計算的週期長度。預設 20/50 提供了中長期的動能定海神針;若調短(如 12/26)會大幅提高指標對極短線波動的靈敏度。
  • 5. 量化交易中的使用盲區與過濾建議
    • 強單邊市的鈍化風險: 雖然 STC 指標透過 MACD 與平滑算法減少了 KD 的假突破,但在「超級大牛市」或「極端崩盤熊市」等持續不回頭的單邊大行情中,任何純粹的週期震盪指標都容易出現高低位長期鈍化的現象。此時僅憑超買超賣進行反向逆勢交易,將面臨極大停損風險。
    • 多重確認濾網: 強烈建議將 STC 指標與中長期的趨勢度量工具(如 SMA 200 或大週期 EMA 100)進行共振。例如:在 SQX 中設定簡單過濾邏輯:「僅在收盤價高於 SMA 200 的多頭背景下,才接受 STC 線向上穿透 25 的多頭回調起漲進場單」,這能幫您過濾掉 85% 以上因逆勢交易而產生的無效磨損。

📌 本文核心修煉要點

  • 精巧的雙重隨機平滑算法
    • STC 不是簡單地將均線金叉,而是對 MACD 差離值進行二階 %K 隨機排名計算,並輔以阻尼係數 0.5 的指數平滑。
    • 其巧妙的架構兼顧了 MACD 追隨大波段的能力與隨機指標過濾盤整、快速反饋的雙重優勢。
  • 客觀的 25/75 有界防線體系
    • 0 到 100 的標準化區間,為量化自動化交易(如 SQX 生成的 EA 系統)提供了不漂移的絕對進場條件。
    • 25/75 臨界線的突破反彈,是捕捉週期性拐點、比傳統指標更領先的一手前瞻性變盤警報。
  • SQX 量化策略優化建議
    • 在 SQX 自動生成策略時,強烈建議將 STC 的「超賣回升(上穿 25)」或「超買回落(下穿 75)」作為過濾條件。
    • 在箱型整理市中限制僅使用 STC 進行逆勢高拋低吸;在單邊趨勢市中,則順著大週期均線(如 SMA 200)方向,僅接受 STC 的超賣反彈多頭進場單,實現低回撤、高獲利的完美回測曲線。