蔡金資金流量 CMF:公式、零軸、週期與 ES 測試
蔡金資金流量把以收盤位置加權的成交量在回看期間內加總,再與零軸比較:高於零,表示成交量出現在強勢收盤;低於零,表示出現在弱勢收盤。有用的訊號是長時間停在零軸的同一側,以及穿越零軸。在期貨上,相信任何讀數之前,先檢查轉倉前後的成交量欄位。
作者 Soren Huang · 發佈 · 更新於 · 編輯原則
目錄
蔡金資金流量衡量什麼?
蔡金資金流量衡量的是,在一段回看期間內(通常 20 或 21 根 K 棒),成交量出現在收盤靠近最高價的 K 棒,還是靠近最低價的 K 棒,並以介於 −1 與 +1 之間的單一數字呈現。高於零,表示強勢收盤帶動了成交量;低於零,表示弱勢收盤帶動了成交量。它可以協助過濾進場,但在期貨上,必須先檢查它所用的成交量。
蔡金資金流量 CMF是一個震盪指標,只回答一個問題:成交量主要出現在強勢收盤的 K 棒,還是弱勢收盤的 K 棒?可以把它想成一家店,不只數進門的客人,也數有多少人提著袋子離開。人潮擠滿卻幾乎沒人提袋,不算好日子。CMF 把一根 K 棒的成交量當成客人,把收盤在該根 K 棒區間內的位置當成提袋。本文有一個主軸:CMF 看的是停在零軸的哪一側,而不是確切水位;在期貨序列上,相信任何讀數之前,必須先檢查它背後的成交量。CMF 在可實際測試的量能工具中的位置,見技術分析工具與指標。
如何用收盤位置與成交量計算 CMF?
計算分三步,拿幾根 K 棒就能手算驗證一個值。收盤位置乘數是介於 −1 與 +1 的數字,說明收盤落在該根 K 棒最高價到最低價區間的哪裡:收在最高價為 +1,在中間為 0,在最低價為 −1。資金流成交量是這個乘數乘以該根 K 棒的成交量,所以收在最高價的 K 棒,把全部成交量計為正向資金流;收在中間的 K 棒沒有貢獻;收在最低價的 K 棒,把全部成交量計為負向資金流。
- 每根 K 棒的收盤位置乘數:(收盤價 − 最低價)減(最高價 − 收盤價),再除以(最高價 − 最低價)。若最高價等於最低價,區間為零,乘數設為 0。
- 每根 K 棒的資金流成交量:乘數 × 成交量。
- 回看期間的 CMF:把最近 n 根 K 棒的資金流成交量加總,再把同樣 n 根 K 棒的一般成交量加總,第一個總和除以第二個總和。
唯一的公式:CMF = Σ(乘數 × 成交量) ÷ Σ(成交量),其中 Σ 表示「對最近 n 根 K 棒加總」,乘數是步驟 1 的收盤位置,成交量是該根 K 棒的成交量,n 是週期。因為分子的大小不可能超過分母,結果永遠落在 −1 與 +1 之間。
假設性範例
三根日 K 棒,週期為 3。第 1 根:最高價 102、最低價 98、收盤價 101、成交量 10,000。乘數 = ((101 − 98) − (102 − 101)) ÷ (102 − 98) = (3 − 1) ÷ 4 = 0.5,所以資金流成交量 = +5,000。第 2 根:恰好收在最低價,成交量 8,000。乘數 = −1,資金流成交量 = −8,000。第 3 根:最高價 104、最低價 100、收盤價 103、成交量 12,000。乘數 = (3 − 1) ÷ 4 = 0.5,資金流成交量 = +6,000。資金流成交量總和 = 5,000 − 8,000 + 6,000 = +3,000。成交量總和 = 30,000。CMF = 3,000 ÷ 30,000 = +0.10。三根 K 棒的成交量,略微偏向強勢收盤。
如何閱讀 CMF 與零軸?
讀數高於零,表示在回看期間內成交量偏向強勢收盤;低於零則相反。有用的資訊是線停在零軸某一側的時間長短,而不是確切數值。零軸是正向與負向資金流成交量在期間內互相抵銷的位置。線連續數週停在零軸之上,表示買方數週以來都在收盤時追價。線貼著零軸、每隔幾根 K 棒就翻轉,表示成交量被分攤,等於沒有任何資訊。
| 看到什麼 | 代表什麼 | 怎麼用 |
|---|---|---|
| 連續多根 K 棒停在零軸之上 | 成交量主要出現在強勢收盤 | 允許多單進場,禁止或減少空單 |
| 連續多根 K 棒停在零軸之下 | 成交量主要出現在弱勢收盤 | 允許空單進場,禁止或減少多單 |
| 持續一段時間後穿越零軸 | 成交量的平衡換邊了 | 可測試的候選訊號,常用 ±0.05 這樣的小區帶來確認穿越 |
| 貼著零軸、頻繁翻轉 | 成交量被分攤,沒有偏向 | 沒有資訊;先觀望,或依靠其他條件 |
| 價格創新高,CMF 卻形成較低的高點 | 後面的強勢收盤背後,成交量變少 | 值得測試的背離,單靠它不足以採取行動 |
零軸周圍的區帶,在測試中舉足輕重。沒有它,每次穿越零軸就進場的規則,會去交易震盪段裡的雜訊,而每筆交易都要付手續費與滑價。無法停在某一側的讀數,近似繞著零軸的隨機漫步,而衡量市場隨機性的熵指標,是從另一個角度辨認同一種狀況的方法。
CMF 該用幾個週期?
先從 20 或 21 根 K 棒開始,再選擇相鄰設定在測試中表現相近的週期,而不是得分最高的單一數值。週期就是兩個加總中包含的 K 棒數。週期短,反應快,但翻轉頻繁,每次翻轉都可能是一筆交易,也可能是一筆成本。週期長,線較平滑,但在資金流變化開始許多根 K 棒之後才報告。這和所有移動平均面臨的雜訊與落後之間的取捨相同,而縮短移動平均線落後的 DEMA 指標顯示了另一面:落後越少,翻轉一定越多。
| 週期 | 反應 | 穿越零軸次數 | 常見用法 |
|---|---|---|---|
| 約 10 根 K 棒 | 快 | 多 | 持有時間短,需要零軸周圍的區帶或第二個條件 |
| 20 到 21 根 K 棒 | 中等 | 較少 | 常見預設值;約等於一個月的日 K 棒 |
| 約 50 根 K 棒 | 慢 | 少 | 用來過濾部位方向,而不是當作觸發 |
參數穩定度,是指一個設定的相鄰數值產生的結果,與它自己的結果相近。如果 20 根得分良好,17、18、22 與 24 也都良好,這個週期就位在高原上,結果較不可能只是單一資料集的偶然。如果 20 得分良好,而 18 與 22 表現不佳,這個設定就是幸運尖峰。Pardo(2008)把這種高原檢驗視為合理最佳化的一部分,參數穩定度:高原還是幸運尖峰逐步說明如何執行。同時測試許多 CMF 週期與區帶時,AlphaPrime(Valynox)策略檢驗中預先設定的門檻,會在任何人看到最高分之前,就決定哪些候選策略進入下一關,讓週期的選擇不會淪為事後諸葛。
CMF 與 OBV、累積/派發線有何不同?
CMF 是在視窗內有界的震盪指標,而能量潮指標 OBV與累積/派發線是沒有上限的累計總和,所以 CMF 可以比較不同的期間,累計線只能看斜率與和價格的背離。OBV 是累計總和,當 K 棒收盤高於前一個收盤價時,加上該根 K 棒的全部成交量,低於前一個收盤價時則減去。累積/派發線是累計總和,加的是每根 K 棒的資金流成交量,也就是上方步驟 2 的同一個乘數 × 成交量,一根接一根,從不除以任何東西。
| CMF | OBV | 累積/派發線 | |
|---|---|---|---|
| 刻度 | 有界,−1 到 +1 | 無上限的累計總和 | 無上限的累計總和 |
| 一根 K 棒加入的量 | 乘數 × 成交量,在視窗內,除以總成交量 | 全部成交量,正負號取決於收盤對收盤的變化 | 乘數 × 成交量,加進總和 |
| 使用的收盤價 | K 棒自身區間內的收盤位置 | 收盤價對前一個收盤價 | K 棒自身區間內的收盤位置 |
| 如何解讀 | 所在側、持續時間、穿越零軸 | 斜率與價格背離 | 斜率與價格背離 |
| 跨年度可比較 | 可以,刻度永遠相同 | 不行,水位取決於總和從哪裡起算 | 不行,原因相同 |
實際差別在寫規則時才顯現。「CMF 高於 +0.05 達十根 K 棒」在 2019 年與 2025 年意思相同。「OBV 高於兩百萬」毫無意義,因為總和取決於序列從哪裡開始。OBV 或 A/D 規則必須用斜率來寫,例如「A/D 線高於自己的 20 根均線」,這等於把累計線變回視窗比較。CMF 從一開始就在視窗內除以成交量,省去這一步。OBV 也忽略收盤落在 K 棒區間的哪裡:一根跳空向上卻收在最低價的 K 棒,對 OBV 仍算全部為正的成交量,對 CMF 卻算負向資金流。
CMF 能改善進場嗎?ES 日 K 棒測試的結果
在 2019 年至 2025 年中的 ES 日 K 棒上,單獨用一條資金流規則進出場,留下一個候選策略,它的數字顯示這類規則在這份資料上可能的樣子,而不是讀者可以預期的結果。下面這次回測測試的是 E-mini S&P 500 期貨(ES)日 K 棒,期間 2019-01-02 至 2025-06-30,多空皆做,一口,每筆交易收取 $20 手續費與 $25 滑價。這次執行的規則是 AlphaPrime 的 Advanced Accumulation Money Flow 規則,它是以相同的收盤位置與成交量概念建立的資金流規則,用來代表教科書上的 CMF 公式本身。搜尋試了 1,024 個候選策略,依報酬對回撤的比值保留這一個;事後挑出保留下來的那個會讓它看起來更好,因為多次嘗試中的最好者,一定帶有選擇加成,下一個期間不會重複。
來源:AlphaPrime 產品引擎(CPU),2026-10-31 執行。ES 日線,2019-01-02 至 2025-06-30,多空都做,1 口,每筆手續費 $20、滑價 $25。
| 數字 | 結果 |
|---|---|
| 淨利(已平倉) | $138,262.5 |
| 最大回撤 | $51,415 |
| 交易筆數 | 40 |
| 勝率 | 70% |
| 獲利因子 | 2.315 |
| 平均每筆 | $3,456.56 |
| 在場時間 | 94.41% |

方框裡有三件事決定怎麼讀它。第一,六年半 40 筆交易是小樣本;平均每筆損益的不確定性只隨交易筆數的平方根縮小,所以 40 筆交易得到 70% 勝率只是線索,不是結果。第二,在場時間 94.41%,表示這個規則幾乎一直持有部位,在多空之間翻轉,所以結果有相當大一部分繫於 ES 在這段期間走的方向,這段期間包含 2020 年的下跌與一段長期上漲。第三,一口的最大回撤 $51,415,約等於一千個 ES 指數點,因為 ES 每點價值 $50;這是交易者得承受的落差,規則裡沒有停損來縮短它。Bailey 等人(2014)說明為何 1,024 次嘗試中最好的那一個,在樣本內看起來會比在樣本外更好,Park 與 Irwin(2007)在數十年的研究中發現,把成本與資料窺探納入考量後,技術規則的結果會變弱。持平的讀法是:在這段期間,日 K 棒 ES 上的資金流規則,在每筆交易 $45 成本之後仍能站得住腳,而值得信任的數字,是權益圖樣本外階段裡的那一個,不是帳面淨損益。至於日內 K 棒,情況又不同,日內交易最佳指標的測試結果有說明:交易更多、成本更高,每根 K 棒內的成交量也更稀薄。
為什麼期貨成交量是 CMF 的限制?
期貨成交量分散在各合約月份,轉倉前後移向次月,夜盤又稀薄,所以建立在連續期貨序列上的 CMF,可能在轉倉日跳動,原因與買賣無關。轉倉是交易活動從到期合約移到下一個合約。ES 合約按季循環到期,到期前幾天,多數成交量從近月移到次月。只看近月的圖上,成交量逐日縮小直到轉倉,然後序列切到次一合約,成交量又跳回高處。CMF 在視窗內把加總的資金流成交量除以加總的成交量,所以橫跨轉倉的視窗,混合了縮小的成交量序列與成長的成交量序列。
相信 CMF 之前,三項檢查可以讓成交量欄位可靠:
- 畫出原始成交量,找出季末的鋸齒。每三個月規律地下滑再跳升,表示序列一次只帶一個合約的成交量。以成交量轉倉的連續序列,也就是成交量欄位跟著最活躍合約,接縫小得多。
- 標出轉倉日,與 CMF 最大的單根 K 棒變動對照。若大幅變動與日曆吻合,那就是成交量位移,交易它們的規則,交易的就是轉倉。日 K 棒上,一年約 250 根 K 棒中,轉倉每季只涉及幾根;5 分鐘 K 棒上,每季涉及一整天的 K 棒。
- 決定指標該看哪個交易時段的成交量。夜盤 K 棒的成交量只有日盤的一小部分,所以混合兩者的 CMF 視窗,由日盤 K 棒主導,夜盤 K 棒只加進權重偏低的收盤位置雜訊。只用日盤的序列與全時段序列,由同樣的價格算出的 CMF 值不同。
交易所會不時更改合約循環與交易時段規則;建立轉倉日曆之前,應到交易所的合約頁面確認目前的到期月份。上面的 ES 測試用的是日 K 棒,轉倉影響最小,這也是日 K 棒的結果不經重新測試就無法沿用到日內的原因之一。
下一步是一項一小時內就能用自己的資料執行的檢查:在你的 ES 序列下方畫出成交量,標出季度到期日,數出 CMF 十個最大的單根 K 棒變動中,有多少落在轉倉前後三根 K 棒內。若超過兩、三個,先修正成交量欄位,再對該序列測試任何資金流規則。
常見問題
如何閱讀 CMF 指標?
蔡金資金流量看它停在零軸的哪一側、停了多久。高於零,表示回看期間內的成交量,主要出現在收在區間上緣的 K 棒;低於零則相反。在某一側持續一段時間,以及這樣一段時間後穿越零軸,是值得測試的讀法。貼著零軸、每隔幾根 K 棒就翻轉的線,沒有資訊。
CMF 該用哪個週期?
常見預設值是 20 或 21 根 K 棒,約等於一個月的日 K 棒。較短的週期如 10 反應較快,但穿越零軸的次數多得多,每次穿越都可能是一筆交易、一筆成本。較長的週期如 50 較平滑,但報告變化較晚。選擇相鄰設定測試結果相近的週期,不要選得分最高的單一數值。
CMF 與 OBV 有何不同?
CMF 介於 −1 與 +1 之間,衡量視窗內的資金流,所以 +0.10 的讀數在任何一年意思都相同。OBV 是累計總和,上漲收盤時加上該根 K 棒的全部成交量,下跌收盤時減去,沒有上限,所以它的水位取決於總和從哪裡開始,只能用斜率與背離來讀。OBV 也忽略收盤落在 K 棒區間的哪裡,CMF 卻正是建立在這一點上。
蔡金資金流量在期貨上可靠嗎?
它的可靠程度,僅取決於所讀的成交量欄位。期貨成交量在轉倉前後從到期合約移到次一合約,夜盤又稀薄,所以建立在單一合約或轉倉不佳的連續序列上的 CMF,可能因日曆原因在轉倉日跳動。畫出成交量,標出轉倉日,與 CMF 最大的變動對照,並在信任任何以它建立的規則之前,改用以成交量轉倉的序列。
怎樣的蔡金資金流量值算好?
沒有單一的好值,因為 CMF 的資訊在於持續時間與所在側,不在水位。許多交易者用 ±0.05 這樣的小區帶來確認穿越零軸,並把連續多根 K 棒維持在約 +0.20 之上或約 −0.20 之下,視為強烈偏向。這些水位在你的市場與 K 棒週期上是否有幫助,是含成本測試要回答的問題,不是可以預設的規則。
參考文獻
- 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.
- Park, C.-H., & Irwin, S. H. (2007). What Do We Know About the Profitability of Technical Analysis? Journal of Economic Surveys, 21(4), 786–826.
- Pardo, R. (2008). The Evaluation and Optimization of Trading Strategies (2nd ed.). John Wiley & Sons.

