Twiggs Money Flow Node

True Range-Adjusted Wilder-Smoothed Money Flow

VolumeMoney FlowTrend-Following

Overview

The Twiggs Money Flow Node is Colin Twiggs' improvement on the Chaikin Money Flow (CMF). It addresses two weaknesses of CMF: it uses the true high and true low (incorporating the previous close) to handle overnight gaps, and it applies Wilder's exponential smoothing rather than a simple moving sum — reducing the "edge effect" where old data abruptly drops off the window.

TMF oscillates between approximately −1 and +1. Positive values indicate accumulation (buying pressure); negative values indicate distribution (selling pressure). The Wilder EMA smoothing gives older bars less weight gradually, making TMF a more responsive and stable money flow oscillator compared to CMF.

Algorithm

trueHigh = max(high, prevClose)
trueLow = min(low, prevClose)
trueRange = trueHigh − trueLow (min 1 to avoid division by zero)
ADV[i] = volume × (2×close − trueLow − trueHigh) / trueRange
smoothedADV = Wilder EMA(ADV, period)
smoothedVol = Wilder EMA(volume, period)
TMF = smoothedADV / smoothedVol
Output: TMF ratio ∈ approx [−1, +1]. Warm-up: period bars (Wilder EMA initialization).

Parameters

ParameterDefaultDescription
period21Wilder EMA period for smoothing ADV and volume

Inputs & Outputs

SlotDirectionTypeDescription
inputInputOHLCVStandard OHLCV price and volume data
valuesOutput(number | null)[]TMF ratio (approx −1 to +1; positive = accumulation)
timestampsOutputnumber[]Unix timestamps aligned to input

Use Cases

Accumulation/Distribution Trend Identification

A TMF persistently above zero indicates sustained accumulation — institutional buying over the look-back period. Use this to confirm bullish trade setups: enter longs when price breaks resistance and TMF is positive and rising. Avoid longs when TMF is trending negative despite price strength.

Gap-Adjusted Money Flow

Unlike CMF, TMF correctly handles overnight gaps by using true high/low. When a stock gaps up at the open, the previous close becomes part of the true range calculation — preventing the artificial "positive money flow" signal that CMF would generate from a gap that simply reflects after-hours news.

Divergence-Based Trade Triggers

When price makes a new high but TMF makes a lower high (bearish divergence), institutional money flow is not confirming the price rise — a warning sign. When price makes a new low but TMF makes a higher low (bullish divergence), selling volume is diminishing even as price falls — a potential reversal signal.

Tips & Best Practices

TMF vs CMF: Prefer TMF for Gap-Heavy Instruments

For instruments with frequent overnight gaps (equities, futures), TMF is strictly superior to CMF due to its true range adjustment. For 24/7 markets with no gaps (crypto spot), both give similar results. Use CMF only if you specifically need the simpler windowed sum behavior.

21-Period Default for Swing Trading

The default 21-period Wilder EMA corresponds to approximately one trading month. This is Twiggs' recommended default for swing trading. For faster signals, try period=14. For longer-term trend confirmation, use period=42 (two months). Wilder's smoothing constant = 1/period.

Zero-Line is Key Decision Level

The most reliable TMF signals come from sustained movement above or below zero — not short-term zero-line crosses. Wait for TMF to stay above zero for 3+ consecutive bars before treating it as a confirmed accumulation signal. Single-bar zero-crosses are often noise from one large-volume reversal bar.

Related Indicators