VALYNOXSTRATEGY RESEARCH TECHNOLOGY
AlphaPrimeAlphaPrime
策略學院 / 指標與訊號

蔡金資金流量 CMF:公式、零軸、週期與 ES 測試

蔡金資金流量把以收盤位置加權的成交量在回看期間內加總,再與零軸比較:高於零,表示成交量出現在強勢收盤;低於零,表示出現在弱勢收盤。有用的訊號是長時間停在零軸的同一側,以及穿越零軸。在期貨上,相信任何讀數之前,先檢查轉倉前後的成交量欄位。

作者 · 發佈 · 更新於 · 編輯原則

目錄
  1. 蔡金資金流量衡量什麼?
  2. 如何用收盤位置與成交量計算 CMF?
  3. 如何閱讀 CMF 與零軸?
  4. CMF 該用幾個週期?
  5. CMF 與 OBV、累積/派發線有何不同?
  6. CMF 能改善進場嗎?ES 日 K 棒測試的結果
  7. 為什麼期貨成交量是 CMF 的限制?
  8. 常見問題
  9. 參考文獻

蔡金資金流量衡量什麼?

蔡金資金流量衡量的是,在一段回看期間內(通常 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 棒,把全部成交量計為負向資金流。

  1. 每根 K 棒的收盤位置乘數:(收盤價 − 最低價)減(最高價 − 收盤價),再除以(最高價 − 最低價)。若最高價等於最低價,區間為零,乘數設為 0。
  2. 每根 K 棒的資金流成交量:乘數 × 成交量。
  3. 回看期間的 CMF:把最近 n 根 K 棒的資金流成交量加總,再把同樣 n 根 K 棒的一般成交量加總,第一個總和除以第二個總和。

唯一的公式:CMF = Σ(乘數 × 成交量) ÷ Σ(成交量),其中 Σ 表示「對最近 n 根 K 棒加總」,乘數是步驟 1 的收盤位置,成交量是該根 K 棒的成交量,n 是週期。因為分子的大小不可能超過分母,結果永遠落在 −1 與 +1 之間。

三根成交量相同的 K 棒:收在區間頂端,乘數為正一,加上全部成交量;收在中間,乘數為零,不加不減;收在底部,乘數為負一,減去全部成交量 K 棒收在哪裡決定一切 成交量相同;只有收盤位置不同 +1 0 −1 +成交量 0 −成交量 高位收盤加分,低位收盤減分。 所以:光看成交量說明不了什麼。
收盤落在該根 K 棒區間的位置,決定這根 K 棒的成交量算成正向資金流、負向資金流,還是不算。

假設性範例

三根日 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 卻形成較低的高點後面的強勢收盤背後,成交量變少值得測試的背離,單靠它不足以採取行動
約 60 根 K 棒的示意 CMF 線:貼著零軸的震盪段沒有資訊,其後長時間在零軸之上顯示正向資金流,之後穿越零軸即為訊號,再來長時間在零軸之下顯示負向資金流 看哪一側,不看水位 約 60 根 K 棒的 CMF(示意) 0 零軸之上 零軸之下 訊號 沒有資訊 訊號來自所在側與持續時間。 所以:忽略零軸附近的翻轉。
CMF 看的是停在零軸的哪一側、停了多久。貼近零軸的震盪段沒有資訊。

零軸周圍的區帶,在測試中舉足輕重。沒有它,每次穿越零軸就進場的規則,會去交易震盪段裡的雜訊,而每筆交易都要付手續費與滑價。無法停在某一側的讀數,近似繞著零軸的隨機漫步,而衡量市場隨機性的熵指標,是從另一個角度辨認同一種狀況的方法。

CMF 該用幾個週期?

先從 20 或 21 根 K 棒開始,再選擇相鄰設定在測試中表現相近的週期,而不是得分最高的單一數值。週期就是兩個加總中包含的 K 棒數。週期短,反應快,但翻轉頻繁,每次翻轉都可能是一筆交易,也可能是一筆成本。週期長,線較平滑,但在資金流變化開始許多根 K 棒之後才報告。這和所有移動平均面臨的雜訊與落後之間的取捨相同,而縮短移動平均線落後的 DEMA 指標顯示了另一面:落後越少,翻轉一定越多。

週期反應穿越零軸次數常見用法
約 10 根 K 棒快多持有時間短,需要零軸周圍的區帶或第二個條件
20 到 21 根 K 棒中等較少常見預設值;約等於一個月的日 K 棒
約 50 根 K 棒慢少用來過濾部位方向,而不是當作觸發
同樣價格上的三條示意 CMF 線:10 根線多次穿越零軸,20 根線較少,50 根線一次,且 50 根線遠在價格轉折之後才穿越,顯示它的落後 翻轉較少,訊號較晚 同樣的價格;虛線=價格轉折 落後 10 根 20 根 50 根 多次 較少 少 短週期翻轉,長週期落後。 所以:選高原上的週期。
週期在雜訊與延遲之間取捨:短週期頻繁穿越零軸,長週期較晚才報告轉折。

參數穩定度,是指一個設定的相鄰數值產生的結果,與它自己的結果相近。如果 20 根得分良好,17、18、22 與 24 也都良好,這個週期就位在高原上,結果較不可能只是單一資料集的偶然。如果 20 得分良好,而 18 與 22 表現不佳,這個設定就是幸運尖峰。Pardo(2008)把這種高原檢驗視為合理最佳化的一部分,參數穩定度:高原還是幸運尖峰逐步說明如何執行。同時測試許多 CMF 週期與區帶時,AlphaPrime(Valynox)策略檢驗中預先設定的門檻,會在任何人看到最高分之前,就決定哪些候選策略進入下一關,讓週期的選擇不會淪為事後諸葛。

CMF 與 OBV、累積/派發線有何不同?

CMF 是在視窗內有界的震盪指標,而能量潮指標 OBV與累積/派發線是沒有上限的累計總和,所以 CMF 可以比較不同的期間,累計線只能看斜率與和價格的背離。OBV 是累計總和,當 K 棒收盤高於前一個收盤價時,加上該根 K 棒的全部成交量,低於前一個收盤價時則減去。累積/派發線是累計總和,加的是每根 K 棒的資金流成交量,也就是上方步驟 2 的同一個乘數 × 成交量,一根接一根,從不除以任何東西。

CMFOBV累積/派發線
刻度有界,−1 到 +1無上限的累計總和無上限的累計總和
一根 K 棒加入的量乘數 × 成交量,在視窗內,除以總成交量全部成交量,正負號取決於收盤對收盤的變化乘數 × 成交量,加進總和
使用的收盤價K 棒自身區間內的收盤位置收盤價對前一個收盤價K 棒自身區間內的收盤位置
如何解讀所在側、持續時間、穿越零軸斜率與價格背離斜率與價格背離
跨年度可比較可以,刻度永遠相同不行,水位取決於總和從哪裡起算不行,原因相同
三張卡片比較量能指標:CMF 在負一與正一之間移動,看它在零軸的哪一側;OBV 與累積/派發線是沒有上限的累計總和,只看斜率 只有 CMF 有固定刻度 同樣的 K 棒,不同的解讀 CMF −1~+1 零軸的一側 OBV 無上限 只看斜率 A/D 線 無上限 只看斜率
CMF 有界且採視窗計算;OBV 與 A/D 線是沒有上限的累計總和,只能看斜率與背離。

實際差別在寫規則時才顯現。「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%
一個示意的轉倉週裡,五天內,到期合約的每日成交量縮小、次月合約的每日成交量增加,所以由近月 K 棒建立的 CMF 在那一週出現位移 成交量隨轉倉移動 各合約每日成交量(示意) 到期合約 次月合約 轉倉週,近月 CMF 位移。 所以:測你實際交易的成交量。
沿著權益曲線對照回撤區帶,找出標記的樣本外階段:那裡的斜率與之前相似,還是較平? ES · 日 K 棒 · 2019-01-02 至 2025-06-30 · CPU 引擎回測
保留下來的候選策略的摘要數字,集中在一個畫面。請對照上方的方框閱讀,並先看交易筆數,再看利潤數字。
保留下來的候選策略的摘要數字,集中在一個畫面。請對照上方的方框閱讀,並先看交易筆數,再看利潤數字。 ES · 日 K 棒 · 2019-01-02 至 2025-06-30 · CPU 引擎回測

方框裡有三件事決定怎麼讀它。第一,六年半 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 在視窗內把加總的資金流成交量除以加總的成交量,所以橫跨轉倉的視窗,混合了縮小的成交量序列與成長的成交量序列。

ES 轉倉前後約四週的示意:近月成交量縮小,次月成交量成長,序列在轉倉日切換合約,CMF 在那裡明顯下滑,原因是日曆,不是賣壓 轉倉不是賣壓 ES 轉倉前後四週 近月 次月 轉倉 不是賣壓 CMF 下滑是日曆效應。 所以:檢查轉倉日的成交量。
轉倉前後,近月合約的成交量下降、次月合約上升,所以以單一合約成交量建立的 CMF 會移動,原因是日曆,不是市場。

相信 CMF 之前,三項檢查可以讓成交量欄位可靠:

  1. 畫出原始成交量,找出季末的鋸齒。每三個月規律地下滑再跳升,表示序列一次只帶一個合約的成交量。以成交量轉倉的連續序列,也就是成交量欄位跟著最活躍合約,接縫小得多。
  2. 標出轉倉日,與 CMF 最大的單根 K 棒變動對照。若大幅變動與日曆吻合,那就是成交量位移,交易它們的規則,交易的就是轉倉。日 K 棒上,一年約 250 根 K 棒中,轉倉每季只涉及幾根;5 分鐘 K 棒上,每季涉及一整天的 K 棒。
  3. 決定指標該看哪個交易時段的成交量。夜盤 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.