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

資金流量指標:公式、80/20 水位與 ES 期貨測試

資金流量指標就是加入成交量的 RSI:它把上漲 K 棒與下跌 K 棒的典型價格 × 成交量分別加總,取 14 根 K 棒,再把比值換算成 0 到 100。只有在成交量明顯偏向一邊時,它才會提供 RSI 無法提供的資訊,因此在期貨上使用前,應先將 MFI 規則與同樣成本下的 RSI 規則對照測試。

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

目錄
  1. 資金流量指標如何計算?
  2. MFI 與 RSI 有何不同?
  3. 如何使用 80 與 20 水位?
  4. MFI 在期貨上準確嗎?ES 回歸測試
  5. 期貨的成交量夠好,足以支撐跨合約的 MFI 嗎?
  6. 常見問題
  7. 參考文獻

資金流量指標如何計算?

資金流量指標是一條 0 到 100 的震盪指標,會把每根 K 棒的價格變動乘上成交量加權。它把上漲 K 棒與下跌 K 棒各自的典型價格 × 成交量,在 14 根 K 棒內加總,再把比值轉成單一讀數。高於 80 代表買盤強勁,低於 20 代表賣盤強勁。在期貨上信任它之前,先與 RSI 在扣除成本後做比較測試。

資金流量指標(MFI)是一種衡量買賣壓力的震盪指標,它把價格移動幅度與推動價格的成交量結合起來。可以想像兩個人推一扇門:價格變化告訴你門往哪個方向動,成交量告訴你他們用了多大的力。RSI 只記錄移動,MFI 記錄的是移動乘上力道。計算分為四個步驟,只有第二步用到成交量。

  1. 典型價格。 典型價格是一根 K 棒最高價、最低價與收盤價的平均:(最高價 + 最低價 + 收盤價) ÷ 3。這一步要使用真實 K 棒。像 Heikin Ashi K 棒 這類平滑 K 棒會以平均後的數值取代最高價、最低價與收盤價,因此算出的典型價格將不再是任何人實際成交過的價格。
  2. 原始資金流量。 原始資金流量是典型價格乘上該根 K 棒的成交量。這是 RSI 沒有的一步。
  3. 正向與負向資金流量。 若某根 K 棒的典型價格高於前一根,它的原始資金流量計為正向資金流量;若較低,則計為負向資金流量。兩邊各自加總最近 14 根 K 棒。
  4. 換算為 0–100。 用正向加總除以負向加總,得到資金流量比率,再套用下方公式。

MFI = 100 − 100 ÷ (1 + 正向資金流量 ÷ 負向資金流量)

其中正向資金流量是過去 14 根 K 棒上漲 K 棒原始資金流量的加總,負向資金流量是下跌 K 棒的加總,兩者相除即為資金流量比率。當兩邊加總相等時,比率為 1,MFI 讀數為 50。買盤流量明顯較大時,MFI 會向 100 靠近;賣盤流量佔優時,則向 0 靠近。

假設範例

某根 K 棒的最高價為 5,010、最低價為 4,990、收盤價為 5,004,典型價格為 5,001.33。過去 14 根 K 棒以簡化單位計,上漲 K 棒的正向資金流量合計 600,下跌 K 棒的負向資金流量合計 200。資金流量比率為 600 ÷ 200 = 3.0,因此 MFI = 100 − 100 ÷ (1 + 3.0) = 75。若同樣 14 根 K 棒的價格變化不變,但上漲 K 棒的成交量只有一半,正向資金流量將為 300,比率為 1.5,MFI 則為 60。價格相同,讀數卻不同。

以假設數字逐步說明 MFI:典型價格為(高+低+收)÷3,原始資金流為典型價格乘以成交量,14 根 K 棒的正向總和為負向總和的 3 倍,比率 3.0 得出 MFI 為 75;第二步的成交量是 RSI 唯一沒有的部分 成交量於第二步加入 假設數字,14 根 K 棒 1 典型價格 (高+低+收) ÷ 3 2 原始資金流 價格 × 成交量 RSI 沒有 3 14 根 K 棒總和 上漲 = 3 × 下跌 4 MFI 比率 3.0 → 75 第 2 步是 RSI 唯一缺少的。 因此:僅在有真實成交量時信任 MFI。
MFI 的四個步驟。第二格納入成交量,是 RSI 唯一缺少的部分。

MFI 與 RSI 有何不同?

RSI 只以價格變化為每根 K 棒加權,MFI 則以價格變化乘上成交量加權,因此兩條線多數時候方向一致,只有在成交量明顯偏向一邊時才會分開。這種分開的情況,正是 MFI 能告訴你、而 RSI 無法告訴你的唯一情況。在成交量大致平均的一段 K 棒上,MFI 就像是換了一支筆畫的 RSI,基於它的策略幾乎會在相同的 K 棒上發出訊號。

RSI 是 Wilder(1978)提出的震盪指標,它比較 14 根 K 棒內上漲收盤幅度的平均與下跌收盤幅度的平均,並把結果換算到 0 到 100。從定義可以推出三個機械上的差異:

屬性RSIMFI
每根 K 棒的輸入收盤對收盤的價格變化典型價格變化 × 成交量
常用長度14 根 K 棒14 根 K 棒
常用水位70 與 3080 與 20
需要成交量欄位否是
K 棒如何合併漲跌幅的平滑平均正向與負向流量的 14 根單純加總

實務上的影響在於線條的形狀。因為 MFI 採用單純加總,一根高成交量的 K 棒會以全額權重進入加總,並正好在 14 根之後離開,所以 MFI 的跳動幅度比 RSI 更大,回落也更快。較寬的 80/20 水位,部分原因正是為了因應這種較跳動的走勢。第二個影響是背離:當價格在低量時上漲、在大量時下跌,RSI 可能停留在 50 附近,而 MFI 卻朝 30 滑落。這樣的圖形正是 MFI 的全部論點,但也正是應該去測試、而非直接假設的部分。至於哪些技術分析指標真的能被測試,首先要看它的輸入(這裡是成交量)在你的資料上是否可信。

示意圖:低量上漲與等幅的高量下跌後,RSI 維持在 50,而 MFI 跌至 30,因為只有 MFI 會依成交量加權每次漲跌 成交量讓 MFI 與 RSI 分道揚鑣 等幅漲跌,示意用 成交量 上漲 低 下跌 高 讀數 RSI 50 MFI 30 只有成交量不均,才會讓兩者分開。 所以:檢驗 MFI 是否優於 RSI。
價格路徑相同,成交量不同:RSI 維持在 50 附近,MFI 卻下跌。這是 MFI 唯一會增加資訊的情況。

如何使用 80 與 20 水位?

80 與 20 水位標示買盤或賣盤壓力過強的區域。可以測試的規則,是在 MFI 重新回到區間內時發出訊號,進場在下一根 K 棒開盤,出場規則則須在第一次回測前寫定。讀數高於 80,代表過去 14 根 K 棒內,成交量加權的買盤至少是成交量加權賣盤的四倍。但這並不代表價格一定會反轉。在強勢趨勢中,MFI 可能連續多根 K 棒停留在 80 以上,因此若規則在第一次碰觸時就賣出,等於是在逆勢賣出。

可以回測的規則,每個部分都要事先定好。以下是常見的回歸型版本:

  1. 做空條件:MFI 收盤高於 80,之後再收盤回到 80 以下。訊號 K 棒是收盤回落的那一根。第一次碰觸不發出訊號。
  2. 做多條件:MFI 收盤低於 20,之後再收盤回到 20 以上。鏡像處理。
  3. 進場:以訊號 K 棒之後那一根 K 棒的開盤價,以市價單進場。若以收盤價做決策,卻以同一個收盤價成交,就是用了你實際無法成交的價格。
  4. 出場:三擇一,於測試前選定:MFI 回穿 50、固定持有幾根 K 棒,或反向訊號。把所選的方式寫下來。之後再加上停損或停利,就會變成另一個策略,而不是改良。
  5. 成本:從第一次執行起,每筆交易都要計入手續費與滑價,做法見回測中的交易成本。若規則在日線上頻繁發出訊號、每次持有數日,那平均每筆損益會小到讓成本決定正負號。
MFI 線收盤高於 80,再持續兩根 K 棒,接著收盤跌回 80 下方:首次收盤高於 80 不產生訊號,收盤跌回 80 下方才是訊號,進場於下一根 K 棒開盤成交;做多條件則以 20 反向判斷 訊號在再次穿越時產生 MFI 接近 80,每點代表一根 K 棒 80 無訊號 訊號 下一根開盤 等待收盤跌回 80 下方。 因此:做多以 20 反向判斷。
可交易的 80/20 規則在 MFI 回到區間內時發出訊號,並以下一根 K 棒的開盤成交,絕不在第一次碰觸時進場。

MFI 在期貨上準確嗎?ES 回歸測試

震盪指標的回歸規則在 ES 日線上可能看起來很強,但以下結果來自一個事後挑選、從 1,024 個候選中選出的純 RSI 替代策略,因此它設定的是 MFI 版本必須超越的門檻,而無法證明 MFI 能預測轉折。指標的「準確度」不是正確判斷的百分比,而是一條完整寫定的規則在扣除成本後的平均每筆損益,並與做同樣工作、但不需額外輸入的最簡單規則相比。就 MFI 而言,那條最簡單的規則就是 RSI。

下列測試以 2019-01-02 至 2025-06-30 的 ES 日線為對象,做多做空皆可,每次一口,每筆交易收取 20 美元手續費與 25 美元滑價。搜尋嘗試了 1,024 個候選,並依其報酬對回撤的表現保留了一個。保留的候選僅使用 RSI 規則作為唯一進場與出場,沒有停損、停利,也沒有任何過濾條件。它是以標準指標建構的替代策略,而非 MFI 規則,因為目的在於先衡量僅靠價格的回歸在此市場上已能做到什麼,然後才加入成交量加權。

來源:AlphaPrime 產品引擎(CPU),2026-10-31 執行。ES 日線,2019-01-02 至 2025-06-30,多空都做,1 口,每筆手續費 $20、滑價 $25。

項目結果
淨利(已平倉)$89,155
最大回撤$68,387.5
交易筆數56
勝率58.93%
獲利因子1.693
平均每筆$1,592.05
在場時間92.09%
MFI 80與20法則的四個事件依序為:空方時MFI收盤高於80布防,收盤回落至80以下發出訊號,於次開盤成交,MFI向下穿越50時出場;多方路徑以20為對稱。 布防、訊號、次開盤成交 MFI 80 / 20 回穿 布防 訊號 成交 出場 空方 > 80 < 80 開盤 < 50 多方 < 20 > 20 開盤 > 50 做回穿,不做觸碰。 故:於次開盤成交與出場。
沿著回撤區間對照權益曲線,並留意樣本外區段從何處開始。此曲線屬於保留下來的 RSI 替代策略,而非 MFI 規則。 ES · 日線 · 2019-01-02 至 2025-06-30 · CPU 引擎回測
將淨損益、最大回撤與交易次數當成一組來讀。交易次數少,表示只要幾筆交易改變,每個數字都可能大幅變動。
將淨損益、最大回撤與交易次數當成一組來讀。交易次數少,表示只要幾筆交易改變,每個數字都可能大幅變動。 ES・日線・2019-01-02 至 2025-06-30・CPU 引擎回測

表格中有三件事比淨損益更重要。第一,六年半內只有 56 筆交易,樣本很小,因此 1,592.05 美元的平均每筆損益帶有很大的不確定性。第二,在場時間為 92.09%,表示這條規則幾乎一直持有部位,不論多空,因此它抓到的獲利有一部分來自 ES 在這些年間的走向,而非指標所判斷的轉折。第三,最大回撤 68,387.5 美元,規模接近淨損益。讀者不應因此認定這條規則真的賺到了那筆錢,也不應期待同樣的結果;它只是 1,024 個候選中外觀最好的一個,而且是在看過全部結果後挑出來的。Bailey 等人(2014)指出,多次試驗中的最佳結果,僅因這個緣故就會被高估。Harvey 與 Liu(2015)提出同樣的觀點,並主張應依測試次數對任何結果打折。

示意圖:超過一千個候選策略依報酬對回撤排序,形成鐘形分布;一般候選位於中間,而保留的是最右端的單一策略,是在看過所有結果後才挑選的 從一千多次嘗試中挑出的最佳者 依報酬對回撤排序,僅為示意 測試超過一千次 保留的一個 一般表現 是看過所有結果後才挑選的。 所以:預期表現會低於其數字。
保留的候選是 1,024 個點中最右邊的一個。它的結果是這個家族的上限,而非一般候選的表現。

MFI 真正的判斷,來自下面這組成對測試,而上述結果只是為它鋪路:

  1. 完整寫出 MFI 80/20 重新回到區間的規則,以及 RSI 70/30 重新回到區間的規則,兩者使用相同的 14 根 K 棒長度與相同的出場方式。
  2. 在同一組 ES K 棒、相同的交易時段定義、相同期間,以及相同的樣本內/樣本外切分下,兩者各執行一次。
  3. 收取相同的手續費與滑價,且兩者都以下一根 K 棒的開盤成交。AlphaPrime(Valynox)在回測的每次評估中都套用手續費、滑價與下一根 K 棒成交,正是這一點讓此比較中的 MFI 線與 RSI 線能在同一尺度上解讀。
  4. 先比較扣除成本後的平均每筆損益,再比較交易次數,最後比較最大回撤。並在執行前寫下決策的門檻:例如,MFI 必須在交易次數相近的情況下,把樣本外扣除成本後的平均每筆損益至少提升一個事先明訂的幅度。

若兩者的平均值很接近,表示在這個市場與這個 K 棒週期上,成交量加權沒有增加任何價值,較簡單的規則自然勝出。若 MFI 明顯較好,下一個問題是這個改善能否撐過下一節所談的成交量問題。

期貨的成交量夠好,足以支撐跨合約的 MFI 嗎?

MFI 的可靠度取決於底下的成交量欄位,而期貨成交量會在三個特定地方出問題:連續月的換月週、稀疏的夜盤,以及與全尺寸合約共用同一市場的微型合約。每一種缺陷都以不同方式扭曲 MFI,而且沒有一種能在純價格的過濾器中顯現。震盪指數作為趨勢或盤整濾網一文說明的震盪指數,完全看不到成交量欄位。在eVWAP 錨定 VWAP 規則於 ES 上的測試中,錨定 VWAP 只把成交量當作滾動平均內的權重,所以單根異常的 K 棒幾乎不會移動它。而 14 根 K 棒的加總比率,會以全額權重對同一根 K 棒做出反應。

連續月是把依序到期的各個合約價格接成一條序列,使回測能跨越多年。換月前後,交易量會在數日內從即將到期的合約逐步轉移到下一個合約。若序列在單一日期直接切換,舊合約的成交量會在切換前萎縮,新合約的成交量則在切換後跳升。MFI 會把這種萎縮與跳升讀成賣壓之後接著買壓,但實際上並沒有發生。換月的處理方式在含合約規格與轉倉的期貨回測中說明;對 MFI 而言,額外要做的一步是檢查換月週的成交量欄位,而不只是價格缺口。

合約與交易時段成交量型態對 MFI 的影響
ES,日盤穩定、深度足夠可靠;讀數反映真實壓力
ES,夜盤長時間稀疏小額成交造成尖峰;出現錯誤的 80/20 穿越
MES(微型)與全尺寸 ES 共用同一市場資金流在另一個合約時,會低估壓力
連續月,換月週在兩個到期合約之間分散換月日前後出現假的擺動
台指期,日盤 vs 夜盤日盤較深,夜盤較薄日盤讀數可用;夜盤會因小額成交而出現尖峰
量能對 MFI 的影響:ES 日盤可靠,ES 夜盤因小單而暴增,MES 低估壓力,連續月在轉倉週因量能先跌後升而出現假性波動,台指期夜盤也因小單而暴增 量能何時會誤導 MFI 各合約與時段對 MFI 的影響 ES 日盤 可靠 ES 夜盤 暴增 MES 微型 低估 轉倉週 假性波動 台指期夜盤 暴增 唯日盤量能可信。 故每次轉倉都要檢查量能。
每種成交量缺陷都以各自的方式扭曲 MFI。換月週的柱狀條顯示先下降再跳升,MFI 會把它讀成壓力擺動。

在執行回測之前,有三項檢查可以解決大部分問題。依你要交易的時段建立 MFI,無論是只用日盤或全時段,並且在 RSI 比較中保持相同的選擇。依你所用成交量來自的合約來建立,因此若某個 MES 策略使用 ES 的成交量,就必須明確標示。最後,檢查序列中最近幾次換月日前後的成交量柱狀圖:若該欄位在那裡下降又跳升,就改以成交量而非固定日期來換月,或是把換月週內的訊號 K 棒排除在測試之外。

下一步很具體。打開你的 ES 或台指期的 K 棒資料,找出最近一次換月日,比較換月前五根 K 棒與換月後五根 K 棒的成交量。如果兩者的平均值差異超過它們周圍的逐日波動,就把前一節的成對 MFI 與 RSI 測試執行兩次:一次包含換月週,一次排除換月週,並保留較差的那個結果。

常見問題

沒有真實成交量的圖表可以使用資金流量指標嗎?

不可以。MFI 會把每根 K 棒的典型價格乘上成交量,因此若資料來源的成交量遺失、以筆數計算或為估計值,算出的指標衡量的會是資料來源的特性,而非買賣壓力。若成交量欄位遺失或不可靠,應改用只需價格的 RSI,並將任何 MFI 讀數視為未定義。

MFI 應使用多長的週期?

常用長度是 14 根 K 棒,與 RSI 相同,也是首次測試的合理起點。較短的長度會使線條更跳動,並產生更多 80/20 穿越;較長的長度則使線條更平滑,穿越次數較少。與其搜尋最佳長度,不如測試幾個相鄰的值,只有在 12、14 與 16 的結果看起來相近時,才保留這條規則。

MFI 背離能預測反轉嗎?

MFI 背離指的是價格創新高而 MFI 的高點卻走低,或在低點出現相反的情況。在你寫下兩個高點必須相距多遠、之後會發生什麼之前,它只是一幅圖,而不是規則。若把它寫成規則,並以同樣的成本與出場方式對照單純的 80/20 重新回到區間規則測試,背離會增加較少見、也較難一致定義的交易,因此在偏好它之前,應先比較兩者扣除成本後的平均每筆損益。

MFI 用在日線或日內 K 棒比較好?

MFI 需要一個能在每根 K 棒上反映真實參與度的成交量欄位。流動性高的日盤日線,比跨越夜盤的日內 K 棒更能持續提供這樣的資料。日內 MFI 在深度足夠的時段可以運作,但在稀疏的時段會出現尖峰,而且在 5 分 K 上,14 根 K 棒的窗口只涵蓋約一小時的交易。在讀取 80 與 20 水位之前,請測試你打算交易的 K 棒週期,並檢查該交易時段的成交量型態。

參考文獻

  • Wilder, J. W. (1978). New Concepts in Technical Trading Systems. Trend Research.
  • 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.
  • Harvey, C. R., & Liu, Y. (2015). Backtesting. The Journal of Portfolio Management, 42(1), 13–28.