KD 指標(Stochastic):公式、意義與如何檢驗
KD 衡量收盤價落在近期高低區間的哪個位置,再做兩次平滑。它在趨勢與盤整中的表現不同,所以 KD 規則必須先經過含交易成本與樣本外資料的精確回測,才值得拿來交易。
作者 Soren Huang · 發佈 · 更新於 · 編輯原則
目錄
KD 指標(Stochastic 隨機指標)以 0–100 的刻度,顯示最新收盤價位於最近九根 K 棒高低區間的哪個位置。K 平滑這個位置,D 再平滑 K。高於 80 代表收盤接近區間頂部,低於 20 代表接近區間底部。KD 規則是否有效,只有含交易成本的回測才能回答。
KD 指標到底在衡量什麼?
KD 衡量的是價格在近期區間內的位置,不是價格方向,也不是趨勢強度。把最近九根 K 棒想成一個房間:最高價是天花板,最低價是地板。KD 告訴你最新收盤價在這個房間裡站得多高。
在台灣,這個指標通常稱為 KD(KD 指標),它的兩條線是 K 線與 D 線(KD 線)。當有人問股票 KD 的意思(股票 KD 意思),其實就是在問這件事:價格收在近期區間的頂部附近,還是底部附近?
同樣的概念在國際上稱為 Stochastic 隨機指標。Stochastic 指標頁面介紹了整個指標家族。本文聚焦在台灣圖表上的標準 9-3-3 KD 版本,以及如何檢驗它。
K 棒週期會改變「近期」的意思。在日線股票圖上,九根 K 棒約涵蓋兩個交易週。在 5 分鐘期貨圖上,九根 K 棒涵蓋 45 分鐘。計算方式完全相同,但它描述的市場行為並不相同。
RSV、K、D 在 9-3-3 設定下如何計算?
KD 分三步建立:先算 RSV,再算 K,最後算 D。9-3-3 的三個數字,就是這三個步驟的設定。
RSV(未成熟隨機值)是最新收盤價在最近 9 根 K 棒最低價與最高價之間的位置,以 0 到 100 表示。你只需要這一個公式:
RSV = (C − L9) ÷ (H9 − L9) × 100
- C 是當根 K 棒的收盤價。
- L9 是最近 9 根 K 棒的最低價,包含當根 K 棒。
- H9 是最近 9 根 K 棒的最高價,包含當根 K 棒。
RSV 為 100,表示該 K 棒正好收在 9 根 K 棒的最高點。RSV 為 0,表示收在 9 根 K 棒的最低點。
RSV 的跳動很大,所以 KD 要把它平滑。K 與 D 這兩步不需要額外的公式:
- K 值:今天的 K 從昨天的 K 朝今天的 RSV 移動三分之一的距離。9-3-3 中間的「3」就決定了這個三分之一。
- D 值:今天的 D 從昨天的 D 朝今天的 K 移動三分之一的距離。最後一個「3」決定了這個三分之一。
- 起始值:第一根 K 棒沒有昨天的值時,K 和 D 通常設為 50。
恆溫器是個很好的比喻。它不會一下子跳到新的溫度,而是每一步縮小三分之一的差距。這就是為什麼 K 落後於 RSV,D 又落後於 K。
假設範例
最近 9 根 K 棒中,最高價是 110,最低價是 90。當根 K 棒收在 105。RSV = (105 − 90) ÷ (110 − 90) × 100 = 75。
昨天的 K 是 60。與 RSV 的差距是 15。15 的三分之一是 5,所以今天的 K 是 65。
昨天的 D 是 55。與今天 K 的差距是 10。10 的三分之一約為 3.3,所以今天的 D 約為 58.3。
為什麼不同平台的 KD 值會不一樣?
不同看盤軟體的 KD 值(KD 值)可能略有差異,因為各處的平滑方法並不相同。下表列出兩種常見版本。
| 步驟 | 台灣式 KD(9-3-3) | 常見的「慢速 stochastic」 |
|---|---|---|
| 區間回看期 | 9 根 K 棒 | 預設通常為 14 根 K 棒 |
| K 的平滑 | 每根 K 棒朝 RSV 移動三分之一 | 最近 3 個 RSV 值的簡單平均 |
| D 的平滑 | 每根 K 棒朝 K 移動三分之一 | 最近 3 個 K 值的簡單平均 |
| 最初幾根 K 棒 | 取決於起始值 50 | 在資料足夠之前沒有定義 |
回測中還有兩個細節要注意。第一,如果 9 根 K 棒的最高價等於最低價,RSV 會除以零,各平台的處理方式不同。第二,起始值 50 會影響最初幾十根 K 棒,所以回測開始進場之前,要先讓指標暖機。
KD 的超買與超賣數值代表什麼?
KD 高於 80,表示價格已連續數根 K 棒收在近期區間的頂部附近。KD 低於 20,表示收在底部附近。高於 80 的區域稱為超買,低於 20 的區域稱為超賣。
這些名稱暗示價格從超買「必定」下跌、從超賣「必定」上漲。KD 並沒有這樣說,它只告訴你近期的收盤落在哪裡。有些交易者用 70 和 30 取代 80 和 20,以取得更多訊號。也有人把 50 當成中線:K 高於 50 表示收盤在區間的上半部。
| K 與 D 的讀數 | 它描述的是 | 它沒有告訴你的是 |
|---|---|---|
| 兩者都高於 80 | 數根收盤接近 9 根 K 棒區間的頂部 | 下跌即將來臨 |
| 兩者都低於 20 | 數根收盤接近 9 根 K 棒區間的底部 | 上漲即將來臨 |
| K 向上穿越 D | 近期收盤上升的速度快於平滑後的平均 | 這波走勢會走多遠 |
| K 接近 50 | 收盤落在區間中間 | 趨勢是否正在開始 |
交易者以 KD 建立哪些進場與出場規則?
大多數 KD 策略都由幾種標準規則組成,每一種在檢驗之前都需要精確的定義。規則區塊是策略中單一且精確定義的一個部分,例如一個進場條件或一個出場條件,可以和其他部分組合。
| 規則 | 做多進場 | 常見出場 | 它的弱點 |
|---|---|---|---|
| 低檔黃金交叉 | 兩者都低於 20 時,K 向上穿越 D | K 向下穿越 D,或 K 升到 80 以上 | 下跌趨勢中會一再過早進場 |
| 區域脫離 | K 在低於 20 之後回升到 20 以上 | K 在高於 80 之後回落到 80 以下 | 20 線附近的震盪行情 |
| 中線穿越 | K 向上穿越 50 | K 向下穿越 50 | 盤整時頻繁翻轉 |
| 趨勢過濾的拉回 | ADX 顯示趨勢強勁,價格在長期均線之上,且 K 從 20 以下向上交叉(見 ADX 趨勢強度指標頁面) | 反向交叉、停損或時間限制 | 轉折點,過濾條件會落後 |
| 背離 | 價格創更低的低點,而 K 創更高的低點 | 固定停利或反向交叉 | 很難精確定義,因此很難公平檢驗 |
做空進場則是這些規則的鏡像。黃金交叉(黃金交叉)是 K 向上穿越 D,死亡交叉(死亡交叉)是 K 向下穿越 D。
出場和進場一樣重要。單靠 KD 交叉出場,在快速行情中往往出得太晚,所以許多交易者會搭配停損或最長持有時間。每多加一種出場,就多一個規則區塊,也多一個必須檢驗而不能假設的選擇。
為什麼 KD 在趨勢與盤整中表現差這麼多?
KD 主要在橫向盤整的市場中才適合當轉折訊號,在強趨勢中它會卡在某一端。原因就在計算方式裡。在穩定的上升趨勢中,每次收盤都接近最近九根 K 棒的頂部,所以 RSV 維持高檔,K 也會長時間停在 80 以上。
台灣的交易者把這稱為鈍化(鈍化)。鈍化是指趨勢持續時,K 和 D 一直停在超買或超賣區的狀態。一個只要 K 高於 80 就賣出的規則,會在上漲的市場中一直賣。
在盤整中,9 根 K 棒這個房間的天花板與地板大致不動。價格在兩者之間彈跳,KD 也隨之在 20 到 80 之間擺動。這正是超買與超賣規則原本設計的環境。
KD 還有其他限制,檢驗者應該知道:
- 它會落後。D 是對平滑值再平滑,所以 D 的交叉會出現在價格轉折之後。
- 它忽略成交量與區間大小。5 點的 9 根 K 棒區間與 200 點的區間,可能得到相同的 KD 值。
- 它交叉頻繁。在短 K 棒上,交叉多就代表交易多,交易多就代表總交易成本高。
如何把交易成本算進去,回測 KD 規則?
把 KD 當成精確的規則區塊來測試,第一次執行就納入交易成本與下一根 K 棒成交,並用沒有拿來調整的資料來評斷。請依序進行以下步驟:
- 精確寫下規則。例如:「在 K 棒收盤時,若 K 向上穿越 D 且兩者都低於 20,就在下一根 K 棒的開盤買進一口。」
- 固定 KD 版本。回看期、平滑方法、起始值與暖機 K 棒,如上表所示。
- 在下一根 K 棒成交。交叉要等 K 棒收盤才知道,所以在同一個收盤價成交,用的是你無法交易的價格。
- 納入每一買一賣(來回)的所有成本。手續費、交易所費用、適用時的稅,以及進場與出場兩邊的滑價。回測中的交易成本指南說明了如何估算。
- 參數範圍要小,並且要計數。例如回看期 7 到 12 根 K 棒、區域 15/85 到 25/75。把測試過的變體數量寫下來。
- 做樣本外測試。在一段期間調整,再在接續的下一段期間測試。推進分析會在整段歷史上重複這個過程。
- 對結果施壓。用兩倍滑價重跑,也用相鄰參數重跑,例如 8-3-3 和 10-3-3。
計算變體數量很重要,因為在同一份資料上搜尋許多規則,會讓最好的那個看起來比實際更好。Sullivan、Timmermann 與 White(1999)針對技術交易規則研究過這個問題。他們使用重抽樣檢定,把歷史資料重新洗牌許多次,看在整組被搜尋的規則中,光靠運氣最好的規則會有多好看。他們的研究建立在 White(2000)針對資料窺探的 reality check 之上。
好的與差的 KD 結果長什麼樣子?
| 檢查項目 | 令人放心的結果 | 薄弱的結果 |
|---|---|---|
| 相鄰參數 | 8-3-3、9-3-3 和 10-3-3 表現相近 | 只有一個精確的設定有效 |
| 平均每筆損益 vs. 成本 | 未扣成本的平均每筆損益是一買一賣(來回)成本的數倍 | 未扣成本的平均每筆損益接近成本 |
| 兩倍滑價 | 結果縮小但仍為正 | 結果轉為負 |
| 樣本外 | 表現與調整期間相似 | 調整期間之後優勢消失 |
| 趨勢 vs. 盤整期間 | 你能解釋在哪裡賺、在哪裡虧 | 整個結果由單一期間撐起 |
假設範例
規則 A 是在 60 分鐘期貨 K 棒上的單純黃金交叉。它有 500 筆交易,未扣成本的平均每筆為 3 點。手續費、費用與一點滑價,一買一賣(來回)的成本是 2 點,所以扣成本後的平均每筆為 1 點。滑價加倍後,成本是 3 點,扣成本後的平均每筆為 0。
規則 B 加了趨勢過濾。它有 200 筆交易,未扣成本的平均為 6 點。扣掉同樣 2 點的成本後,平均每筆為 4 點。滑價加倍後是 3 點。
這並不能證明規則 B 有效。它只是通過了一項規則 A 沒通過的檢查,仍然需要做樣本外測試。
手動測試幾個 KD 變體是可行的。要測試回看期、區域、出場與過濾條件的每一種組合就不實際了;這時就需要策略生成與 回測這類工具,因為它們能在納入交易成本與下一根 K 棒成交的情況下,跑大量精確定義的規則組合。
如果你使用 AlphaPrime(Valynox),這代表:把 KD 當成眾多規則區塊之一,給它狹窄的參數範圍,並從第一次執行起就在搜尋設定中保留真實的手續費與滑價。然後依樣本外結果與相鄰參數來評斷留下來的策略,而不是只看單一最佳的回測。
常見問題
KD 值 80 或 20 代表什麼?
KD 值為 80,表示近期收盤一直接近最近九根 K 棒高低區間的頂部。值為 20,表示一直接近底部。這些水位描述的是價格一直收在哪裡,並不預測反轉,在強趨勢中尤其如此。
KD 指標的公式是什麼?
先計算 RSV:收盤價減去 9 根 K 棒的最低價,除以 9 根 K 棒的區間,再乘以 100。然後 K 每根 K 棒從前一個值朝 RSV 移動三分之一的距離。D 從前一個值朝 K 移動三分之一的距離。K 和 D 通常從 50 開始。
KD 指標和 Stochastic 隨機指標一樣嗎?
KD 是 Stochastic 隨機指標的一個版本。台灣式 KD 通常使用 9 根 K 棒的回看期與三分之一的遞迴平滑。許多其他平台則使用 14 根 K 棒的回看期與 3 根 K 棒的簡單平均。讀數相近,但可能在不同的 K 棒上交叉。
KD 鈍化(鈍化)是什麼意思?
鈍化是指趨勢持續時,K 和 D 一直停在 80 以上的超買區,或 20 以下的超賣區。這是因為每次新的收盤都停在近期區間的一端。在鈍化期間,賣超買或買超賣讀數的規則往往會失敗。
KD 可以用在期貨當沖嗎?
這個計算適用於任何 K 棒週期,包括 1 分鐘或 5 分鐘的期貨 K 棒。短 K 棒會產生許多交叉,所以交易成本會占每筆交易很大的比重。評斷日內 KD 規則之前,請先用完整的一買一賣(來回)交易成本與下一根 K 棒成交來測試。
參考資料
- Sullivan, R., Timmermann, A., & White, H. (1999). Data-Snooping, Technical Trading Rule Performance, and the Bootstrap. The Journal of Finance, 54(5), 1647–1691.
- White, H. (2000). A Reality Check for Data Snooping. Econometrica, 68(5), 1097–1126.
AlphaPrime 在這裡能幫上什麼
AlphaPrime 的策略生成,把 KD 交叉這類想法變成可檢驗的規則,附有參數範圍與進場、出場條件。AlphaPrime 的回測則成批評估這些規則,並納入手續費、滑價、下一根 K 棒成交與交易時段。

