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)。
- 其計算結果被嚴格設計與鎖定在 0 到 100 之間。在 SQX 程式碼中
-
關鍵超買與超賣警戒線
- 超買警戒區: 實戰中常設定為 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 的超賣反彈多頭進場單,實現低回撤、高獲利的完美回測曲線。