CCI 順勢指標:公式、±100 水位與期貨回測方法
CCI 衡量典型價偏離其移動平均的程度,並以 0.015 縮放,使多數讀數落在 ±100 之內。同一個 ±100 穿越,可以當成反轉規則,也可以當成突破規則;兩者方向相反,必須當成各自獨立的候選策略來測試,成本要在第一次執行前設定好。
作者 Soren Huang · 發佈 · 更新於 · 編輯原則
目錄
CCI 指標如何計算?
CCI 指標(Commodity Channel Index)衡量一根 K 棒的典型價偏離自身移動平均的程度,單位是回看期間的平均距離。常數 0.015 讓多數讀數依設計落在 −100 與 +100 之間,超出這兩條線的讀數,就是 CCI 規則交易的區間。
四個量構成讀數。典型價是一根 K 棒最高價、最低價與收盤價的平均。均線是典型價在 N 根 K 棒上的簡單移動平均,N 是你設定的週期(常見選擇是 14 與 20)。平均偏差是最近 N 個典型價與該均線之間絕對距離的平均,描述典型價平常會偏離多遠。完整定義放在CCI 順勢指標(商品通道指數)頁面;值得記住的公式只有一個:
CCI = (典型價 − 均線) ÷ (0.015 × 平均偏差)
其中典型價 − 均線是今日偏離均線的距離,平均偏差是正常距離,0.015是固定的縮放常數。除以正常距離,讀數就變成「目前偏離了幾個正常距離」;常數再把這個數字放大,讓一般的 K 棒落在 ±100 之內。常數不是要調的設定,要調的是週期。CCI 在其他震盪指標與通道工具之中的位置,以及哪些能寫成固定規則,見技術分析工具與指標這篇指南。
假設性範例
假設今日典型價為 101,典型價的 20 根均線為 100,這 20 根 K 棒的平均偏差為 0.5。距離均線 1。CCI = 1 ÷ (0.015 × 0.5) = 1 ÷ 0.0075 ≈ 133。價格高出均線兩個正常距離,讀數在 +100 之上。若平均偏差改為 1.0,同樣的價格讀數約為 67,仍在正常區間內。
CCI 到哪個水位算超買或超賣?
一般慣例是讀數高於 +100 為超買、低於 −100 為超賣,±200 為極端;但這些是線經常進出的區間,不是罕見的訊號。刻度的設計讓多數讀數落在 ±100 之內,也就是說有一定比例的讀數會落在外面。強趨勢可以讓讀數連續多根 K 棒停在 +100 之上,指標一路喊「超買」,價格卻持續上漲。
寫規則用三個區間就夠。±100 之內是正常區間,價格靠近均線。±100 到 ±200 之間是超買或超賣區間,價格被拉開。±200 之外是極端區間,線較少到達,通常出現在快速行情或波動衝擊時。線在各區間停留多久,取決於市場、K 棒週期與週期設定,所以實用的做法是用自己的資料計數:載入你的 K 棒,選好週期,數出 ±100 之外的 K 棒占比。這個占比說明反轉規則多常進入待命、突破規則多常觸發。
同一個水位有兩種解讀。均值回歸的交易者把 +100 讀成「拉得太遠,可能回來」;趨勢交易者把 +100 讀成「夠強,可以跟」。兩種解讀各自都不算錯;下一節會說明,它們產生的交易方向相反。
反轉還是突破:±100 該往哪個方向交易?
同一個 ±100 穿越,可以寫成反轉規則,也可以寫成突破規則;兩者在同一根 K 棒上方向相反,必須當成各自獨立的候選策略來測試。反轉規則屬均值回歸,等線從超買或超賣區間回來後,逆著走勢交易。突破規則屬趨勢規則,線進入該區間時進場,順著走勢交易。
| 規則要素 | 突破(趨勢)規則 | 反轉(均值回歸)規則 |
|---|---|---|
| 多單進場 | CCI 向上穿越 +100 | CCI 先低於 −100,再向上穿回 |
| 空單進場 | CCI 向下穿越 −100 | CCI 先高於 +100,再向下穿回 |
| 常見出場 | CCI 逆著部位穿越零軸 | CCI 回到零軸,或持有固定根數的 K 棒 |
| 持有時間 | 較長;跟著趨勢走 | 較短;吃下回彈 |
| 適合的市場 | 趨勢段 | 盤整段 |
| 典型失敗 | 線在 ±100 附近徘徊時來回被洗 | 逆著持續超出 ±100 的趨勢交易 |
測試前,把每個規則的每項條件固定下來寫明:哪個穿越進場、哪個穿越或水位出場、是否雙向交易。「交易 ±100 線」不是規則;「收盤穿越 +100 時做多,收盤跌破 0 時出場」才是。把兩種方向混在同一個候選策略裡,例如先用突破進場,後來因為權益曲線偏弱,又加上反轉濾網,檢驗就變成了湊合歷史資料的練習。
突破版本與Supertrend 指標的翻轉邏輯屬同一類,兩者都在走勢已顯示強度之後才進場。差別在於衡量的對象。Supertrend 在收盤穿越一條與價格相距平均真實區間倍數的線時翻轉,所以反應的是價格走過一段與波動相稱的距離。CCI 突破則在偏離均線的距離超過正常距離的某個倍數時觸發,反應的是偏離本身。Supertrend 通常隨時都在市場中,因為每次翻轉都會反向建立部位;CCI 突破有獨立的出場,也會有空手的時間。把兩者放在同樣的 K 棒上測試,就能知道你的市場獎勵的是「在與波動相稱的走勢之後跟進」,還是「在偏離均線之後跟進」。
CCI 設定:14 或 20 週期?
14 與 20 本身都不是正確的 CCI 設定;正確的週期,是相鄰數值在扣除成本後表現相近的那一個。週期較短,均線與平均偏差反應較快,線穿越 ±100 更頻繁、更早,交易更多,雜訊也更多。週期較長,兩者都更平滑,線穿越較少、較晚,交易較少、進場較晚,被洗的次數也較少。
| 影響 | CCI(14) | CCI(20) |
|---|---|---|
| ±100 的穿越次數 | 較多 | 較少 |
| 同一次穿越的時點 | 較早 | 晚數根 K 棒 |
| 每年交易筆數 | 較多 | 較少 |
| 成本拖累 | 較高,因為更多筆交易都要付手續費與滑價 | 較低 |
| ±100 附近的來回洗盤 | 較多 | 較少 |
| 錯過行情起點 | 較小 | 較大 |
選擇的方法是測一個範圍,而不是一對數字。用大約 10 到 30 的週期、每次間隔 2 逐一執行規則,每次的手續費、滑價與下一根 K 棒成交設定都相同,再把扣除成本後的平均每筆損益,對週期畫成一條線。好結果是一片高原:相鄰的一段週期,例如 16 到 24,平均每筆損益都相近。壞結果是尖峰:18 看起來不錯,16 與 20 都不好。Pardo(2008)把這種高原檢驗視為最佳化參數的基本檢查,道理並不複雜。實單交易時的價格不會與你的歷史一樣,只在某個確切數值才有效的設定,描述的是那段歷史裡的雜訊。從高原中間挑週期,並把高原的寬度記進候選策略的說明。
週期也決定交易筆數,而交易筆數決定結果有沒有意義。日 K 棒上的 20 週期反轉規則,一年可能只產生寥寥數筆交易;同一規則在 15 分鐘 K 棒上,會產生數百筆。比較 14 與 20 之前,先以完成的交易筆數而不是年數來判斷樣本。
CCI 與 RSI、KD 有何不同?
RSI 與 KD 限制在 0 到 100 之間,CCI 沒有上限,所以強趨勢中 CCI 持續上升,RSI 與 KD 則在接近上限處走平。三者衡量的東西也不同。RSI 比較期間內的平均漲幅與平均跌幅,如 Wilder(1978)所述。KD 即隨機指標 KD(Stochastic Oscillator),把收盤價放在期間最高價到最低價的區間內。CCI 以正常距離為單位,衡量與均線的距離。RSI 與 KD 是不會超過 100 的比值,持續上漲的趨勢會把它們推向上限,到了那裡,它們就不再告訴你走勢有多強。CCI 沒有上限,拉開得更大,讀數就單純更高。
| 屬性 | CCI | RSI | KD(隨機指標) |
|---|---|---|---|
| 刻度 | 無上下限 | 0 到 100 | 0 到 100 |
| 輸入 | 典型價與其均線的距離 | 平均漲幅對平均跌幅 | 收盤價在期間高低區間內的位置 |
| 常見水位 | ±100,極端為 ±200 | 70 與 30 | 80 與 20 |
| 強趨勢中的表現 | 持續上升 | 在上限附近走平 | 在上限附近走平 |
| 天然適合的規則類型 | 反轉或突破 | 以反轉為主 | 以反轉為主,常搭配 %K/%D 交叉 |
這個差異改變了各指標的用途。有上限,才讓RSI 指標的 70/30 水位與KD 指標的 80/20 水位成為自然的反轉觸發,因為接近上限的讀數沒有多少再往上的空間。沒有上限,讓 CCI 也能當趨勢衡量:讀數從 +100 爬到 +250 是新資訊,RSI 從 80 到 85 卻幾乎沒變。如果你已經在交易 RSI 相對強弱指標的反轉規則,CCI 反轉規則是近親,常在同樣的 K 棒觸發;真正補上 RSI 無法表達之處的,是 CCI 突破規則。
CCI 規則在不同期貨市場表現如何,回測該怎麼讀?
CCI 規則的結果,更取決於市場的性格而非指標本身,所以每個市場各自測試,並以扣除成本後的平均每筆損益、交易筆數與回撤來讀報表,不要看淨損益。ES 與台指期這類指數期貨,長時間處於趨勢,這些階段獎勵 ±100 的突破用法,卻懲罰一路逆勢賣出的反轉規則。每個市場都有的盤整階段,獎勵反轉用法,並讓突破規則被來回洗。兩種階段的占比因市場與年份而異,所以把數個市場合在一起測,會藏住每個市場自己的狀況。
- 把進出場寫成固定條件。哪個穿越進場、哪個穿越出場、只做多還是雙向。
- 第一次執行前,先設定手續費、滑價與下一根 K 棒成交。在收盤決定的規則,必須在下一根 K 棒成交;以決定當下的收盤價成交,用的是你實際上無法成交的價格。
- 反轉與突破版本分別當成獨立的候選策略,在一整段週期範圍內,每個市場各自執行。
- 讀扣除成本後的平均每筆損益、交易筆數與最大回撤。只看淨損益,說不出收益是怎麼賺來的。
- 保留任何候選策略之前,先檢查相鄰週期與樣本外階段。
下面這次回測顯示這類報表在實務上的樣子。它測試的是 Volume Profile Levels 規則,這是以標準指標組成的替代規則,不是 CCI 規則,標的是 ES 日 K 棒,期間 2019-01-02 至 2025-06-30,多空皆做,一口,每筆交易收取 $20 手續費與 $25 滑價。這是搜尋從所試的 1,024 個候選策略中保留下來的唯一一個,依報酬對回撤的比值挑出;事後挑選最好的候選策略會讓它看起來更好:保留下來的那個帶有一份選擇加成,新的一段資料不會兌現,Bailey 等人(2014)對此有詳細說明。
來源:AlphaPrime 產品引擎(CPU),2026-10-31 執行。ES 日線,2019-01-02 至 2025-06-30,多空都做,1 口,每筆手續費 $20、滑價 $25。
| 數字 | 結果 |
|---|---|
| 淨利(已平倉) | $137,912.5 |
| 最大回撤 | $37,892.5 |
| 交易筆數 | 160 |
| 勝率 | 51.25% |
| 獲利因子 | 1.482 |
| 平均每筆 | $861.95 |
| 在場時間 | 84.23% |

依這個順序讀。第一是平均每筆損益 $861.95,對照每筆交易收取的 $45 手續費與滑價:成本只占平均每筆損益的一小部分,所以滑價加倍也不會改變正負號。第二是交易筆數,約六年半 160 筆,足以讓平均值有意義,但少到幾筆大額交易就能左右它;交易明細會告訴你結果有多集中。第三是最大回撤 $37,892.5,對照淨損益 $137,912.5:最糟的虧損階段吞掉了整段期間所賺的略多於四分之一,而該拿來對照帳戶規模的是這個回撤,不是淨損益。第四是在場時間 84.23%,表示這個規則大部分時間都持有部位,所以幾乎每週都帶著隔夜部位。在 AlphaPrime(Valynox)中,這些數字與交易明細、各期間明細一同呈現在績效報表,所以 CCI 候選策略一跑完,就能讀到同樣這四個數字。以上都不是預測,以同樣方式測試的 CCI 規則,會有它自己的數字。
假設性範例
假設某指數期貨上的 CCI(20) 突破規則,共 400 筆交易,扣除成本前的平均每筆損益為 $70。每筆交易有 $45 手續費與滑價,扣除成本後平均每筆損益為 $25,略高於毛額的一半。若滑價加倍成 $50,成本會升到 $70,平均每筆損益歸零。結果為正但偏薄,所以要不要保留,要看高原檢查與樣本外階段,而不是帳面利潤。
下一步:取一個市場自己的 K 棒,把 CCI(20) 突破規則與 CCI(20) 反轉規則寫成兩個固定的候選策略,用你實際的手續費、每邊一個跳動點的滑價與下一根 K 棒成交各跑一次,並記錄各產生了多少筆交易。若任一個少於數百筆,先改用較小的 K 棒週期或較長的歷史,再比較兩者。
常見問題
CCI 能高於 200 或低於 −200 嗎?
可以。CCI 沒有上下限,因為它是用與均線的距離除以正常距離,沒有任何東西限制結果。超出 ±200 的讀數比 ±100 到 ±200 之間的少見,通常出現在快速行情或波動衝擊時。出現頻率取決於市場、K 棒週期與週期設定,所以用自己的資料來計數,不要預設一個占比。
CCI 是領先指標還是落後指標?
它由移動平均與移動平均偏差組成,所以像任何平均類指標一樣落後於價格;週期越短落後越少,週期越長落後越多。「領先」的印象來自反轉用法,也就是讀數離開 ±100 區間,被讀成走勢疲弱的跡象。那是對落後讀數的詮釋,不是預測,必須像其他規則一樣,當成固定規則來測試。
CCI 用哪個 K 棒週期最好?
CCI 在每種 K 棒週期上的算法相同,所以選擇決定的是交易筆數與持有時間,而不是指標的意義。日 K 棒上,20 週期規則一年只有寥寥數筆交易;日內 K 棒則有數百筆。挑一個能累積足夠完成交易來判斷的 K 棒週期,用同樣的成本在上面跑同一個規則,並確認相鄰週期的表現相近,再信任結果。
CCI 策略在期貨上有效嗎?
CCI 規則是對價格的固定條件,所以任何有 K 棒資料的期貨合約都能測試,是否站得住腳是要量測的結果,不是指標本身的屬性。突破用法傾向適合指數期貨的趨勢階段,反轉用法傾向適合盤整階段,但兩者的比重因市場與年份而變。每個市場各自測試,先設定手續費、滑價與下一根 K 棒成交,再讀扣除成本後的平均每筆損益、交易筆數與回撤。
參考文獻
- Wilder, J. W. (1978). New Concepts in Technical Trading Systems. Trend Research.
- Pardo, R. (2008). The Evaluation and Optimization of Trading Strategies (2nd ed.). John Wiley & Sons.
- 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.

